Белешка
Приступ овој страници захтева ауторизацију. Можете покушати да се пријавите или промените директоријуме.
Приступ овој страници захтева ауторизацију. Можете покушати да промените директоријуме.
Сви токови се чувају и Dataverse можете користити СДК Dataverse за .НЕТ или Веб АПИ да бисте њима управљали.
Овај чланак покрива управљање токовима укљученим на картици Решења у Power Automate. Тренутно, управљање токовима под Ми токови нису подржани кодом.
Интеракција са Dataverse АПИ-јима
Dataverse пружа еквивалентне Dataverse могућности користећи било СДК за .НЕТ или Веб АПИ.
Који метод треба да користим?
Најбољи начин зависи од технологије пројекта и вештина које имате.
Ако ваш пројекат користи .НЕТ, препоручујемо да користите СДК. СДК поједностављује ваше развојно искуство пружајући откуцани модел објекта и методе за аутентификацију.
Више информација: Користите услугу организације
Како се повезати?
Како се повезати зависи од тога да ли користите Dataverse СДК за .НЕТ или Веб АПИ.
Са СДК-ом, потребно је да се повежете са клијентском апликацијом да бисте добили приступ инстанци ИОрганизатионСервице . IOrganizationService је интерфејс који пружа методе које можете користити за интеракцију Dataverse.
Више информација:
Табела тока посла
Токови облака се чувају у табели Процесс (Воркфлов) која је представљена у Веб АПИ-ју као ток посла ЕнтиТипе
Следећа табела описује важне колоне у табели тока посла:
| Логичко име | Тип | Опис |
|---|---|---|
category |
Избор | Категорија тока. Ево различитих категорија. 0 - Класични Dataverse радни токови.1 - Класични Dataverse дијалози. 2 - Пословна правила. 3 - Класичне Dataverse акције. 4 - Токови пословних процеса. 5 - Модерни проток (аутоматизовани, инстант или планирани токови).6 - Токови на радној површини. |
clientdata |
String | ЈСОН кодиран стрингом дефиниције тока и његове цоннецтионРеференцес. |
createdby |
Lookup | Корисник који је створио ток. |
createdon |
Датум/време | Датум када је ток креиран. |
description |
String | Опис тока који је обезбедио корисник. |
ismanaged |
Булова | Означава да ли је проток инсталиран преко < ДИЦТ__комплетно решење > манагед солутион. |
modifiedby |
Lookup | Последњи корисник који је ажурирао ток. |
modifiedon |
Датум/време | Последњи пут када је ток ажуриран. |
name |
String | < ДИЦТ__име за приказ >дисплаy наме који сте дали проток. |
ownerid |
Lookup | Корисник или тим који је власник тока. |
statecode |
Избор | Статус тока. Статус може бити:0 - Нацрт (искључен)1 - Активиран (укључено)2 -Суспендован. |
type |
Избор | Означава да ли је ток текући ток, или шаблон који се може користити за креирање више токова. 1 -Дефиниција2 -Активација3 -Предложак. |
workflowid |
GUID | Јединствени идентификатор за < ДИЦТ__ток у облаку > цлоуд флоw у свим увозима. |
workflowidunique |
GUID | Јединствени идентификатор за ову инсталацију тока. |
Белешка
Са Веб АПИ-јем, вредности претраге су особине навигације са једном вредношћу које се могу проширити да би се добили детаљи из повезаног записа.
Колоне претраге такође имају одговарајуће особине ГУИД претраге које се могу користити у упитима. Особине претраге имају ову конвенцију именовања: _<logical name>_value. За ентитетипе тока посла у Веб АПИ-ју можете упутити на ове особине претраге: _createdby_value,, _modifiedby_value и _ownerid_value.
Списак токова
Да бисте преузели листу токова облака, можете упитати табелу тока посла. Следећи упит враћа први аутоматизовани, тренутни или планирани ток који је тренутно "укључен":
Овај статички OutputFirstActiveFlow метод захтева аутентификованог клијента који имплементира IOrganizationService. Користи ИОрганизатионСервице.РетриевеМултипле метод.
/// <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"]}");
}
Да бисте преузели више записа, уклоните ограничење ТопЦоунт .
Излаз
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
Више информација:
Креирање тока у облаку
Потребне особине за аутоматизоване, тренутне и планиране токове су: category, name,, type, primaryentity и clientdata. Користи се none за primaryentity ове врсте токова.
Овај статички метод захтева аутентификованог клијента који имплементира IOrganizationService. Користи методу ИОрганизатионСервице.Цреате .
/// <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);
}
Додатне информације: Креирање редова табеле користећи Организациони сервис
Од statecode свих токова креираних на овај начин су подешени на 0 (Нацрт или 'Искључено'). Проток мора бити омогућен пре него што се може користити.
Најважнија особина је clientdata, која садржи да connectionReferences проток користи, и дефиниција тока. То 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"
}
Ажурирајте < ДИЦТ__ток у облаку > цлоуд флоw
Да бисте ажурирали ток, подесите само особине које желите да промените.
Овај статички метод захтева аутентификованог клијента који имплементира IOrganizationService. Користи метод ИОрганизатионСервице.Упдате за ажурирање описа тока и постављање власника.
/// <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);
}
Додатне информације: Ажурирање и брисање редова табеле коришћењем основног ажурирања Организационе службе >
Избриши < ДИЦТ__ток у облаку > цлоуд флоw
Следећи примери показују како да избришете запис тока посла који представља < ДИЦТ__ток у облаку > цлоуд флоw.
Статички 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);
}
Додатне информације: Обришите запис користећи СДК
Набавите све кориснике са којима се дели < ДИЦТ__ток у облаку > цлоуд флоw
Користите RetrieveSharedPrincipalsAndAccess поруку да бисте добили листу свих корисника са којима се < ДИЦТ__ток у облаку > цлоуд флоw дели.
Са СДК-ом користите класу РетриевеСхаредПринципалсАндАццессРеqуест, а помоћу Веб АПИ-ја користите функцију РетриевеСхаредПринципалсАндАццесс.
Више информација: Набавите директоре са приступом запису
Поделите или поништите дељење < ДИЦТ__ток у облаку > цлоуд флоw
Поделите < ДИЦТ__ток у облаку > цлоуд флоw као и било који други Dataverse запис користећи GrantAccess поруку. Са СДК-ом користите класу ГрантАццессРеqуест и са Веб АПИ-јем користите акцију ГрантАццесс. Више информација: ГрантАццесс пример
Ако желите да промените права приступа која додељујете када делите запис, користите ModifyAccess поруку. Са СДК-ом, користите класу МодифиАццессРекуест и са Веб АПИ-јем користите акцију МодифиАццесс. Више информација: Пример измене Аццесс-а
Да бисте поништили дељење записа, користите RevokeAccess поруку. Са СДК-ом користите класу РевокеАццессРекуест и са Веб АПИ-јем користите акцију РевокеАццесс. Више информација: Укидање приступа
Извозни токови
Када је ток део решења, можете га извести извозом решења које садржи ток користећи ExportSolution поруку.
Следећи статички ExportSolution пример метода користи ЕкпортСолутионРеqуест да преузме ЗИП датотеку byte[] која садржи неуправљано решење са наведеним УниqуеНаме.
/// <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;
}
Увозни токови
Када имате решење ЗИП фајл, можете га увести помоћу ImportSolution поруке.
Када увозите токове, требало би да подесите следеће параметре:
| Назив својства | Опис |
|---|---|
OverwriteUnmanagedCustomizations |
Ако постоје постојеће инстанце ових токова у Dataverse, ова застава треба да буде подешена да true их увезе. У супротном се не преписују. |
PublishWorkflows |
Означава да ли су класични Dataverse токови посла активирани приликом увоза. Ова поставка се не примењује на друге врсте токова. |
CustomizationFile |
База 64-кодирана зип датотека која садржи решење. |
Метода статичког 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);
}
Најчешћа питања
Шта је са АПИ-јем на #пии_ијфидејз?
АПИ на # пии_ијфидеаз није подржан. Купци би уместо тога требало да користе Dataverse Веб АПИ-је за Power Automate документовано претходно у овом чланку.
Алтернативно, корисници могу да користе конекторе за управљање: Power Automate менаџмент или Power Automate за администраторе.
Корисници могу да користе неподржане АПИ-је на api.flow.microsoft.com сопствени ризик. Ови АПИ-ји су подложни променама, тако да може доћи до пробијања промена.
Сродне информације
Операције ентитетске класе користећи услугу организације
Обављање операција помоћу Веб АПИ-ја
Дељење и додељивање
Провера приступа у коду
Рад са решењима користећи Dataverse СДК