Boutons intelligents
Contrôles/éléments XML
Boucle de rupture <BreakForEach>
Le contrôle BreakForEach, qui ne peut être utilisé qu’à l’intérieur de l’élément Action, permet de rompre une boucle.
Si l’élément BreakForEach est utilisé dans le corps de la boucle et que la condition est convenue, il arrête les itérations de la boucle et suit immédiatement le corps de la boucle.
Configuration
Pour Break Loop, le code XML est saisi directement dans l’éditeur de Smart Buttons :
-
Ouvrez l’éditeur de boutons intelligents pour créer un script.
-
Placez le curseur à l’emplacement souhaité pour la boucle de rupture.
-
Cliquez sur Rompre la boucle <BreakForEach> pour afficher le code.
Exemples
Exemple 1
Supprimez les éléments du Bloc-notes un par un. À chaque fois, demandez aux agents s’ils souhaitent retirer le premier Bloc-notes. Si l’agent sélectionne Non, rompez la boucle.
Par exemple, vous pouvez utiliser ForLoop, où le nombre maximal de boucles est défini sur 100. Dans cet exemple, l'<Action> est exécutée 100 fois, si l’agent continue de répondre Oui. Si l’agent répond Non, la boucle s’interrompt.
<ButtonConf ButtonName="Break For Each example" Description="" QuickCommand="">
<ForEach>
<ForStatement StartNumber="1" EndNumber="100" Step="1" />
<Action>
<RunCommand StandardCommand="True">*NP</RunCommand>
<CheckListBox Question="Do you want remove first Notepad?" Width="100" VarName="YesNo" IsRadioButton="True" SingleSelect="True" IsMandatory="True">Yes;No</CheckListBox>
<RunCommand StandardCommand="True">NP.1@</RunCommand>
<RunCommand StandardCommand="True">*NP</RunCommand>
<BreakForEach Condition="[YesNo]==No" />
</Action>
</ForEach>
</ButtonConf>
Exemple 2
Ajouter une remarque d’itinéraire pour les trois premiers passagers. Rompez la boucle si le nombre de passagers est égal à 4.
<ButtonConf ButtonName="Itinerary remark">
<Variable VarName="Passengers">%PassengersList({FirstName}/{LastName}**{PassengerNumber})%</Variable>
<ForEach>
<ElementsList>[Passengers]</ElementsList>
<Action>
<BreakForEach Condition="[@Key]==4" />
<RunCommand>RI.PASSENGER NR [@Key] is [@Value]</RunCommand>
</Action>
</ForEach>
</ButtonConf>
Nested <ForEach>
Les agents peuvent utiliser <ForEach> à l’intérieur d’un autre <ForEach>, où la valeur de ForEach parent est disponible pour les boucles ForEach jointes et imbriquées.
Utilisez <ForEach> imbriqué lorsque vous avez deux collections/tableaux génériques ou plus et que vous souhaitez trouver une réponse à cette question :
Si tous les éléments de la première collection satisfont à la condition de tous les éléments de la deuxième collection ?
Exemple <ForEach>
Un voyageur de la société ABC ne peut voyager qu’avec des transporteurs LO, LH et SK. Le script doit vérifier si toutes les compagnies aériennes du fichier de réservation actuel figurent sur la liste des compagnies aériennes autorisées enregistrées dans BAR.
(Collection1 : Compagnies aériennes autorisées, Collection2 : Compagnies aériennes du dossier de réservation)
Exemple <ForEach> imbriqué
<ButtonConf ButtonName="Nested ForEach example" Description="" QuickCommand="#FOR">
<Variable VarName="FirstLevelItems">1,2</Variable>
<Variable VarName="SecondLevelItems">1;2</Variable>
<Variable VarName="ThirdLevelItems">1;2</Variable>
<ForEach>
<ElementsList>
[FirstLevelItems]
</ElementsList>
<Action>
<Variable VarName="VariableFirst">FIRST [@]</Variable>
<ForEach>
<ElementsList>
[SecondLevelItems]
</ElementsList>
<Action>
<Variable VarName="VariableSecond">SECOND [@]</Variable>
<ForEach>
<ElementsList>
[ThirdLevelItems]
</ElementsList>
<Action>
<Variable VarName="VariableThird">THIRD [@]</Variable>
<ShowMessage Message="[VariableFirst] [VariableSecond] [VariableThird]" />
</Action>
</ForEach>
</Action>
</ForEach>
</Action>
</ForEach>
</ButtonConf>