IBM FileNet P8, Version 5.2.1            

Funktioner til konvertering af datatype

Dette afsnit indeholder korte beskrivelser af de funktioner, der konverterer udtryk fra én datatype til en anden.

Tabel 1. Tabel over funktioner, der konverterer en datatype til en anden
Funktion Virkemåde
convert Konverterer et udtryk fra én understøttet datatype til en anden.
numbertostring Konverterer et heltalsudtryk eller et flydende udtryk til et strengudtryk ved hjælp af en angiven maske.
stringtotime Konverterer et strengudtryk til et tidsudtryk ved hjælp af en angiven maske.
timetostring Konverterer et tidsudtryk til et strengudtryk ved hjælp af en angiven maske.
is_valid Bestemmer, om det angivne udtryk er en gyldig værdi, der kan konverteres til den angivne enkle datatype.

convert

Denne funktion konverterer et udtryk fra én understøttet datatype til en anden. Brug følgende syntaks:
convert (kildeudtryk, typenavn)
hvor:
Tabel 2. Parametre til og beskrivelse af konverteringsfunktionen
Parameter Beskrivelse
kildeudtryk Et udtryk i en af de understøttede datatyper. Dette udtryk konverteres til den datatype, som er angivet i typenavn.
typenavn

Den datatype, som kildeudtryk konverteres til. Gyldige indgange er float, float[ ], integer, integer[ ], string, string[], Boolean, Boolean[ ], time og time[ ].

Bemærk, at hvis typenavn efterfølges af firkantede klammer ([ ]), skal kildeudtryk også være et array. Hvert element i arrayet konverteres til typenavn via de regler, der gælder for den enkle datatype.

Resultaterne af funktionen convert afhænger af datatyperne for kildeudtryk og typenavn.

Bemærk: Vær opmærksom på, at hvis du bruger funktionen convert med bestemte kombinationer af datatyper, kan der opstå syntaksfejl. Det er f.eks. ulogisk at konvertere en tidsdatatype til en boolesk datatype. Derfor opstår der en syntaksfejl. Brug funktionen is_valid efter behov til at kontrollere et udtryks type, før du bruger udtrykket i en convert-funktion.

Konvertér fra boolesk

Hvis kildeudtryk er af typen boolesk, er resultaterne af funktionen convert som følger.

Tabel 3. Resultater af konverteringsfunktionen, når datatypen er boolesk
Konvertér fra boolesk til... Resultater
Boolean Ingen ændring.
float Hvis det booleske udtryk er sandt, er resultatet 1. Hvis det er falsk, er resultatet 0.
integer Hvis det booleske udtryk er sandt, er resultatet 1. Hvis det er falsk, er resultatet 0.
string Hvis det booleske udtryk er sandt, er resultatet "true". Hvis det er falsk, er resultatet "false".
time Syntaksfejl.

Konvertér fra flydende

Hvis kildeudtryk er af typen flydende, er resultaterne af funktionen convert som følger.

Tabel 4. Resultater af konverteringsfunktionen, når datatypen er flydende
Konvertér fra flydende til... Resultater
Boolean

Hvis kildeudtryk = 0, er resultatet false. Hvis kildeudtryk = 1, er resultatet true.

Hvis kildeudtryk <> 0 eller 1, opstår der en syntaksfejl.

float Ingen ændring.
integer Konverterer heltalsdelen af kildeudtryk (dvs. afkorter alle tal til højre for decimaltegnet). Der opstår en fejl, hvis resultatet ikke ligger inden for intervallet for heltal.
string Resulterer i en streng med numeriske tegn, der repræsenterer den flydende værdi.
time

Bruger heltalsdelen af kildeudtryk som antallet af sekunder, der skal lægges til 01-01-1970 00:00:00 UTC (Coordinated Universal Time) og returnerer den nye tid.

UTC (Coordinated Universal Time) UTC, der tidligere blev kaldt GMT (Greenwich Mean Time), er den verdensomspændende standardreferencetidszone.

Eksempelvis returnerer convert (5,3, time) 01-01-1970 00:00:05.

Konvertér fra heltal

Hvis kildeudtryk er af typen heltal, er resultaterne af funktionen convert som følger.
Tabel 5. Resultater af konverteringsfunktionen, når datatypen er heltal
Konvertér fra heltal til... Resultater
Boolean

Hvis kildeudtryk = 0, er resultatet false. Hvis kildeudtryk = 1, er resultatet true.

Hvis kildeudtryk <> 0 eller 1, opstår der en syntaksfejl.

float Resulterer i den tilsvarende flydende værdi.
integer Ingen ændring.
string Resulterer i en streng med numeriske tegn, der repræsenterer heltallet.
time

Bruger kildeudtryk som antallet af sekunder, der skal lægges til 01-01-1970 00:00:00 UTC (Coordinated Universal Time) og returnerer den nye tid.

Eksempelvis returnerer convert (5, time) 01-01-1970 00:00:05.

Konvertér fra streng

Hvis kildeudtryk er af typen streng, er resultaterne af funktionen convert som følger.

Tabel 6. Resultater af konverteringsfunktionen, når datatypen er en streng
Konvertér fra streng til... Resultater
Boolean Syntaksfejl, medmindre kildeudtryk = "true" eller kildeudtryk = "false". Alle kombinationer af store og små bogstaver accepteres.
float Syntaksfejl, medmindre kildeudtryk er en gyldig repræsentation af en flydende værdi.
integer Syntaksfejl, medmindre kildeudtryk er en gyldig repræsentation af en heltalsværdi.
string Ingen ændring.
time

Syntaksfejl, medmindre kildeudtryk er en gyldig repræsentation af en tidsværdi og bruger det format, der er angivet i dato/klokkeslæt-masken for arbejdsgangssystemet.

Konvertér fra tid

Hvis kildeudtryk er af typen time, er resultaterne af funktionen convert som følger.

Tabel 7. Resultater af konverteringsfunktionen, når datatypen er tid
Konvertér fra tid til... Resultater
Boolean Syntaksfejl.
float

Returnerer antallet af sekunder mellem den aktuelle systemtid og 01-01-1970 00:00:00 UTC (Coordinated Universal Time).

Hvis der f.eks. er angivet SysTime = 01-01-1970 00:00:28 UTC, returnerer convert (SysTime, float) 28.

Hvis den aktuelle systemtid er angivet til en anden tidszone end UTC, foretager funktionen convert den nødvendige justering. Der er f.eks. 8 timers forskel mellem PST (Pacific Standard Time) og UTC; hvis SysTime = 1/1/1970 00:00:28 PST og den lokale tidszone er PST, returnerer convert(SysTime, float) 28828.0.

8 (timer) * 60 (minutter) *60 (sekunder) + 28 (sekunder)

integer

Returnerer antallet af sekunder mellem den aktuelle systemtid og 01-01-1970 00:00:00 UTC (Coordinated Universal Time).

Hvis der f.eks. er angivet SysTime = 01-01-1970 00:00:28 UTC, returnerer convert (SysTime, integer) 28.

Hvis den aktuelle systemtid er angivet til en anden tidszone end UTC, foretager funktionen convert den nødvendige justering. Der er f.eks. 8 timers forskel mellem PST og UTC; hvis SysTime = 1/1/1970 00:00:28 PST, og den lokale tidszone er PST (Pacific Standard Time), returnerer convert(SysTime, integer) 28828.

8 (timer) * 60 (minutter) *60 (sekunder) + 28 (sekunder)

string

Resulterer i en strengrepræsentation af kildeudtryk. Bemærk, at denne streng bruger det format, der er angivet i dato/klokkeslæt-masken for arbejdsgangssystemet.

time Ingen ændring.

numbertostring

Denne funktion konverterer et flydende udtryk eller et heltalsudtryk til et strengudtryk ved hjælp af det format, du angiver. Brug denne funktion, når du vil vise et tal i et bestemt format (f.eks. DKK 1.000.000). Du kan også bruge funktionen numbertostring til at afrunde tal.

Brug følgende syntaks:
numbertostring (taludtryk{, num_maske}parameter)
hvor:
Parameter Beskrivelse
taludtryk Et udtryk af typen float eller integer.
num_maske

En numerisk maske, der bestemmer formatet af outputtet fra funktionen numbertostring.

Den numeriske maske er valgfri, men hvis du ikke angiver en numerisk maske, svarer funktionen numbertostring til funktionen convert.

Numerisk maske

En numerisk maske er en skabelon, der bruges til at formatere outputtet af funktionen numbertostring. En numerisk maske er et strengudtryk, der indeholder en hvilken som helst gyldig kombination af følgende komponenter.

Komponent Betydning
+ (plus)

Når det er den første eller sidste komponent i masken, viser den tallets fortegn.

Når det er i en anden position end den første eller sidste, indsættes plustegnet i outputstrengen, nøjagtigt det sted hvor du har placeret det i masken. Eksempel:

numbertostring (12345, "###+##")

giver 123+45

- (minus)

Når det er den første eller sidste komponent i masken, viser et negativt tegn, hvis tallet er negativt, eller et mellemrum, hvis tallet er positivt.

Når det er i en anden position end den første eller sidste, indsættes minustegnet i outputstrengen, nøjagtigt det sted hvor du har placeret det i masken. Eksempel:

numbertostring (123456789, "###-##-####")

giver 123-45-6789

# (nummertegn) Viser et ciffer, hvis det er betydende. Når masken indeholder flere #'er, end der er betydende cifre, modtager #'erne længst til højre cifrene først, og overskydende #'er udfyldes med blanktegn.
0 (nul) Viser et ciffer, uanset om det er betydende eller ej. Det kan resultere i både foran- og efterstillede nuller.
. (decimaltegn) Bestemmer, hvor decimaltegnet placeres. Hvis det ikke er angivet, antages decimaltegnet at være til højre for masken. Tallet afrundes, så det passer til masken. Der kan kun være ét decimaltegn i en maske.

Eksempler på numeriske masker

Herunder vises outputtet, når funktionen numbertostring konverterer følgende tal: 0, +29, -3344 og 77,88369. Outputtet formateres i henhold til de viste numeriske masker.

Bemærk: Hvis masken er for lille til tallet, opstår der en fejl. Masken er for lille, hvis der er for få #'er eller 0'er til venstre for decimaltegnet. Masken ## passer f.eks. ikke til tallet 300.
Maske 0 +29 -3344 77,88369
0000 0000 0029 3344 0078
####   29 3344 78
$#,### $ DKK 29 DKK 3.344 DKK 78
+#### + +29 -3344 +78
-####   29 -3344 78
####+ + 29+ 3344- 78+
####- 29 3344- 78
##.## . 29, Runtimefejl 77,88

Afrunding af tal

Hvis du vil afrunde et tal, skal du bruge funktionen numbertostring og den relevante numeriske maske. Alle tal afrundes, så alle pladser i masken udfyldes. I følgende eksempel afrundes et tal til tusinder. I eksemplet er Tal1 navnet på et udtryk af typen flydende.
numbertostring (Tal1, "#.###,###")
Hvis Tal1 = 3344,7788, er outputtet:
3.344,779

is_valid

Denne funktion bestemmer, om det angivne udtryk er en gyldig værdi, der kan konverteres til den angivne enkle datatype. Funktionen returnerer den booleske værdi true, hvis udtrykket er gyldigt. Ellers returnerer funktionen værdien false. Det kan være nyttigt at kontrollere et udtryks type via funktionen is_valid, før du bruger udtrykket i en convert-funktion. Brug følgende syntaks:
is_valid (udtryk, type)
hvor:
Tabel 8. Parametre til og beskrivelse af funktionen is_valid
Parameter Beskrivelse
udtryk Et hvilket som helt udtryk.
type En enkel datatype (Boolean, float, integer, string, time).
Her er to eksempler på brugen af strengudtryk. I det første eksempel returneres værdien true. I det andet returneres false. I det første eksempel er udtryk = "true".
is_valid (str, Boolean)
is_valid ("1.2.3", float)
Eksemplet herunder kontrollerer, om det angivne flydende udtryk er gyldigt til konvertering til typen integer. Eksemplet returnerer false, fordi den flydende værdi er uden for intervallet af gyldige heltalsværdier.
is_valid (1e20, integer)


Senest opdateret: Marts 2016
bpfe005.htm

© Copyright IBM Corp. 2016.