Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Všetky postupy sú uložené v Dataverse a na ich správu môžete použiť buď Dataverse SDK pre .NET, alebo webové API.
Tento článok sa zaoberá správou postupov zahrnutých na karte Riešenia v . Power Automate Správa postupov v časti Moje postupy v súčasnosti nie je podporovaná kódom.
Interakcia s API Dataverse
Dataverse poskytuje ekvivalentné možnosti pomocou buď sady SDK pre .NET, alebo webového rozhrania API. Dataverse
Ktorú metódu mám použiť?
Najlepšia metóda závisí od technológie projektu a vašich zručností.
Ak váš projekt používa .NET, odporúčame použiť SDK. Sada SDK zjednodušuje vývojársky proces tým, že poskytuje typovaný objektový model a metódy na autentifikáciu.
Viac informácií: Použite službu Organizácia
Ako sa pripojiť?
Spôsob pripojenia závisí od toho, či používate sadu SDK pre .NET alebo webové API. Dataverse
Pomocou SDK sa musíte pripojiť ku klientskej aplikácii, aby ste získali prístup k inštancii služby IOrganizationService. ...
IOrganizationService
je rozhranie, ktoré poskytuje metódy, ktoré môžete použiť na interakciu s Dataverse.
Ďalšie informácie:
Tabuľka pracovného postupu
Cloudové toky sú uložené v tabuľke Proces (Workflow) , ktorá je vo webovom API reprezentovaná ako typ entity workflow
Nasledujúca tabuľka popisuje dôležité stĺpce v tabuľke pracovného postupu:
Logický názov | Type | Description |
---|---|---|
category |
Voľba | Kategória postupu. Tu sú rôzne kategórie. 0 - Klasické pracovné postupy. Dataverse 1 - Klasické dialógy. Dataverse 2 - Obchodné pravidlá. 3 - Klasické Dataverse akcie. 4 - Toky obchodných procesov. 5 - Modern Flow (Automatizované, okamžité alebo plánované toky).6 - Postupy na pracovnej ploche. |
clientdata |
String | Súbor JSON s definíciou toku a jej odkazmi na pripojenie s kódovaním reťazca. |
createdby |
Vyhľadávanie | Používateľ, ktorý vytvoril postup. |
createdon |
Dátum a čas | Dátum vytvorenia postupu. |
description |
String | Popis postupu zadaný používateľom. |
ismanaged |
Booleovský | Udáva, či bol postup nainštalovaný prostredníctvom spravovaného riešenia. |
modifiedby |
Vyhľadávanie | Posledný používateľ, ktorý aktualizoval postup. |
modifiedon |
Dátum a čas | Posledná aktualizácia postupu. |
name |
String | Zobrazovaný názov, ktorý ste priradili toku. |
ownerid |
Vyhľadávanie | Používateľ alebo tím, ktorý vlastní tok. |
statecode |
Voľba | Stav postupu. Stav môže byť:0 - Návrh (Vypnuté)1 - Aktivované (Zapnuté)2 - Pozastavené. |
type |
Voľba | Označuje, či je tok spustený tok alebo šablóna, ktorú možno použiť na vytvorenie ďalších tokov. 1 - Definícia,2 - Aktivácia3 - Šablóna. |
workflowid |
GUID | Jedinečný identifikátor postupu v cloude v rámci všetkých importov. |
workflowidunique |
GUID | Jedinečný identifikátor tejto inštalácie postupu. |
Poznámka
Pomocou webového rozhrania API sú vyhľadávacie hodnoty jednohodnotové navigačné vlastnosti , ktoré je možné rozšíriť a získať tak podrobnosti zo súvisiaceho záznamu.
Vyhľadávacie stĺpce majú tiež zodpovedajúce vyhľadávacie vlastnosti GUID, ktoré možno použiť v dotazoch. ... Vyhľadávacie vlastnosti majú túto konvenciu pomenovania: _<logical name>_value
. Pre typ entity pracovného postupu vo webovom rozhraní API môžete použiť tieto vyhľadávacie vlastnosti: _createdby_value
, _modifiedby_value
a _ownerid_value
.
Zobrazenie zoznamu postupov
Ak chcete získať zoznam cloudových tokov, môžete dotazovať tabuľku pracovných tokov. Nasledujúci dopyt vráti prvý automatizovaný, okamžitý alebo plánovaný postup, ktorý je momentálne „zapnutý“:
Táto statická metóda vyžaduje overeného klienta, ktorý implementuje metódu OutputFirstActiveFlow
. IOrganizationService Používa metódu **IOrganizationService.RetrieveMultiple**. ...
/// <summary>
/// Outputs the first active flow
/// </summary>
/// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
public static void OutputFirstActiveFlow(IOrganizationService service)
{
var query = new QueryExpression("workflow")
{
ColumnSet = new ColumnSet("category",
"createdby",
"createdon",
"description",
"ismanaged",
"modifiedby",
"modifiedon",
"name",
"ownerid",
"statecode",
"type",
"workflowid",
"workflowidunique"),
Criteria = new FilterExpression(LogicalOperator.And)
{
Conditions = {
{ new ConditionExpression(
"category",
ConditionOperator.Equal,
5) }, // Cloud Flow
{ new ConditionExpression(
"statecode",
ConditionOperator.Equal,
1) } // Active
}
},
TopCount = 1 // Limit to one record
};
EntityCollection workflows = service.RetrieveMultiple(query);
Entity workflow = workflows.Entities.FirstOrDefault();
Console.WriteLine($"category: {workflow.FormattedValues["category"]}");
Console.WriteLine($"createdby: {workflow.FormattedValues["createdby"]}");
Console.WriteLine($"createdon: {workflow.FormattedValues["createdon"]}");
// Description may be null
Console.WriteLine($"description: {workflow.GetAttributeValue<string>("description")}");
Console.WriteLine($"ismanaged: {workflow.FormattedValues["ismanaged"]}");
Console.WriteLine($"modifiedby: {workflow.FormattedValues["modifiedby"]}");
Console.WriteLine($"modifiedon: {workflow.FormattedValues["modifiedon"]}");
Console.WriteLine($"name: {workflow["name"]}");
Console.WriteLine($"ownerid: {workflow.FormattedValues["ownerid"]}");
Console.WriteLine($"statecode: {workflow.FormattedValues["statecode"]}");
Console.WriteLine($"type: {workflow.FormattedValues["type"]}");
Console.WriteLine($"workflowid: {workflow["workflowid"]}");
Console.WriteLine($"workflowidunique: {workflow["workflowidunique"]}");
}
Ak chcete načítať viac záznamov, odstráňte limit TopCount .
Výstup
category: Modern Flow
createdby: SYSTEM
createdon: 5/20/2020 9:37 PM
description:
ismanaged: Unmanaged
modifiedby: Kiana Anderson
modifiedon: 5/6/2023 3:37 AM
name: When an account is updated -> Create a new record
ownerid: Monica Thomson
statecode: Activated
type: Definition
workflowid: d9e875bf-1c9b-ea11-a811-000d3a122b89
workflowidunique: c17af45c-10a1-43ca-b816-d9cc352718cf
Ďalšie informácie:
Vytvorenie postupu v cloude
Požadované vlastnosti pre automatizované, okamžité a plánované postupy sú: category
, name
, type
, primaryentity
a clientdata
. Pre tieto typy tokov použite none
pre primaryentity
.
Táto statická metóda vyžaduje overeného klienta, ktorý implementuje ` IOrganizationService`. Používa metódu **IOrganizationService.Create**. ...
/// <summary>
/// Creates a cloud flow
/// </summary>
/// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
/// <returns>The workflowid</returns>
public static Guid CreateCloudFlow(IOrganizationService service)
{
var workflow = new Entity("workflow")
{
Attributes = {
{"category", new OptionSetValue(5) }, // Cloud flow
{"name", "Sample flow name"},
{"type", new OptionSetValue(1) }, //Definition
{"description", "This flow reads some data from Dataverse." },
{"primaryentity", "none" },
{"clientdata", "{\"properties\":{\"connectionReferences\":{\"shared_commondataserviceforapps\":{\"impersonation\":{},\"runtimeSource\":\"embedded\",\"connection\":{\"name\":\"shared-commondataser-114efb88-a991-40c7-b75f-2693-b1ca6a0c\",\"connectionReferenceLogicalName\":\"crdcb_sharedcommondataserviceforapps_109ea\"},\"api\":{\"name\":\"shared_commondataserviceforapps\"}}},\"definition\":{\"$schema\":\"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#\",\"contentVersion\":\"1.0.0.0\",\"parameters\":{\"$connections\":{\"defaultValue\":{},\"type\":\"Object\"},\"$authentication\":{\"defaultValue\":{},\"type\":\"SecureObject\"}},\"triggers\":{\"manual\":{\"metadata\":{\"operationMetadataId\":\"76f87a86-89b3-48b4-92a2-1b74539894a6\"},\"type\":\"Request\",\"kind\":\"Button\",\"inputs\":{\"schema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}}},\"actions\":{\"List_rows\":{\"runAfter\":{},\"metadata\":{\"operationMetadataId\":\"9725b30f-4a8e-4695-b6fd-9a4985808809\"},\"type\":\"OpenApiConnection\",\"inputs\":{\"host\":{\"apiId\":\"/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps\",\"connectionName\":\"shared_commondataserviceforapps\",\"operationId\":\"ListRecords\"},\"parameters\":{\"entityName\":\"accounts\",\"$select\":\"name\",\"$top\":1},\"authentication\":\"@parameters('$authentication')\"}}}}},\"schemaVersion\":\"1.0.0.0\"}" }
}
};
return service.Create(workflow);
}
Viac informácií: Vytvorenie riadkov tabuľky pomocou služby Organization Service
Všetky takto vytvorené postupy sú nastavené na stav „Koncept“ alebo „Vypnuté“. statecode
0
Pred použitím je potrebné povoliť tok.
Najdôležitejšou vlastnosťou je ** clientdata
**, ktorá obsahuje **to, čo tok používa** a **definíciu** toku. connectionReferences
... Sú to mapovania ku každému pripojeniu, ktoré tok používa. connectionReferences
{
"properties": {
"connectionReferences": {
"shared_commondataserviceforapps": {
"runtimeSource": "embedded",
"connection": {},
"api": {
"name": "shared_commondataserviceforapps"
}
}
},
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"$connections": { "defaultValue": {}, "type": "Object" },
"$authentication": { "defaultValue": {}, "type": "SecureObject" }
},
"triggers": {
"manual": {
"metadata": {},
"type": "Request",
"kind": "Button",
"inputs": {
"schema": { "type": "object", "properties": {}, "required": [] }
}
}
},
"actions": {
"List_rows": {
"runAfter": {},
"metadata": {},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps",
"connectionName": "shared_commondataserviceforapps",
"operationId": "ListRecords"
},
"parameters": {
"entityName": "accounts",
"$select": "name",
"$top": 1
},
"authentication": "@parameters('$authentication')"
}
}
}
}
},
"schemaVersion": "1.0.0.0"
}
Aktualizácia postupu v cloude
Ak chcete aktualizovať postup, nastavte iba vlastnosti, ktoré chcete zmeniť.
Táto statická metóda vyžaduje overeného klienta, ktorý implementuje ` IOrganizationService`. Používa metódu IOrganizationService.Update na aktualizáciu popisu toku a nastavenie vlastníka.
/// <summary>
/// Updates a cloud flow
/// </summary>
/// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
/// <param name="workflowid">The ID of the flow to update.</param>
/// <param name="systemuserid">The id of the user to assign the flow to.</param>
public static void UpdateCloudFlow(IOrganizationService service, Guid workflowid, Guid systemuserid) {
var workflow = new Entity("workflow",workflowid)
{
Attributes = {
{"description", "This flow will ensure consistency across systems." },
{"ownerid", new EntityReference("systemuser",systemuserid)},
{"statecode", new OptionSetValue(1) } //Turn on the flow.
}
};
service.Update(workflow);
}
Viac informácií: Aktualizácia a odstránenie riadkov tabuľky pomocou služby Organization Service > Základná aktualizácia
Odstránenie postupu v cloude
Nasledujúce príklady ukazujú, ako odstrániť záznam pracovného postupu, ktorý predstavuje cloudový tok.
Metóda static DeleteCloudFlow
vymaže záznam pracovného postupu.
/// <summary>
/// Deletes a workflow
/// </summary>
/// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
/// <param name="workflowId">The id of the cloud flow to delete.</param>
public static void DeleteCloudFlow(IOrganizationService service, Guid workflowId) {
service.Delete(entityName:"workflow",id: workflowId);
}
Viac informácií: Odstránenie záznamu pomocou SDK
Získajte zoznam všetkých používateľov, s ktorými zdieľate postup v cloude
Pomocou správy RetrieveSharedPrincipalsAndAccess
zobrazíte zoznam všetkých používateľov, s ktorými je cloudový tok zdieľaný.
V prípade SDK použite triedu RetrieveSharedPrincipalsAndAccessRequest a v prípade webového API použite funkciu RetrieveSharedPrincipalsAndAccess.
Viac informácií: Získanie prístupu k záznamu pre riaditeľov
Zdieľanie postupu v cloude alebo zrušenie zdieľania
Zdieľajte cloudový tok ako akýkoľvek iný záznam pomocou správy. Dataverse GrantAccess
V SDK použite triedu GrantAccessRequest a v rozhraní Web API použite akciu GrantAccess . ... Viac informácií: Príklad GrantAccess
Ak chcete zmeniť prístupové práva, ktoré udeľujete pri zdieľaní záznamu, použite správu ModifyAccess
. V SDK použite triedu ModifyAccessRequest a v webovom API použite akciu ModifyAccess. Viac informácií: Príklad ModifyAccess
Ak chcete zrušiť zdieľanie záznamu, použite správu. RevokeAccess
V SDK použite triedu RevokeAccessRequest a v webovom API použite akciu RevokeAccess. Viac informácií: Zrušenie prístupu
Exportovanie postupov
Keď je tok súčasťou riešenia, môžete ho exportovať exportovaním riešenia, ktoré obsahuje tok, pomocou správy ExportSolution
.
Nasledujúca statická metóda používa metódu ExportSolutionRequest na načítanie súboru obsahujúceho súbor ZIP nespravovaného riešenia so zadaným jedinečným názvom UniqueName. ExportSolution
...byte[]
...
/// <summary>
/// Exports an unmanaged solution
/// </summary>
/// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
/// <param name="solutionUniqueName">The uniquename of the solution.</param>
/// <returns></returns>
public static byte[] ExportSolution(
IOrganizationService service,
string solutionUniqueName)
{
ExportSolutionRequest request = new() {
SolutionName = solutionUniqueName,
Managed = false
};
var response = (ExportSolutionResponse)service.Execute(request);
return response.ExportSolutionFile;
}
Importovanie postupov
Keď máte ZIP súbor s riešením, môžete ho importovať pomocou správy ImportSolution
.
Pri importovaní postupov by ste mali nastaviť nasledujúce parametre:
Názov vlastnosti | Description |
---|---|
OverwriteUnmanagedCustomizations |
Ak existujú inštancie týchto postupov v Dataverse, tento príznak je potrebné nastaviť na true , aby sa dali importovať. Inak sa neprepíšu. |
PublishWorkflows |
Označuje, či sú pri importe aktivované klasické pracovné postupy. Dataverse Toto nastavenie sa nevzťahuje na iné typy postupov. |
CustomizationFile |
Súbor .zip s kódovaním base 64, ktorý obsahuje riešenie. |
Statická ukážková metóda ukazuje, ako importovať súbor riešenia pomocou triedy ImportSolutionRequest ImportSolution
...
/// <summary>
/// Imports a solution.
/// </summary>
/// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
/// <param name="solutionFile">The byte[] data representing a solution file. </param>
public static void ImportSolution(
IOrganizationService service,
byte[] solutionFile) {
ImportSolutionRequest request = new() {
OverwriteUnmanagedCustomizations = true,
CustomizationFile = solutionFile
};
service.Execute(request);
}
Najčastejšie otázky
A čo API na api.flow.microsoft.com?
API na adrese api.flow.microsoft.com nie je podporované. Zákazníci by namiesto toho mali používať webové rozhrania API, ktoré sú uvedené v tomto článku. Dataverse Power Automate
Zákazníci môžu alternatívne použiť konektory pre správu: Power Automate Správa alebo Power Automate Pre správcov.
Zákazníci môžu používať nepodporované rozhrania API na vlastné riziko. api.flow.microsoft.com
Tieto API sa môžu zmeniť, takže môžu nastať závažné zmeny.
Súvisiace informácie
Operácie triedy entít pomocou služby Organizácia
Vykonávanie operácií pomocou webového rozhrania API
Zdieľanie a priradenie
Overenie prístupu v kóde
Práca s riešeniami pomocou súpravy SDK Dataverse