1. Luis Pesaressi
  2. PowerBuilder
  3. Wednesday, 13 May 2020 16:55 PM UTC

Hello everyone

I have many computers with a PB application with several dll's, to this applications we make changes continuously, does anyone know of any way in which the application can be updated automatically when it is run?

 

Thank you

Luis

-----------------------------------------------------------------

Hola todos

Tengo varios equipos con una aplicacion PB con varios dll's y se estan realizando cambios de manera continua, alguien sabe de alguna forma en la que la aplicacion se pueda actualizar de manera automatica al momento de ejecutarla

 

Gracias

Luis

 

Armeen Mazda @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 13 May 2020 17:08 PM UTC
  2. PowerBuilder
  3. # 1

If it is deployed in LAN and client/server architecture is OK, then you can use the new PowerClient feature that we plan to introduce in PowerBuilder 2019 R3.

If you need to deploy over Internet or to cloud server, then you should use PowerServer.  https://www.appeon.com/products/powerserver

Comment
  1. Armeen Mazda @Appeon
  2. Tuesday, 15 September 2020 16:52 PM UTC
Exactly correct Ricardo. But I think Jan was asking to have the app be an Internet app. For this, need to purchase PowerServer instead of using PowerClient.
  1. Helpful
  1. Jan Hoppe
  2. Wednesday, 16 September 2020 08:20 AM UTC
We have today a large application that we deploy via sending new MSI files to some customers and using Turbo for other customers. I saw the PowerClient as another/better way to deploy the application, keeping the way they connect to the database the same.

From what Armeen says I think that this is an option, thanks for your answers.
  1. Helpful
  1. Armeen Mazda @Appeon
  2. Wednesday, 16 September 2020 14:32 PM UTC
Hi Jan, yes, PowerClient should be good for your situation. NyQuil can try out beta version now. https://www.appeon.com/developers/pb-2019r3-beta.html

  1. Helpful
There are no comments made yet.
Andrew Barnes Accepted Answer Pending Moderation
  1. Wednesday, 13 May 2020 17:21 PM UTC
  2. PowerBuilder
  3. # 2

Hi Luis,

So far as I know, you would have to write your own.  That is what we did at my shop.

Each of our applications has an entry in the database which is linked to using the application's AppName property.  Among other things, the database stores the names of the application's files.  Upon launch, the application compares the file dates of its files on the local disk where it is running with the files in the central repository.  If any of the local files are older than those in the central repository, it initiates the application synchronize function.

The synchronize function constructs an INI file that includes the app path of the app to be updated as well as paths to each of its files and the corresponding file in the central repository.  This information is all drawn from the application's database entry.  The application then launches an update application and quits.

The update application uses the information from the generated INI to update all the requisite application files, and then re-launch the application once the files have been updated, and having re-launched the application, it quits.

You need Windows API to compare file dates (FindFirstFile, FindClose, CompareFileTime functions), and is heavily dependent upon the environment in which you are running your applications.  In our case, we have had a very stable, well controlled environment and our process works extremely well for us.  The process is a bit cumbersome, but it can be done once and forgotten about.  We put it in place somewhere in the 1999-2000 timeframe and have really not done much to it since.

Andy

Comment
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Wednesday, 13 May 2020 18:11 PM UTC
  2. PowerBuilder
  3. # 3

Greetings, Luis - 

We use a simple .BAT file. Old school, I know, but it just works.

On an internal, public network share/drive, we place all of pieces that are needed to run our app: The exe, pbd's, dll's. ico's, bmp's, jpg's, etc., along with a .BAT file. The batch file performs several XCOPY commands; each copies one of the various types of component files to a designated destination folder: C:\ProgramData\OurAppName\, for example. Each XCOPY command uses the /D /R /Y command flags so that only files that have a newer date/time stamp than the version in the destination folder get copied.

The last thing the batch file does is issue a START command to run the app from the user's local destination folder. The entire .BAT file is only 30 lines long, including comments.

Each user's desktop icon for our app points to the .BAT file. Each time a user starts the app, the .BAT file runs, any new or updated versions of files are copied to the local destination folder, and the app runs. Simple.

Regards, John

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.