Różnice między wybraną wersją a wersją aktualną.
opis_plikow_xml_workflow [2015/10/20 11:08] marcin |
opis_plikow_xml_workflow [2015/10/20 11:35] (aktualna) marcin |
||
---|---|---|---|
Linia 92: | Linia 92: | ||
<activiti:formProperty id="ID:dw_1;TYPE:FIRMATIC_USER;ARGS:DW:TRUE;" name="DW PT" type="string" variable="dw_1" required="false" writable="true" default="user:b" /> | <activiti:formProperty id="ID:dw_1;TYPE:FIRMATIC_USER;ARGS:DW:TRUE;" name="DW PT" type="string" variable="dw_1" required="false" writable="true" default="user:b" /> | ||
</code> | </code> | ||
+ | * DW:TRUE - oznacza, że pole jest do wiadomości | ||
+ | * ARGS:{DW:TRUE, INNER_LIST:szef} - można również zdefiniować listę z której wybiera się pracowników | ||
== Pole wyboru użytkownika ze wskazaniem grupy oraz z wartością domyślną == | == Pole wyboru użytkownika ze wskazaniem grupy oraz z wartością domyślną == | ||
Linia 131: | Linia 133: | ||
* REQUIRED_IF_EXPR - pole to będzie wymagane jeżeli zostanie spełnione wyrażenie | * REQUIRED_IF_EXPR - pole to będzie wymagane jeżeli zostanie spełnione wyrażenie | ||
+ | == Wartości domyślne w polach z użytkownikami == | ||
+ | * default="list:szef" - domyślnie lista szef (= wszyscy pracownicy z tej listy) | ||
+ | * default="user:b" - domyślnie tylko jeden pracownik | ||
+ | |||
+ | ===== Przepływy i warunki ===== | ||
+ | Ogólnie o przepływach i warunkach należy przeczytać w dokumentacji do Activiti. | ||
+ | |||
+ | W **startEvent** lub **userTask** można zdefiniować pole logiczne lub enum które będzie użyte w sterowaniu przepływem. | ||
+ | |||
+ | ==== Przepływ po zmiennej logicznej ==== | ||
+ | Najpierw w **userTask** definiujemy zmienną logiczną: | ||
+ | <code xml> | ||
+ | <activiti:formProperty id="ID:is_claim_valid;" name="Czy reklamacja zasadna?" type="boolean" variable="is_claim_valid" /> | ||
+ | </code> | ||
+ | * variable="is_claim_valid" - pozwala na odnoszenie się do tej zmiennej w innych punktach xml-a | ||
+ | Następnie możemy zdefiniować warunek: | ||
+ | <code xml> | ||
+ | <sequenceFlow sourceRef="do_work" targetRef="after_worker_decision" /> | ||
+ | | ||
+ | <exclusiveGateway id="after_worker_decision" /> | ||
+ | <sequenceFlow sourceRef="after_worker_decision" targetRef="claim_denied_work"> | ||
+ | <conditionExpression xsi:type="tFormalExpression">${is_claim_valid == 'false'}</conditionExpression> | ||
+ | </sequenceFlow> | ||
+ | | ||
+ | <sequenceFlow sourceRef="after_worker_decision" targetRef="claim_accept_work"> | ||
+ | <conditionExpression xsi:type="tFormalExpression">${is_claim_valid == 'true'}</conditionExpression> | ||
+ | </sequenceFlow> | ||
+ | </code> | ||
+ | |||
+ | ==== Przepływ po zmiennej enum ==== | ||
+ | Najpierw w **userTask** definiujemy zmienną enum: | ||
+ | <code xml> | ||
+ | <activiti:formProperty id="ID:is_to_board_approval;DEFAULT:;" name="Czy skierować do zarządu?" type="enum" required="true" variable="is_to_board_approval"> | ||
+ | <activiti:value id="toBoard" name="Skierować do zarządu (ostateczne zatwierdzenie)" /> | ||
+ | <activiti:value id="sendToWorker" name="Do kolejnej osoby (opis pozycji)" /> | ||
+ | </activiti:formProperty> | ||
+ | </code> | ||
+ | * variable="is_to_board_approval" | ||
+ | Następnie możemy zdefiniować warunek: | ||
+ | <code xml> | ||
+ | <sequenceFlow sourceRef="describe_invoice" targetRef="after_describe_decision" /> | ||
+ | <exclusiveGateway id="after_describe_decision" default="after_describe_decision_flow3" /> | ||
+ | |||
+ | <!-- do zatwierdzenia do zarządu --> | ||
+ | <sequenceFlow id="after_describe_decision_flow1" sourceRef="after_describe_decision" targetRef="board_approval"> | ||
+ | <conditionExpression xsi:type="tFormalExpression">${is_to_board_approval == 'toBoard'}</conditionExpression> | ||
+ | </sequenceFlow> | ||
+ | |||
+ | <!-- do kolejnego pracownika --> | ||
+ | <sequenceFlow id="after_describe_decision_flow3" sourceRef="after_describe_decision" targetRef="describe_invoice"> | ||
+ | </sequenceFlow> | ||
+ | </code> | ||
+ | * z uwagi na default="after_describe_decision_flow3", nie trzeba definiować warunku przepływu w <sequenceFlow id="after_describe_decision_flow3" |