Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > AS/400
AS/400 Le Forum d'entraide sur IBM AS/400 - iSeries. RPG.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 13h37   #1
Invité régulier
 
Homme
Chef de projet MOA
Inscription : janvier 2012
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : janvier 2012
Messages : 18
Points : 8
Points : 8
Par défaut Cmd AS400 / JAVA

Bonjour à tous,

J'ai le projet de developper une routine pour lancer un pgm sur AS400 depuis un programme java.

A ce jour, je me connecte à la machine pour taper sur la ligne de commande..

CALL PGM(monProgramme)

Est-il possible d'encapsuler cette commande dans un pgm java ?

Pour info, j'utilise déjà java pour executer des SQL sur AS400. Donc connection ok et requetes ok.

Merci pour votre aide,

GNT
gnt.dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 13h47   #2
Membre habitué
 
Homme
Analyste-Programmeur as/400 et Java
Inscription : août 2002
Messages : 107
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

Informations professionnelles :
Activité : Analyste-Programmeur as/400 et Java
Secteur : Finance

Informations forums :
Inscription : août 2002
Messages : 107
Points : 130
Points : 130
Bonjour,

Le mieux est de créé un procédure stocké sur l'as/400 que tu appels via ta class java.
Code :
1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE library.programme (
	paramètres) 
	DYNAMIC RESULT SETS 1 
	LANGUAGE RPGLE 
	SPECIFIC library.programme 
	NOT DETERMINISTIC 
	READS SQL DATA 
	CALLED ON NULL INPUT 
	EXTERNAL NAME 'library.programme'
	PARAMETER STYLE GENERAL ;
Larry57
larry57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 13h51   #3
Membre habitué
 
Homme
Analyste-Programmeur as/400 et Java
Inscription : août 2002
Messages : 107
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

Informations professionnelles :
Activité : Analyste-Programmeur as/400 et Java
Secteur : Finance

Informations forums :
Inscription : août 2002
Messages : 107
Points : 130
Points : 130
Si tu utilises i/series navigatore, il est facile de créer des procédures.

Larry57
larry57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 14h11   #4
Invité régulier
 
Homme
Chef de projet MOA
Inscription : janvier 2012
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : janvier 2012
Messages : 18
Points : 8
Points : 8
Merci. Procédure créér.
Et pour la lancer depuis jave stp ?
gnt.dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h43   #5
Membre habitué
 
Homme
Analyste-Programmeur as/400 et Java
Inscription : août 2002
Messages : 107
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

Informations professionnelles :
Activité : Analyste-Programmeur as/400 et Java
Secteur : Finance

Informations forums :
Inscription : août 2002
Messages : 107
Points : 130
Points : 130
Moi, je passe par un fichier de conf.

Code :
1
2
3
4
5
6
<bean id="xx" class="dbconnector.JdbcDaoSupport">
		<property name="dataSource" ref="i5DataSource" />
<property name="returnClass" value="(Structure de donnée en réception)"/>
		<property name="sql" value="call le nom de ma procédure(?, ? )-> paramètres un ? par paramètre)" />
</bean>
Je pense que l'on n'attaque pas la db de la même manière.
Tu exécutes tes sql de quelle manière ?

Larry57
larry57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h58   #6
Membre habitué
 
Homme
Analyste-Programmeur as/400 et Java
Inscription : août 2002
Messages : 107
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

Informations professionnelles :
Activité : Analyste-Programmeur as/400 et Java
Secteur : Finance

Informations forums :
Inscription : août 2002
Messages : 107
Points : 130
Points : 130
Tu trouveras une explication simple ici :

http://www.devx.com/ibm/Article/27818

Larry57
larry57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 18h07   #7
Invité régulier
 
Homme
Chef de projet MOA
Inscription : janvier 2012
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : janvier 2012
Messages : 18
Points : 8
Points : 8
Très interessant le lien ! Dommage que la version Java soit via SQL et seule la version C++ explique l'appel de procédure.

Coté procédures stockées.. voici ce que j'ai pu créer :

Sans paramètre.

CREATE PROCEDURE mabib/monpgm
RESULT SETS 1
LANGUAGE RPGLE
SPECIFIC mabib/monpgm
NOT DETERMINISTIC
READS SQL DATA
EXTERNAL NAME mabib/monpgm
PARAMETER STYLE GENERAL

Sous STRSQL fonctionne très bien avec..

CALL mabib/monpgm

Avec paramètre.

CREATE PROCEDURE mabib/monpgm
(IN PARM CHAR(2))
RESULT SETS 1
LANGUAGE RPGLE
SPECIFIC mabib/monpgm
NOT DETERMINISTIC
READS SQL DATA
EXTERNAL NAME mabib/monpgm
PARAMETER STYLE GENERAL

Sous STRSQL fonctionne très bien avec..

CALL mabib/monpgm (' ')

Voilà... je continue pour le déclenchement de l'éxécution depuis une simple routine java
gnt.dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h30.


 
 
 
 
Partenaires

Hébergement Web