Workflow Composer. Skriptreferanse. www.lexmark.com. Oktober 2003



Like dokumenter
Utgivelsesmerknad. Sikkerhetsinformasjon. Forsiktighetsregler og advarsler. Elektromagnetisk stråling. Lasermerknad

Document Distributor. Skripteksempler. Mars

Workflow Composer. Skriptreferanse. Mars

Forms Composer. Bruke Forms Composer. Oktober

Oversikt over Document Distributor

Oversikt over Document Portal

Øvingsforelesning 1 Python (TDT4110)

Send driver. Administratorhåndbok

Document Distributor 1. Fordeler. Document Distributor

Document Portal 1. Document Portal

Skjemaer og favoritter

Kompatibilitetsveiledning for skriver, tilleggsutstyr og stativ. Laserskrivere

Programmering Høst 2017

Kapittel 1 En oversikt over C-språket

Del 1 En oversikt over C-programmering

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Installere og bruke Document Distributor 1

MAT1030 Plenumsregning 1

MAT1030 Diskret matematikk

Forms Composer. Document Producer 1. Document Producer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

MAT1030 Diskret Matematikk

AccuRead OCR. Administratorhåndbok

Utgivelsesmerknad. Sikkerhetsinformasjon. Forsiktighetsregler og advarsler. Elektromagnetisk stråling. Lasermerknader

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Installere og bruke Document Distributor

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

INF 1000 høsten 2011 Uke september

TOD063 Datastrukturer og algoritmer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Betinget eksekvering og logiske tester i shell

Informasjon Prøveeksamen i IN1000 høsten 2018

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Utgivelsesmerknad. Lisensmerknad. Sikkerhetsinformasjon. Forsiktighetsregler og advarsler. Elektromagnetisk stråling

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

2 Om statiske variable/konstanter og statiske metoder.

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Læringsmål og pensum. if (be): else (not_to_be):

UNIVERSITETET I OSLO

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Del 3: Evaluere uttrykk

Beskrivelse av programmeringsspråket Simpila INF Kompilatorteknikk Våren 2012

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Programmeringsspråket C

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

INF Uke 10. Ukesoppgaver oktober 2012

TDT4110 IT Grunnkurs Høst 2015

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

CATALOG, variabler og tegn

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

Skann til RightFax. Versjon 2,0. Administratorhåndbok

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Skann til RightFax. Versjon 2,0. Administratorhåndbok

Brukerveiledning for Vesuv

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Lynkurs i shellprogrammering under Linux

16 Programmere TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Skann til RightFax. Administratorhåndbok

Forelesning inf Java 5

Norsk informatikkolympiade runde

Forelesning inf Java 5

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

INF Oblig 2 semantikksjekk og kodegenerering

Læringsmål og pensum. Oversikt

INF120: Oblig 3. Yngve Mardal Moe

Introduksjon til DARK assembly

Oppsummering fra sist

INF5110. Oblig 2 presentasjon

Sharpdesk Solution Sharpdesk Document Management Solution

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Som en del av den kontinuerlige utviklingen av systemet vil Visma Software AS kunne endre sammensetningen av pakkeløsninger, moduler og funksjoner.

BAAN IVc. BAAN Data Navigator - Brukerhåndbok

Kompatibilitetsveiledning for skriver, tilleggsutstyr og stativ. Laserskrivere

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

Norsk informatikkolympiade runde

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Norsk informatikkolympiade runde

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

INF1000: Forelesning 7

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Norsk informatikkolympiade runde

Shellscripting I. Innhold

MAT-INF 1100: Obligatorisk oppgave 1

Norton Internet Security Online Brukerhåndbok

INF1000: Forelesning 7. Konstruktører Static

Hurtigstartveiledning

KOMME I GANG 3. Logge på 3. I redigeringsvinduet 4 OVERSIKT OVER KNAPPENE SOM LIGGER ØVERST I REDIGERINGSVINDUET 6

Transkript:

Workflow Composer Skriptreferanse Hvis du vil se på eller laste ned denne eller andre Lexmark Document Solutionspublikasjoner, kan du klikke her. Oktober 2003 www.lexmark.com

Utgave: Oktober 2003 Følgende avsnitt gjelder ikke for land der slike bestemmelser er uforenelige med gjeldende lover: LEXMARK INTERNATIONAL, INC., UTGIR DENNE PUBLIKASJONEN SOM DEN ER ( AS IS ) UTEN GARANTIER AV NOE SLAG, VERKEN UTTRYKTE ELLER UNDERFORSTÅTTE, INKLUDERT, MEN IKKE BEGRENSET TIL, UNDERFORSTÅTTE GARANTIER FOR SALGBARHET ELLER EGNETHET TIL ET BESTEMT FORMÅL. I enkelte land og stater er ikke fraskrivelse av uttrykkelige eller underforståtte garantier tillatt i visse transaksjoner, så denne erklær gjelder kanskje ikke for deg. Denne publikasjonen kan inneholde tekniske unøyaktigheter eller typografiske feil. Informasjonen i dette dokumentet endres regelmessig. Slike endringer innarbeides i senere utgaver. Forbedringer eller endringer av de beskrevne produktene eller programmene kan finne sted når som helst. Kommentarer til denne publikasjonen kan sendes til Lexmark International, Inc., Department F95/032-2, 740 West New Circle Road, Lexington, Kentucky 40550, U.S.A. I Storbritannia og Irland kan du bruke Lexmark International Ltd., Marketing and Services Department, Westhorpe House, Westhorpe, Marlow Bucks SL7 3RQ. Lexmark kan bruke og distribuere all informasjon du sender inn, etter eget forgodtbefinnende, uten at det medfører noen forpliktelser overfor deg. I USA kan du kjøpe flere kopier av publikasjoner som er relatert til dette produktet, ved å ringe 1-800-553-9727. I Storbritannia og Irland kan du ringe +44 (0)8704 440 044. I andre land kan du kontakte kjøpsstedet. Referanser i denne publikasjonen til produkter, programmer eller tjenester innebærer ikke at produsenten har til hensikt å gjøre disse tilgjengelige i alle land der selskapet driver virksomhet. Eventuelle referanser til et produkt, et program eller en tjeneste er ikke ment å angi eller antyde at bare det produktet, det programmet eller den tjenesten kan brukes. Funksjonelt tilsvarende produkter, programmer eller tjenester som ikke krenker eksisterende immaterielle rettigheter, kan brukes i stedet. Evaluering og verifisering av bruk av andre produkter, programmer eller tjenester enn dem som er uttrykkelig utpekt av produsenten, er brukerens ansvar. ImageQuick, Optra, Lexmark og Lexmark med rutermerket er varemerker for Lexmark International, Inc., som er registrert i USA og/eller andre land. PostScript er et registrert varemerke for Adobe Systems Incorporated. Andre varemerker tilhører de respektive innehaverne. Copyright 2003 Lexmark International, Inc. Med enerett. UNITED STATES GOVERNMENT RIGHTS This software and any accompanying documentation provided under this agreement are commercial computer software and documentation developed exclusively at private expense.

Innhold Kapittel 1: Innledning... 1 Kompatibilitet... 2 Hva er nytt i versjon 3.2?... 2 Kapittel 2: Grunnlaget... 3 Objekter... 3 Deklarere variabler... 4 Flytkontroll... 4 If/Then/Else... 4 Switch/Case... 5 Gjentatte uttrykk... 6 Loop... 6 Repeat... 7 Operatorer... 9 Matematiske... 9 Sammenligning... 10 Boolske (bool)... 11 Andre funksjoner... 12 Kortreferanse til objekter ved hjelp av "with"... 12 Avluse et skript... 12 Sette sammen kommentarer og kodelinjer i et skript... 13 Avbryte et skript på kjøretidspunktet... 13 Kapittel 3: Datatypeobjekter... 14 Boolske (bool)... 15 Operatorer... 15 Dokument (doc)... 16 Metoder... 16 Operatorer... 20 Heltall (int)... 21 Metoder... 21 Operatorer... 22 iii

Reelle tall (real)... 24 Metoder... 24 Operatorer... 25 String... 26 Metoder... 26 Operatorer... 31 Avbildning (map)... 34 Metoder... 34 Kapittel 4: Hjelpeobjekter... 37 Boolsk tabell (boolarray)... 38 Metoder... 38 Dataset... 39 Metoder... 39 Heltallstabell (intarray)... 41 Metoder... 41 Utskriftsalternativer (printoptions)... 42 Metoder... 42 Alternativer... 43 Reell tabell (realarray)... 47 Metoder... 47 Strengtabell (stringarray)... 48 Metoder... 48 Tekstfil (textfile)... 50 Metoder... 50 ImageInfo... 55 PDF-filer... 57 Sidenummer... 57 Bildetyper... 57 Fargedybder for bilde... 58 Kapittel 5: Systemobjekter... 59 Original... 60 Usertime... 61 Confirm... 64 Eksempel på bruk av override... 67 Local... 68 Innhold iv

Kapittel 6:... 69 BarcodeRead (Strekkoder: Les)... 70 BarcodeWrite (Strekkode: Skriv)... 76 ConvertImageFormat (Bilde: Endre format)... 82 ConvertToDocument (Bilde: Konverter til Postscript eller PDF-bilde)... 87 DatabaseNotes (Groupware: Sjekk inn)... 89 Domino.Doc-handlinger... 92 DominoDocCheckIn (EDMS: Sjekk inn)... 93 DominoDocRetrieve (EDMS: Hent)... 98 Koble til Domino.Doc... 103 Navigere i et Domino.Doc-bibliotek... 103 EmailExchange (E-post)... 105 EmailNotes (E-post)... 108 EmailSMTP (E-post)... 111 E-postadresser... 113 Mottakere og avsendere... 113 Authentication... 114 FaxByPrinter (Faks)... 115 FTPget (FTP: Hent)... 117 FTPput (Send til FTP)... 119 GroupWise-handlinger... 121 GWMail (E-post)... 122 GWDiscuss (E-post)... 126 GWCheckIn (Groupware: Sjekk inn)... 129 ImageCombine (Bilder: Sett sammen i dokument)... 133 ImageCrop (Bilder: Beskjær)... 135 ImageInvert (Bilder: Inverter)... 138 ImageMerge (Bilder: Bilde på bilde)... 139 ImageRotate (Bilder: Roter)... 144 ImageSeparate (Bilder: Separer i dokument)... 146 ImageText (Bilde: Tekst på bilde)... 147 ImageToHTML (Bilde: Konverter til HTML)... 151 Teksttyper... 154 ImageToPDF (Bilde: Konverter til PDF [søkbar])... 155 Teksttyper... 158 ImageToRTF (Bilde: Konverter til RTF)... 159 Teksttyper... 162 Innhold v

ImageToText (Bilder: Konverter til tekst)... 163 Teksttyper... 167 LaunchExe (Start et annet program)... 168 Kontrollere returverdier... 171 MergeForm (Skjema: Flett inn i PDF)... 172 ODBC-handlinger... 173 Innledning... 173 ODBCWrite (ODBC-database: Skriv)... 174 ODBCRead (ODBC Database: Les)... 178 PrintByDriver (Skriv ut)... 184 PrintForm (Skriv ut)... 187 Skrivertype... 189 Bruke en Windows-utskriftskø... 189 PrintJob (Skriv ut)... 192 Utskriftsbekreftelse... 199 PrintURL (Skriv ut)... 200 SaveToFile (Lagre i fil)... 201 SharePoint... 205 SharePointWrite (EDMS: Sjekk inn)... 206 SharePointRead (EDMS: Hent)... 209 TiffSplit... 216 Metoder... 216 Kapittel 7: Ledetekster... 217 Avmerkingsledetekst... 218 Meldingsledetekst... 219 Tall-ledetekst... 220 Alternativer-ledetekst (flervalg)... 222 Alternativer-ledetekst (enkelt valg)... 225 Passordledetekst (passwordprompt)... 226 Tekst-ledetekst... 227 Tillegg A: ODBC-referanse 229 Programvarekrav og installasjon... 229 Lagre dokumenter i databasen... 230 Sette verdier inn i datokolonner... 230 Innhold vi

Tillegg B: Strekkodereferanse 232 Codabar... 232 Code 2 of 5... 233 Code 3 of 9... 234 Code 32... 234 Code 93... 235 Code 128... 235 EAN-8... 235 EAN-13... 237 ITF... 237 Patch... 238 PDF-417... 238 PostNet/Planet... 239 UCC 128... 239 UPC-A... 240 UPC-E... 241 Tillegg C: Metadata-referanse 242 Skannealternativer... 242 Kopieringsalternativer... 245 Faksalternativer... 248 E-post-/FTP-alternativer... 249 Få tilgang til overstyringsdata i et skript... 250 Innhold vii

1 Innledning Denne boken er en teknisk referanse for LDDScript 3.2, som er skriptspråket for produktsuiten Lexmark Document Solutions. Skriptreferansen er organisert slik: Kapittel 1, Grunnlaget kort oversikt over hovedkomponentene i LDDScript. Kapittel 2, Datatypeobjekter informasjon om støttede datatyper. Kapittel 3, Hjelpeobjekter informasjon om objektene som brukes til å utføre vanlige operasjoner. Kapittel 4, Systemobjekter informasjon om objektene som sender data med en jobb og gir tilbakemeldinger til brukeren. Kapittel 5, informasjon om objektene som utfører selve behandl av dokumentene som skal rutes, lagres i en database, skrives ut og så videre. Kapittel 6, Ledetekster informasjon om syntaksen og objektene som ber brukeren om data. Tillegg A, ODBC-referanse informasjon om kommunikasjon med databaser fra et skript. Tillegg B, Strekkodereferanse informasjon om de ulike strekkodene som støttes av LDDScript. Tillegg C, Metadata-referanse informasjon om metadataegenskapene som returneres når et skript overstyrer vanlige kopi-/faks-/e-post-funksjoner på en multifunksjonsmaskin (MFP). Innledning 1

Kompatibilitet LDDScript 3.2 fortsetter samme syntaks og komponenter som ble introdusert i Lexmark Document Distributor 2.0. Produktene som bruker skriptspråket, omfatter: Lexmark Document Distributor Lexmark Document Producer Lexmark Document Portal Skriptspråket fungerer med alle disse produktene og gir deg mulighet til å automatisere arbeidsflyten, produsere serverbaserte skjemaer og skrive ut tomme eller forhåndsutfylte skjemaer. Produktene kan fungere uavhengig av hverandre, eller de kan integreres for å skape en komplett dokumentløsning. Skript som er skrevet for LDD 2.x, må konverteres eller skrives om for å virke i LDD 3.x. Skript som er skrevet med Workflow Composer 3.1, virker med LDD 3.2 uten endringer. Det eneste unntaket er skript som brukte handl ImageDeskew, som er fjernet i LDD 3.2. Hva er nytt i versjon 3.2? Følgende endringer er blitt gjort i versjon 3.2: Bekreftelsessiden er forbedret slik at miniatyrer av alle skannede sider kan vises der. I tillegg kan spørsmålene og svarene som brukeren har angitt ved MFPen, også tas med på bekreftelsessiden. Du har nå mulighet til å overstyre standardhandl for bekreftelsessiden, slik at denne siden kan sendes med e-post, lagres i en fil og så videre. Autentisering er lagt til i handl EmailSMTP. Handl ImageDeskew er fjernet. Ytelsen til handl MergeForm er betydelig forbedret. Støtte for Windows-utskriftskø er lagt til i handl PrintForm. Innledning 2

2 Grunnlaget Objekter Et objekt er den grunnleggende byggesteinen i LDDScript. Et objekt inneholder egenskaper og metoder. En egenskap er en av de grunnleggende datatypeobjektene, for eksempel streng (string) eller heltall (integer). En egenskap kan ha ulike verdier, avhengig av hvordan objektet opererer. En metode er en funksjon som kalles opp for å operere på dataene. En metode kan motta parametre og returnere en verdi. Parametrene og returverdien er datatype- eller hjelpeobjekter. Punktumnotasjon brukes for å få tilgang til egenskapene og metodene for et objekt. Slik angir du verdien for en egenskap: Objektnavn.egenskapsnavn = verdi Slik kaller du opp en metode: Objektnavn.Metodenavn() Objektnavn.Metodenavn(param1, param2) returverdi = Objektnavn.Metodenavn(param1) LDDScript har støtte for fem objekttyper: Datatype (Data Type) de mest grunnleggende objektene (alle egenskaper og de fleste variabler er av denne typen). Hjelp (Helper) gir deg en enkel metode for å utføre noen vanlige operasjoner. System behandler ikke dokumenter, men brukes til å motta inndata og gi tilbakemeldinger til brukeren. Handling (Action) behandler dokumenter, og utfører blant annet arkivering, ruting og distribusjon. Resten av kapitlene i denne boken inneholder referanser for hver av objekttypene. Grunnlaget 3

Deklarere variabler Alle variabler må deklareres før de kan brukes. Variabler kan ikke deklareres i "with"-blokker eller i logiske blokker som if/then eller løkker. Når du skal deklarere en variabel, angir du variabelens objekttype og navn. Eksempel: string tekst int tall Du må følge visse regler når du gir navn til variabler: Navnene kan bare inneholde bokstaver, tall og understrekingstegn. Det første tegnet i navnet må være en bokstav. Navnet må være unikt innenfor skriptet. Det skilles ikke mellom store og små bokstaver i variabelnavn, slik at "Navn", "NAVN" og "navn" betraktes som det samme navnet. Navnet kan ikke være et reservert ord (et ord som har en spesiell betydning i skriptkompilatoren). Flytkontroll For at du skal kunne kontrollere utførelsen av skriptuttrykk, er det nødvendig å ha en eller annen form for flytkontroll-logikk. Skriptuttrykk kan utføres på tre måter: sekvensielt, selektivt eller gjentatt. Når det ikke brukes noen form for flytkontroll-logikk, utføres uttrykkene i den rekkefølgen de er oppført i skriptet. Hvis du vil ha selektiv utførelse av visse skriptuttrykk, kan du bruke if/then/elseeller switch/case-uttrykk. Hvis du vil utføre skriptuttrykk gjentatte ganger, kan du bruke loop- og repeat-uttrykk. If/Then/Else Den vanligste typen flytkontroll er muligheten for å utføre et uttrykk hvis en bestemt betingelse er sann. Denne muligheten er innebygd i Document Server gjennom if/then/else-komponentene. Det grunnleggende formatet er: if (bool-uttrykk) then uttrykk1 uttrykkn endif uttrykk1 til uttrykkn utføres bare hvis verdien av det boolske uttrykket i parentes er TRUE. Noen ganger er det også behov for å evaluere ett sett med uttrykk hvis en betingelse er sann (TRUE), og et annet sett hvis den er usann (FALSE). Dette kan oppnås ved å bruke elsekomponenten: if (bool-uttrykk) then uttrykka uttrykkc else uttrykkx uttrykkz endif Grunnlaget 4

uttrykka til uttrykkc utføres hvis verdien av det boolske uttrykket i parentes er TRUE. I motsatt fall utføres uttrykkx til uttrykkz. Switch/Case Noen ganger kan du ha mer enn én betingelse du vil kontrollere. Dette kan du gjøre med flere if/then-uttrykk. Med switch/case-uttrykket blir det enklere å gjøre flere sammenligninger: Switch med heltall Switch med streng switch (intvar) switch (stringvar) case heltall1 case "streng1" uttrykka uttrykka uttrykkb uttrykkb case heltall2 case "streng2" uttrykkc uttrykkc uttrykkd uttrykkd default default uttrykke uttrykke uttrykkf uttrykkf endswitch endswitch Du kan bruke heltalls- eller strengverdier med switch/case-uttrykket. Den case-blokken som stemmer med variabelens verdi, blir utført. Hver case-blokk kan inneholde flere uttrykk, men bare én caseblokk blir utført. Hvis verdien til switch-variabelen ikke stemmer med noen av case-betingelsene, utføres defaultblokken. Default-blokken er ikke obligatorisk. Hvis du vil bruke en default-blokk, må den imidlertid være den siste blokken. Eksempel på switch Multifunksjonsmaskiner (MFPer) har mulighet til å knytte jobber til kontoer, og "bokføre" eller statistikkføre jobbaktivitet. Når denne funksjonen er aktivert, må brukerne angi et kontonummer for å få tilgang til en profil. For dette eksemplet angir brukerne et avdelingsnummer når de bruker profiler. Dette eksemplet bruker et switch/case-uttrykk til å kontrollere avdelingsnummeret. string CustomSubject // Bruk kontonummeret som et heltall int DeptNumber = original.useracct.asint() switch (DeptNumber) case 35 CustomSubject = "Document from Human Resources" case 41 CustomSubject = "Document from Legal Department" case 15 CustomSubject = "Document from Shipping Department" standard CustomSubject = "Document from Your Company" endswitch with EmailSMTP Grunnlaget 5

.Server="mailserver.com".To="barbarab@foobar.com".From="LDDTrain@lexmark.com".Subject=CustomSubject.Message="Please read.".characterset=ldd_smtpcharset_us.attachments=original.document.go() endwith Gjentatte uttrykk Hvert uttrykk i et skript utføres bare én gang. Ved å bruke repeat- og loop-uttrykkene kan du utføre den samme blokken med uttrykk flere ganger. Loop Bruk loop-uttrykket når du vil gjenta et sett med uttrykk et kjent antall ganger. Syntaks: loop (intteller from istart to islutt) uttrykk1 uttrykkn endloop der: intteller er en tidligere deklarert int-variabel istart er den heltallsverdien som int-variabelen intteller får når løkken starter islutt er en heltallsverdi som definerer maksimalverdien for intteller Når en int-variabel brukes som telleverk, gjentas løkken så mange ganger som angitt av verdiene istart/islutt. Du kan ha så mange uttrykk som du ønsker, i loop-blokken. Loop-blokken avsluttes med endloop-uttrykket. Når løkken starter, får tellervariabelen intteller verdien som er angitt av istart. For hver gang loopblokken utføres, øker verdien av intteller med 1. Dette fortsetter inntil verdien av intteller er større enn verdien av islutt. Det betyr at en løkke fra 1 til 10 gjentas inntil tellervariabelen har verdien 11. Verdien av istart må være mindre enn verdien av islutt. Heltallsvariabelen som brukes som tellervariabel, må deklareres før den kan brukes i loop-uttrykket. Eksempel: Send et skannet dokument via e-post til ti kundeservicerepresentanter. I dette skriptet angis de EmailSMTP-egenskapene som er felles, før e-postene sendes i loop-uttrykket. string EmailAdd int LoopCount Grunnlaget 6

// Angi felles egenskaper for e-postene. with EmailSMTP.Subject="Customer Complaint".Server="mail.server.com".From="customer_service@foobar.com".Message="Please review this complaint".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 Med repeat-uttrykket kan du utføre en blokk med uttrykk gjentatte ganger inntil et uttrykk blir sant. repeat (until bool-uttrykk) uttrykk1 uttrykkn endrepeat Repeat-uttrykket utfører blokken med uttrykk inntil verdien for det boolske uttrykket er TRUE. Du kan ha så mange uttrykk som du ønsker, i repeat-blokken. Uttrykket endrepeat avslutter repeat-blokken. Hvis verdien av det boolske uttrykket er TRUE første gang det evalueres, vil løkken ikke bli utført. Eksempel: Dette skriptet bruker optisk tegngjenkjenning (OCR) til å kontrollere om noen av dokumentene som skannes inn av brukerne, er konfidensielle. Hvis et dokument er konfidensielt, vil det ikke bli sendt via e-post. Det skannede bildet lagres i en fil, og en advarsel sendes til brukeren som har skannet inn det konfidensielle dokumentet. with ImageToText.input=original.document.TextType=LDD_TEXTTYPE_NORMAL.Language=LDD_LANG_ENGLISH.AllPages=TRUE.Go() endwith textfile tf string OneLine, Submitter // Åpne resultatet av OCR-handl tf.open(imagetotext.output) bool bconfdoc = FALSE int icount, iend icount =1 iend = tf.getnumberlines() Grunnlaget 7

Submitter = original.username+ "@lexmark.com" // Kontroller hver linje for ordet "Confidential" repeat (until (bconfdoc OR (icount>=iend))) OneLine = tf.readline() if (OneLine.Contains("Confidential")) then bconfdoc = TRUE endif icount.add(1) endrepeat // Hvis det er et konfidensielt dokument, så lagre det og send en advarsel 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="Invalid Email Rejected".Message="Cannot email a confidential document".characterset=ldd_smtpcharset_us.go() endwith else with EmailSMTP.Server="mail.server.com".To="Receiver@abcxyz.com".From=Submitter.Subject="Skannet dokument".message="here is the document you requested".characterset=ldd_smtpcharset_us.attachments=original.document.go() endwith endif Grunnlaget 8

Operatorer Matematiske Disse operatorene brukes til å angi eller endre verdien til en variabel eller egenskap. Operator Symbol Beskrivelse Addisjon + For heltallsobjekter (int) og reelle objekter (real) adderes tallene på begge sider av "+", og den nye verdien returneres. For strengobjekter (string) har denne en lignende effekt som Concatenate-metoden. Den setter strengen til høyre sammen med strengen til venstre og returnerer den nye strengen. For dokumentobjekter settes dokumentet til høyre sammen med dokumentet til venstre, og det nye dokumentet returneres. I alle tilfeller forblir variablene på begge sider uendret. Subtraksjon - For heltallsobjekter (int) og reelle objekter (real) subtraheres tallet til høyre fra tallet til venstre, og den nye verdien returneres. Variablene på hver side forblir uendret. Denne operatoren er ikke gyldig for andre objekttyper. Multiplikasjon * For heltallsobjekter (int) og reelle objekter (real) multipliseres tallene på begge sider av " * " og den nye verdien returneres. Variablene på hver side forblir uendret. Denne operatoren er ikke gyldig for andre objekttyper. Divisjon / For heltallsobjekter (int) og reelle objekter (real) divideres tallet til venstre med tallet til høyre, og den nye verdien returneres. Variablene på hver side forblir uendret. Denne operatoren er ikke gyldig for andre objekttyper. Modulus % For heltallsobjekter (int) divideres tallet til venstre med tallet til høyre, og restverdien returneres. Variablene på hver side forblir uendret. Denne operatoren er ikke gyldig for andre objekttyper. Eksempel: 5%2 returnerer 1, siden 5 dividert med 2 er lik 2 pluss en rest på 1. Grunnlaget 9

Sammenligning Disse operatorene brukes til å sammenligne verdiene av variabler eller egenskaper av samme type. Resultatet av sammenlign er en boolsk verdi (TRUE eller FALSE). Du kan velge mellom symbolene som er oppført for en gitt operator. Operator Symboler Beskrivelse Mindre enn <, LT For heltall (int) og reelle tall (real) returneres TRUE hvis verdien på venstre side er mindre enn verdien på høyre side. For strenger (string) returneres TRUE hvis verdien på venstre side kommer før i alfabetet enn verdien på høyre side (inkludert små/store bokstaver). I motsatt fall returneres FALSE. Større enn >, GT For heltall (int) og reelle tall (real) returneres TRUE hvis verdien på venstre side er større enn verdien på høyre side. For strenger (string) returneres TRUE hvis verdien på venstre side kommer lenger bak i alfabetet enn verdien på høyre side (inkludert små/store bokstaver). I motsatt fall returneres FALSE. Mindre enn eller lik <=, LE For heltall (int) og reelle tall (real) returneres TRUE hvis verdien på venstre side er mindre enn eller lik verdien på høyre side. For strenger (string) returneres TRUE hvis verdien på venstre side kommer før i alfabetet enn verdien på høyre side (inkludert små/store bokstaver), eller hvis den er på samme plass. I motsatt fall returneres FALSE. Større enn eller lik >=, GE For heltall (int) og reelle tall (real) returneres TRUE hvis verdien på venstre side er større enn eller lik verdien på høyre side. For strenger (string) returneres TRUE hvis verdien på venstre side kommer lenger bak i alfabetet enn verdien på høyre side (inkludert små/store bokstaver), eller hvis den er på samme plass. I motsatt fall returneres FALSE. Lik ==, EQ For heltall (int) og reelle tall (real) returneres (dobbelt likhetstegn) TRUE hvis verdien på venstre side er lik verdien på høyre side. For strenger (string) returneres TRUE hvis verdien på venstre side er nøyaktig lik verdien på høyre side (inkludert små/store bokstaver). I motsatt fall returneres FALSE. Ikke lik!=, <>, NE For heltall (int) og reelle tall (real) returneres TRUE hvis verdien på venstre side ikke er lik verdien på høyre side. For strenger (string) returneres TRUE hvis verdien på venstre side ikke er nøyaktig lik verdien på høyre side (inkludert små/store bokstaver). I motsatt fall returneres FALSE. Grunnlaget 10

Boolske (bool) Disse operatorene kan brukes til å bygge opp komplekse boolske uttrykk. Verdiene på begge sider av operatoren må være boolske (bool). Resultatet av den boolske operatoren er en boolsk verdi (TRUE eller FALSE). Du kan velge mellom symbolene som er oppført for en gitt operator. Operator Symboler Beskrivelse Og &, &&, AND Bruker den logiske OG-operatoren på to boolske verdier og returnerer resultatet. Eller,, OR Bruker den logiske ELLER-operatoren på to boolske verdier og returnerer resultatet. Negasjon!, NOT Bruker den logiske negasjonsoperatoren på to boolske verdier og returnerer resultatet. Tabellen under viser resultatet av AND- og OR-metoden ved å bruke: 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 Tabellen under viser resultatet av NOT-metoden ved å bruke: NOT bool1 bool 1 TRUE FALSE NOT FALSE TRUE Grunnlaget 11

Andre funksjoner Kortreferanse til objekter ved hjelp av "with" Hvis du har en kodeblokk som arbeider med det samme objektet, kan det være tungvint å skrive det samme objektnavnet flere ganger. Dette kan du unngå ved å bruke with-uttrykket. Det generelle formatet er: with objektnavn.egenskap = verdi.egenskap = verdi.metode() endwith Du angir objektnavnet som skal brukes i with-uttrykket. Deretter kan du referere til enhver egenskap og metode for objektet ved å bruke punktum etterfulgt av egenskapens eller metodens navn. Dette brukes mest med handlingsobjekter. Avluse et skript Når et skript kjøres, kan handlingsobjektene skrive feilmeldinger og advarsler til loggen. Du kan også skrive dine egne meldinger til loggen for å gjøre det enklere å avluse skriptet. La oss for eksempel anta at du vil vite verdien av en variabel eller returverdien fra en metode. Bruk debug-uttrykket til å skrive meld til loggen. debug (msg) msg kan være en strengvariabel, en streng i anførselstegn eller et numerisk uttrykk. Nedenfor finner du noen eksempler: int index= 3 string ErrorMsg = "Kunne ikke skrives ut" debug (index) debug (ErrorMsg) debug ("Jobb mottatt fra " + original.username) Hvert av disse uttrykkene skriver en melding til serverloggen. Grunnlaget 12

Sette sammen kommentarer og kodelinjer i et skript Hvis du vil sette sammen kommentarer i et skript, må du bruke en dobbel skråstrek (//) hvis kommentaren går over mer enn én linje. Eksempel: //Dette skriptet fakser en originalskanning og sender den til databasen som brukeren angir, hvis //databasen ikke støttes av programvaren... Hvis du vil sette sammen linjer med kode, må du bruke et understrekingstegn (_). Eksempel: str email="john Doe" doc ocr with EmailSMTP.Server=local.emailserver.To=email.From=email.Subject="Ditt skannede dokument".message="her er det skannede dokumentet i det formatet du"_ "ba om.".characterset=ldd_smtpcharset_us.attachments=ocr.go() endwith Avbryte et skript på kjøretidspunktet Hvis du oppdager en feiltilstand under kjør av et skript, kan det være nyttig å ha en måte å stoppe skriptbehandl på. Bruk exit-funksjonen for å oppnå dette: void exit(string msg) Exit-funksjonen stopper skriptutførelsen. Den gir deg mulighet til å sende en streng som vises i serverens logg, på bekreftelsessiden eller i bekreftelsesdialogboksen. Grunnlaget 13

3 Datatypeobjekter Alle data som brukes av Workflow Composer kan grupperes i seks ulike datatyper: Boolske (bool) Dokument (doc) Heltall (int) Avbildning (map) Reelle tall (real) Streng (string) Alle objektegenskaper er et datatypeobjekt. I tillegg er de fleste variabler av denne typen. De neste sidene omhandler hvert av disse objektene. Datatypeobjekter 14

Boolske (bool) Boolske objekter brukes for verdier som er logisk sanne eller usanne. De eneste gyldige verdiene for slike variabler er de reserverte ordene TRUE og FALSE. Dette objektet har egenskaper. Følgende operatorer støttes: Operatorer Symbol Beskrivelse ==, EQ Lik <> Ikke lik &, AND Og, OR Eller!, NOT Negasjon = Tilordning Datatypeobjekter 15

Dokument (doc) Dokumentobjektet brukes til å oppbevare en samling av bilder, tekst og andre formaterte filer. Alle filene i et dokumentobjekt trenger ikke å være av samme type det kan inneholde ulike filer av forskjellige typer. En egenskap eller variabel er av denne typen hvis den deklareres som doc. Dokumentobjektet har egenskaper. Metoder Syntaks bool AddDocument(doc dok1) bool AddFile(string bane [, string type]) void AddTempFile(string typ) void Clear() Beskrivelse Legger til et eksisterende dokument på slutten av dette dokumentet. dok1 dokumentet som skal legges til en bool-verdi som angir om metoden var vellykket eller mislykket Legger til en eksisterende fil på slutten av dette dokumentet. Denne metoden vil mislykkes hvis filen ikke eksisterer, eller hvis den ikke kan leses. bane fullt kvalifisert bane på serveren til filen som skal legges til type hvis type ikke er angitt, vil filtypen til filen som legges til, bli brukt, og hvis type er angitt, brukes den angitte verdien en bool-verdi som angir om metoden var vellykket eller mislykket Legger til en midlertidig fil i dokumentet. Filen vil bli slettet når skriptet avsluttes. typ filtypen som skal gis til den midlertidige filen Fjerner alle filer fra dokumentet. Datatypeobjekter 16

Syntaks doc Copy() doc CopyRange(int start, int slutt) int GetDocumentSize() string GetDocumentType() Beskrivelse Kopierer alle filene i dette dokumentet til et nytt dokument. Denne metoden lager en kopi av de faktiske filene, slik at det nå finnes to av dem. På denne måten kan du gjøre endringer i ett av settene med filer uten at det påvirker det andre settet. et dokument som inneholder en kopi av alle filene i dokumentvariabelen som kopieres Kopierer de angitte filene i dette dokumentet til et nytt dokument. Denne metoden lager en kopi av de faktiske filene, slik at det nå finnes to av dem. På denne måten kan du gjøre endringer i ett av settene med filer uten at det påvirker det andre settet. start indeks for den første filen i dokumentet som skal kopieres (filindeksene starter på 1) slutt indeks for den siste filen i dokumentet som skal kopieres et dokument (doc) som inneholder en kopi av filene i det angitte området Returnerer den samlede størrelsen (i byte) av alle filene i dette dokumentet. Størrelsen null (0) returneres hvis det ikke er noen filer i dokumentet. et heltall (int) med totalt antall byte i dette dokumentet Returnerer typen (filformat eller filtype) for dokumentet. Hvis alle filene i dokumentet er av samme type, er dette dokumenttypen. Hvis ikke, er verdien en tom streng. en streng som inneholder dokumenttypen (filformat eller filtype) for dokumentet Datatypeobjekter 17

Syntaks doc GetFile(int filnr) string GetFileLabel(int filnr) doc GetFileRange(int start, int slutt) int GetFileSize(int filnr) string GetFileType(int filnr) Beskrivelse Returnerer en referanse til den angitte filen. Dokumentet som returneres, er ikke en kopi, så eventuelle endringer som gjøres i denne filen, vil også påvirke originalfilen. Et tomt dokument returneres hvis filnr er ugyldig. filnr indeks for filen som skal hentes (filindekser starter med 1) et dokument (doc) som inneholder en referanse til den angitte filen Returnerer etiketten for den angitte filen. Etiketten brukes som filnavnet (minus filtypen) for vedlegg i e- poster eller databaser. En tom streng returneres hvis filnr er ugyldig. filnr indeks for filetiketten som skal hentes (filindekser starter med 1) en streng som inneholder etiketten for den angitte filen Returnerer en referanse til de angitte filene. Dokumentet som returneres, er ikke en kopi, så eventuelle endringer som gjøres i disse filene, vil også påvirke originalfilene. start indeks for den første filen som skal hentes (filindekser starter med 1) slutt indeks for den siste filen som skal hentes et dokument (doc) som inneholder en referanse til de angitte filene Returnerer størrelsen (i byte) på den angitte filen. Verdien null (0) returneres hvis filnr er ugyldig. filnr indeks for filen som størrelsen skal hentes for (filindekser starter med 1) et heltall (int) med størrelsen (i byte) på den angitte filen Returnerer typen (filformat eller filtype) for den angitte filen. En tom streng returneres hvis filnr er ugyldig. filnr indeks for filtypen som skal hentes (filindekser starter med 1) en streng som inneholder verdien for filtypen for den angitte filen Datatypeobjekter 18