Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 07-04-2021 14:33:11

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Compilation des sources avec ORCA et PB 2019 R3

Bonjour à tous,


Avec la version PB 2019 R3 il y a eu un découplage du runtime et de l'IDE.
Il me manque quelques notions pour interpréter la doc.
En effet, dans la version PB 2019 R3 la dll PBORC.dll n'est pas accessible directement.
D'après la doc il convient pour charger le fichier DLL d'exécution PBORC190.dll (qui devient PBORC.dll  en R3) à partir duquel PowerBuilder IDE est installé, vous écrivez le code différemment entre 2019 R3 et 2019 R2.
En 2019 R3.

Code:

//First, define the AddEnvironmentPath method
BOOL AddEnvironmentPath(LPCTSTR lpAddPath)
{
   TCHAR szSysPath[1024 * 8] = { 0 };
   TCHAR szNewPath[1024 * 8] = { 0 };

   if(0 == GetEnvironmentVariable(_T("path"), szSysPath, 1024 * 8))
      return FALSE;

   _tcscpy_s(szNewPath, lpAddPath);
   _tcscat_s(szNewPath, _T(";"));
   _tcscat_s(szNewPath, szSysPath);

   if(0 == SetEnvironmentVariable(_T("path"), szNewPath))
      return FALSE;

   return TRUE;
}

//Add the path of runtime file before loading the runtime DLL
//The directory needs to be updated when PB is upgraded
AddEnvironmentPath(_T("C:\\Program Files (x86)\\Appeon\\Common\\PowerBuilder\\Runtime 19.2.0.2566"));
AddEnvironmentPath(_T("C:\\Program Files (x86)\\Appeon\\PowerBuilder 19.0\\IDE\\"));
(hORCALibrary = AfxLoadLibrary("PBORC.dll")

Sauf erreur, ce code est écrit en C.
Je n'y connais pas grand chose en C.
Comment exécuter ce code ?
Y a t'il besoin de le compiler et donc d'en faire un .exe ou il y a la possibilité de le faire interpréter directement ?

Dernière modification par Dadone (07-04-2021 14:39:26)

Hors ligne

 

#2 07-04-2021 15:39:02

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Compilation des sources avec ORCA et PB 2019 R3

Bonjour,

Je n'ai fait aucun changement au niveau d'orca en passant en Powerbuilder 2019R3.

Il s'agit simplement d'invoquer des fichiers de scripts écrit avec des instructions ORCA avec l’exécutable orcascr190.exe, par exemple (reconstruction suite à extraction d'un dépôt git)  :

Code:

start session

scc set connect property localprojpath "D:\Travail\Program\BUILD"
scc set connect property logfile "buildapplication_gestion_2021.282.80.0.log"
scc set connect property logappend false
scc set connect property deletetempfiles "false"

scc connect offline

scc set target "gestion_cours.pbt" "refresh_all importonly"
file copy "COMMUN\pbdom190.pbd" "COMMUN\com15606.pbl" Clobber Always
scc exclude liblist "COMMUN\com15606.pbl"
scc refresh target incremental
scc refresh target "3pass"

scc close
end session

Et de l'éxécuter :

Code:

orcascr190.exe buildapplication_gestion_2021.282.80.0.orca > buildapplication_gestion_2021.282.80.0_ouptut.txt

Il est effectivement possible d'écrire des programmes en C à l'aide du SDK (C:\Program Files (x86)\Appeon\PowerBuilder 19.0\SDK\ORCA) pour étendre les fonctionnalités.
Mais, en fait je n'ai pas compris ce que tu voulais exactement faire ?

Hors ligne

 

#3 07-04-2021 17:53:25

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Compilation des sources avec ORCA et PB 2019 R3

Merci Buck pour ta réponse.

Je pense que cela fonctionne sans changement chez toi car tu dois toujours utiliser l'ancienne dll  PBORCxxx.dll et qui doit être compatible avec l'exe Pb 2019R3.
Mais la doc est clair cette dll a changé de nom et se nomme désormais  PBORC.dll.

Car quant j'exécute le script comme tu le fais, j'ai bien une erreur "Failed to load library PBORC.dll" une erreur qui est relevée dans la doc et cette doc dit qu'il faut exécuter le fichier C que mentionne la doc.

Bon, je vais me renseigner comment exécuter ce fichier C.

Dans les faits, j'ai exactement la même problématique que toi.

1. Extraire les sources de GIT
2. Créer un exe à partir de cette extraction.

Je vais m'inspirer de ton exemple pour faire l'extraction de GIT.

Si je comprends, les instructions précédées de "SCC" concerne le source control ? En l'occurrence celui de GIT ?

Hors ligne

 

#4 07-04-2021 19:49:16

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 723
Pépites: 11,352
Banque: 100,221,387,868,884,300
Site web

Re: Compilation des sources avec ORCA et PB 2019 R3

Bonjour,

Si c'est pour l'executer à partir d'une ligne de commande et que tu passes par un fichier de commande (.bat, .cmd) tu peux simplement ajouter au début du fichier de commande:

Code:

PATH %PATH%;C:\Program Files (x86)\Appeon\Common\PowerBuilder\Runtime 19.2.0.2566

https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#5 08-04-2021 08:24:03

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Compilation des sources avec ORCA et PB 2019 R3

Merci Xlat, mon fichier s'exécute.
Bon j'ai encore des erreurs mais je vais m'appuyer sur des exemples que j'ai trouvé sur le forum pour les résoudre.
Ce qui me gène dans cette histoire c'est le path en dure, mon runtime étant différent du tiens (2670) j'ai bien peur qu'à chaque nouvelle version on soit obligé de revenir sur le path.

Dernière modification par Dadone (08-04-2021 09:22:34)

Hors ligne

 

#6 12-04-2021 09:26:09

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Compilation des sources avec ORCA et PB 2019 R3

Bonjour,

Avant la migration sous GIT (précédement CVS), j'utilisais ORCA pour extraire le code du dépôt (scc connect ..). Mais cela n'est plus possible sous GIT :

The OrcaScript command for getting the latest objects from the source control server is not supported by the SVN/Git solution. You can consider using the SVN/Git client tool (such as TortoiseSVN, TortoiseGit etc.) to get the latest objects via commands. For more information, see Usage notes for OrcaScript commands with SVN/Git.

Du coup, pour obtenir le source à partir du dépôt distant, je lance un batch avant l'appel du script ORCA :

Code:

SET BUILD=D:\Travail\Program\BUILD
git clone http://user:password@gitserver:8443/root/afinity.git %BUILD%

Je n'ai pas du tout c'est erreur de dll et le besoin de préciser le path. J'utilise bien la version R3 incompatible avec les anciennes dll.

Je pense que tu n'as pas mis à jour l'objet application de ton projet pour lui préciser le runtime à utiliser (dans le dépôt git). En Powerbuilder R3, il faut préciser le runtime cible pour ton application, il se déclare une nouvelle variable globale du type :

Code:

string appruntimeversion = "19.2.0.2670"

L'exemple ORCA que j'ai mis ne permet que de reconstruire le projet (création des pbls et import des différents objets dans les pbl).

Hors ligne

 

#7 12-04-2021 15:38:06

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Compilation des sources avec ORCA et PB 2019 R3

Ok, merci Buck.

Si je comprends bien :
Etape 1 : Clone du dépôt Git via un fichier de commande, par exemple :

Code:

cd "C:\10 Git Clone"
git.exe clone https://codev-tuleap.xxxx.git

Etape 2 : Reconstruction du projet , création des PBL et import des différents objets dans les PBL, en reprenant ton exemple :

Code:

start session
scc set connect property localprojpath "C:\10 Git Clone"
scc set connect property logfile "buildapplication_xxxx.log"
scc set connect property logappend false
scc set connect property deletetempfiles "false"
scc connect offline
scc set target "sepia.pbt" refresh_all importonly"
scc refresh target incremental
scc refresh target "3pass"
scc close
end session

Etape 3 : construction de l'exe

Je vois deux moyens pour cela.
A) En utilisant un fichier de commande et en invoquant directement le compilateur :

Code:

pbc.exe /d "C:\10 Git Clone\sepia.pbt" /o "c:\tma pb\exe\sepia.exe" /r "C:\10 Git Clone\sepia.pbr" /w n /f /m n /x 32 /bg y /p "PowerBuilder Enterprise Series"  /cp "Sybase, Inc." /de "Sybase, Inc. Product File" /v "1.0.0.1" /vn "1.0.0.1" /fv "1.0.0.1" /fvn "1.0.0.1" /ge 0 /pd yyyyyyyyyyyyyy /rt 19.2.0.2670

B) En utilisant Orca script :

Code:

; Possibilités de mettre des informations concernant la version 
set exeinfo property fileversion "xxx"
set exeinfo property fileversionnum "2.2.0.0"
set exeinfo property productversion "2.2"
set exeinfo property productversionnum "2.2.0.0"
Build application full
Build executable "c:\tma pb\exe\sepia.exe"  "C:\10 Git Clone\sepia.ico" "C:\10 Git Clone\sepia.pbr" "yyyyyyyyyyyyyy"
scc close
end session

Je teste cela.

Dernière modification par Dadone (12-04-2021 15:54:34)

Hors ligne

 

#8 12-04-2021 22:26:55

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Compilation des sources avec ORCA et PB 2019 R3

Bonjour,

C'est tout à fait cela. Pour des raisons historiques, il y a certain projet que je compile avec ORCA et d'autres en invoquant Powerbuilder en ligne de commande.

Je n'avais jamais réussi à l'époque (Powerbuilder 9) à compiler les projets les plus complexes entièrement avec ORCA (GPF). Du coup, j'ai migré sans avoir le temps de retester si les dernières versions d'ORCA avaient résolu le problème.

Je n'utilise pas encore pbc pour compiler. J'ai prévu de le faire pour faire des "nightly build" sur un serveur, mais pas encore eu le temps de migrer.

Sinon un exemple de compilation d'un projet complet en ORCA :

Code:

start session

scc set connect property localprojpath "D:\Travail\Program\BUILD"
scc set connect property logfile "buildapplication_formation_2021.282.80.0.log"
scc set connect property logappend false
scc set connect property deletetempfiles "false"

scc connect offline

scc set target "formation_cours.pbt" "refresh_all importonly"
scc refresh target incremental
scc refresh target "3pass"
scc refresh target full

BUILD library ".\Paye\a_form\for9179.pbl" "" PBD
BUILD library ".\Paye\a_form\for26969.pbl" "" PBD
BUILD library ".\Paye\a_form\for13020.pbl" "" PBD
BUILD library ".\Paye\a_form\for30801.pbl" "" PBD
BUILD library ".\Paye\a_form\for21880.pbl" "" PBD
BUILD library ".\Paye\a_form\for27327.pbl" "" PBD
BUILD library ".\Paye\a_form\for6177.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu21324.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu6630.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu999.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu16173.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu18798.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu16031.pbl" "" PBD
BUILD library ".\Paye\a_rh\rhu2723.pbl" "" PBD
BUILD library ".\Paye\moteur\mot11650.pbl" "" PBD
BUILD library ".\Paye\moteur\mot21266.pbl" "" PBD
BUILD library ".\Paye\moteur\mot3853.pbl" "" PBD
BUILD library ".\Paye\moteur\mot3975.pbl" "" PBD
BUILD library ".\Paye\moteur\mot388.pbl" "" PBD
BUILD library ".\Paye\moteur\mot24382.pbl" "" PBD
BUILD library ".\Paye\moteur\mot16689.pbl" "" PBD
BUILD library ".\Paye\moteur\mot10085.pbl" "" PBD
BUILD library ".\Paye\moteur\mot6223.pbl" "" PBD
BUILD library ".\Paye\moteur\mot17392.pbl" "" PBD
BUILD library ".\Paye\a_paye\pay13183.pbl" "" PBD

set exeinfo property companyname "Afinity SARL"
set exeinfo property productname "Afinity Paye Formation 2021"
set exeinfo property copyright "Copyright © Afinity SARL 1993-2021" 
set exeinfo property description "Paye Formation 2021"
set exeinfo property fileversion "2021.282.80.0"
set exeinfo property fileversionnum "2021,282,80,0"
set exeinfo property productversion "2021.282.80.0"
set exeinfo property productversionnum "2021,282,80,0"

build executable ".\paye\a_form\afinity_formation.exe" ".\paye\bmp_in\global.ico" ".\paye\projet\bmp.pbr" "yyyyyyyyyyyyyyyyyyyyyyyyy" NEWVSTYLECONTROLS

scc close
end session

Hors ligne

 

#9 13-04-2021 08:10:43

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Compilation des sources avec ORCA et PB 2019 R3

Merci Buck, super ton exemple.
Ces dernières années, j'ai fais plus de Windev/Webdev que de PowerBuilder mais ce produit reste, et de loin, le plus puisant jamais conçu.
Dans la société où je travaille actuellement quand je vois comment galère la TMA JEE ou ASP .Net je me dis que j'ai bien fais de rester sur PB.

Dernière modification par Dadone (13-04-2021 08:12:22)

Hors ligne

 

#10 13-04-2021 10:03:31

FlorentP  
Membre completement Geek
Award: bf
Lieu: Marseille
Date d'inscription: 23-03-2011
Messages: 105
Pépites: 1,459
Banque: 0

Re: Compilation des sources avec ORCA et PB 2019 R3

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22