Darbs ar mākoņa plūsmām, izmantojot kodu
Visas plūsmas tiek saglabātas, Dataverse un to pārvaldībai varat izmantot Dataverse .NET paredzēto SDK vai tīmekļa 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 iespējas, Dataverse izmantojot .NET vai Web API SDK.
Kuru metodi man vajadzētu izmantot?
Labākā metode ir atkarīga no projekta tehnoloģijas un jūsu prasmes.
Ja jūsu projektā tiek izmantots .NET, ieteicams izmantot SDK. SDK vienkāršo jūsu izstrādes pieredzi, nodrošinot drukātu objekta modeli un autentifikācijas metodes.
Papildinformācija: Organizācijas pakalpojuma izmantošana
Kā izveidot savienojumu?
Savienojuma izveide ir atkarīga no tā, Dataverse vai izmantojat .NET vai Web API SDK.
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 varat izmantot, lai mijiedarbotos Dataverse.
Papildu informācija:
Darbplūsmas tabula
Mākoņa plūsmas tiek glabātas tabulā Process (Workflow), kas tīmekļa API tiek 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 - Klasiskas 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 | Virknes kodēts JSON ar plūsmas definīciju un tās savienojumuAtsauces. |
createdby |
Uzmeklēšana | Lietotājs, kurš izveidoja plūsmu. |
createdon |
DateTime | Datums, kad plūsma tika izveidota. |
description |
String | Lietotāja sniegtais plūsmas apraksts. |
ismanaged |
Bool | Norāda, vai plūsma tika instalēta, izmantojot pārvaldīts risinājums. |
modifiedby |
Uzmeklēšana | Pēdējais lietotājs, kurš atjaunināja plūsmu. |
modifiedon |
DateTime | Pēdējo reizi plūsma tika atjaunināta. |
name |
String | Parādāmais vārds, ko piešķīrāt plūsmai. |
ownerid |
Uzmeklēšana | Lietotājs vai darba grupa, kurai pieder plūsma. |
statecode |
Izvēle | Plūsmas statuss. Statuss var būt:0 - Melnraksts (izslēgts)1 - Aktivizēts (ieslēgts)2 -Apturēta. |
type |
Izvēle | Norāda, vai plūsma ir tekoša plūsma vai veidne, ko var izmantot, lai izveidotu vairāk plūsmu. 1 -Definīcija2 -Aktivizācijas3 -Veidne. |
workflowid |
GUID | Unikālais identifikators mākoņa plūsma visām importa precēm. |
workflowidunique |
GUID | Šīs plūsmas instalācijas unikālais identifikators. |
Piezīmes
Izmantojot Web API, uzmeklēšanas vērtības ir vienas vērtības navigācijas rekvizīti , kurus var izvērst, lai iegūtu detalizētu informāciju no saistītā ieraksta.
Uzmeklēšanas kolonnām ir arī atbilstoši GUID uzmeklēšanas rekvizīti , kurus var izmantot vaicājumos. Uzmeklēšanas rekvizītiem ir šī nosaukumdošanas metode: _<logical name>_value
. Darbplūsmas entītijas tipam tīmekļa API varat atsaukties uz šiem uzmeklēšanas rekvizītiem: _createdby_value
, _modifiedby_value
, un _ownerid_value
.
Uzskaitīt plūsmas
Lai izgūtu mākoņa plūsmu sarakstu, varat vaicāt darbplūsmas tabulai. Tālāk norādītais vaicājums atgriež pirmo automatizēto, tūlītējo vai plānoto plūsmu, kas pašlaik ir ieslēgta.
Šai statiskajai OutputFirstActiveFlow
metodei ir nepieciešams autentificēts klients IOrganizationService, kas īsteno. Tas izmanto IOrganizationService.RetrieveMultiple metodi.
/// <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 izgūtu vairāk ierakstu, noņemiet TopCount ierobežojumu.
Izvades
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šamie rekvizīti ir: category
, name
,, type
, primaryentity
un clientdata
. none
Izmantojiet primaryentity
šāda veida plūsmām.
Šai statiskajai metodei ir nepieciešams autentificēts klients IOrganizationService, kas īsteno. Tas izmanto metodi 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);
}
PapildinformācijaTabulas rindu izveide, izmantojot organizācijas pakalpojumu
Visas statecode
šādā veidā izveidotās plūsmas ir iestatītas uz 0
(Melnraksts vai "Izslēgts"). Lai plūsmu varētu izmantot, tā ir jāiespējo.
Vissvarīgākā īpašība ir clientdata
tā, kas satur connectionReferences
plūsmas izmantošanu un plūsmas definīciju . Tie connectionReferences
ir kartējumi katram savienojumam, ko izmanto plūsma.
{
"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ņa plūsma atjaunināšana
Lai atjauninātu plūsmu, iestatiet tikai tos rekvizītus, kurus vēlaties mainīt.
Šai statiskajai metodei ir nepieciešams autentificēts klients IOrganizationService, kas īsteno. Tas izmanto IOrganizationService.Update metodi, 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ācijaTabulas rindu atjaunināšana un dzēšana, izmantojot Organization Service > pamata atjauninājumu
Mākoņa plūsma dzēšana
Tālāk sniegtajos piemēros ir parādīts, kā izdzēst darbplūsmas ierakstu, kas apzīmē mākoņa plūsma.
Statiskā DeleteCloudFlow
metode izdzēš darbplūsmas ierakstu.
/// <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ūstiet visus lietotājus, ar kuriem tiek kopīgota mākoņa plūsma
RetrieveSharedPrincipalsAndAccess
Izmantojiet ziņojumu, lai iegūtu sarakstu ar visiem lietotājiem, ar kuriem mākoņa plūsma tiek kopīgota.
Izmantojot SDK, izmantojiet klasi RetrieveSharedPrincipalsAndAccessRequest un tīmekļa API izmantojiet funkciju RetrieveSharedPrincipalsAndAccess.
PapildinformācijaPasūtītāju iegūšana ar piekļuvi ierakstam
Mākoņa plūsma kopīgošana vai kopīgošanas atcelšana
Kopīgojiet mākoņa plūsma tāpat kā jebkuru citu Dataverse ierakstu, GrantAccess
izmantojot ziņojumu. Izmantojot SDK, izmantojiet GrantAccessRequest Class un ar Web API izmantojiet darbību GrantAccess. Papildinformācija: GrantAccess piemērs
Ja vēlaties mainīt piekļuves tiesības, ko piešķirat, kopīgojot ierakstu, izmantojiet ModifyAccess
ziņojumu. Izmantojot SDK, izmantojiet ModifyAccessRequest Class un ar Web API izmantojiet darbību ModifyAccess. Papildinformācija: ModificēšanasAccess piemērs
Lai atceltu ieraksta kopīgošanu, izmantojiet RevokeAccess
ziņojumu. Izmantojot SDK, izmantojiet RevoleAccessRequest Class un ar Web API izmantojiet darbību RevoleAccess. Papildinformācija: Piekļuves atsaukš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 ExportSolution
ziņojumu.
Šī statiskā ExportSolution
piemēra metode izmanto ExportSolutionRequest , lai izgūtu byte[]
nepārvaldītā risinājuma ZIP failu ar norādīto UniqueName.
/// <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
Ja jums ir risinājuma ZIP fails, varat to importēt, ImportSolution
izmantojot ziņojumu.
Importējot plūsmas, jāiestata šādi parametri:
Rekvizīta nosaukums | Apraksts |
---|---|
OverwriteUnmanagedCustomizations |
Ja pastāv šo plūsmu Dataverse gadījumi, šis karodziņš ir jāiestata tā, lai true 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 Dataverse darbplūsmas. Šis iestatījums neattiecas uz citiem plūsmu tipiem. |
CustomizationFile |
Bāzes 64 kodēts zip fails, kas satur risinājumu. |
Statiskā ImportSolution
parauga metode parāda, kā importēt risinājuma failu, izmantojot ImportSolutionRequest Class
/// <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. Tā vietā klientiem ir jāizmanto tīmekļa API, Dataverse lai iepriekš dokumentētu Power Automate šajā rakstā.
Vai arī klienti var izmantot pārvaldības savienotājus: Power Automate Pārvaldība vai Power Automate administratoriem.
Klienti var izmantot neatbalstītos API uz api.flow.microsoft.com
savu risku. Šīs API var mainīties, tāpēc var rasties pārrāvuma izmaiņas.
Saistītā informācija
Entītiju klases operācijas, izmantojot organizācijas pakalpojumu
Darbību veikšana, izmantojot tīmekļa API
Koplietošana un piešķiršana
Kodas piekļuves pārbaude
Darbs ar risinājumiem, Dataverse izmantojot SDK