Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
Visas plūsmas tiek glabātas, Dataverse un tās pārvaldīšanai varat izmantot Dataverse SDK for .NET vai Web API.
Šajā rakstā ir aprakstīta cilnē Risinājumi iekļauto plūsmu pārvaldība Power Automate. Pašlaik plūsmu pārvaldība sadaļā Manas plūsmas netiek atbalstīta ar kodu.
Mijiedarbība ar Dataverse API
Dataverse nodrošina līdzvērtīgas Dataverse iespējas, izmantojot SDK .NET vai Web API.
Kuru metodi man vajadzētu izmantot?
Labākā metode ir atkarīga no projekta tehnoloģijas un prasmēm.
Ja jūsu projektā tiek izmantots .NET, ieteicams izmantot SDK. SDK vienkāršo jūsu izstrādes pieredzi, nodrošinot tipētu objektu modeli un autentifikācijas metodes.
Papildinformācija: Organizācijas pakalpojuma izmantošana
Kā izveidot savienojumu?
Savienojuma izveides veids ir atkarīgs no tā, vai izmantojat Dataverse SDK .NET vai Web API.
Izmantojot SDK, jums ir jāizveido savienojums ar klienta lietojumprogrammu, lai piekļūtu IOrganizationService instancei .
IOrganizationService ir interfeiss, kas nodrošina metodes, ar kurām var mijiedarboties Dataverse.
Papildu informācija:
Darbplūsmas tabula
Mākoņplūsmas tiek glabātas tabulā Process (Workflow), kas Web API ir attēlota kā darbplūsma EntityType
Šajā tabulā ir aprakstītas svarīgas darbplūsmas tabulas kolonnas:
| Loģiskais nosaukums | Tipi | Apraksts |
|---|---|---|
category |
Izvēle | Plūsmas kategorija. Šeit ir dažādas kategorijas. 0 - Klasiskās Dataverse darbplūsmas.1 - Klasiskie Dataverse dialogi. 2 - Uzņēmējdarbības noteikumi. 3 - Klasiskās Dataverse darbības. 4 - Biznesa procesu plūsmas. 5 - Modern Flow (automatizētas, tūlītējas vai plānotas plūsmas).6 - Darbvirsmas plūsmas. |
clientdata |
String | Plūsmas definīcijas un tās connectionReferences JSON fails virknē kodēts. |
createdby |
Uzmeklēšana | Lietotājs, kurš izveidoja plūsmu. |
createdon |
DateTime | Plūsmas izveides datums. |
description |
String | Lietotāja sniegtais plūsmas apraksts. |
ismanaged |
Būla vērtība | Norāda, vai plūsma tika instalēta, izmantojot pārvaldītu risinājumu. |
modifiedby |
Uzmeklēšana | Pēdējais lietotājs, kurš atjaunināja plūsmu. |
modifiedon |
DateTime | Pēdējā reize, kad plūsma tika atjaunināta. |
name |
String | Plūsmai piešķirtais parādāmais nosaukums. |
ownerid |
Uzmeklēšana | Lietotājs vai komanda, kurai pieder plūsma. |
statecode |
Izvēle | Plūsmas statuss. Statuss var būt šāds:0 - Melnraksts (izslēgts)1 - Aktivizēts (Ieslēgts)2 - Apturēts. |
type |
Izvēle | Norāda, vai plūsma ir darbojoša plūsma vai veidne, ko var izmantot, lai izveidotu citas plūsmas. 1 - Definīcija,2 - Aktivizēšana3 - Veidne. |
workflowid |
GUID | Unikāls mākoņplūsmas identifikators visos importēšanas gadījumos. |
workflowidunique |
GUID | Šīs plūsmas instalācijas unikālais identifikators. |
Piezīmes
Izmantojot tīmekļa API, meklēšanas vērtības ir vienas vērtības navigācijas īpašības ko var izvērst, lai iegūtu informāciju no saistītā ieraksta.
Uzmeklēšanas kolonnām ir arī atbilstošs GUID meklēšanas īpašības ko var izmantot vaicājumos. Meklēšanas īpašībām ir šāda nosaukumu piešķiršanas konvencija: _<logical name>_value. Darbplūsmas entitype tīmekļa API varat atsaukties uz šīm meklēšanas īpašībām: _createdby_value, _modifiedby_value un _ownerid_value.
Uzskaitīt plūsmas
Lai izgūtu mākoņplūsmu sarakstu, varat veikt vaicājumu darbplūsmas tabulā. Šis vaicājums atgriež pirmo automatizēto, tūlītējo vai ieplānoto plūsmu, kas pašlaik ir ieslēgta:
Šis statiskais OutputFirstActiveFlow metodei ir nepieciešams autentificēts klients, kas ievieš IOrganizationService. Tas izmanto IOrganizationService.RetrieveMultiple metode.
/// <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"]}");
}
Lai iegūtu vairāk ierakstu, noņemiet Augstākā skaitīšanas sistēma ierobežojums.
Izvade
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
Papildu informācija:
Izveidot mākoņa plūsmu
Automatizētām, tūlītējām un plānotām plūsmām nepieciešamās īpašības ir šādas: category, name, type, primaryentity un clientdata. Lietošana none priekš primaryentity šāda veida plūsmām.
Šai statiskajai metodei ir nepieciešams autentificēts klients, kas ievieš IOrganizationService. Tas izmanto IOrganizationService.Create metode.
/// <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);
}
Vairāk informācijas: Tabulas rindu izveide, izmantojot organizācijas pakalpojumu
Visām šādā veidā izveidotajām plūsmām statecode tiek iestatīta vērtība 0 (Melnraksts vai “Izslēgts”). Pirms plūsmas izmantošanas tā ir jāiespējo.
Vissvarīgākā īpašība ir ``, kas satur `` plūsmas izmantoto `` un `` plūsmas definīciju``. clientdataconnectionReferences... Šie connectionReferences ir katra plūsmas izmantotā savienojuma kartējumi.
{
"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"
}
Mākoņplūsmas atjaunināšana
Lai atjauninātu plūsmu, iestatiet tikai tās īpašības, kuras vēlaties mainīt.
Šai statiskajai metodei ir nepieciešams autentificēts klients, kas ievieš IOrganizationService. Tas izmanto metodi IOrganizationService.Update , lai atjauninātu plūsmas aprakstu un iestatītu īpašnieku.
/// <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);
}
Papildinformācija: Tabulas rindu atjaunināšana un dzēšana, izmantojot organizācijas pakalpojumu > Pamata atjauninājums
Mākoņplūsmas dzēšana
Tālāk sniegtajos piemēros ir parādīts, kā dzēst darbplūsmas ierakstu, kas attēlo mākoņplūsmu.
Statiskā metode dzēš darbplūsmas ierakstu. DeleteCloudFlow
/// <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);
}
Papildinformācija: Ieraksta dzēšana, izmantojot SDK
Iegūt visus lietotājus, ar kuriem tiek koplietota mākoņplūsma
Izmantojiet ziņojumu RetrieveSharedPrincipalsAndAccess , lai iegūtu visu lietotāju sarakstu, ar kuriem tiek koplietota mākoņplūsma.
Ar SDK izmantojiet `RetrieveSharedPrincipalsAndAccessRequest` klasi ` `, bet ar tīmekļa API — `RetrieveSharedPrincipalsAndAccess` funkciju ``. ...
Papildinformācija: Iegūstiet vadītājiem piekļuvi ierakstam
Mākoņplūsmas kopīgošana vai kopīgošanas atcelšana
Kopīgojiet mākoņplūsmu tāpat kā jebkuru citu Dataverse ierakstu, izmantojot GrantAccess ziņojumu. Ar SDK izmantojiet `GrantAccessRequest` klasi ` `, bet ar tīmekļa API — `GrantAccess Action`.... Papildinformācija: GrantAccess piemērs
Ja vēlaties mainīt piekļuves tiesības, ko piešķirat, kopīgojot ierakstu, izmantojiet ziņojumu ModifyAccess . Ar SDK izmantojiet klasi ModifyAccessRequest , bet ar tīmekļa API — darbību ModifyAccess. Papildinformācija: ModifyAccess piemērs
Lai atceltu ieraksta koplietošanu, izmantojiet ziņojumu RevokeAccess . Ar SDK izmantojiet `RevokeAccessRequest` klasi ` `, bet ar tīmekļa API — `RevokeAccess Action`.... Papildinformācija: Piekļuves atcelšana
Eksporta plūsmas
Ja plūsma ir daļa no risinājuma, to var eksportēt, eksportējot risinājumu, kas satur plūsmu, izmantojot ziņojumu ExportSolution .
Šajā statiskajā piemērā metode izmanto pieprasījumu “ExportSolutionRequest”, lai izgūtu failu “failu”, kurā ir nepārvaldītā risinājuma ZIP fails ar norādīto nosaukumu “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;
}
Importa plūsmas
Kad jums ir risinājuma ZIP fails, varat to importēt, izmantojot ziņojumu ImportSolution .
Importējot plūsmas, jāiestata šādi parametri:
| Rekvizīta nosaukums | Apraksts |
|---|---|
OverwriteUnmanagedCustomizations |
Ja Dataverse jau pastāv šo plūsmu instances, šis karodziņš ir jāiestata uz true , lai tās importētu. Pretējā gadījumā tie netiek pārrakstīti. |
PublishWorkflows |
Norāda, vai importēšanas laikā tiek aktivizētas klasiskās darbplūsmas. Dataverse Šis iestatījums neattiecas uz citiem plūsmu veidiem. |
CustomizationFile |
Base 64 kodējuma zip fails, kurā ir ietverts risinājums. |
Statiskā parauga metode ImportSolution parāda, kā importēt risinājuma failu, izmantojot ImportSolutionRequest klasi .
/// <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);
}
BUJ
Kā ar API vietnē api.flow.microsoft.com?
API vietnē api.flow.microsoft.com netiek atbalstīts. Klientiem tā vietā vajadzētu izmantot šajā rakstā iepriekš dokumentētos Dataverse tīmekļa API. Power Automate
Alternatīvi, klienti var izmantot pārvaldības savienotājus: Power Automate Pārvaldība vai Power Automate administratoriem.
Klienti var izmantot neatbalstītās API vietnē api.flow.microsoft.com uz savu atbildību. Šie API var tikt mainīti, tāpēc var rasties izmaiņas, kas nedarbojas pareizi.
Saistītā informācija
Entītiju klases darbības, izmantojot organizācijas pakalpojumu
Veikt darbības, izmantojot tīmekļa API
Koplietošana un piešķiršana
Piekļuves pārbaude kodā
Strādājiet ar risinājumiem, izmantojot Dataverse SDK