Sposób przekazywania zmiennych między komponentami procesu w czasie wykonywania
Zmienne przechwytują dane biznesowe. Jeśli dane biznesowe mają typ prosty (na przykład łańcuch), wówczas zmienna zawiera wartość danych biznesowych. Jeśli dane biznesowe są typu złożonego, wówczas zmienna jest referencją do obiektu zawierającego wiele wartości.
| Zadzwoń | Przekazywane przez | ||
|---|---|---|---|
| Od | Do | Typ prosty | Właściwość sprawy, złożony obiekt biznesowy lub współużytkowany obiekt biznesowy |
| Działanie | Proces połączony | Wartość | Referencja (złożony obiekt biznesowy, współużytkowany obiekt biznesowy) |
| Działanie | Usługa personelu po stronie klienta | Wartość | Wartość (złożony obiekt biznesowy) Wartość z referencją (współużytkowany obiekt biznesowy) |
| Działanie | Inna usługa | Wartość | Wartość (złożony obiekt biznesowy) Wartość z referencją (współużytkowany obiekt biznesowy) |
| Usługa personelu po stronie klienta | Usługa zagnieżdżona | Wartość | Wartość (właściwość sprawy, złożony obiekt biznesowy) Wartość z referencją (współużytkowany obiekt biznesowy) |
| Inna usługa | Usługa zagnieżdżona | Wartość | Wartość (właściwość sprawy) Referencja (złożony obiekt biznesowy, współużytkowany obiekt biznesowy) |
Procesy i usługi mają odwołania do ich zmiennych. Gdy zmienne złożone są przekazywane z procesu do usługi, głęboka kopia tej zmiennej jest przesyłana z obszaru procesu do obszaru usługi, a usługa pobiera odwołanie do kopii. Podobnie, gdy zmienna złożona jest przekazywana z usługi do procesu, głęboka kopia zmiennej jest przesyłana z obszaru usługi do procesu, a proces pobiera odwołanie do kopii.
Gdy usługa zmienia wartości istniejącej zmiennej złożonej, zmienione wartości są przekazywane z powrotem do procesu, zastępując całą zmienną złożoną głęboką kopią z usługi. Jeśli zastąpiona zmienna została pierwotnie przekazana przez wartość z procesu zewnętrznego, procesy wewnętrzne i zewnętrzne nie mają już dostępu do tej samej zmiennej. Dlatego zmiany wprowadzone w procesie wewnętrznym nie są odzwierciedlane w procesie zewnętrznym.
- Zmienne przekazywane przez referencję
- Większość interakcji danych w procesie jest przekazywana przez referencję (z procesu do przetworzenia lub z usługi do usługi). Dlatego też w większości przypadków ten sam obiekt jest przekazywany z położenia do położenia. Zmiany tego obiektu występują na wszystkich poziomach.
- Zmienne przekazywane przez wartość
- Zmienne między procesami i usługami są przekazywane przez wartość. Gdy zmienna jest przekazywana przez wartość z procesu do usługi bazowej, zmiany wprowadzone do zmiennej w usłudze nie są widoczne w procesie wywołującej. Aby zmienne były widoczne dla elementu wywołującego, konieczne jest przekazanie ich z powrotem do niego jako danych wyjściowych.
- Zmienne przekazywane przez wartość z referencją
- W przypadku zmiennych, które mają być przekazywane przez wartość z
referencją, synchronizację obiektów biznesowych należy ustawić za pomocą metody
save lub ustawienia Automatycznie synchronizuj
współużytkowane obiekty biznesowe w sekcji Przegląd dla procesu lub usługi. Jeśli zmienna jest zdefiniowana jako wygenerowana przez system
zmienna folderu sprawy lub jako typ współużytkowanego obiektu
biznesowego, jej wartości są odświeżane ze składnicy danych.
Współużytkowane obiekty biznesowe są przekazywane przez wartość z referencją. To oznacza, że wprowadzane zmiany są zapisywane i propagowane do innych instancji działających z tymi samymi danymi. Ustawienie Automatycznie synchronizuj współużytkowane obiekty biznesowe musi być włączone w procesie lub usłudze, aby możliwe było automatyczne zapisywanie i synchronizowanie danych.
Obiekt współużytkowany może być na przykład przekazywany przez wartość z referencją z procesu do dwóch różnych usług. Proces i usługi zawierają osobne kopie obiektu biznesowego. Kiedy pierwsza usługa zostanie zakończona, wartości obiektu współużytkowanego zostaną automatycznie utrwalone w składnicy danych. Podczas uruchamiania drugiej usługi wartości obiektu współużytkowanego są automatycznie ładowane ze składnicy danych. Zatem mimo tego, że proces i dwie usługi odwołują się do oddzielnych obiektów, wartości tych obiektów są aktualizowane przez składnicę danych i usługi działają w oparciu o bieżące dane.
Więcej informacji na temat współużytkowanych obiektów biznesowych zawiera sekcja Tworzenie obiektów biznesowych.
- Przykład
- Proces zewnętrzny ma referencję tw.local.pair, która
wskazuje obiekt NameValuePair NVP1. Proces zewnętrzny
przekazuje referencję .pair do procesu wewnętrznego:
Zmiany jednego z tych procesów mają wpływ na drugi proces.Outer process -> NVP1 Inner process -> NVP1
Aby usługa modyfikowała zmienną najwyższego poziomu w procesie, należy użyć osadzonego skryptu serwera do przechowania wyniku usługi w zmiennej tymczasowej i skopiować elementy do oryginalnej zmiennej lub współużytkowanego obiektu biznesowego. Nadrzędny proces nie jest aktualizowany do czasu zakończenia działania procesu potomnego.
Wytyczne dotyczące przekazywania zmiennych
Z powodu sposobu obsługi zmiennych w czasie wykonywania należy postępować zgodnie z następującymi wytycznymi:
- Jeśli zmienna jest typu prostego, należy ją zadeklarować jako wejściową i wyjściową w połączonych procesach, usługach i usługach zagnieżdżonych.
- Jeśli zmienna wejściowa jest zmienną typu złożonego i jest przekazywana z procesu do usługi, zostanie przekazana jako wartość. Aby została zwrócona zaktualizowana wartość, należy również zadeklarować ją jako zmienną wyjściową. Jeśli typ złożony jest współużytkowanym obiektem biznesowym, nie trzeba zwracać go jako typu wyjściowego, ponieważ aktualizacje wprowadzane w usłudze staną się widoczne dla każdego, kto korzysta ze współużytkowanego obiektu biznesowego.
- Zawsze należy używać tej samej nazwy i tego samego typu dla zbioru zmiennych wejściowych i wyjściowych związanych z danymi przekazywanymi, przetwarzanymi i zwracanymi.