Workflow Composer. Référence des scripts. Mars 2003. www.lexmark.com



Documents pareils
AccuRead OCR. Guide de l'administrateur

Options des imprimantes multifonction MX4500, X7500

TP 1. Prise en main du langage Python

Algorithmique et Programmation, IMA

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Utilisation d objets : String et ArrayList

ACQUISITION. Traitement de l image. Classement. Préparation. Ouverture. Performance

Guide d utilisation. Version 1.1

Création et utilisation de formulaire pdf

Guide Numériser vers FTP

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Erreurs les plus fréquentes Guide de dépannage

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP


Manuel Utilisateur Version 1.6 Décembre 2001

Comment utiliser FileMaker Pro avec Microsoft Office

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

GLOSSAIRE DU SOUTIEN EN CAS DE RECOURS EN JUSTICE

Initiation à la programmation en Python

STAGE IREM 0- Premiers pas en Python

Présentation du langage et premières fonctions

PROJET ALGORITHMIQUE ET PROGRAMMATION II

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Cloud Portal for imagerunner ADVANCE

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Les solutions mobiles et Cloud au service de votre productivité

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Version 3.0 Mai P Xerox Mobile Print Cloud Guide d utilisation et de dépannage pour l utilisateur

PageScope Suite L accélérateur de workflow * L essentiel de l image

I-Fax (fax par Internet)

Système de messagerie vocale Cisco Unity Express 7.0 Guide de l utilisateur Fonctionnalités avancées

F O R M A T I O N S LOTUS NOTES. 8.5 Utilisateurs rue de la Bôle. E U R L. a u c a p i t a l d e

Introduction à MATLAB R

Publipostage avec Calc

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Powershell. Sommaire. 1) Étude du cahier des charges 2) Veille technologique 3) Administration sur site 4) Automatisation des tâches d administration

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Initiation à la Programmation en Logique avec SISCtus Prolog

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

Algorithmique et programmation : les bases (VBA) Corrigé

EN BLANC AVANT IMPRESSION»»»

Logiciel de capture et de gestion des flux de documents MOINS DE PAPIER, PLUS D EFFICACITÉ. VOUS POUVEZ COMPTER SUR NOUS

Créer et partager des fichiers

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

WebSpy Analyzer Giga 2.1 Guide de démarrage

GUIDE MEMBRE ESPACE COLLABORATIF. Février 2012

Programmation Web. Madalina Croitoru IUT Montpellier

Asset Management Software Client Module. Manuel d utilisation

Prise en main rapide

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

TP1. Outils Java Eléments de correction

HighPush. document /06/2009 Révision pour version /11/2008 Revision pour la /10/2008 Documentation initiale.

Nokia Internet Modem Guide de l utilisateur

NOUVELLES FONCTIONNALITÉS DE MYQ 4.4

Utilitaires méconnus de StrataFrame

Les chaînes de caractères

Programmer en JAVA. par Tama

SOCIÉTÉ D ASSURANCE-DÉPÔTS DU CANADA Critères d évaluation de la conformité aux Exigences en matière de données et de systèmes (EDS) pour 2015

Plateforme PAYZEN. Définition de Web-services

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

EBS 204 E C B S. Publication : Novembre 96

Plan du cours. Historique du langage Nouveautés de Java 7

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

Canon Mobile Printing Premiers pas

< Atelier 1 /> Démarrer une application web

Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel

Définition des Webservices Ordre de paiement par . Version 1.0

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Système global d Output Management

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Logiciel de capture et de gestion des flux de documents MOINS DE PAPIER, PLUS D EFFICACITÉ.

Écriture de journal. (Virement de dépense)

Network Scanner Tool R2.7. Guide de l'utilisateur

Guide d utilisation et d administration

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

FileMaker Server 14. Guide de démarrage

Programme des Obligations d épargne du Canada. Guide d utilisation du serveur FTPS. Version 2.4

TP a Notions de base sur le découpage en sous-réseaux

Mise à jour du logiciel de vidéo de Polycom

Button Manager V2 Guide de l utilisateur

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Base de Connaissances SiteAudit. Utiliser les Rapports Planifiés. Sommaire des Fonctionnalités. Les Nouveautés

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Mise à jour des logiciels de vidéo de Polycom

0.1 Mail & News : Thunderbird

Informations Scanner. Manuel utilisateur

Guide Utilisateur. RTE COM On Demand for Xerox, Vos FAX et SMS par Internet

Solutions du chapitre 4

Manuel d utilisation du web mail Zimbra 7.1

Utilisation de l'outil «Open Office TEXTE»

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

GUIDE D'INSTALLATION. AXIS Camera Station

Mozaïk. Nouveautés et améliorations. de la version

Logiciel (Système d impression directe)

Installation Guide Serveur d impression et de stockage multifonctions à 2 ports USB 2.0 haute vitesse Manuel de l utilisateur

Transcription:

Workflow Composer Référence des scripts Mars 2003 www.lexmark.com

Edition : Mars 2003 Le paragraphe suivant ne s applique pas aux pays dans lesquels lesdites clauses ne sont pas conformes à la législation en vigueur : LEXMARK INTERNATIONAL, INC., FOURNIT CETTE PUBLICATION «TELLE QUELLE» SANS GARANTIE D AUCUNE SORTE, EXPLICITE OU IMPLICITE, Y COMPRIS, MAIS SANS SE LIMITER AUX GARANTIES IMPLICITES DE QUALITE MARCHANDE ET D ADEQUATION A UN USAGE SPECIFIQUE. Certains Etats n'admettent pas la renonciation aux garanties explicites ou implicites pour certaines transactions ; il se peut donc que cette déclaration ne vous concerne pas. Ce document peut présenter des inexactitudes techniques ou des erreurs de typographie. Des modifications sont périodiquement apportées aux informations qu'elle renferme ; ces modifications seront intégrées dans les éditions ultérieures de la publication. Les produits ou programmes décrits sont susceptibles d'être améliorés ou modifiés à tout moment. Vous pouvez envoyer vos remarques concernant cette publication à Lexmark International, Inc., Department F95/032-2, 740 West New Circle Road, Lexington, Kentucky 40550, Etats-Unis. Au Royaume-Uni et en République d Irlande, adressez vos commentaires à Lexmark International Ltd., Marketing and Services Department, Westhorpe House, Westhorpe, Marlow Bucks SL7 3RQ. Lexmark se réserve le droit d'utiliser ou de diffuser les informations que vous lui fournissez de la manière qui lui semble appropriée sans obligation à votre égard. Vous pouvez vous procurer des exemplaires supplémentaires des publications relatives à ce produit en appelant le 1-800-553-9727. Au Royaume-Uni et en République d'irlande, appelez le +44 (0)8704 440 044. Dans les autres pays, contactez votre revendeur. Toutes références dans ce document à des produits, programmes ou services n'impliquent nullement que le fabricant s'engage à les rendre disponibles dans tous les pays dans lesquels il est implanté. Toute référence à un produit, programme ou service n'implique pas que seul ce produit, programme ou service peut être utilisé. Tout produit, programme ou service équivalent au niveau fonctionnel ne violant aucun droit de propriété intellectuelle existant peut être utilisé en remplacement. L'évaluation et la vérification du fonctionnement du produit avec d'autres produits, programmes ou services, à l'exception de ceux mentionnés par le fabricant se feront sous la responsabilité de l'utilisateur. Lexmark et Lexmark avec le logo du diamant sont des marques de Lexmark International, Inc., déposées aux Etats- Unis et/ou dans d autres pays. Copyright 2003 Lexmark International, Inc. Tous droits réservés. DROITS DU GOUVERNEMENT AMERICAIN Ce logiciel et la documentation qui l'accompagne, fournis dans le cadre de cet accord de licence, sont des produits commerciaux développés exclusivement à des fins privées.

Table des matières Introduction... 1 Nouveautés de la version 3.1... 2 Codes à barres... 2 Reconnaissance des caractères... 2 Formsets... 2 Paramètres régionaux... 2 Impression... 3 Sollicitation de données de la part des utilisateurs... 3 Autres mises à jour... 3 Workflow Composer... 4 Chapitre 1 : Notions de base...5 Objets... 5 Déclaration de variables... 6 Contrôle du flux... 6 If/Then/Else... 7 Switch/Case... 7 Instructions répétitives... 8 Loop... 8 Repeat... 9 Opérateurs... 12 Mathématiques... 12 Comparaison... 13 Booléens... 14 i

Autres fonctionnalités... 15 Abréger un objet à l aide de «with»... 15 Débogage d un script... 15 Abandon d un script en cours d exécution... 16 Chapitre 2 : Objets type de données...17 Booléen... 18 Opérateurs... 18 Document... 19 Méthodes... 19 Opérateurs... 23 Entier... 24 Méthodes... 24 Opérateurs... 25 Réel... 27 Méthodes... 27 Opérateurs... 28 Chaîne... 29 Méthodes... 29 Opérateurs... 33 Table... 36 Méthodes... 36 Chapitre 3 : Objets d aide...39 Tableau de booléens... 40 Méthodes... 40 Dataset... 41 Méthodes... 41 Tableau d entiers... 43 Méthodes... 43 Options d'impression... 44 Méthodes... 44 Options... 44 ii

Tableau de réels... 48 Méthodes... 48 Tableau de s... 49 Méthodes... 49 Fichier texte... 51 Méthodes... 51 Chapitre 4 : Objets système...56 Original... 57 Usertime... 58 Confirmation... 61 Local... 63 Chapitre 5 : Objets action...64 BarcodeRead (Codes à barres : Lire)... 65 BarcodeWrite (Codes à barrres : Ecrire)... 70 ConvertImageFormat (Images : Modifier Format)... 74 ConvertToDocument (Images : Convertir en Postscript ou PDF [Image])... 79 DatabaseNotes (Groupware : Réceptionner)... 81 Actions Domino.Doc... 84 DominoDocCheckIn (EDMS : Réceptionner)... 85 DominoDocCheckIn (EDMS : Récupérer)... 90 Connexion à Domino.Doc... 95 Navigation dans une bibliothèque Domino.Doc... 95 EmailExchange (Email)... 97 EmailNotes (Email)... 100 iii

EmailSMTP (Email)... 103 Adresses de messagerie électronique... 104 Destinataires et expéditeurs... 105 FaxByPrinter (Fax)... 107 FTPget (FTP : Obtenir)... 109 FTPput (FTP : Placer)... 111 Actions GroupWise... 113 GWMail (Email)... 115 GWDiscuss (Email)... 119 GWCheckIn (Groupware : Réceptionner)... 122 ImageCombine (Images : Combiner dans Document)... 126 ImageCrop (Images : Découper)... 127 ImageDeskew (Images : Réaligner)... 129 ImageInvert (Images : Inverser)... 130 ImageMerge (Images : Superposer)... 131 ImageRotate (Images : Pivoter)... 135 ImageSeparate (Images : Séparer dans document)... 137 ImageText (Images : Superposer Texte)... 138 ImageToHTML (Images : Convertir en HTML)... 141 Types de texte... 144 ImageToPDF (Images : Convertir en PDF [Consultable]).. 145 Types de texte... 147 ImageToRTF (Images : Convertir en RTF)... 148 Types de texte... 150 ImageToText (Images : Convertir en Texte)... 151 Types de texte... 155 LaunchExe (Lancer un autre programme)... 156 Vérification des valeurs de retour... 160 iv

MergeForm (Formulaires : Fusionner en PDF)... 161 Actions ODBC... 162 Introduction... 162 ODBCWrite (Base de données ODBC : Ecrire)... 163 ODBCRead (Base de données ODBC : Lire)... 167 PrintByDriver (Imprimer)... 174 PrintForm (Imprimer)... 175 Type d'imprimante... 176 PrintJob (Imprimer)... 178 Confirmation d impression... 184 PrintURL (Imprimer)... 185 SaveToFile (Enregistrer dans fichier)... 186 SharePoint... 190 SharePointWrite (EDMS : Réceptionner)... 191 SharePointRead (EDMS : Récupérer)... 194 Chapitre 6 : Invites...201 Invite de tableau... 202 Invite de booléen... 204 Invite d entier... 205 Invite de message... 207 Invite de mot de passe... 208 Invite de... 209 Annexe A : Référence ODBC...211 Configuration et besoins du logiciel... 211 Prise en charge des documents de la base de données... 212 Insertion de valeurs dans des colonnes de date... 213 v

Annexe B : Référence des codes à barres...214 Codabar... 214 Code 2 of 5... 215 Code 3 of 9... 215 Code 93... 216 Code 128... 216 EAN-8... 217 EAN-13... 217 ITF... 218 Patch... 218 PDF-417... 218 UCC 128... 219 UPC-A... 219 UPC-E... 220 vi

Introduction Ce manuel fournit une référence technique pour LDDScript 3.1, le langage de création de script de la suite de produits Lexmark Document Solutions. Il suppose que vous êtes déjà familiarisé avec le langage ; si ce n est pas le cas, consultez d abord le manuel «Script Writing», installé avec ce produit. Le manuel Référence des scripts est organisé de la manière suivante : Chapitre 1, «Notions de base» Présentation succincte des constructions de base de LDDScript. Pour obtenir des exemples détaillés, consultez le manuel «Script Writing». Chapitre 2, «Objets type de données» Informations relatives aux types de données pris en charge. Chapitre 3, «Objets d aide» Informations relatives aux objets utilisés pour exécuter des opérations courantes. Chapitre 4, «Objets système» Informations relatives aux objets qui fournissent les données associées au travail présenté ainsi que les réponses à l utilisateur final. Chapitre 5, «Objets action» Informations relatives aux objets qui traitent effectivement les documents à acheminer, à stocker dans une base de données, à imprimer, etc. Chapitre 6, «Invites» Informations relatives à la syntaxe et aux objets qui invitent l utilisateur à fournir des données. Annexe A, «Référence ODBC» Informations relatives à la mise en interface avec des bases de données à partir d un script. Annexe B, «Références des codes à barres» Informations relatives aux codes à barres pris en charge par LDDScript. 1

Nouveautés de la version 3.1 LDDScript 3.1 continue d utiliser la syntaxe et les constructions introduites dans la version 2.0 de Lexmark Document Distributor. La suite qui exploite le langage de script a été étendue aux produits suivants : Lexmark Document Distributor Lexmark Document Producer Lexmark Document Portal Le langage de script est compatible avec ces trois produits et vous permet d automatiser votre flux de travail, créer des formulaires basés sur le serveur et imprimer des formulaires vierges ou précomplétés. Ces produits peuvent fonctionner de manière autonome ou être intégrés pour constituer une solution de document complète. Codes à barres La prise en charge des codes à barres disponibles avec LDDScript a été considérablement étendue pour supporter davantage de types de codes à barres et mieux contrôler ceux qui sont reconnus. Par ailleurs, LDDScript supporte désormais la création de codes à barres, ce qui vous permet d en ajouter à des documents numérisés. L ancienne action ConvertBarcodeToText a été remplacée par les actions BarcodeRead et BarcodeWrite. Reconnaissance des caractères La reconnaissance des caractères disponible avec LDDScript a été considérablement améliorée pour optimiser les résultats de la reconnaissance et mieux respecter la mise en page du document. Les formats proposés incluent HTML et RTF (Rich-Text Format), utilisés par la plupart des traitements de texte, PDF consultable et texte plein. L ancienne action ConvertToText a été remplacée par les actions ImageToHTML, ImageToPDF, ImageToRTF et ImageToText. Formsets Lexmark Document Producer permet d acheminer des flux d impressions ASCII ou RDI vers le Serveur de documents, qui les reçoit. A l aide des actions MergeForm et PrintForm, vous pouvez ensuite fusionner les données avec un formulaire PDF, puis imprimer directement le document obtenu sur une imprimante réseau. D autres actions de LDDScript permettent notamment d archiver ou de télécopier des Formsets qui ont été fusionnés. Des utilisateurs de Document Portal peuvent aussi être invités à saisir des informations, puis imprimer des Formsets préalablement complétés à la main avec les informations appropriées. Paramètres régionaux Pendant l écriture d un script, il peut s avérer souhaitable que l administrateur configure certains de ses paramètres, sans pour autant devoir maîtriser ou modifier le script. Les «Paramètres régionaux» comptent parmi les nouveautés de cette version. Le créateur de script peut définir les paramètres régionaux (tels que les adresses IP de l imprimante, les numéros de télécopieur, les serveurs de messagerie, etc.) et l administrateur peut les modifier dans Server Manager. Le créateur du script ne doit pas connaître les détails techniques de l environnement d exécution de son script et l administrateur ne doit pas se familiariser avec le langage du script. Cette fonction remplace les invites de compilation (#prompt) introduites dans LDDScript 2.0. 2

Impression Les options de contrôle de travaux relatives à l impression de documents ont été améliorées pour augmenter le nombre d options disponibles avec davantage de types de document. Vous pouvez désormais envoyer des fichiers image au format PDF, TIFF et JPEG directement à des imprimantes équipées de l option ImageQuick en continuant de définir des options de travaux telles que l impression recto verso, l agrafage, etc. Des fichiers texte et des fichiers PostScript peuvent aussi être envoyés directement à n importe quelle imprimante réseau tout en bénéficiant d options de finition supplémentaires. Les anciennes actions PrintIP, PrintASCII, PrintTIF et PrintPDF ont été remplacées par l action PrintJob. Sollicitation de données de la part des utilisateurs Les fonctions qui sollicitent des données de la part des utilisateurs sur un MFP ou une station de travail lorsqu un travail est envoyé ont été complètement remodelées dans cette version. Outre un jeu statique de questions, il est désormais possible de créer un jeu dynamique de questions qui varient en fonction de la connexion de l utilisateur, de sa réponse aux questions précédentes, etc. Cette version permet aussi de vérifier des réponses avant de soumettre un travail ou d extraire une liste des réponses possibles dans une base de données ou autre source, puis de l afficher aux yeux de l utilisateur. Ce nouveau mécanisme permet de créer des scripts flexibles et puissants tout en constituant un moyen plus efficace d automatiser votre flux de travail. Autres mises à jour Cette version inclut aussi les ajouts et améliorations ci-dessous : Tableaux Ajout de tableaux en lecture/écriture (voir stringarray, intarray, realarray, boolarray). ConvertImageFormat Nouveau support permettant de convertir un format PDF en d autres formats image, tels que TIFF ou JPEG. Documents Nouveau support permettant de créer des fichiers temporaires qui sont automatiquement supprimés après l exécution du script. ImageMerge Nouveau support permettant de spécifier des emplacements génériques (Haut gauche, par exemple) plutôt que des coordonnées de pixels. Lotus Notes Prise en charge de EmailNotes et DatabaseNotes pour des fichiers ID avec mots de passe. Cartes Nouveau support permettant de créer une carte -à- SaveToFile Nouveau support permettant de créer un répertoire lorsqu il n existe pas. Chaînes Nouveau support permettant d effectuer des recherches/remplacements dans une. 3

Workflow Composer Outre les ajouts et améliorations du langage de script, cette version met aussi à jour les applications de l utilisateur final. L ancien Document Server Admin a été remplacé par Server Manager et Workflow Composer. Server Manager sert à gérer les Serveurs de document, les MFP et les scripts. Workflow Composer, par contre, permet d écrire et de gérer les scripts. La nouvelle application Workflow Composer inclut les fonctionnalités suivantes : Dates d expiration Arrête l exécution de scripts au-delà d une date spécifique. Aide en ligne L amélioration de l aide permet d accéder rapidement à la Référence des scripts. Mots de passe Vous pouvez désormais associer des mots de passe à des scripts pour empêcher toute modification non autorisée. Remplissages rapides Enregistrez et réutilisez rapidement des actions ou des opérations courantes dans des scripts. Assistant Script L amélioration de l interface permet de créer plus rapidement des scripts. Mise en évidence de la syntaxe Des couleurs distinctes peuvent être affectées aux mots clés et aux s pour les identifier rapidement pendant l écriture de scripts. Pour plus d informations sur l utilisation de Workflow Composer, consultez l aide en ligne qui l accompagne. 4

1 Notions de base Objets Un objet est un bloc de construction élémentaire de LDDScript qui contient des propriétés et des méthodes. Une propriété est un des objets type de données de base tel qu une ou un entier. Différentes valeurs peuvent lui être affectées pour influencer le fonctionnement d un objet. Une méthode est une fonction destinée à agir sur les données. Une méthode peut avoir des paramètres et peut retourner une valeur. Les paramètres et les valeurs de retour sont des objets type de données ou des objets d aide. La notation à point est utilisée pour accéder aux propriétés et aux méthodes d un objet. Pour définir la valeur d une propriété : ObjectName.propertyName = valeur Pour appeler une méthode : ObjectName.MethodName() ObjectName.MethodName(param1, param2) returnvalue = ObjectName.MethodName(param1) LDDScript prend en charge cinq types d objet : Type de données Objets les plus élémentaires ; toutes les propriétés et la plupart des variables sont de ce type. Aide Fournit un moyen aisé d exécuter certains opérations courantes. Système Ne traite pas les documents ; cet objet sert à rassembler les entrées et fournit la réaction de l utilisateur. Action Traite des documents ; exécute l archivage, l acheminement, la distribution, etc. Les autres chapitres de ce manuel fournissent une référence aux objets de chaque type. 5

Déclaration de variables Toutes les variables doivent être déclarées avant de pouvoir être utilisées. Il est toutefois impossible de déclarer des variables dans un bloc «with» ainsi que dans des blocs logiques tels que if/then ou loop. Vous déclarez une variable en spécifiant son type d objet et son nom. Par exemple : string text int num Pour affecter un nom à vos variables, vous devez respecter certaines règles : Le nom doit être constitué de lettres, chiffres et traits de soulignement. Le premier caractère du nom doit être une lettre. Ce nom doit être unique au sein du script. Les noms ne différencient pas les majuscules des minuscules, ce qui signifie que «Nom», «NOM» et «nom» sont considérés comme un même nom de variable. Le nom ne peut pas être un mot réservé (c est-à-dire un mot qui possède une signification particulière pour le compilateur de scripts). Contrôle du flux Pour contrôler l exécution des instructions du script, une certaine logique de contrôle de flux est nécessaire. Les instructions du script peuvent être exécutées de trois façons : successivement, sélectivement ou répétitivement. Lorsqu aucune logique de contrôle du flux n est utilisée, les instructions sont exécutées dans l ordre du script. Pour exécuter certaines instructions du script de manière sélective, vous pouvez utiliser des instructions if/then/else ou switch/case. Pour répéter l exécution des instructions de script, utilisez les instructions loop et repeat. Ces instructions de contrôle de flux sont décrites ci-dessous. 6

If/Then/Else Le type de contrôle de flux le plus courant est celui qui exécute une instruction quand une condition déterminée est vraie. Cette aptitude est mise en oeuvre sur le Serveur de documents à l aide de la structure if/then/else. Le format de base est le suivant : if (bool expression) then statement1 statementn endif statement1 à statementn ne sont exécutés que si l expression booléenne entre parenthèses a la valeur TRUE. Dans certains cas, il faut aussi évaluer un ensemble d instructions si une condition a la valeur TRUE et un autre si la valeur est FALSE. La structure else est utilisée à cette fin : if (bool expression) then statementa statementc else statementx statementz endif statementa à statementc sont exécutés si l expression booléenne entre parenthèses a la valeur TRUE ; sinon, statementx à statementz sont exécutés. Switch/Case Il arrive parfois que vous souhaitiez vérifier plus d une condition. A cette, fin, utilisez plusieurs instructions If/Then. L instruction Switch/Case fournit un moyen aisé de réaliser plusieurs comparaisons : Integer switch String switch switch (intvar) switch (stringvar) case intval1 case "stringval1" statementa statementa statementb statementb case intval2 case "stringval2" statementc statementc statementd statementd default default statemente statemente statementf statementf endswitch endswitch L instruction Switch/Case accepte des valeurs d entier ou de. Selon la valeur de la variable, le bloc case correspondant à cette valeur est exécuté. Chaque bloc case peut contenir plusieurs instructions, mais un bloc case seulement est exécuté. Si la valeur de la variable switch ne correspond à aucun case, le bloc par défaut est exécuté. Le bloc par défaut n est pas requis. Néanmoins, s il est utilisé, il doit être le dernier bloc. 7

Exemple d instruction Switch Les imprimantes multifonctions (MFP) possèdent une fonction de comptabilisation des travaux. Quand cette fonction est activée, les utilisateurs doivent spécifier un numéro de compte pour pouvoir accéder à un profil. Dans cet exemple, les utilisateurs spécifient un numéro de département pour utiliser des profils. Ce script d exemple exécute une instruction Switch/Case pour vérifier le numéro de département. string CustomSubject // Utilise le numéro de compte sous forme d entier int DeptNumber = original.useracct.asint() switch (DeptNumber) case 35 CustomSubject = "Document des ressources humaines" case 41 CustomSubject = "Document du département juridique" case 15 CustomSubject = "Document du département d expédition" default CustomSubject = "Document de la société FooBar" endswitch with EmailSMTP.Server="mailserver.com".To="barbarab@foobar.com".From="LDDTrain@lexmark.com".Subject=CustomSubject.Message="Veuillez lire SVP.".CharacterSet=LDD_SMTPCHARSET_US.Attachments=original.document.Go() endwith Instructions répétitives Chaque instruction d un script n est exécutée qu une seule fois. Les instructions repeat et loop vous permettent toutefois d exécuter à plusieurs reprises le même bloc d instructions. Loop Pour répéter un jeu d instructions à une fréquence déterminée, utilisez l instruction loop. Syntaxe : loop (intcounter from istart to ifinish) statement1 statementn endloop où : intcounter est une variable d entier déclarée précédemment ; istart est une valeur d entier à affecter à intvar au démarrage de l instruction loop ; ifinish est une valeur d entier qui correspond au maximum pour intvar. 8

En utilisant une variable d entier comme compteur, l instruction loop est répétée à la fréquence spécifiée dans l information istart/ifinish. Vous pouvez inclure dans le bloc loop autant d instructions que vous le souhaitez. Le bloc loop se termine avec l instruction endloop. L instruction loop commence avec la variable du compteur à laquelle est affectée la valeur indiquée par istart. A chaque exécution de loop, la valeur du compteur augmente d une unité (1). Les répétitions se poursuivent jusqu à ce que la valeur du compteur devienne supérieure à celle de ifinish. Ainsi, une instruction loop de 1 à 10 est répétée jusqu à ce que le compteur prenne la valeur 11. La valeur de istart doit être inférieure à celle de ifinish. La variable d entier affectée au compteur doit être déclarée avant de pouvoir être utilisée dans l instruction loop. Exemple : Envoi par courrier électronique du document numérisé à l origine à dix représentants du service clientèle. Dans ce script, les propriétés EmailSMTP communes sont définies avant d envoyer les messages électroniques dans l instruction Loop. string EmailAdd int LoopCount // Configure les propriétés communes des messages électroniques. with EmailSMTP.Subject="Réclamation client".server="mail.server.com".from="customer_service@foobar.com".message="veuillez examiner cette réclamation".attachments=original.document.characterset=ldd_smtpcharset_us endwith loop (LoopCount from 1 to 10) EmailSMTP.To="CustRep" + LoopCount.AsString() + "@foobar.com" EmailSMTP.Go() endloop Repeat L instruction repeat permet d exécuter indéfiniment un bloc d instructions, jusqu à ce qu une expression prenne la valeur True. repeat (until bool expression) statement1 statementn endrepeat L instruction repeat exécute le bloc d instructions jusqu à ce que l expression booléenne prenne la valeur TRUE. Vous pouvez inclure dans le bloc loop autant d instructions que vous le souhaitez. Le bloc loop doit se terminer par l instruction endrepeat. Si la valeur initiale de l expression booléenne est true, loop n est pas exécuté. 9

Exemple : Ce script utilise la reconnaissance optique des caractères (OCR) pour vérifier la confidentialité des documents numérisés par des utilisateurs finaux. Si le document est confidentiel, il n est pas envoyé par courrier électronique. L image numérisée est enregistrée dans un fichier et un message d avertissement est transmis à l utilisateur qui a numérisé le document confidentiel. with ImageToText.input=original.document.TextType=LDD_TEXTTYPE_NORMAL.Language=LDD_LANG_ENGLISH.AllPages=TRUE.Go() endwith textfile tf string OneLine, Submitter // Ouvre les résultats de l action OCR tf.open(imagetotext.output) bool bconfdoc = FALSE int icount, iend icount =1 iend = tf.getnumberlines() Submitter = original.username+ "@lexmark.com" // Recherche le mot Confidentiel dans chaque ligne repeat (until (bconfdoc OR (icount>=iend))) OneLine = tf.readline() if (OneLine.Contains("Confidentiel")) then bconfdoc = TRUE endif Count.Add(1) endrepeat 10

// Enregistre le document s il est confidentiel et envoie un message d avertissement if (bconfdoc) then with SaveToFile.input=original.document.Path="c:\ebc.txt".AppendTimestamp=TRUE.Overwrite=FALSE.Go() endwith with EmailSMTP.Server="mail.server.com".To= Submitter.From="mailcheck@abcxyz.com".Subject="Message électronique non valide rejeté".message="un document confidentiel ne peut pas être transmis par courrier électronique".characterset=ldd_smtpcharset_us.go() endwith else with EmailSMTP.Server="mail.server.com".To="Receiver@abcxyz.com".From=Submitter.Subject="Document numérisé".message="voici le document demandé".characterset=ldd_smtpcharset_us.attachments=original.document.go() endwith endif 11

Opérateurs Mathématiques Ces opérateurs permettent de définir ou de modifier la valeur d une variable ou d une propriété. Opérateur Symbole Addition + Pour les objets entier et réel, cet opérateur additionne les nombres de part et d autre du signe «+» et retourne la nouvelle valeur. Pour les objets, l effet produit par cet opérateur est similaire à celui de la méthode de concaténation. Il ajoute la de droite à celle de gauche et retourne la nouvelle. Pour les objets document, il ajoute le document de droite à celui de gauche et retourne le nouveau document. Dans tous les cas, les variables de part et d autre demeurent inchangées. Soustraction - Pour les objets entier et réel, cet opérateur soustrait le nombre de droite de celui de gauche et retourne la nouvelle valeur. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. Multiplication * Pour les objets entier et réel, cet opérateur multiplie les nombres de part et d autre du signe «*» et retourne la nouvelle valeur. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. Division \ Pour les objets entier et réel, cet opérateur divise le nombre de gauche par celui de droite et retourne la nouvelle valeur. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. Modulo % Pour les objets entier et réel, cet opérateur divise le nombre de gauche par celui de droite et retourne le reste. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. 5/2, par exemple, retourne 1, puisque 5 divisé par 2 donne 2 avec un reste de 1. 12

Comparaison Ces opérateurs permettent de comparer les valeurs de variables ou de propriétés de même type. Le résultat de la comparaison est une valeur booléenne (TRUE ou FALSE). Tous les symboles disponibles avec un opérateur peuvent être utilisés. Opérateur Symboles Inférieur à <, LT Pour les entiers et les réels, retourne TRUE si la valeur de gauche est inférieure à celle de droite. Pour les s, retourne TRUE si la valeur de gauche vient avant celle de droite dans l ordre alphabétique (casse incluse). Sinon, l opérateur retourne la valeur FALSE. Supérieur à >, GT Pour les entiers et les réels, retourne TRUE si la valeur de gauche est supérieure à celle de droite. Pour les s, retourne TRUE si la valeur de gauche vient après celle de droite dans l ordre alphabétique (casse incluse). Sinon, l opérateur retourne la valeur FALSE. Inférieur ou égal à <=, LE Pour les entiers et les réels, retourne TRUE si la valeur de gauche est inférieure ou égale à celle de droite. Pour les s, retourne TRUE si la valeur de gauche vient avant celle de droite dans l ordre alphabétique ou si les deux valeurs sont identiques (casse incluse). Sinon, l opérateur retourne la valeur FALSE. Supérieur ou égal à >=, GE Pour les entiers et les réels, retourne TRUE si la valeur de gauche est supérieure ou égale à celle de droite. Pour les s, retourne TRUE si la valeur de gauche vient après celle de droite dans l ordre alphabétique ou si les deux valeurs sont identiques (casse incluse). Sinon, l opérateur retourne la valeur FALSE. Egal à ==, EQ (double signe égal) Pour les entiers et les réels, retourne TRUE si la valeur de gauche est égale à celle de droite. Pour les s, retourne TRUE si la valeur de gauche est identique en tous points (casse incluse) à celle de droite. Sinon, l opérateur retourne la valeur FALSE. Différent de!=, <>, NE Pour les entiers et les réels, retourne TRUE si la valeur de gauche est différente de celle de droite. Pour les s, retourne TRUE si la valeur de gauche n est pas identique en tous points (casse incluse) à celle de droite. Sinon, l opérateur retourne la valeur FALSE. 13

Booléens Ces opérateurs permettent de construire des expression booléennes complexes. Chaque valeur de part et d autre de l opérateur doit être une valeur booléenne. Le résultat de l opérateur booléen est une valeur booléenne (TRUE ou FALSE). Tous les symboles disponibles avec un opérateur peuvent être utilisés. Opérateur Symboles Et &, &&, AND Applique AND à deux valeurs booléennes pour obtenir le résultat booléen final. Ou,, OR Applique OR à deux valeurs booléennes pour obtenir le résultat booléen final. Non!, NOT Applique NOT à deux valeurs booléennes pour obtenir le résultat booléen final. Le tableau ci-dessous donne les résultats des méthodes AND et OR avec : bool1 AND bool2 bool1 OR bool2 bool 1 bool2 AND OR FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE Le tableau ci-dessous donne les résultats des méthodes NOT avec : NOT bool1 bool 1 TRUE FALSE NOT FALSE TRUE 14

Autres fonctionnalités Abréger un objet à l aide de «with» Quand un code de section fonctionne avec le même objet, il peut s avérer fastidieux de taper continuellement le même nom d objet. Vous pouvez éviter cela en utilisant l instruction with. Son format général est le suivant : with objectname.property = value.property = value.method() endwith Vous déclarez d abord le nom de l objet à utiliser dans l instruction with, puis vous pouvez faire référence à n importe quelle propriété ou méthode de cet objet en spécifiant seulement le «point» suivi du nom de la propriété ou de la méthode. Cette procédure est le plus fréquemment utilisée avec les objets action. Débogage d un script Pendant l exécution d un script, les objets action peuvent consigner des messages d erreur et d avertissement dans le journal. Vous pouvez aussi écrire vos propres messages dans ce journal pour faciliter le débogage de votre script. Vous souhaiterez peut-être connaître la valeur d une variable ou la valeur de retour d une méthode, par exemple. A cette fin, consignez votre message dans le journal à l aide de l instruction «debug». debug (msg) msg peut être une variable de, une entre guillemets ou une expression numérique. Voici quelques exemples : int index= 3 string ErrorMsg = "Echec de l impression" debug (index) debug (ErrorMsg) debug ("Travail reçu de " + original.username) Chacun de ces exemples consigne un message dans le journal du serveur. 15