1. Arnaud Bailly
  2. PowerBuilder
  3. Friday, 24 April 2020 16:04 PM UTC

This question is a follow-up to a previous question I asked about build "system" for PB2019. I have been banging my head on the walls for 3 days trying to understand how on Earth orcascript is supposed to work and how I could make it do what I want.

Basically, I want to be able to build incrementally an application as fast as possible when a source file changes, so if I understood things correctly the process should be something like:

  • refresh .pbl from (changed) source files
  • rebuild changed .pbl files into .pbd file 
  • rebuild executable from changed .pbd files

This seems simple enough and I ended writing the following script (only a fragmetn of libraries are shown, there are actually 30 libraries used):

start session
set debug true
scc set connect property localprojpath ".\"
scc set connect property logfile "createpbls.log"
scc set connect property logappend true
scc set connect property deletetempfiles "false"
scc connect offline
scc set target "progsaf.pbt" "OutOfDate importonly"
scc exclude liblist ".\sysfunctions.pbd"
scc refresh target incremental
build library "administrateur_c.pbl" "" pbd
build library "auxiliaure_c.pbl" "" pbd
build library "ax_c.pbl" "" pbd
...moar libs
build executable "progsaf_c.exe" "" "" "nyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
end session

 

Except this does not work, and what's worse it does not tell me what failed. The last lines of the createpbls.log file are:

Successfully created library: c:\users\arnaud\saf\securite_c.pbl
Successfully created library: c:\users\arnaud\saf\traduction_c.pbl
Successfully created library: c:\users\arnaud\saf\webserviceax.pbl
Successfully created library: c:\users\arnaud\saf\wizard_c.pbl
Successfully created library: c:\users\arnaud\saf\wizard_pch_c.pbl
Successfully created library: c:\users\arnaud\saf\swap_api.pbl
PBORCA_SccExcludeLibraryList:
        c:\users\arnaud\saf\sysfunctions.pbd excluded.
PBORCA_SccRefreshTarget. Incremental Rebuild


What am I doing wrong? It seems to me it should be possible to do what I am trying to do using orcascript as hinted by the documentation here: https://docs.appeon.com/appeon_online_help/pb2019/pbug/apbs03.html 
Am I missing something obvious? 
mike S Accepted Answer Pending Moderation
  1. Friday, 24 April 2020 18:03 PM UTC
  2. PowerBuilder
  3. # 1

does any of it work?  you don't really say what it is that is not working or the results of anything.

lets start with - are you able to get the pbl's refreshed?

Also, refresh means you get new and changed items.  it does NOT remove deleted items.  If this is supposed to be a build machine, then your first step should be to delete all the pbls, recreate empty ones, and then get everything.

But if you never(?!?) delete objects, then what you are doing should be fine.

 

 

Comment
  1. Arnaud Bailly
  2. Saturday, 25 April 2020 07:37 AM UTC
So here is the content of the log file created by the orcascript:



4/25/2020 07:22 Source Management Initialization...

Local Project Path: c:\agent\_work\2\s

Scc Connect Offline Successful.

PBORCA_SccSetTarget: c:\agent\_work\2\s\progsaf.pbt

Target settings: REFRESH ALL | IMPORT ONLY

App Name: progsaf App Lib: c:\agent\_work\2\s\progsaf_c.pbl

Library List:

c:\agent\_work\2\s\sysfunctions\sysfunctions.pbd

c:\agent\_work\2\s\progsaf_c.pbl

... more libs

c:\agent\_work\2\s\swap_api.pbl

c:\agent\_work\2\s\tests_c.pbl

Successfully created library: c:\agent\_work\2\s\progsaf_c.pbl

... more libs

Successfully created library: c:\agent\_work\2\s\swap_api.pbl

Successfully created library: c:\agent\_work\2\s\tests_c.pbl

Bootstrapping Application...

PBORCA_SccExcludeLibraryList:

c:\agent\_work\2\s\sysfunctions\sysfunctions.pbd excluded.

PBORCA_SccRefreshTarget. Incremental Rebuild

Unable to process map file: c:\agent\_work\2\s\progsaf_c.pbg

c:\agent\_work\2\s\progsaf_c.pbl cannot be refreshed.

... more libs

Unable to process map file: c:\agent\_work\2\s\swap_api.pbg

c:\agent\_work\2\s\swap_api.pbl cannot be refreshed.

Unable to process map file: c:\agent\_work\2\s\tests_c.pbg

c:\agent\_work\2\s\tests_c.pbl cannot be refreshed.

PBORCA_SccClose



And here is the content of the orcascript itself (different from the one above as I reverted some changes):



start session

set debug true

scc set connect property logfile "createpbls.log"

scc connect offline

scc set target "progsaf.pbt" refresh_all importonly

scc exclude liblist ".\sysfunctions\sysfunctions.pbd"

scc refresh target incremental

scc close

end session



What I don't understand at this stage is the "error" message about the "Unable to process map file: XX".

Also, after invoking the orcascript we delete .pbg files and .s* files and then invoke the autocompiler:



"C:\Program Files (x86)\Appeon\AutoCompiler 19.0\pbc190.exe"" /d " + ("progsaf.pbt") + " /o " + ("progsaf_c.exe") + " /w y /f /m n /x 32 /bg y /p ""SAF "" /cp "" /de "" /v ""19"" /fv ""1.0.19.10"" /ge 0



And this seems to recreate the pbls and the pbds again.



I don't understand what's the interaction between orcascript and pbc190? Do we really need to do both? Is there a place somewhere that explains precisely how to build a PB executable from source control from command-line? The documentation on orcascript and pbc190 is somewhat lacking...
  1. Helpful 1
  1. Arnaud Bailly
  2. Saturday, 25 April 2020 11:34 AM UTC
I just discovered that I can rid of the orcascript part in my compilation process and use only pbc190 to compile everything, However this means the build is not incremental at all: Any small change in a single object causes a rebuild of everything. So back to my initial question: How can I have an incremental build in CI using either pbc190 or orcascript?
  1. Helpful
  1. so th
  2. Thursday, 31 August 2023 00:05 AM UTC
hi can anyone help and what are the parameters to deploy using cmd build?

were you able to do this successfully? I am having a lot of issues compiling using pbc
  1. Helpful
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.