Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tok obchodního procesu umožňuje vytvářet účinnější a efektivnější obchodní procesy pro prodej, poskytování služeb a jiné účely. Vytváří vizualizaci obchodního procesu tím, že do horní části formulářů tabulky umístí speciální ovládací prvky. Uživatelé jsou provázeni různými fázemi procesů prodeje, marketingu nebo poskytování služeb až k dokončení. Každý proces podporuje několik fází a kroků. Kroky můžete přidat nebo odebrat, změnit pořadí fází nebo do toku obchodního procesu přidat nové tabulky.
Vůči stejnému řádku tabulky se mohou souběžně spustit různé instance toku obchodního procesu. Uživatelé mohou přepínat mezi souběžnými instancemi obchodních procesů a pokračovat v práci v aktuální fázi procesu.
Toto téma obsahuje informace o tom, jak s toky obchodních procesů pracovat prostřednictvím programu.
Note
Při práci s toky obchodních procesů nemusíte psát kód. Informace o vytváření a správě toků obchodních procesů pomocí uživatelského rozhraní najdete v článku Přehled toků obchodního procesu.
Předpoklady pro tok obchodního procesu
Toku obchodního procesu se mohou účastnit vlastní tabulky a tabulky s aktualizovanými formuláři uživatelského rozhraní. Tabulky s aktualizovaným uživatelským rozhraním mají vlastnost IsAIRUpdated nastavenou na true.
Pokud chcete u tabulky povolit tok obchodního procesu, nastavte vlastnost IsBusinessProcessEnabled na true.
Important
Povolení u tabulky tok obchodního procesu je jednosměrný proces. Nelze ho vrátit zpět.
Definování toku obchodního procesu
K definování toku obchodního procesu se používá vizuální návrhář toků obchodních procesů. Další informace: Vytvoření toku obchodního procesu
Řádek toku obchodního procesu se standardně vytvoří ve stavu Draft.
Definice toku obchodního procesu je uložená v tabulce workflow a informace o fázi toku obchodního procesu jsou uložené v tabulce processstage.
Aktivovat tok obchodního procesu
Před použitím musíte tok procesu aktivovat. Abyste ho mohli aktivovat, musíte mít oprávnění prvActivateBusinessProcessFlow k tabulce Workflow. Pomocí zprávy UpdateRequest nastavte stav řádku tabulky Workflow na Activated. Další informace: Provádění specializovaných operací pomocí aktualizace
Note
K aktivaci toku obchodního procesu můžete použít také návrhář toků obchodních procesů.
Tabulka toku obchodního procesu
Jakmile definici toku obchodního procesu aktivujete změnou stavu odpovídajícího řádku tabulky Workflow nebo pomocí návrháře toků obchodních procesů, vytvoří se pro uložení aktivovaných instancí tohoto toku obchodního procesu automaticky vlastní tabulka s následujícím názvem: "<activesolutionprefix> _ <uniquename>", přičemž jedinečný_název je odvozený od zadaného názvu.
Pokud jste například jako název definice toku obchodního procesu zadali „Můj vlastní TOP“ a pro aktivní řešení používáte výchozího vydavatele (nový), bude mít vlastní tabulka vytvořená pro uložení instancí procesu název „nový_můjvlastnítop“.
Pokud není hodnota uniquename pro definici toku obchodního procesu dostupná (například když byl tok obchodního procesu naimportován jako součást řešení ze starší verze), bude mít vlastní tabulka výchozí název \<activesolutionprefix>_bpf_<GUID_BPF_Definition>:
Important
Ukázkové řádky toků obchodních procesů používají k ukládání odpovídajících řádků instancí toků obchodních procesů systémové tabulky.
Všechny nové definice toků obchodních procesů, které vytvoříte, ale budou k ukládání řádků svých instancí používat vlastní tabulky, jak bylo vysvětleno výše.
Název tabulky obchodního procesu můžete načíst některým z následujících způsobů:
Pomocí uživatelského rozhraní: S využitím uživatelského rozhraní pro vlastní nastavení přejděte k tabulce toku obchodního procesu:

Pomocí rozhraní Web API: Použijte následující žádost:
Žádost
GET [Organization URI]/api/data/v9.0/workflows?$filter=name eq 'My Custom BPF'&$select=uniquename HTTP/1.1Response
{ "@odata.context":"[Organization URI]/api/data/v9.0/$metadata#workflows(uniquename)", "value":[ { "@odata.etag":"W/\"1084677\"", "uniquename":"new_mycustombpf", "workflowid":"2669927e-8ad6-4f95-8a9a-f1008af6956f" } ] }Pomocí služby organizace: Použijte následující ukázku kódu:
QueryExpression query = new QueryExpression { EntityName = "workflow", ColumnSet = new ColumnSet("uniquename"), Criteria = new FilterExpression { Conditions = { new ConditionExpression { ColumnName = "name", Operator = ConditionOperator.Equal, Values = { "My Custom BPF" } } } } }; Workflow Bpf = (Workflow)_serviceProxy.RetrieveMultiple(query).Entities[0];
Note
Vlastnost IsBPFEntity má pro tabulky toku obchodního procesu hodnotu true. Spuštěním následující žádosti rozhraní Web API můžete načíst všechny tabulky toku obchodního procesu ve vaší instanci:
GET [Organization URI]/api/data/v9.0/EntityDefinitions?$select=SchemaName,LogicalName,DisplayName&$filter=IsBPFEntity eq true HTTP/1.1
Správa zabezpečení pro toky obchodních procesů
Vlastní tabulka, která se automaticky vytvoří při aktivaci toku obchodního procesu, aby uchovávala instance toku obchodního procesu, odpovídá standardnímu modelu zabezpečení pro libovolnou jinou vlastní tabulku v Microsoft Dataverse. Z toho vyplývá, že oprávnění udělená v těchto tabulkách definují oprávnění modulu runtime pro uživatele pro toky obchodních procesů.
Vlastní tabulka toku obchodního procesu má obor organizace. Běžná oprávnění k vytvoření, načtení, aktualizaci a odstranění v této tabulce definují oprávnění, která by uživatelé měli na základě svých přiřazených rolí. Po vytvoření vlastní tabulky toku obchodního procesu k ní mají při výchozím nastavení přístup jenom role zabezpečení Správce systému a Úpravce systému. Dalším požadovaným rolím zabezpečení musíte oprávnění k nové tabulce toku obchodního procesu (například Můj vlastní TOP) explicitně udělit.

Vytvoření, načtení, aktualizace a odstranění řádků tabulky toku obchodního procesu (instancí procesu)
Vlastní tabulka, která se automaticky vytvoří při aktivaci definice toku obchodního procesu, uchovává všechny instance procesu pro definici toku obchodního procesu. Vlastní tabulka podporuje standardní programové vytváření a správu řádků (instancí procesu) pomocí rozhraní Web API a koncového bodu CRM 2011.
Important
Přepnutí na jinou instanci procesu pro řádek tabulky se podporuje jenom prostřednictvím uživatelského rozhraní (klienta) nebo programově pomocí informací dostupných v této části. Není už možné programově přepínat procesy (jako aktivní instanci procesu nastavit jiný tok obchodního procesu) pro cílový řádek tabulky pomocí zprávy SetProcess (SetProcess Action nebo SetProcessRequest).
Podívejme se na následující příklad, kde máme tok obchodního procesu mezi tabulkami „Můj vlastní TOP“, který obsahuje 3 fáze: F1: Obchodní vztah, F2: Obchodní vztah a F3: Kontakt.

Načtení všech řádků (instancí) pro tabulku toku obchodního procesu
Pokud je název vaší tabulky toku obchodního procesu „new_mycustombpf“, použijte k načtení všech řádků (instancí procesu) pro danou tabulku toku obchodního procesu následující dotaz:
GET [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1
V tomto okamžiku nemusíte v odpovědi získat žádné instance, protože neexistují. Spusťte tuto žádost až po vytvoření instance definice toku obchodního procesu dále v tomto tématu.
Note
Pokud chcete vědět, jak načíst název tabulky toku obchodního procesu, přečtěte si dřívější oddíl Tabulka toku obchodního procesu.
Vytvoření řádku tabulky toku obchodního procesu (instance procesu)
Pokud chcete u řádku tabulky přepnout do jiného toku obchodního procesu bez použití uživatelského rozhraní, vytvořte řádek tabulky toku obchodního procesu programově.
Při vytváření řádku tabulky toku obchodního procesu musíte zadat následující hodnoty:
Nastavením jednohodnotové navigační vlastnosti pomocí anotace
@odata.bindpřidružte řádek tabulky toku obchodního procesu k primárnímu řádku tabulky. K nalezení názvu navigační vlastnosti, která odkazuje na primární řádek tabulky pro definici toku obchodního procesu, použijte dokument CSDL $metadata.Nastavením jednohodnotové navigační vlastnosti pomocí anotace
@odata.bindpřidružte řádek tabulky toku obchodního procesu k platné fázi zadané v definici toku obchodní procesu. K nalezení názvu navigační vlastnosti (zpravidlaactivestageid), která odkazuje na řádek fáze pro definici toku obchodního procesu, použijte dokument CSDL $metadata.Za předpokladu, že ID definice toku obchodního procesu je 2669927e-8ad6-4f95-8a9a-f1008af6956f, můžete pomocí následující žádosti rozhraní Web API také načíst informace o všech fázích pro definici toku obchodního procesu:
Žádost
GET [Organization URI]/api/data/v9.0/processstages?$select=stagename&$filter=processid/workflowid eq 2669927e-8ad6-4f95-8a9a-f1008af6956f HTTP/1.1Response
{ "@odata.context": "[Organization URI]/api/data/v9.0/$metadata#processstages(stagename)", "value": [ { "@odata.etag": "W/\"858240\"", "stagename": "S1", "processstageid": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b" }, { "@odata.etag": "W/\"858239\"", "stagename": "S3", "processstageid": "a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a" }, { "@odata.etag": "W/\"858238\"", "stagename": "S2", "processstageid": "19a11fc0-3398-4214-8522-cb2a97f66e4b" } ] }
Pak pomocí následující žádosti vytvořte instanci definice toku obchodního procesu pro řádek obchodního vztahu (ID=a176be9e-9a68-e711-80e7-00155d41e206) a aktivní fázi nastavenou jako první fázi instance procesu S1 (ID=9a9185f5-b75b-4bbb-9c2b-a6626683b99b):
Žádost
POST [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"bpf_accountid@odata.bind": "/accounts(a176be9e-9a68-e711-80e7-00155d41e206)",
"activestageid@odata.bind": "/processstages(9a9185f5-b75b-4bbb-9c2b-a6626683b99b)"
}
Response
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.0/new_mycustombpfs(cc3f721b-026e-e811-80ff-00155d513100)
Pokud chcete vytvořit instanci definice toku obchodního procesu s aktivní fází nastavenou na jinou než první fázi, musíte v žádosti uvést také traversedpath. Procházená cesta je čárkami oddělený řetězec identifikátorů fází procesu, které představují navštívené fáze instance toku obchodního procesu. Následující požadavek vytvoří instanci pro řádek obchodního vztahu (ID = 679b2464-71b5-e711-80f5-00155d513100) a aktivní stupeň nastavený jako druhý stupeň, S2 (ID = 19a11fc0-3398-4214-8522-cb2a97f66e4b).
POST [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"bpf_accountid@odata.bind": "/accounts(679b2464-71b5-e711-80f5-00155d513100)",
"activestageid@odata.bind": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
"traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}
Aktualizace řádku tabulky toku obchodního procesu (instance procesu)
Instanci procesu můžete aktualizovat kvůli přechodu do další nebo předchozí fáze, opuštění instance procesu, opětovné aktivaci instance procesu nebo dokončení instance procesu.
Přechod mezi fázemi
Pokud chcete přejít do jiné fáze, musíte aktualizací řádku instance procesu změnit ID aktivní fáze a odpovídajícím způsobem aktualizovat procházenou cestu. Při aktualizaci instance toku procesu musíte přejít jen do další nebo předchozí fáze.
K přechodu mezi fázemi budete potřebovat ID instance toku obchodního procesu, kterou chcete aktualizovat. Pokud chcete načíst všechny instance toku obchodního procesu, přečtěte si část Načtení všech řádků (instancí) tabulky toku obchodního procesu výše.
Za předpokladu, že ID instance procesu, kterou chcete aktualizovat, je dc2ab599-306d-e811-80ff-00155d513100, použijte k aktualizaci aktivní fáze z S1 na S2 následující žádost:
PATCH [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"activestageid@odata.bind": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
"traversedpath": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}
Změna stavu instance procesu: přerušení, opětovná aktivace nebo dokončení
Instance procesu může mít jeden z následujících stavů: Aktivní, Dokončeno nebo Přerušeno. Tento stav je určený následujícími sloupci v řádku instance procesu:
statecode: Zobrazuje stav instance procesu.
Hodnota Label 0 Aktivní 1 Neaktivní statuscode: Zobrazuje informace o stavu instance procesu.
Hodnota Label 1 Aktivní 2 Dokončeno 3 Přerušeno
Pokud tedy chcete přerušit instanci procesu, použijte následující žádost k nastavení hodnot statecode a statuscode:
PATCH [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"statecode" : "1",
"statuscode": "3"
}
Note
Instanci procesu můžete přerušit v jakékoli fázi.
Podobně pokud chcete instanci procesu znovu aktivovat, nahraďte hodnoty statecode a statuscode ve výše uvedeném kódu hodnotami 0 a 1.
Pokud chcete nakonec stav instance procesu nastavit na Dokončeno, což je možné jen v poslední fázi instance procesu, nahraďte hodnoty statecode a statuscode ve výše uvedeném kódu hodnotami 0 a 2.
Navigace mezi tabulkami
Kvůli přechodu mezi tabulkami v tomto příkladu musíte nastavit aktivní fázi instance procesu na poslední fázi S3 (ID=a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a), aktualizovat příslušným způsobem procházenou cestu a nastavit řádek kontaktu jako primární řádek tabulky podle definice toku obchodního procesu.
PATCH [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"activestageid@odata.bind": "/processstages(a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a)",
"traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b,a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a",
"bpf_contactid@odata.bind": "/contacts(0e3f10b0-da33-e811-80fc-00155d513100)"
}
Odstranění řádku tabulky toku obchodního procesu (instance procesu)
Použijte následující žádost rozhraní Web API:
Žádost
DELETE [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Response
Pokud tento řádek existuje, obdržíte normální odpověď se stavem 204, která udává, že odstranění bylo úspěšné. Pokud se tato tabulka nenajde, obdržíte odpověď se stavem 404.
Použití zpráv RetrieveProcessInstances a RetrieveActivePath
Zpráva RetrieveProcessInstances (RetrieveActivePath Function nebo RetrieveProcessInstancesRequest) se používá k načtení všech instancí řádku tabulky toku obchodního procesu pro záznam entity napříč všemi definicemi obchodních procesů. Instance toku obchodního procesu vrácené pro určitou tabulku jsou seřazené podle sloupce modifiedon této instance. Například prvním řádkem ve vrácené kolekci bude naposledy upravená instance toku obchodního procesu. Naposledy upravená instance toku obchodního procesu je ta, která je aktivní v uživatelském rozhraní řádku tabulky.
V každém řádku instance toku obchodního procesu vráceném pro řádek tabulky jako výsledek použití zprávy RetrieveProcessInstances je v sloupce processstageid uložené ID aktivní fáze, které lze použít k nalezení aktivní fáze a následnému přechodu do předchozí nebo další fáze. Za tímto účelem musíte nejprve pomocí zprávy RetrieveActivePath (RetrieveActivePath Function nebo RetrieveActivePathRequest) najít aktivní cestu instance toku obchodního procesu a fáze dostupné v této instanci toku procesu.
Jakmile máte informace o aktivní fázi a aktivní cestě instance toku obchodního procesu, můžete je použít k přechodu do předchozí nebo další fáze v aktivní cestě. Přechod mezi fázemi směrem vpřed se musí provádět postupně, což znamená, že byste měli přejít jen do další fáze v aktivní cestě.
Kompletní ukázku kódu, která znázorňuje použití těchto dvou metod a přechod mezi fázemi pomocí organizační služby, najdete v článkuUkázka: Práce s toky obchodních procesů.
Aplikování toku obchodního procesu při vytváření řádku tabulky
Tato část obsahuje informace o výchozím chování při automatickém aplikování toků obchodních procesů na nové řádky tabulky vytvořené v řešení Dataverse Customer Engagement a o tom, jak přepisem tohoto chování aplikovat na nové řádky tabulky toku obchodního procesu podle vašeho výběru.
U tabulky, pro kterou je definovaných více toků obchodních procesů, aplikuje systém na nový řádek tabulky tok obchodního procesu podle následující vícekrokové logiky:
- Na základě sloupce Workflow.PrimaryEntity řádků tabulky toků obchodních procesů se identifikují všechny řádky definice obchodních procesů.
- Identifikují se definice toků obchodních procesů, ke kterým má aktuální uživatel přístup. Informace o určení a správě přístupu k toku obchodního procesu popisuje část Správa zabezpečení toků obchodních procesů výše v tomto tématu.
- Všechny definice toků obchodních procesů v systému se řídí globálním pořadím podle tabulky. Pořadí toku obchodního procesu je uložené ve sloupci Workflow.ProcessOrder. Definice toků obchodních procesů pro tabulku jsou seřazené podle tohoto pořadí, přičemž se vybere ta s nejnižší hodnotou pořadí.
- Pokud je řádek tabulky vytvořený z obchodní aplikace (modulu aplikace), se pomocí další úrovně filtrování nakonec vybere tok obchodního procesu, který se má automaticky aplikovat na nový řádek tabulky. Při práci v aplikaci mohou uživatelé používat jen relevantní tabulky, toky obchodních procesů, zobrazení a formuláře, ke kterým mají přístup na základě rolí přiřazených této obchodní aplikaci.
- Pokud obchodní aplikace neobsahuje žádný tok obchodního procesu, aplikuje se tok obchodního procesu podle vysvětlení do kroku 3.
- Pokud obchodní aplikace obsahuje jeden nebo více toků obchodních procesů, jsou použitelné jen toky obchodních procesů existující v této aplikaci. Když v takovém případě uživatel pracuje v kontextu obchodní aplikace, vyfiltrují se v seznamu toků obchodních procesů z kroku 3 dále toky, které jsou součástí obchodní aplikace existující v modulu aplikace a seřadí se na základě pořadí procesů.
- Pokud pro tuto tabulku nebo tabulku, ke které má uživatel přístup, není v obchodní aplikaci dostupný žádný tok obchodního procesu, neaplikuje se na nový řádek tabulky žádný tok obchodního procesu.
Výchozí logiku automatického aplikování toků obchodních procesů na nové řádky tabulky můžete přepsat. Za tímto účelem nastavte při vytváření nového řádku tabulky sloupec ProcessId tabulky na jednu z následujících hodnot:
- Nastavením na Guid.Empty přeskočíte nastavení toku obchodního procesu pro nové řádky tabulky. To můžete využít, když hromadně vytváříte řádky tabulky, ale nechcete, aby se na ně aplikoval tok obchodního procesu.
- Nastavte tuto hodnotu na konkrétní tabulku toku obchodního procesu (jako odkaz na tabulku). V takovém případě aplikuje systém místo výchozí logiky tento zadaný tok obchodního procesu.
Pokud při vytváření nového řádku tabulky nenastavíte hodnotu sloupce ProcessId, aplikuje systém výchozí logiku, jak bylo vysvětleno výše.
Note
Přepsání výchozí logiky automatického aplikování toků obchodních procesů na nové řádky tabulky je podporované jen prostřednictvím programu. Nelze to provést pomocí uživatelského rozhraní.
Starší sloupce související s procesem v tabulkách
Zastaralé procesní sloupce (například ProcessId, StageId a TraversedPath) u tabulek s podporou toků obchodních procesů už jsou vyřazené. Manipulace s těmito zastaralými sloupci u cílových řádků tabulky nezaručuje konzistenci stavu toku obchodního procesu a nepatří mezi podporované scénáře. Doporučeným způsobem je použít sloupce tabulky toku obchodního procesu, jak je vysvětleno výše v části Vytvoření, načtení, aktualizace a odstranění řádků tabulky toku obchodního procesů (instancí procesů).
Jedinou výjimkou je programová změna sloupce ProcessId při vytváření řádku tabulky, kterou se přepíše výchozí aplikování toku obchodního procesu na nový řádek, jak je popsáno v předchozí části Aplikování toku obchodního procesu při vytváření řádku tabulky.
Podpora programování na straně klienta u toků obchodních procesů
K interakci s toky obchodních procesů ve formulářových skriptech můžete použít objekt na straně klienta. Toky obchodních procesů aktivují události na straně klienta pokaždé, když se na řádek aplikuje proces, dojde ke změně fáze nebo se stav záznamu změní na Active, Finished nebo Aborted. Další informace: formContext.data.process (Referenční informace k rozhraní API klienta)
Maximální počet procesů, fází a kroků
Výchozí hodnota maximálního počtu aktivovaných toků obchodních procesů je 10 na každou tabulku. Pomocí sloupce Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity můžete zadat jinou hodnotu. Pokud je ale tato hodnota větší než 10, můžete při přepínání procesů nebo otevření řádku s přiřazeným tokem obchodního procesu zpozorovat snížení výkonu systému. To může být obzvláště patrné, pokud procesy obsluhují více tabulek.
Následující nastavení nelze upravit:
Maximální počet fází na tabulku v procesu je 30.
Maximální počet kroků v jednotlivých fázích je 30.
Maximální počet tabulek, které se mohou účastnit toku procesu, je 5.
Note
Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)
Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).