Updating Users with Forms and Procedures

I created a custom statement, named UpdateMe, and distributed it to all the Beta Testers that will update form and procedures from a partialupate file located on a file server. I added a text list object to every database with an UpdateMe button, which calls the custom statement. I have the same text list object but when I double-click, the custom statement will upload the forms and procedures to the file server. So far in my testing this has worked well (we have one network issue that can create a problem, but easily avoided). I can click my UpdateMe button, and seconds later, the user can click their UpdateMe button and the changes are on their computer. I am as happy as a blind squirrel can be. 99% of changes that I make are to forms and procedures, so I will rarely have to create a new generation.

Retry:
if info("volumes") notcontains "Resources"  //checks is user is connected to the file server
    alertsheet "Please connect to Resources then try again","Buttons","Try Again,Okay"
    if info("dialogtrigger")="Try Again"
	    goto Retry
    endif
    rtn
endif

if fguser=gvtechsupp //gvtechsupp variable has the initials of the tech support person
    if error
        Alertsheet "Sorry. There is a problem. I can't do the update now."
        rtn
    endif
    savepartialdatabase "forms,procedures","/Volumes/Resources/PanX/Updates/"+info("databasename")+".update.panpartialdb"

else

    partialdatabaseupdate "/Volumes/Resources/PanX/Updates/"+info("databasename")+".update.panpartialdb"
    if error
        Alertsheet "No updates available right now."
        rtn
    endif
endif

Nsnotify "All Done with the Update."

Okey dokey. I guess you’ve basically engineered your own “new generation” mechanism. I guess this is an indication that savepartialdatabase and partialdatabaseupdate work correctly. Those were quite a bit more complicated to implement than you might imagine.

Of course by allowing your solution to rely on a shared folder you’ve greatly simplified the problem. I can’t rely on that. You are also relying on the fact that you can hard code the one person that does updates (you). But if this simplifies life for you in the short run, excellent.

You did all the hard work and created these tools. And I have no idea how hard that was. I just made a simple use of the tools. My solution has the disadvantage that the user must click a button to update because it doesn’t happen automatically. It has the advantage in my situation that I can upload a change without waiting for everyone to close the database and test it immediately on a user’s computer.

Actually on further reflection what you’ve done is pretty much the Download Components menu item, but with the advantage that your solution works for users in User mode.

Hmm, I think you might be able to what you need with the downloadpartialdatabase statement. I’d send you a link to the documentation, but I see that I have neglected to include it in the help file! (I did write the documentation, just didn’t transfer it to the help.) Ok, carry on with your solution!

Eventually, though, the downloadpartialdatabase statement is what happens when you use the File>Download Components menu command. So once this is documented, you could allow your users to download components with a button, as you are doing now. And you would upload procedures and forms as you make changes (you can customize the toolbar to include update buttons in each procedure and form window). So basically, there is already a plan to allow the mode of operation you like, but you are a bit foiled by the fact that the menu command doesn’t show up in User mode.

That is also one of the main benefits. I think the tools that are already available, plus what you have described, are excellent and make keeping users updated easy and give the db developer lots of options for how to do it. What you have created is really fantastic for us users

You may recall that in the last Women’s World Cup the finals was between the Dutch women and USA women. I was living in Amsterdam at the time so it was very exciting to see how well this tiny country did against the USA. They had a theme song that begins, in Dutch of course, Nobody watched when you started entirely alone; nobody believed what you could do, nobody watched the little girl with the ball, but you already knew.
That’s how I picture you working for years and now we are seeing the result. And it looks pretty great to me.

I found three fairly serious bugs today. That’s actually pretty good news, even though it sounds kind of bad. I’m testing various server operations with the logging turned on and it almost immediately exposes problems that I didn’t see at all before. Hopefully I’m in the windown phase now, done all the heavy coding and now I’m going to test, test, test with all of this logging output to lay everything bare. When I stop finding bugs, b7 should be ready.

I need to finish in time for Covid to be cured, then I can go to Amsterdam myself!

I have been giving out stars for people who find bugs. A bug in PanX can you a gold star. A bug in my programming never gets a gold star, but can get a bronze star. I do it so the Beta Testers are not frustrated when then encounter a problem but understand that’s what we expect and what we are looking for.