Článek: AN0001925Aktualizováno:: 03.10.2018
V Aktivitě Podmínka rozhodujeme, zda je určitý výraz pravdivý, a podle toho workflow dále pokračuje větví označenou jako Ano/Pravda nebo Ne/Nepravda.
Podmínku může tvořit jednoduchý výraz jako je tomu v prvním příkladě nebo podmínka může obsahovat víceřádkový skript zjišťující např. hodnoty z různých tříd. Ve druhém případě skript musí obsahovat příkaz return, za nímž následuje výraz, který je možné vyhodnotit jako Pravda/Nepravda.
Níže uvedené příklady jsou reálńě použity v řešeních Přístupová práva a Znalostní báze, které jsou k dispozici v balíčku ObjectGears s modely.
Porovnání s vlastností workflow
Následující skript zjistí, zda ve vlastnosti workflow 'application-gestor-approval' obsahuje hodnotu Ano/True.
Místo použití skriptu: Aktivita workflow Podmínka
OGWFActualRun.Property.GetBoolean( 'application-gestor-approval') == true;
Zjištění, zda existuje schvalovatel
Následující skript zjistí, zda je v záznamu, s nímž bylo workflow spuštěno, definován schvalovatel. Vrací Ano, pokud 'approver' existuje, a Ne, pokud neexistuje.
Místo použití skriptu: Aktivita workflow Podmínka
\\Přiřazení sloupce do proměnné.
var colApprover = OG.Column.GetByCode( OGWFActualRun.InputDataRow, 'approver');
\\Vrací True, pokud hodnota ve sloupci není null a False, pokud je null.
return OGWFActualRun.InputDataRow.GetPerson( colApprover .Id) != null;
Zjištění, zda jde o požadavek na smazání
Následující skript zjistí, zda požadavek (záznam, s nímž bylo workflow spuštěno) je označen ve sloupci 'request for deletion'. Vrací Ano, pokud je to takový požadavek, a Ne, pokud není.
Místo použití skriptu: Aktivita workflow Podmínka
\\Přiřazení sloupce do proměnné.
var colDel = OG.Column.GetByCode( OGWFActualRun.InputDataRow, 'request_for_deletion');
\\Vrací True, pokud hodnota ve sloupci je true a False, pokud ve sloupci není true.
return OGWFActualRun.InputDataRow.GetBoolean( colDel.Id) == true;
Zjištění, zda byl předchozí úkol schválen
Následující skript zjistí, zda byl úkol s kódem 'Article update' schválen. Vrací Ano, pokud byl schválen, a Ne, pokud nebyl. Po schválení je ve sloupci approval hodnota 1.
Místo použití skriptu: Aktivita workflow Podmínka
\\ Zjištění daného úkolu a sloupce
var task = OGWFActualRun.Tasks.GetTasksByActivityCode( 'Article update');
var colApp = OG.Column.GetByCode( task[0].DataRowParentId, 'approval');
var dr = OG.WorkflowSeq.GetDataRowFromTask(task[0]);
var id = dr.GetClassLink( colApp.Id);
return ( id != null && id == 1);
// 1 - approve
// 2 - reject