GETANDSET
Vous pouvez utiliser GETANDSET lorsque vous disposez d'un fichier en entrée qui assure le suivi des informations de contrôle jouant le rôle d'entrée pour votre mappe et que les informations de contrôle dans le fichier doivent être mises à jour en fonction du traitement ayant lieu sur votre mappe.
La fonction GETANDSET extrait une valeur de longueur fixe d'un flot de données en entrée, met à jour cette valeur dans le flot de données en entrée et renvoie la valeur initiale ou la valeur mise à jour.
- Syntaxe :
GETANDSET (nom-objet-élément-taille-fixe-unique, expression-élément-unique, expression-entier-unique)
- Signification :
- GETANDSET (valeur_initiale ,nouvelle_valeur, entier_qui_détermine_quelle_valeur_renvoyer)
- Renvoie :
- Un élément de taille fixe unique et remplace la valeur initiale dans le flot de données en entrée.
Cette fonction ne prend pas en charge la décrémentation d'entiers après 0 en nombres négatifs.
GETANDSET met à jour une entrée en recherchant l'objet représenté par original_value et en le remplaçant par la valeur représentée par new_value. La fonction renvoie original_value ou new_value, en fonction de la valeur d'integer_that_determines_which_value_to_return. Par exemple,
- Si la valeur de integer_that_determines_which_value_to_return est 1, original_value est renvoyé.
- Si la valeur de integer_that_determines_which_value_to_return est 2, new_value est renvoyé.
- Si integer_that_determines_which_value_to_return affiche une autre valeur, original_value est renvoyé.
- Si l'un des arguments en entrée a pour résultat "none", GETANDSET renvoie "none".
La valeur initiale spécifiée pour new_value doit être un élément de taille fixe. Pendant l'exécution de la mappe, la valeur initiale est mise à jour afin de refléter l'évaluation de GETANDSET. Lorsque la source est un fichier, ce dernier est mis à jour après l'exécution de la mappe. Toutefois, si la source est une base de données, un message ou une application, le contenu de la source est en mémoire et la source même n'est pas mise à jour.
Exemples
- Nouveau N°_suivi = GETANDSET (N°_suivi:Carte, N°_suivi:Carte + 3, 1)
Cette règle recherche l'objet N°_suivi:Carte (considérons que sa valeur est 6), y ajoute 3 pour obtenir 9 et remplace le 6 par le 9 dans l'emplacement de données de N°_suivi:Carte. Les références suivantes à N° de suivi:Carte détectent la valeur 9. Si Carte est une carte d'entrée dont la source est un fichier, le fichier est réécrit avec la nouvelle valeur.
Etant donné que la valeur du troisième argument en entrée (integer_that_determines_which_value_to_return) est 1, la valeur renvoyée est la valeur initiale 6.