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.