Les API permettant de manipuler un user space. Création + QUSCRTUS - CHAR(20) <-*usrspc(10c)-><-biblio(10c)-> - CHAR(10) attribut (ce que vous voulez) - BIN(4,0) Taille initiale - CHAR(1) Valeur initiale de chaque octet [mettre x'00' augmente les performances] - CHAR(10) Autorisation pour *PUBLIC - CHAR(50) texte descriptif ------------------Paramètres optionnels---------------- - CHAR(10) remplacement (*yes/*no) - CHAR(?) code retour ------------------Paramètre optionnel (2)------------- - CHAR(10) domaine |
Les API permettant de manipuler un user space. Extraction + QUSRTVUS - CHAR(20) <-*usrspc(10c)-><-biblio(10c)-> - BIN(4,0) Position de début dans le user space - BIN(4,0) Lg des données à extraire - CHAR(?) Variable de retour La position de début est donnée par le format de l'en-tête (voir structure d'un user space) ou par un déplacement "lu" dans l'en-tête par un appel précédent à cette API. ..................................................................... : ASTUCE, la commande DSPF permet de voir le contenu d'un UserSpace : : DSPF STMF('/qsys.lib/qtemp.lib/le_nom.usrspc') : :...................................................................: |
Les API permettant de manipuler un user space. Modification + QUSCHGUS - CHAR(20) <-*usrspc(10c)-><-biblio(10c)-> - BIN(4,0) Position de début dans le user space - BIN(4,0) Lg des données à modifier - CHAR(?) nouvelle valeur - CHAR(1) forcer sur mémoire auxillaire '0' = non '1' = oui (en asynchrone) '2' = oui (en synchrone) |
Les API permettant de manipuler un user space. Suppression: + QUSDLTUS (ou cde CL DLTUSRSPC) - CHAR(20) <-*usrspc(10c)-><-biblio(10c)-> - CHAR(?) Code retour La structure du code retour (commun à toutes les API) est : .................................................................... : DE : A :Fmt: Signification : :..................................................................: envoyé : 1 : 4 : B : Lg du code retour(=0 -> envoi msg *ESCAPE) : ------ : : : : (>8 -> erreur "monitorée") : reçus : 5 : 8 : B : Lg nécessaire pour recevoir l'erreur : ! : 9 : 15 : C : MSGID : ! : 16 : 16 : : Réservé : v : 17 : x : C : MSGDTA (x étant donné par positions 1 à 4) : :.............:...:................................................: |
API USER SPACE V2R30 L'API de création a été modifiée afin de tenir compte de la notion de domaine. (intervient au niveau de sécurité 40 et plus) Tout objet appartient à un domaine *USER c'est un objet utilisateur la bibliothèque de création doit faire partie de la liste des bibiothèques autorisées à contenir de tels objets, indiquée par la valeur système QALWUSRDMN. (restriction uniquement pour les *USRSPC, *USRIDX, *USRQ) *SYSTEM c'est un objet système Pas de restriction pour la bibliothèque de création Il n'est accessible que via les API (instructions MI interdites) à partir du niveau de sécurité 40. |
l'API QUSCRTUS (création d'un user space) possède un groupe de paramètres supplémentaire (et optionnel) - CHAR(10) domaine du user space *DEFAULT = *USER si QALWUSRDMN est renseignée *SYSTEM si QALWUSRDMn est vide *SYSTEM le USER SPACE est toujours créé *USER le user space est créé si la bibliothéque de destination est indiquée dans QALWUSRDMN. la commande RTVOBJD et les API QUSROBJD QUSLOBJ permettent de savoir dans quel domaine se trouve un objet. |
Nouvelle API QUSCUSAT (modification des attributs d'un user space) - CHAR(10) nom de la bibliothèque en retour - CHAR(20) user space qualifié - CHAR(??) attribut(s) à modifier - CHAR(??) code erreur La variable attribut(s) à modifier est découpée comme suit: . BIN(4) nombre d'attributs . x fois la structure: - BIN(4) clé : 1= modif de la taille 2= valeur initiale 3= extension automatique - BIN(4) lg du paramètre nouvelle valeur - ?? nouvelle valeur |
clé 1= BIN(4) nouvelle taille (si < à la taille actuelle, l'espace est tronqué, sinon étendu) clé 2= CHAR(1) valeur intiale à attribuer aux nouvelles extensions clé 3= CHAR(1) 1 = extension automatique 0 = non. Nouvelle API QUSRUSAT (extraction des attributs d'un user space) - CHAR(??) variable en retour - BIN(4) lg de la variable en retour - CHAR(8) format = SPCA0100 - CHAR(20) user space qualifié - CHAR(??) code erreur |
Et enfin, pour RPG-IV, L'API permettant d'obtenir le pointeur de début + QUSPTRUS - CHAR(20) <-*usrspc(10c)-><-biblio(10c)-> - CHAR(16) Pointeur optionnel - CHAR(?) Code retour Vous devez déclarer une variable basée sur pointeur Dpointeur s * Dinfosliste ds based(pointeur) D offset_l 10i 0 D taille_l 10i 0 D nbpostes 10i 0 D lgposte 10i 0 et après le call c eval pointeur = pointeur + 124 |