Typy zmiennych
Systemowe biblioteki narzędziowe są dostępne w produkcie Business Automation Studio , tak aby każda tworzona automatyzacja przepływu pracy i biblioteka narzędziowa posiadała dostęp do wspólnych danych systemowych. Systemowe biblioteki narzędziowe udostępniają następujące kategorie zmiennych:
- Typy podstawowe
- Typy podstawowe umożliwiają tworzenie niestandardowych typów zmiennych zwanych obiektami biznesowymi. Lista wszystkich typów podstawowych jest dostępna w poniższej tabeli.
- Typy systemowe
- Typy systemowe są udostępnionymi typami zmiennych, których nie można modyfikować. Listę wszystkich typów systemów można znaleźć w temacie JavaScript API in processes and service flows(Interfejs API języka JavaScript w procesach i przepływach usług).
Typy podstawowe | Opis |
---|---|
String |
Pozwala wprowadzić do zmiennej znaki alfanumeryczne |
Integer |
Akceptuje cyfry bez miejsca dziesiętnego z zakresu od -2147483648 do
2147483647, takie jak 45 lub 20 |
Decimal |
Akceptuje cyfry z miejscami dziesiętnymi z podwójną precyzją IEEE 754, taką jak 45.3 lub 20.13 . |
Date |
Pozwala wprowadzać do zmiennej wartości w formatach daty i godziny |
Time |
Pozwala wprowadzać do zmiennej wartości w formatach daty jako godziny. Użytkownik wprowadza godzinę, która przed umieszczeniem zmiennej w tabeli symboli zostaje przekształcona w datę. |
Selection |
Udostępnia użytkownikowi listę możliwych wartości, z których może on wybrać tylko jedną. Wybór stanowi listę różnych wartości, z których każda jest łańcuchem. Zmienna typu Wybór jest wyświetlana w czasie wykonywania w formularzu formatki jako lista lub przełączniki. |
Boolean |
Akceptuje dwie wartości: true (prawda) lub false (fałsz). Wartość boolowska jest wyświetlana w czasie wykonywania w formularzu formatki jako pole wyboru. |
Structure |
Aby korzystać z typu Struktura, należy utworzyć niestandardowy typ Struktura i zdefiniować jego właściwości. Struktura ponownie grupuje dane biznesowe powiązane z tym samym tematem. Na przykład struktura Customer może zawierać elementy, takie jak lastName , firstName , homeNumber , streetAddress . |
Niestandardowe typy zmiennych
Niestandardowe typy zmiennych są definiowane przy użyciu obiektów biznesowych. Jeśli predefiniowane obiekty biznesowe udostępnione w systemowych bibliotekach narzędziowych nie spełniają potrzeb użytkownika, można utworzyć własne obiekty biznesowe.
- Sprawdzanie poprawności w przypadku niestandardowych typów zmiennych
- Można zdefiniować ustawienia sprawdzania poprawności dla niestandardowych typów zmiennych, które korzystają z definicji typu prostego. Te reguły sprawdzania poprawności są sprawdzane w następujących sytuacjach:
- Po przypisaniu wartości do zmiennej w procesie lub usłudze takiego typu, na przykład wtedy, gdy skrypt przypisuje wartość do zmiennej tw.local lub do odwzorowania wyjściowego, w którym wynik usługi jest odwzorowywany na zmienną tw.local , sprawdzana jest poprawność wartości.
- Sprawdzanie poprawności w przypadku niestandardowych typów zmiennych całkowitoliczbowych i dziesiętnych
- W przypadku definicji obiektów biznesowych o typie Liczba całkowita i Liczba dziesiętna można zdefiniować wartości minimalne i maksymalne, aby określić zakres. Jeśli na przykład wartość minimalna zostanie określona jako 0 (włącznie), a wartość maksymalna jako 100 (włącznie), uzyskanego typu można używać dla zmiennej, w przypadku której użytkownicy określają wartość procentową, która nie może być ujemna ani większa niż 100%.
Określając precyzję i skalę, można ograniczyć liczbę dziesiętną i miejsca dziesiętne.
Użytkownik określa sposób, w jaki ustawienia sprawdzania poprawności muszą być interpretowane w konfiguracji obiektu biznesowego należącej do konfiguracji serwera.
Tabela 2. Właściwości sprawdzania poprawności precyzji i skali Właściwości Typ Wartość domyślna Opis precision-validation-on-server-enabled
Wartość boolowska Fałsz Służy do włączania sprawdzania poprawności ustawienia precyzji podczas ustawiania zmiennej.
precision-validation-strip-trailing-zeros
Wartość boolowska Fałsz Służy do usuwania końcowych zer za separatorem dziesiętnym przed sprawdzeniem poprawności precyzji.
precision-validation-type
Wyliczenie (equals, lessOrEquals) jest równe Jeśli ta właściwość jest ustawiona na wartość
equal
, precyzja wartości zmiennej musi być równa wartości określonej w typie zmiennej. Jeśli ta właściwość jest ustawiona na wartośćlessOrEquals
, precyzja wartości zmiennej musi być równa wartości określonej w typie zmiennej lub musi być od niej mniejsza.scale-validation-strip-trailing-zeros
Wartość boolowska Fałsz Służy do usuwania końcowych zer za separatorem dziesiętnym przed sprawdzeniem poprawności skali.
scale-validation-type
Wyliczenie (equals, lessOrEquals) jest równe Jeśli ta właściwość jest ustawiona na wartość
equals
, skala wartości zmiennej musi być równa wartości określonej w typie zmiennej. Jeśli ta właściwość jest ustawiona na wartośćlessOrEquals
, skala wartości musi być równa wartości określonej w typie zmiennej lub musi być od niej mniejsza.
precision-validation-on-server-enabled
zostanie ustawiona wartość true
, ale dla wszystkich pozostałych ustawień zostaną pozostawione wartości domyślne, następująca wartość jest poprawna:- 123.45
- 1234,56 (nieprawidłowa precyzja: 6 zamiast 5)
- 12,34 (nieprawidłowa precyzja: 4 zamiast 5)
- 12,345 (nieprawidłowa skala: 3 zamiast 2)
- 1234,1 (nieprawidłowa skala: 1 zamiast 2)
Następujące wyrażenie JavaScript także powoduje błąd sprawdzania poprawności, ponieważ kod JavaScript usuwa końcowe zera w czasie wykonywania przed przypisaniem wartości:
tw.local.variable = 123.40
Następujące wyrażenie JavaScript nie powoduje błędu sprawdzania poprawności, ponieważ sprawdzenie poprawności łańcucha kończy się poprawnie, a następnie łańcuch jest automatycznie przekształcany w liczbę, aby ustawić wartość zmiennej:
tw.local.variable = "123.40"
totalDigits
i fractionDigits
w schemacie XML, należy ustawić opcje konfiguracyjne, jak to pokazano w następującej tabeli:Ustawienie | Typ |
---|---|
precision-validation-on-server-enabled |
Prawda |
precision-validation-strip-trailing-zeros |
Prawda |
precision-validation-type |
lessOrEquals |
scale-validation-strip-trailing-zeros |
Prawda |
scale-validation-type |
lessOrEquals |
- 123.45
- 12.34
- 123.4
- 123
- 1234,56 (nieprawidłowa precyzja: 6 zamiast wartości maksymalnej 5)
- 12,345 (nieprawidłowa skala: 3 zamiast wartości maksymalnej 2)
Obliczenia liczbowe w skryptach
Kodu JavaScript można użyć do programu w ramach kroku procesu lub usługi. Do przechowywania wartości liczbowych dla zmiennych używana jest podwójna precyzja.
Podczas wykonywania obliczeń w skryptach należy zachować ostrożność w kwestii limitów związanych z precyzją. Na przykład w przypadku operacji dodawania 1000,06 + 0,01 matematycznie poprawnym wynikiem jest 1000,07. Jednak w przypadku dodawania tych liczb w języku JavaScript wynikiem tej operacji jest 1000,0699999999999.
Jeśli wymagane są obliczenia poprawne matematycznie, należy je wykonać poza kodem JavaScript. Do wykonania tych obliczeń z pełną precyzją w programie Java można na przykład użyć klas BigDecimal i BigInteger. Jeśli konieczne jest zapisanie wyniku o pełnej precyzji w zmiennej procesu lub usługi, można sformatować liczbę jako łańcuch i użyć dla niej łańcuchowego typu danych.
NaN
lub Infinity
nie może być zapisana w bazie danych dla zmiennej procesu, która jest widoczna w Workplace. Jeśli obliczasz wartość takiej zmiennej, należy upewnić się, że
wynikiem nie jest wartość NaN
(wartość nieokreślona) ani Infinity
(nieskończoność). W przeciwnym razie w pliku SystemOut.log zostanie zapisany błąd.