Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Określenie zakresu i widoczności aktywności, podobnie jak w przypadku obiektu, to zdolność innych obiektów lub aktywności do uzyskiwania dostępu do członków aktywności. Definicja działania jest wykonywana przez następujące implementacje:
Określanie elementów członkowskich (Argument, obiektów Variable i działań podrzędnych ActivityDelegate), które aktywność udostępnia swoim użytkownikom.
Implementowanie logiki wykonywania działania
Implementacja może obejmować członków, którzy nie są dostępni dla użytkowników aktywności, ale są raczej szczegółami implementacji. Podobnie jak w przypadku definicji typu, model aktywności umożliwia autorowi określenie widoczności członu aktywności w stosunku do definiowanej aktywności. Ta widoczność określa aspekty użycia elementów członkowskich, takie jak określanie zakresu danych.
Zakres
Oprócz określania zakresu danych widoczność modelu aktywności może ograniczyć dostęp do innych aspektów aktywności, takich jak walidacja, debugowanie, śledzenie lub trasowanie. Właściwości wykonywania wykorzystują widoczność i zakres w celu ograniczenia charakterystyk działania do określonego zakresu definicji. Pomocnicze korzenie używają widoczności i ustalania zakresu, aby ograniczyć stan przechwycony przez CompensableActivity do zakresu definicji, w którym używane są działania kompensacyjne.
Definicja i użycie
Przepływ pracy jest tworzony przez opracowywanie nowych aktywności poprzez dziedziczenie z bazowych klas aktywności oraz przez wykorzystanie aktywności z biblioteki aktywnościBuilt-In. Aby można było użyć działania, autor działania musi skonfigurować widoczność każdego składnika jego definicji.
Uczestnicy działań
Model działania definiuje argumenty, zmienne, delegaty i działania podrzędne udostępniane użytkownikom przez działanie. Każdy z tych członków można zadeklarować jako public
lub private
. Publiczni członkowie są konfigurowani przez konsumenta aktywności, podczas gdy private
członkowie używają implementacji ustalonej przez autora aktywności. Reguły widoczności dla określania zakresu danych są następujące:
Członkowie publiczni oraz uczestnicy działań publicznych mogą odwoływać się do zmiennych publicznych.
Prywatne elementy członkowskie i publiczne elementy członkowskie działań dzieci mogą odwoływać się do argumentów i zmiennych prywatnych.
Element, który może być ustawiony przez konsumenta działania, nigdy nie powinien być prywatny.
Opracowywanie modeli
Działania niestandardowe są definiowane przy użyciu funkcji NativeActivity, , ActivityCodeActivitylub AsyncCodeActivity. Działania pochodzące z tych klas mogą ujawniać różne typy składowych z różną widocznością.
NativeActivity
Działania pochodzące z NativeActivity mają zachowanie napisane w kodzie imperatywnym i można je opcjonalnie zdefiniować przy użyciu istniejących aktywności. Wyprowadzanie działań z NativeActivity przyznaje dostęp do wszystkich funkcji udostępnianych przez środowisko uruchomieniowe. Dowolnego członka takiej aktywności można zdefiniować przy użyciu widoczności publicznej lub prywatnej, z wyjątkiem argumentów, które można zadeklarować tylko jako public
.
Członkowie klas pochodnych są deklarowani w środowisku uruchomieniowym przy użyciu struktury NativeActivity, która jest przekazywana do metody NativeActivityMetadata.
Aktywność
Działania utworzone za pomocą Activity mają zachowanie, które zostało zaprojektowane ściśle przez komponowanie innych działań. Klasa Activity ma jedno działanie podrzędne implementacji uzyskane przez środowisko uruchomieniowe przy użyciu polecenia Implementation. Działanie pochodzące z Activity może definiować argumenty publiczne, zmienne publiczne, zaimportowane Delegaty działania i zaimportowane Aktywności.
Zaimportowane Delegate’y i Działania są deklarowane jako publiczne elementy podrzędne działania, ale nie mogą być bezpośrednio zaprogramowane przez działanie. Te informacje są używane podczas walidacji, aby uniknąć uruchamiania weryfikacji na poziomie nadrzędnym w lokalizacjach, w których działanie nigdy nie zostanie wykonane. Ponadto zaimportowane elementy podrzędne, podobnie jak publiczne dzieci, mogą być przywołyne i zaplanowane przez implementację działania. Oznacza to, że działanie, które importuje inne działanie o nazwie Activity1, może zawierać w swojej implementacji element Sequence, który planuje działanie Activity1.
CodeActivity/ AsyncCodeActivity
Ta klasa bazowa jest używana do tworzenia zachowania w kodzie imperatywnego. Działania pochodzące z tej klasy mają dostęp tylko do uwidacznianych argumentów. Oznacza to, że jedynymi elementami, które te działania mogą uwidocznić, są publiczne argumenty. Do tych działań nie mają zastosowania żadne inne członkowie ani poziomy dostępu.
Podsumowanie widoczności
Poniższa tabela zawiera podsumowanie informacji we wcześniejszej części tej sekcji.
Typ członka | NativeActivity | Aktywność | CodeActivity/ AsyncCodeActivity |
---|---|---|---|
Argumenty (w programowaniu) | Publiczna/prywatna | Publiczność | nie dotyczy |
Zmienne | Publiczna/prywatna | Publiczność | nie dotyczy |
Zajęcia dla dzieci | Publiczna/prywatna | Publiczny, jedno stałe prywatne dziecko zdefiniowane w Implementacji. | nie dotyczy |
ActivityDelegates | Publiczna/prywatna | Publiczność | nie dotyczy |
Ogólnie rzecz biorąc, element, którego konsument aktywności nie może skonfigurować, nie powinien być publiczny.
Właściwości wykonawcze
W niektórych scenariuszach warto ograniczyć zakres określonej właściwości wykonywania do publicznych elementów podrzędnych działania. Kolekcja ExecutionProperties zapewnia tę możliwość za pomocą Add metody . Ta metoda ma parametr logiczny wskazujący, czy określona właściwość jest ograniczona do wszystkich elementów podrzędnych, czy tylko tych, które są publiczne. Jeśli ten parametr ma wartość true
, właściwość będzie widoczna tylko dla publicznych członków oraz dla publicznych członków ich elementów podrzędnych.
Pomocnicze korzenie
Pomocniczy korzeń to wewnętrzny mechanizm środowiska uruchomieniowego do zarządzania stanem działań kompensacyjnych. Po zakończeniu CompensableActivity działania jego stan nie jest natychmiast czyszczony. Zamiast tego stan jest utrzymywany przez środowisko uruchomieniowe w pomocniczym zasobie bazowym do momentu zakończenia procesu kompensacji. Środowiska lokalizacji przechwycone z pomocniczym katalogiem głównym odpowiadają zakresowi definicji, w którym jest używane działanie Compensable.