1. Marcelo Gil
  2. PowerBuilder
  3. Friday, 18 October 2024 13:21 PM UTC

We are evaluating the possibility of using the cloud app launcher for Power Client projects in PB 2022 R3. We have a specific situation that we are unsure how to resolve.

In our APP, we have a customized PBL library for each client where we design different print forms. Currently, when the app runs on the client’s PC, we use an adaptation we made of the pbupdater utility from https://www.topwizprogramming.com/, where we download the app update from the web and check whether this customized file for the client (which we store in a separate folder for each one) needs to be updated or not.

In this way, we manage to have a single APP with a custom print library for each client and make changes when requested.

The question is whether, in this scenario, it is possible to configure a conditional setting in the app launcher that could address this case or if you can suggest any alternatives.

Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 23 October 2024 19:29 PM UTC
  2. PowerBuilder
  3. # 1

Hi Marcelo;

 I have done this type of App many times in the past. What I did was to create a PBD tailored for each customer / region / language / etc and then store each entire PBD file in a BLOB column within the DBMS. One row per unique PBD grouped by whatever you need (ie: customer). Then publish only the bare minimum (base) parts of the App (C/S or PC based apps) as a starter App EXE.

 Then at run time from the starter App - once it figured out the customer / region / language / etc requirement and has a connection to the DBMS -then performs a SelectBLOB command for each unique PBD required. Then save their binaries from the Blob variable as PBD file in the same App EXE's main folder. Once I have those PBD's on disk beside the App EXE, then use the AddToLibraryList() command to add the dynamically acquired PBD's to the App's runtime library list - thus adding the extra visual & non-visual objects tailored for that client. From that point onward, the customized runtime App continues as per normal.  Food for thought.  HTH  :-)

Regards .. Chris

Comment
  1. Marcelo Gil
  2. Wednesday, 23 October 2024 20:33 PM UTC
Hello Chris!

Thanks for sharing this solution
  1. Helpful
  1. Chris Pollach @Appeon
  2. Wednesday, 23 October 2024 20:45 PM UTC
You are most welcome Marcelo ... HTH
  1. Helpful
There are no comments made yet.
Marcelo Gil Accepted Answer Pending Moderation
  1. Wednesday, 23 October 2024 16:36 PM UTC
  2. PowerBuilder
  3. # 2

Hi! Export the datawindow that contains the report as an SRD file and which you store in the database as suggested. Luego created a datastore with this code lds.Create(stringSourceCode) which works correctly. This way, find a possible solution.

 

thanks for the suggestion

Comment
There are no comments made yet.
Marcelo Gil Accepted Answer Pending Moderation
  1. Tuesday, 22 October 2024 23:56 PM UTC
  2. PowerBuilder
  3. # 3

Hi Miguel! Yes, I'm referring to reports. If you have done this, can you tell me the steps? Do you export the datawindow to an srd file? Can you create the datawindow at runtime with this code?

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Friday, 18 October 2024 14:16 PM UTC
  2. PowerBuilder
  3. # 4

Hi,

I don't know exactly what you mean with "print forms", but if it's reports, you could store them in the DB using a blob field relating them to a customer.

That would help you to get rid off the pbl per customer.

Comment
  1. Armeen Mazda @Appeon
  2. Friday, 18 October 2024 14:26 PM UTC
Adding to what Miguel said, you need to think of different way to do this. The technique you do doesn't work with PowerClient because for security and host of other design considerations you cannot touch the p-code after the fact.
  1. Helpful 1
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.