IBM FileNet P8, Version 5.2.1            

Funkcije za pretvarjanje podatkovnih tipov

Ta razdelek vsebuje krajše opise funkcij, s katerimi pretvorite izraze iz enega podatkovnega tipa v drugega.

Tabela 1. Tabela funkcij, ki pretvorijo en podatkovni tip v drugega
Funkcija Kaj naredi
convert Izraz pretvori iz enega podprtega podatkovnega tipa v drugega.
numbertostring S pomočjo podane maske izraz s celim številom ali realnim številom s plavajočo vejico pretvori v nizovni izraz.
stringtotime S pomočjo podane maske nizovni izraz pretvori v časovni izraz.
timetostring S pomočjo podane maske časovni izraz pretvori v nizovni izraz.
is_valid Določi, ali je podan izraz veljavna vrednost, ki jo je mogoče pretvoriti v podan preprost podatkovni tip.

convert

Funkcija izraz pretvori iz enega podprtega podatkovnega tipa v drugega. Uporabite naslednjo skladnjo:
convert (source_expr, type_name)
kjer je:
Tabela 2. Parametri in opis za funkcijo convert
Parameter Opis
source_expr Izraz kateregakoli podprtega podatkovnega tipa. Ta izraz je pretvorjen v podatkovni tip, ki ste ga podali v type_name.
type_name

Podatkovni tip, v katerega je pretvorjen niz source_expr. Veljavni vnosi so float, float[ ] (realno število s plavajočo vejico), integer, integer[ ] (celo število), string, string[] (niz), Boolean, Boolean[ ] (logična vrednosti), time in time[ ] (čas).

Pomnite, da v primeru, da type_name sledijo kvadratni oklepaji ([ ]), mora biti source_expr prav tako indeksirano polje. Vsak element v indeksiranem polju je pretvorjen v type_name po pravilih, ki veljajo za preprost podatkovni tip.

Rezultat funkcije convert je odvisen od podatkovnih tipov source_expr in type_name.

Opomba: Vedite, da pri uporabi funkcije convert z določenimi kombinacijami podatkovnih tipov pride do skladenjskih napak. Nelogično je na primer pretvarjanje časovnega podatkovnega tipa v logični podatkovni tip, zato pride do skladenjske napake. Po potrebi s pomočjo funkcije is_valid preverite tip izraza, preden ta izraz uporabite v funkciji convert

Pretvorba iz logične vrednosti

Če je source_expr tipa logične vrednosti, so rezultati funkcije convert naslednji.

Tabela 3. Rezultati funkcije convert, ko je podatkovni tip Boolova (logična) vrednost
Pretvorba iz logične vrednosti v ... Rezultati
Logična vrednost Ni spremembe.
Realno število s plavajočo vejico Če je logični izraz true, je rezultat 1. Če je logični izraz false, je rezultat 0.
Celo število Če je logični izraz true, je rezultat 1. Če je logični izraz false, je rezultat 0.
Niz Če je logični izraz true, je rezultat "true". Če je logični izraz false, je rezultat "false".
Čas Skladenjska napaka.

Pretvorba iz realnega števila s plavajočo vejico

Če je source_expr tipa realnega števila s plavajočo vejico, so rezultati funkcije convert naslednji.

Tabela 4. Rezultati funkcije convert, ko je podatkovni tip realno število s plavajočo vejico
Pretvorba iz realnega števila s plavajočo vejico v ... Rezultati
Logična vrednost

Če je source_expr = 0, je rezultat false. Če je source_expr = 1, je rezultat true.

Če source_expr <> 0 ali 1, pride do skladenjske napake.

Realno število s plavajočo vejico Ni spremembe.
Celo število Pretvori del source_expr s celim številom (tj. odreže vse številke desno od decimalne vejice). Do napake pride, če rezultat ni celo število.
Niz Vrne niz s številskimi znaki, ki predstavljajo realno število s plavajočo vejico.
Čas

Celoštevilski del source_expr uporabi kot število sekund, ki jih naj doda k 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas). Vrne nov čas.

UTC (univerzalni koordinirani čas), ki je bil včasih znan kot GMT (čas po Greenwichu), je po vsem svetu standardna referenčna časovna cona.

convert (5.3, time) na primer vrne 1/1/1970 00:00:05.

Pretvorba iz celega števila

Če je source_expr tipa celo število, so rezultati funkcije convert naslednji.
Tabela 5. Rezultati funkcije convert, ko je podatkovni tip celo število
Pretvorba iz celega števila v ... Rezultati
Logična vrednost

Če je source_expr = 0, je rezultat false. Če je source_expr = 1, je rezultat true.

Če source_expr <> 0 ali 1, pride do skladenjske napake.

Realno število s plavajočo vejico Rezultat je enakovredna vrednost realnega števila s plavajočo vejico.
Celo število Ni spremembe.
Niz Vrne niz s številskimi znaki, ki predstavljajo celo število.
Čas

source_expr uporabi kot število sekund, ki jih naj doda k 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas). Vrne nov čas.

convert (5, time) na primer vrne 1/1/1970 00:00:05.

Pretvorba iz niza

Če je source_expr tipa niza, so rezultati funkcije convert naslednji.

Tabela 6. Rezultati funkcije convert, ko je podatkovni tip niz tipa
Pretvorba iz niza v ... Rezultati
Logična vrednost Skladenjska napaka razen, če je source_expr = "true" ali source_expr = "false". (Sprejemljiva je katerakoli kombinacija velikih in malih črk.)
Realno število s plavajočo vejico Skladenjska napaka razen, če je source_expr ustrezna predstava vrednosti realnega števila s plavajočo vejico.
Celo število Skladenjska napaka razen, če je source_expr ustrezna predstava vrednosti celega števila.
Niz Ni spremembe.
Čas

Napaka v skladnji, razen če je source_expr legitimna predstavitev časovne vrednosti in uporablja format, določen v maski datum/čas za sistem delovnih tokov.

Pretvorba iz časa

Če je source_expr tipa čas, so rezultati funkcije convert naslednji.

Tabela 7. Rezultati funkcije convert, ko je podatkovni tip časovni tip
Pretvorba iz časa v ... Rezultati
Logična vrednost Skladenjska napaka.
Realno število s plavajočo vejico

Vrne število sekund med trenutnim sistemskim časom in 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas).

Če je na primer SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, float) vrne 28.

Če je trenuten sistemski čas nastavljen na časovno cono, drugačno od UTC, funkcija convert izvede potrebne prilagoditve. Med Pacifiškim standardnim časom (PST) in UTC je na primer 8-urna razlika. Če je SysTime = 1/1/1970 00:00:28 PST (pacifiški standardni čas) in je lokalni časovni pas univerzalni koordinirani čas, convert(SysTime, float) vrne 28828.0.

8(ur) * 60(minut) *60(sekund) + 28(sekund)

Celo število

Vrne število sekund med trenutnim sistemskim časom in 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas).

Če je na primer SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, integer) vrne 28.

Če je trenuten sistemski čas nastavljen na časovno cono, drugačno od UTC, funkcija convert izvede potrebne prilagoditve. Med PST in UTC je na primer 8-urna razlika. Če je SysTime = 1/1/1970 00:00:28 PST (pacifiški standardni čas) in je lokalni časovni pas pacifiški standardni čas, convert(SysTime, integer) vrne 28828.

8(ur) * 60(minut) *60(sekund) + 28(sekund)

Niz

Vrne nizovno predstavitev source_expr. Upoštevajte, da ta niz uporablja format, določen v maski datum/čas za sistem delovnih tokov.

Čas Ni spremembe

numbertostring

Funkcija s pomočjo formata, ki ga podate, izraz realnega števila s plavajočo vejico ali celoštevilčni izraz pretvori v nizovni izraz. To funkcijo uporabite, ko želite število prikazati v določenem formatu (na primer $1,000,000). Funkcijo numbertostring lahko uporabite tudi za zaokroževanje števil.

Uporabite naslednjo skladnjo:
numbertostring (num_exp{, num_mask}neobvezno)
kjer je:
Parameter Opis
num_exp Izraz z realnim številom s plavajočo vejico ali celoštevilčni izraz.
num_mask

Številska maska, ki določa format izhoda funkcije numbertostring.

Čeprav ni obvezna, vedite, da je funkcija numbertostring v primeru, da je ne vnesete, enaka funkciji convert.

Številska maska

Številska maska je predloga, ki se uporablja za oblikovanje izhoda funkcije numbertostring. Številska maska je nizovni izraz, ki vsebuje katerokoli veljavno kombinacijo naslednjih komponent.

Komponenta Pomen
+ (plus)

Ko je prva ali zadnja komponenta maske, predstavlja predznak števila.

Ko je na položaju, ki ni prvi ali zadnji, je znak za plus vstavljen točno tam, kjer ga postavite v maski. Na primer:

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

vrne 123+45

- (minus)

Ko je prva ali zadnja komponenta maske, prikazuje negativen predznak, če je število negativno, ali prikazuje presledek, če je število pozitivno.

Ko je na položaju, ki ni prvi ali zadnji, je znak za minus vstavljen točno tam, kjer ga postavite v maski. Na primer:

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

vrne 123-45-6789

# (lojtra) Prikazuje števko, če je pomembna. Če maska vsebuje več lojter, kot je pomembnih števk, prve števke dobijo najbolj desne lojtre, druge pa so zapolnjene s presledki.
0 (ničla) Prikazuje števko, če je ali ni pomembna. Vrnjene so lahko ničle pred in za drugimi števkami.
. (decimalna) Določa, kje se nahaja decimalna vejica. Če to ni podano, se predvideva, da je na desnem koncu maske. Število je zaokroženo tako, da se prilega maski. V maski je dovoljena samo ena decimalna vejica.

Primeri številskih mask

Spodaj so navedeni izhodni rezultat, ko funkcija numbertostring pretvori naslednja števila: 0, +29, -3344 in 77,88369. Izhodni podatki so oblikovani glede na prikazano številsko masko.

Opomba: Če je maska premajhna za število, pride do napake. Maska je premajhna, če je levo od decimalne vejice premalo lojter ali ničel. Maska # je na primer prekratka za število 300.
Maska 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, Napaka v času izvajanja 77,88

Zaokroževanje števil

Če želite število zaokrožiti, uporabite funkcijo numbertostring in ustrezno številsko masko. Vsaka številka je zaokrožena tako, da zapolni zadnje mesto v maski. Naslednji primer število zaokroži na tisočine. V primeru je Stevilo1 ime izraza, ki je vrste realnega števila s plavajočo vejico.
numbertostring (Number1, "#,###.###")
Če je Stevilo1 = 3344.7788, je vrnjeno število:
3.344,779

is_valid

Funkcija določi, ali je podan izraz veljavna vrednost, ki jo je mogoče pretvoriti v podan preprost podatkovni tip. Funkcija vrne logično vrednost true, če je izraz veljaven. V nasprotnem primeru funkcija vrne vrednost false. Uporabna je lahko za preverjanje tipa izraza, preden ta izraz uporabite v funkciji convert. Uporabite naslednjo skladnjo:
is_valid (expr, type)
kjer je:
Tabela 8. Parametri in opis za funkcijo is_valid
Parameter Opis
expr Katerikoli izraz.
type Preprost podatkovni tip (Boolean (logična vrednost), float (realno število s plavajočo vejico), integer (celo število), string (niz), time(čas)).
Sledita dva primera uporabe nizovnih izrazov. Prvi primer vrne true, drugi primer pa vrne false. V prvem primeru je str = "true".
is_valid (str, Boolean)
is_valid ("1.2.3", float)
Spodnji primer preverja, ali je podan izraz realnega števila s plavajočo vejico veljaven za pretvorbo v celoštevilčni tip. Ta primer vrne vrednost false, saj je vrednost realnega števila s plavajočo vejico izven obsega veljavnih celoštevilčnih vrednosti.
is_valid (1e20, integer)


Last updated: March 2016
bpfe005.htm

© Copyright IBM Corp. 2016.