Typy zmiennych

Istnieje możliwość korzystania z typów zmiennych udostępnianych przez systemowe biblioteki narzędziowe, na przykład bibliotekę narzędziową Dane systemowe lub utworzenia niestandardowych obiektów biznesowych, w zależności od wymagań dotyczących danych biznesowych zawartych w procesie.

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).
Ta tabela zawiera więcej informacji na temat podstawowych obiektów biznesowych udostępnianych w systemowych bibliotekach narzędziowych.
Tabela 1. Udostępnione typy podstawowe
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.

W poniższym przykładzie przedstawiono, w jaki sposób można ustawić wartość precyzji jako 5 i wartość skali 2 dla typu zmiennej.
Jeśli dla właściwości 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
Następujące wartości są niepoprawne:
  • 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"

Aby użyć ustawień precyzji i skali jako ich odpowiedników totalDigits i fractionDigits w schemacie XML, należy ustawić opcje konfiguracyjne, jak to pokazano w następującej tabeli:
Tabela 3. Odpowiednik ustawień sprawdzania poprawności precyzji i skali dla klas totalDigits i fractionDigits schematu XML
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
Ten sam typ zmiennej, który został użyty w poprzednim przykładzie, traktuje następujące wartości jako poprawne:
  • 123.45
  • 12.34
  • 123.4
  • 123
Następujące wartości są nadal niepoprawne:
  • 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.

Ograniczenie: Wartość 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.