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édures passés dans parms sont également modifiés et leurs valeurs peuvent êtrer accédées après l'appel.
Exceptions
Lève une exception ArgumentException si les listes parms
et parmsType
n'ont pas la même longueur.
Exemples d’utilisation
appel de la procédure dlpar_get_info()
de QSYS/QPMLPMGT.
var conn = new NTiConnection("...");
conn.Open();
//Paramètres de la procédure
var parms = new List() {
new NTiProgramParameter("", 368), //Receiver variable
new NTiProgramParameter(1), //Format
new NTiProgramParameter(368) //Receiver length
};
//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.