Search code examples
jenkinscommand-linepowerbuilderorcapowerbuilder-build-deploy

Jenkins Job erroring out when executing orca script -23 error


I am receiving the below mentioned error when executing the PowerBuilder auto build from Jenkins Job.

D:\Jenkins\jobs\RxProcessing Build\workspace>"C:\Program Files (x86)\Sybase\Shared\PowerBuilder\orcascr125.exe"
"C:\SVN_PSV\Trunk\AutoBuild\GetLatest.dat" 
Sybase (R) OrcaScript interpreter version 12.5
Using ANSI source file C:\SVN_PSV\Trunk\AutoBuild\GetLatest.dat.
Start Session
scc get connect properties "C:\SVN_PSV\Trunk\PB125\PfW\xxxx32.pbw"
   Orca error in 'scc get connect properties'. Result Code -23.
   Unable to read SCC connect properties for C:\SVN_PSV\Trunk\PB125\PfW\xxxx32.pbw
   An error occurred reading the Windows registry entry.
Last Command Failed.
scc close 
You must successfully issue scc connect before you can call this method.
End Session

When the below command file executed directly in command prompt is not giving any such error. Error only occurs while executing this CMD file from Jenkins Job.

Following is the command file content calling Orca Script.

attrib -R "C:\SVN_PSV\Trunk\PB125\*.*" /S /D
attrib -R "C:\SVN_PSV\Trunk\PB125\PfW\*.*" /S
attrib -R "C:\SVN_PSV\Trunk\PB125\PFC\*.*" /S
attrib -R "C:\SVN_PSV\Trunk\PB125\Shared\*.*" /S
"C:\Program Files (x86)\Sybase\Shared\PowerBuilder\orcascr125.exe"     "C:\SVN_PSV\Trunk\AutoBuild\GetLatest.dat"
attrib -R "C:\SVN_PSV\Trunk\PB125\*.*" /S /D
attrib -R "C:\SVN_PSV\Trunk\PB125\PfW\*.*" /S
attrib -R "C:\SVN_PSV\Trunk\PB125\PFC\*.*" /S
attrib -R "C:\SVN_PSV\Trunk\PB125\Shared\*.*" /S
"C:\Program Files (x86)\Sybase\Shared\PowerBuilder\orcascr125.exe" "C:\SVN_PSV\Trunk\AutoBuild\SolBuild.dat"
pause

Orca Scripts: GetLatest.dat:

start session
scc get connect properties "C:\SVN_PSV\Trunk\PB125\PfW\xxxx32.pbw"
scc set connect property provider "PushOk SVNSCC"
scc set connect property userid "build"
scc set connect property password "*********"
scc set connect property logfile     "C:\SVN_PSV\Trunk\AutoBuild\pbscc120.log"
scc set connect property logappend True
scc connect
SCC set connect property localprojpath "C:\SVN_PSV\Trunk\PB125"
scc set target "C:\SVN_PSV\Trunk\PB125\PfW\xxxx.pbt" "refresh_all"
;SCC set target "C:\SVN_PSV\Trunk\PB125\PfW\xxxx.pbt" "OUTOFDATE   EXCLUDE_CHECKOUT"
SCC refresh target "full"
;SCC refresh target incremental
SCC Close
end session

Please help me to remove this error code -23.

Power Builder 12.5

Jenkins Version 1.617


Solution

  • Don't bother with the SCC commands and PushOK. Just select Subversion Modules in the Source Code Management section of the job configuration. Then in your OrcaScript create the libraries and import the files. This is what I'm using in PBOrca, which I recommend over the OrcaScript that comes with PowerBuilder.

    # Imports and migrates the target
    # This script expects that the project and all required resources are present in the WORKSPACE folder
    # Variables
    # these are required in the environment
    # WORKSPACE - full path to the root of the project. Jenkins sets this in a Jenkins build
    # ORCADLL   - name of the ORCA dll to use, e.g. pborc125.dll
    #
    # these are loaded from the config section of build.ini
    # TARGETNAME - name of the target to build, e.g. sample.pbt
    #
    session begin %%ORCADLL%%
    
    profile string %%WORKSPACE%%\build.ini, config, targetname
    
    cd %%WORKSPACE%%
    
    timestamp
    echo creating PBLs
    target create lib .\%%TARGETNAME%%
    target set liblist .\%%TARGETNAME%%
    
    # set default pb application to allow us to import target
    set application  ,
    
    timestamp
    echo Importing target %%TARGETNAME%%
    target import .\%%TARGETNAME%%, .\
    
    #end orca session and switch to the target we just imported
    timestamp
    echo Finished importing %%TARGETNAME%%
    session end 
    session begin %%ORCADLL%%
    
    # set liblist and application from target
    target set liblist .\%%TARGETNAME%%
    target set app .\%%TARGETNAME%%
    
    timestamp
    echo Migrating target %%TARGETNAME%%
    build app migrate
    
    timestamp
    echo Finished Migrating target %%TARGETNAME%%
    session end 
    

    The Jenkins config looks like this: Jenkins Source Code Management Section

    Jenkins Build Triggers Section