IBM FileNet P8, Version 5.2.1            

Funksjoner for datatypekonvertering

Denne delen inneholder korte beskrivelser av funksjonene som konverterer uttrykk fra én datatype til en annen.

Tabell 1. Tabell over funksjoner som konverterer én datatype til en annen
Funksjon Hva den gjør
convert Konverterer et uttrykk fra én datatype som støttes, til en annen.
numbertostring Konverterer et heltalls- eller flytuttrykk til et strenguttrykk ved hjelp av en oppgitt maske.
stringtotime Konverterer et strenguttrykk til et tidsuttrykk ved hjelp av en oppgitt maske.
timetostring Konverterer et tidsuttrykk til et strenguttrykk ved hjelp av en oppgitt maske.
is_valid Fastslår om det oppgitte uttrykket er en gyldig verdi som kan konverteres til den oppgitte enkle datatypen.

convert

Denne funksjonen konverterer et uttrykk fra én datatype som støttes, til en annen. Bruk følgende syntaks:
convert (source_expr, type_name)
der:
Tabell 2. Parametere og beskrivelse for convert-funksjonen
Parameter Beskrivelse
source_expr Et uttrykk av en hvilken som helst datatype som støttes. Dette uttrykket konverteres til datatypen som er oppgitt i type_name.
type_name

Datatypen som source_expr konverteres til. Gyldige oppføringer er flytetall, flytetall[ ], heltall, heltall[ ], streng, streng[], boolsk, boolsk[ ], tid og tid [ ].

Legg merke til at hvis type_name etterfølges av hakeparenteser ([ ]), må source_expr også være en matrise. Hvert element i matrisen konverteres til type_name av reglene som gjelder for den enkle datatypen.

Resultatene av konverteringsfunksjonen varierer avhengig av datatypene for source_exp og type_name.

Merk: Vær oppmerksom på at bruk av konverteringsfunksjonen med enkelte datatypekombinasjoner kan føre til syntaksfeil. Det er for eksempel ulogisk å konvertere en tidsdatatype til en boolsk datatype slik at det oppstår en syntaksfeil. Bruk funksjonen is_valid etter behov for å bekrefte uttrykkstypen før du bruker dette uttrykket i en konverteringsfunksjon

Konvertere fra boolsk

Hvis source_expr er av typen boolsk, er resultatene fra konverteringsfunksjonen følgende.

Tabell 3. Resultater fra convert-funksjonen når datatypen er av typen Boolsk
Konverter fra boolsk til... Resultater
boolsk Ingen endring.
flytetall Hvis det boolske uttrykket er sant, er resultatet 1. Hvis det boolske uttrykket er usant, er resultatet 0.
heltall Hvis det boolske uttrykket er sant, er resultatet 1. Hvis det boolske uttrykket er usant, er resultatet 0.
streng Hvis det boolske uttrykket er sant, er resultatet "sant" (true). Hvis det boolske uttrykket er usant, er resultatet "usant" (false).
tid Syntaksfeil.

Konvertere fra flytetall

Hvis source_expr er av typen flytetall, er resultatene fra konverteringsfunksjonen følgende.

Tabell 4. Resultater fra convert-funksjonen når datatypen er av typen flytetall
Konverter fra flytetall til... Resultater
boolsk

Hvis source_expr = 0, er resultatet usant. Hvis source_expr = 1, er resultatet sant.

Hvis source_expr <> 0 eller 1, fører det til en syntaksfeil.

flytetall Ingen endring.
heltall Konverterer heltallsdelen av source_expr (det vil si, avkorter alle tall til høyre for desimaltegnet). Det oppstår en feil hvis resultatet ikke er innenfor verdiområdet for heltall.
streng Fører til en streng med numeriske tegn som representerer flytetallet.
tid

Bruker heltallsdelen av source_expr som antallet sekunder som skal legges til 01.01.1970 00:00:00 UTC (Coordinated Universal Time). Returnerer det nye tidspunktet.

UTC (Coordinated Universal Time) UTC ble tidligere kalt GMT (Greenwich Mean Time), og er en standard verdensomspennende referansetidssone.

Konvertering av for eksempel (5.3, tid) returnerer 01.01.1970 00:00:05.

Konvertere fra heltall

Hvis source_expr er av typen heltall, er resultatene fra konverteringsfunksjonen følgende.
Tabell 5. Resultater fra convert-funksjonen når datatypen er av typen heltall
Konverter fra heltall til... Resultater
boolsk

Hvis source_expr = 0, er resultatet usant. Hvis source_expr = 1, er resultatet sant.

Hvis source_expr <> 0 eller 1, fører det til en syntaksfeil.

flytetall Fører til den ekvivalente flytetallsverdien.
heltall Ingen endring.
streng Fører til en streng med numeriske tegn som representerer heltallet.
tid

Bruker source_expr som antallet sekunder som skal legges til 01.01.1970 00:00:00 UTC (Coordinated Universal Time). Returnerer det nye tidspunktet.

Konvertering av for eksempel (5, tid) returnerer 01.01.1970 00:00:05.

Konvertere fra streng

Hvis source_expr er av typen streng, er resultatene fra konverteringsfunksjonen følgende.

Tabell 6. Resultater fra convert-funksjonen når datatypen er av typen streng
Konverter fra streng til... Resultater
boolsk Syntaksfeil, med mindre source_expr = "sann" eller source_expr = "usann". (Enhver kombinasjon av store og små bokstaver godtas.)
flytetall Syntaksfeil, med mindre source_expr er en gyldig representasjon av en flytetallssverdi.
heltall Syntaksfeil, med mindre source_expr er en gyldig representasjon av en heltallsverdi.
streng Ingen endring.
tid

Syntaksfeil, med mindre source_expr er en gyldig representasjon av en tidsverdi og bruker formatet som er oppgitt i dato/tid-masken for arbeidsflytsystemet.

Konvertere fra tid

Hvis source_expr er av typen tid, er resultatene fra konverteringsfunksjonen følgende.

Tabell 7. Resultater fra convert-funksjonen når datatypen er av typen tid
Konverter fra tid til... Resultater
boolsk Syntaksfeil.
flytetall

Returnerer antallet sekunder mellom gjeldende systemtid og 01.01.1970 00:00:00 UTC (Coordinated Universal Time).

Hvis for eksempel SysTime = 01.01.1970 00:00:28 UTC, returnerer convert (SysTime, flytetall) 28.

Hvis den gjeldende systemtiden er satt til en annen tidssone enn UTC, foretar konverteringsfunksjonen den nødvendige justeringen. Det er for eksempel 8 timers forskjell mellom Pacific Standard Time (PST) og UTC. Hvis SysTime = 1/1/1970 00:00:28 PST og lokal tidssone er PST, vil convert(SysTime, float) returnere 28828.0.

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

heltall

Returnerer antallet sekunder mellom gjeldende systemtid og 01.01.1970 00:00:00 UTC (Coordinated Universal Time).

Hvis for eksempel SysTime = 01.01.1970 00:00:28 UTC, returnerer convert (SysTime, heltall) 28.

Hvis den gjeldende systemtiden er satt til en annen tidssone enn UTC, foretar konverteringsfunksjonen den nødvendige justeringen. Det er for eksempel 8 timers forskjell mellom PST og UTC. Hvis SysTime = 1/1/1970 00:00:28 PST og lokal tidssone er Pacific Standard Time, vil convert(SysTime, integer) returnere 28828.

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

streng

Fører til en strengrepresentasjon av source_expr. Legg merke til at denne strengen bruker formatet som er oppgitt i dato-/klokkeslettmasken for arbeidsflytsystemet.

tid Ingen endring.

numbertostring

Denne funksjonen konverterer et flytetalls- eller heltallsuttrykk til et strenguttrykk ved hjelp av formatet du oppgir. Bruk denne funksjonen når du vil vise et tall i et bestemt format (for eksempel kr. 1 000 000). Du kan også bruke funksjonen numbertostring for å avrunde tall.

Bruk følgende syntaks:
numbertostring (num_exp{, num_mask}opt)
der:
Parameter Beskrivelse
num_exp Et uttrykk av typen flytetall eller heltall.
num_mask

En numerisk maske som fastslår formatet til utdataene for funksjonen numbertostring.

Selv om funksjonen er valgfri, må du være oppmerksom på at hvis du ikke oppgir en numerisk maske, er funksjonen numbertostring lik konverteringsfunksjonen.

Numerisk maske

En numerisk maske er en mal som brukes til å formatere utdataene til funksjonen numbertostring. En numerisk maske er et strenguttrykk som inneholder enhver gyldig kombinasjon av de følgende komponentene.

Komponent Betydning
+ (pluss)

Når den første eller siste komponenten i masken, vises tegnet til tallet.

Når i en annen posisjon enn den første eller siste, settes plusstegnet inn i utdatastrengen nøyaktig der du plasserer den i masken. Eksempel:

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

gir 123+45

- (minus)

Når den første eller siste komponenten i masken, vises det et negativt tegn hvis tallet er negativt, eller et mellomrom hvis tallet er positivt.

Når i en annen posisjon enn den første eller siste, settes minustegnet inn i utdatastrengen nøyaktig der du plasserer den i masken. Eksempel:

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

gir 123-45-6789

# (nummertegn) Viser et siffer hvis det er signifikant. Når masken inneholder flere #-tegn enn signifikante sifre, mottar #-tegnene lengst til høyre sifre først, og overskytende #-tegn fylles med tomrom.
0 (null) Viser et siffer enten det er signifikant eller ikke. Det kan føre til både foranstilt og etterstilt null.
. (desimal) Fastslår hvor desimaltegnet plasseres. Hvis ikke oppgitt, antas det at desimaltegnet er på høyre side av masken. Tallet rundes av slik at det passer i masken. Det er bare tillatt med ett desimaltegn i en maske.

Eksempler på numeriske masker

Nedenfor finner du de resulterende utdataene når funksjonen numbertostring konverterer de følgende tallene: 0, +29, -3344 og 77.88369. Utdataene formateres i henhold til de numeriske maskene som vises.

Merk: Hvis masken er for liten for tallet, oppstår det en feil. Masken er for liten hvis det er for få #-tegn eller nuller til venstre for desimaltegnet. For eksempel er masken ## utilstrekkelig for tallet 300.
Maske 0 +29 -3344 77.88369
0000 0000 0029 3344 0078
####   29 3344 78
$#,### $ $29 $3,344 $78
+#### + +29 -3344 +78
-####   29 -3344 78
####+ + 29+ 3344- 78+
####- 29 3344- 78
##.## . 29. Kjøretidsfeil 77.88

Avrunde tall

Hvis du vil avrunde et tall, kan du bruke funksjonen numbertostring og den riktige numeriske masken. Hvert tall avrundes slik at det passer i den siste plassen i masken. Følgende eksempel avrunder et tall til tusendeler. I eksemplet er Number1 navnet på et uttrykk av typen flytetall.
numbertostring (Number1, "#,###.###")
Hvis Number1 = 3344.7788, er de resulterende utdataene følgende:
3,344.779

is_valid

Denne funksjonen fastslår om de oppgitte uttrykket er en gyldig verdi som kan konverteres til den oppgitte enkle datatypen. Denne funksjonen returnerer den boolske verdien sann hvis uttrykket er gyldig. Hvis ikke returnerer funksjonen verdien usann. Det kan være nyttig å bekrefte uttrykkstypen via funksjonen is_valid før du bruker uttrykket i en convert-funksjon. Bruk følgende syntaks:
is_valid (expr, type)
der:
Tabell 8. Parametere og beskrivelse for is_valid-funksjonen
Parameter Beskrivelse
expr Et hvilket som helst uttrykk.
type En enkel datatype (boolsk, flytetall, heltall, streng, tid).
Følgende er to eksempler med strenguttrykk. Det første eksemplet returnerer sann, og det andre eksemplet returnerer usann. I det første eksemplet er str = "sann".
bis_valid (str, boolsk)
is_valid ("1.2.3", flytetall)
Eksemplet nedenfor bekrefter om det oppgitte flytetallsuttrykket er gyldig for konvertering til typen heltall. Dette eksemplet returnerer usann fordi flytetallsverdien er utenfor verdiområdet til gyldige heltallsverdier.
his_valid (1e20, heltall)


Last updated: March 2016
bpfe005.htm

© Copyright IBM Corp. 2016.