Tap Forms Database Pro for Mac, iPhone, iPad and Apple Watch › Forums › Using Tap Forms 5 › Feature suggestion: connecting databases
- This topic has 18 replies, 5 voices, and was last updated 5 years, 11 months ago by
Daniel Leu.
-
AuthorPosts
-
August 25, 2019 at 12:54 AM #36478
Chris JuParticipantHello Brendan,
have you already thought about the possibility of a function with which various databases can be linked (and can be read out)? That could be a possibility to integrate read only function…
Thanks.
Chris
August 25, 2019 at 2:35 AM #36484
BrendanKeymasterHi Chris,
You can connect forms together using the Link to Form field type. But you can’t connect completely separate databases. I would suggest if you want to link forms together, you just have to make sure you put them into the same database document.
Thanks,
Brendna
August 25, 2019 at 2:43 AM #36488
Chris JuParticipantOk, thanks! Maybe you can consider that as a new feature in a future version. That would be perfect for teams and that could greatly increase the scope!
August 26, 2019 at 12:40 PM #36514
Sam MoffattParticipantI was thinking about this a while back where you could use a “Web Site” field to achieve this.
If you have two documents already created, you can go to your target record and click “Edit” -> “Copy Record Link”. This will give you a “tapformz” URL that looks like
tapformz://record/view/db-5dd69dc1fba843be88038b6c8eea9389/frm-6d7d66c93eb240dc8237f79888316386/rec-e5be282751244dd2b36be5514e197a50which includes the database, form and record. If you put that into a web site field in another document, when you click on the little globe icon, Tap Forms should open up the other document.I’m not sure how this behaves if you have two copies of the same document ID locally, which one gets opened. I think the easy solve to that one is to make sure you only have one document with that document ID in your Tap Forms directory or on your device. If you make a copy of a document on the Mac in the Finder, the two documents will have the same ID so you should move them somewhere else. If you use “Duplicate” within Tap Forms, it gives it a new document ID.
I just gave this a spin again to make sure it worked, created two new documents, created a form each and then added a Web Site field, copied in the record URL and it worked (actually opened up a second copy of the form, this is a bug that happens where Tap Forms doesn’t register the document until you close and reopen it again, if you’re working with brand new documents, close and reopen them first).
I think I’ve tried this on iOS before as well and it worked but I’m not in a position to easily test right. At least on the Mac it works out ok with the above noted caveat.
August 27, 2019 at 12:12 AM #36527
BrendanKeymasterBut I think the main objective of “linking” database documents is to fetch data from Document B and display it in Document A. Is that not right? Or are you just thinking about clicking a link to open a record in another document as Sam suggested a way to do?
August 27, 2019 at 12:26 AM #36529
Chris JuParticipantBut I think the main objective of “linking” database documents is to fetch data from Document B and display it in Document A. Is that not right?
RIGHT!
August 27, 2019 at 1:46 AM #36530
BrendanKeymasterOk, so if that is the objective, then what is the reason you don’t want to just link forms together within the same database? Because you already get that behaviour when linking forms within the same document.
August 27, 2019 at 2:05 AM #36531
Chris JuParticipantI would like to solve the missing possibility that one can not assign read-only rights to forms (or fields) in the same database. If you could link databases (or CouchDB server) with read-only rights, then that would be almost sufficient and a great feature for small businesses.
August 27, 2019 at 4:18 PM #36544
Sam MoffattParticipantI think Brendan mentioned elsewhere he was working on same document access control which might mitigate your problems here.
I have use cases where I don’t want to have everything in the same document because they’re logically different domains. I would love an ability to pick records more naturally out of other documents and even a small amount of embedding but really linking is my main use case.
August 27, 2019 at 9:46 PM #36562
BrendanKeymasterThe problem is now I need to keep track of multiple open SQLite databases within the same document. Right now I have a reference to just one database per document. And then there’s the problem of two-stage commits, etc.
@Chris, Sam is right, I am working on some basic access controls function individual forms within a document. So you would be able to prevent an end-user of your form from deleting records, or messing with the template, etc. It’s a work-in-progress right now.August 27, 2019 at 11:05 PM #36565
Chris JuParticipantI am working on some basic access controls function individual forms within a document. So you would be able to prevent an end-user of your form from deleting records, or messing with the template, etc. It’s a work-in-progress right now.
That would be a very good and sufficient solution for me!
Do you have an approximate schedule for publishing the feature? We are considering using TapForms for our entire office. There are alternatives though. I prefer TapForms because I’ve been working with it for two years and I’m very happy! So far, my persuasive work failed with the other employees at the lack of rights function …
August 28, 2019 at 1:34 AM #36569
Sam MoffattParticipantI’d make the second document read only from the first. You can pull data from it, even cache it, but you can’t write to it. If you want to write to it then open up the document in a distinct window and pull it from there. On iOS you’d be forced to one document but perhaps you’d want to be able to stack a breadcrumb trail across documents. On the Mac you could have concurrent edits as a potential but you could set up something to notify other instances to pick up changes (which you should probably do for multiple instances of the same document being open today in different tabs). You’d also want some way of flagging if a dependent document is unavailable and prompt to either manually transfer or download from sync. Even cooler would be something that let you just pull the data from a remote server without downloading the whole document.
But doing all of that is a lot of work for a rather specialised use case. I’ll settle for my website record links for the time being and perhaps Chris will be able to use the access control stuff when it’s ready.
August 29, 2019 at 12:43 AM #36580
BrendanKeymasterYa, for the general use case, linking forms together is good enough for 99% of the Tap Forms user population. Adding another level of complexity to link entire documents together is something I’m not prepared to tackle at this time. I’ve got so many other things to add to Tap Forms that this one probably won’t get implemented anytime soon.
At some point if your needs exceed the capabilities of Tap Forms, it might be time to look for a more enterprise level solution, such as FileMaker Pro.
August 29, 2019 at 1:02 AM #36582
Chris JuParticipant… I am working on some basic access controls function individual forms within a document. …
Do you have an approximate schedule for publishing this feature?
Thanks!
August 29, 2019 at 2:17 AM #36583
BrendanKeymasterMy goal was to release it with the next update that would support Catalina and iOS 13. But it might need some more thought based on feedback from my beta testers. So not sure exactly. There will be another update for Catalina and iOS 13 shortly after those are released though. Whether the access controls stuff is in it or not is up for debate, depending on beta tester feedback.
August 29, 2019 at 2:19 AM #36584
Chris JuParticipantMy goal was to release it with the next update that would support Catalina and iOS 13.
Great to hear that! Thanks a lot!
November 21, 2019 at 11:11 AM #38155
Courtney DaltonParticipantHello Brendan,
Coming into this discussion late but it pertains to my intentions of use with Tap Forms.
I work for a small business and we are sending iPads out with our service technicians. I have built a small category containing 5 different pages for each tech to access and create reports in order to clock their hours worked, fuel charges, etc. But I have all of the other forms that I work with such as labor sheets, payroll (with employee pay rates), and other private info in a different category named “Office Only”.
At the moment we are on an honor system that the techs only access the forms and reports under their assigned section but as we grow it would be nice to keep the private office info locked down or possibly in a different database.
So I guess the reason it would be great for me to be able to link data across databases is so that I can have a separate database that is encrypted for my eyes only, my boss could have his own database that he encrypts if necessary, and the techs will have an open database that is always accessible…but at the same time my forms such as the time sheets will still fetch info/records from the tech’s database.Also, we have high hopes of growing and branching out with different services/companies, using our corp name as an umbrella. This will also help with the database linking function in that if the same technician performs 2 services (for example one for “bizA” and another for “bizB”) the hours will be kept separate because our companies will have separate databases.
Apologize for the length but I hope I’m explaining it clearly. I can see the layers in my mind’s eye but explaining them is a whole other task.
If that isn’t possible, is there a way we can password protect certain categories? So my techs can access their category of forms but not be able to see the office forms?….maybe that’s what the access comment is about and I just didn’t understand it.
Side Note: This program is working wonders for our company though and the forums are very helpful. Thanks for all your hard work!
November 21, 2019 at 3:13 PM #38157
BrendanKeymasterHi Courtney,
I would recommend keeping the databases separate so your service techs can’t access your private forms.
What you can do though is you can setup a separate document for each service tech that only they have access to. Then if you want to keep a master database, you could export their records as a Tap Forms Archive and then import them into a master database document that you report from. I have another customer who does a similar thing. He has people in the field using their own database document that syncs back with his own Apache CouchDB server. Then he syncs his Mac with that and then exports the data from the individual documents and imports them into a single database document for reporting purposes. It’s an extra step, but it works.
Thanks!
Brendan
November 21, 2019 at 7:44 PM #38159
Daniel LeuParticipantHi Courtney,
Instead of using export and import, a script could be used to capture all the new data and copy it to the clipboard using
utils.copyTextToClipboard(). Then in your main document, you could have a second script that gets this data usingutils.copyTextFromClipboard()to create the new technicians records.JSON.stringyfy()andJSON.parse()would be used to convert your captured data object into a string and to decode it again.If you want to follow this route, have a look at Sam’s elegant script where he copies data from one form to another without defining the fields: https://www.tapforms.com/forums/topic/script-to-copy-records-from-one-form-to-another/.
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks -
AuthorPosts
You must be logged in to reply to this topic.