Set

Fonction La commande Set vous permet d’assigner une valeur à un champ de saisie. La commande Set est utile pour la définition d’un InputScript. Contrairement à Default la commande Set ignore toute valeur précédente du champ. Il n’y a donc pas beaucoup d’intérêt d’utiliser Set dans un scripte normal de GuiXT.

Vous pouvez également utiliser Set pour attribuer des valeurs à des variables internes: Set V[nom de variable] “valeur”.

Exemple Set F[Type de vente] “CS”

La valeur “CS” sera assignée au champ F[Type de vente].

La valeur sera de préférence spécifiée comme un paramètre de l’InputScript, ou comme un champ de saisie défini auparavant. Par exemple:

Parameter OType

Set F[Type de vente] “&[OType]“

Format
Set F[Champ de saisie] “Valeur” Définit une valeur pour un champ de saisie.
Set V[nom de variable] Valeur Définit la valeur d’une variable globale.
Set V[gnm*] Valeur Définit la valeur de toutes les variables globales dont le nom commence par “gnm*”.
Set V[nom de variable](x-y) “Valeur” Définit un substring d’une variable globale. Si la longueur d’origine de la variable est plus courte que x, elle sera remplie avec des “espaces” jusqu’à la position x.
Set Text[xxx] “Valeur” comme forme raccourcie pour:

Set V[y] “Valeur”
CopyText fromString=“y” toText=“xxx”

De la même manière &Text[xxx] dans des expressions sera remplacé par le contenu actuel du texte long xxx. 

Options complémentaires
-stringlength La longueur du string donné (en octets) est mise dans la variable.
search=“…” Spécification d’une expression. Lorsque l’expression est trouvée, le mot suivant est transmis à la variable. Exemple:

Set V[no de commande] "&V[_message]" Search="Commande"

Si la variable système  V[_message] a la valeur “Le numéro de commande 10004003 a été créée”, la variable  V[no de commande] aura la valeur “10004003″.  La recherche se fait sans tenir compte de l’écriture minuscule/majuscule.

Vous pouvez utiliser if Q[ok] pour vérifier si l’expression a été trouvée.

pattern= Le modèle spécifié est cherché dans le string. Le modèle peut contenir des symboles de remplacement (wildcard).
  • ‘%’  un string quelconque, délimité par le premier caractère convenant dans le modèle spécifié
  • ‘_’  un seul caractère

Tous les caractères du string correspondants aux symboles de remplacement (wildcard) dans le modèle spécifié sont placés dans la variable en allant de la gauche vers la droite. Si un caractère qui ne correspond pas est trouvé, la recherche s’arrête.

La commande if Q[ok] vous permet de tester si un string correspond à un modèle spécifié.

Exemples:

Set V[x]   “02.05.2007″  pattern=“__.__.____”       //  ok  V[x] = “02052007″
Set V[x]   “[abcd]“      pattern=“[%]“             //  ok  V[x] =”abcd”
Set V[x]   “12″          pattern=“%kg”             // not ok   V[x]= “12″  
Set
V[x]   “Document 400000087 créé” pattern=
“Document % créé”  // ok   V[x]= “400000087“  

-uppercase La valeur est remplacée par des majuscules.
-lowercase La valeur est remplacée par des minuscules.
-unpack La valeur livrée d’un appel de fonction (par ex.: un BAPI) sous forme “packed decimal” est convertie en une série de chiffres normaux.
Opérations de calculs et options complémentaires
Set permet de spécifier des opérateurs tels +, -, *, / avec respectivement deux opérandes. Le résultat traité du calcul est mis dans la variable. Les deux opérandes peuvent être des valeurs directes (par ex.: 1 ou 5830) ou sous forme de contenu de variable (“&V[...]“). Exemples: 

Set V[valeur]          5830 / 365
Set V[valeur]   "&V[total]" 365
Set V[valeur]   "&V[total]" "&V[jours]"
Set V[somme] "&V[montant1]"
+ "&V[montant2]"
Set V[index]    "&V[index]" +
 1

Le résultat est arrondi selon les règles commerciales avec 2 décimales et mis dans la variable résultat. Lorsque la langue de l’ouverture de session est l’anglais on utilise le point dans les autres cas la virgule comme séparateur de décimales (veuillez vous reporter également aux options complémentaires et la commande DecimalSeparator). Les valeurs entières sont représentées sans valeurs décimales.

decimals= Spécification du nombre de décimales souhaité pour le traitement des résultats (0,1,2,3,…). Les nombres entiers sont également affichés avec le nombre de décimales spécifié. 
decimalseparator= Spécification du séparateur pour les décimales: “,” ou “.” . Cette spécification est utilisée aussi bien pour l’interprétation des opérations de calculs que pour l’affichage des résultats. 
decimalseparator=UserDefault  La valeur par défaut (point ou virgule) est prise du profile de l’utilisateur, qui est lu lorsque la commande est exécutée pour la première fois. Un utilisateur RFC et un mot de passe valables sont nécessaires pour cette fonction (configuration GuiXT).
groupseparator= Spécification du séparateur pour les groupes de milliers, la plupart du temps “,” ou “.”. Cette spécification est utilisée pour l’affichage de résultats.
groupseparator=UserDefault  La valeur par défaut (point ou virgule) est prise du profile de l’utilisateur, qui est lu lorsque la commande est exécutée pour la première fois. Un utilisateur RFC et un mot de passe valables sont nécessaires pour cette fonction (configuration GuiXT).  
Exemple
Set V[x]   24682471 / 7   Decimals=3   DecimalSeparator=“.”   GroupSeparator=“,”

La variable V[x] a la valeur  “3,526,067.286″. Le résultat exact est “3526067,285714…”; le résultat est arrondi à 3 positions décimales et traité selon les options spécifiées.

Conseils
 & astuces
  • Vous pouvez sélectionner un bouton de sélection (checkbox) avec Set: utilisez les valeurs “X” ou ” “, ou un paramètre qui a une de ces valeurs.
  • De manière semblable, vous pouvez utiliser Set pour des boutons radios. Si vous activez un bouton radio, il n’est pas nécessaire de désactiver les autres boutons radios de ce groupe, ceci se fait automatiquement.

    Par exemple

    Set R[Documentation] “X”

    dans la transaction SE38 désactivera les autres boutons radios  R[Texte Source], R[Variantes], R[Attributs], R[Eléments de texte].

  • Veuillez vous reporter au Tutoriel de l’InputAssistant pour des exemples d’application de la commande Set.

Set