Méthode CallServiceProgramProcedure()
Description
La méthode CallServiceProgramProcedure permet d’appeler une procédure existante dans un programme de service (service program) en utilisant l'API QZRUCLSP. Elle retourne un objet de type NTiProgramParameter contenant le résultat de l’appel.
Syntaxe
NTiProgramParameter CallServiceProgramProcedure(
string library,
string program,
string procedure,
List parms,
List parmsType,
ServiceProgramReturnType returnFormat
) Paramètres
| Nom | Type | Description |
|---|---|---|
library |
string |
Bibliothèque contenant le programme de service. |
program |
string |
Nom du programme de service. |
procedure |
string |
Nom de la procédure du programme de service. |
parms |
List<NTiProgramParameter> |
Paramètres à passer à la procédure de programme de service. |
parmsType |
List<ServiceProgramParameterType> |
Types de chaque paramètre, dans le même ordre que parms:- Integer : Le paramètre est un entier 32 bits BINARY(4) passé par valeur- Pointer: La valeur de paramètre est passée par référence (pointeur) |
returnFormat |
ServiceProgramReturnType |
Format de la valeur de retour attendue: - NoReturn : Aucune valeur n’est renvoyée (le paramètre "Return Value" est ignoré). - Integer : Retourne un entier BINARY(4). - Pointer :Retourne un pointeur de 16 octets. - IntegerErrno : Retourne un entier BINARY(4) et le code errno. |
Retour
Retourne un objet de type NTiProgramParameter qui contient la valeur de retour de la procédure. La valeur peut être accédée via la propriété OutputData ou les méthodes Get...() de NTiProgramParameter. Les paramètres de la procédure passés dans parms sont également modifiés et leurs valeurs peuvent être accédées après l'appel.
Exceptions
- ArgumentException : lancée si si les listes
parmsetparmsTypen'ont pas la même longueur.
Exemples d’utilisation
Appel de la procédure dlpar_get_info() de QSYS/QPMLPMGT.
var conn = new NTiConnection("server=serverName;user=userName;password=password");
conn.Open();
//Paramètres de la procédure
var parms = new List() {
new NTiProgramParameter("", 368),
new NTiProgramParameter(1),
new NTiProgramParameter(368)
};
//Type de valeur des paramètres
var parmsType = new List() {
ServiceProgramParameterType.Pointer,
ServiceProgramParameterType.Integer,
ServiceProgramParameterType.Integer
};
//Appel de la procédure
var result = conn.CallServiceProgramProcedure("QSYS", "QPMLPMGT", "dlpar_get_info", parms, parmsType, ServiceProgramReturnType.Integer);
//Récupération du résultat
var lparNumber = parms[2].GetInt(40);
var lparName = Encoding.UTF8.GetString(parms[2].GetBytes(88, 8)); Références
Pour plus d’informations sur l’API QZRUCLSP, consultez la documentation officielle IBM.