Pilvevoogudega töötamine koodi abil
Kõik vood salvestatakse Dataverse ja nende haldamiseks saate kasutada kas .NET-i SDK-d Dataverse või Web API-d.
Selles artiklis käsitletakse menüüs Lahendused sisalduvate voogude haldamist Power Automate. Praegu ei toetata koodiga voogude haldamist jaotises Minu vood .
Suhtlemine Dataverse API-dega
Dataverse pakub samaväärseid võimalusi, kasutades SDK-d Dataverse .NET-i või Web API jaoks.
Millist meetodit peaksin kasutama?
Parim meetod sõltub projekti tehnoloogiast ja teie oskustest.
Kui teie projekt kasutab .NET-i, soovitame kasutada SDK-d. SDK lihtsustab teie arenduskogemust, pakkudes autendimiseks tipitud objektimudelit ja meetodeid.
Lisateave: Organisatsiooni teenuse kasutamine
Kuidas ühendada?
Ühenduse loomine sõltub sellest, kas kasutate .NET-i või Web API SDK-d Dataverse .
SDK abil peate IOrganizationService’i eksemplarile juurdepääsu saamiseks looma ühenduse kliendirakendusega. IOrganizationService
on liides, mis pakub meetodeid, mida Dataverse saate kasutada suhtlemiseks.
Lisateave:
Töövoo tabel
Pilvevood salvestatakse protsessi (töövoo) tabelisse , mis on Web API-s esitatud töövoo olemitüübina
Järgmises tabelis kirjeldatakse töövootabeli olulisi veerge.
Loogiline nimi | Tüüp | Kirjeldus |
---|---|---|
category |
Valik | Voolu kategooria. Siin on erinevad kategooriad. 0 - Klassikalised Dataverse töövood.1 - Klassikalised Dataverse dialoogid. 2 - Ärireeglid. 3 - Klassikalised Dataverse tegevused. 4 - Äriprotsessi vood. 5 - Modern Flow (automatiseeritud, kohesed või ajastatud vood).6 - Töölaua vood. |
clientdata |
String | Voo definitsiooni ja selle ühenduse stringiga kodeeritud JSON. |
createdby |
Otsing | Kasutaja, kes lõi voolu. |
createdon |
DateTime | Voo loomise kuupäev. |
description |
String | Kasutaja esitatud voo kirjeldus. |
ismanaged |
Bool | Näitab, kas vool paigaldati hallatav lahendus kaudu. |
modifiedby |
Otsing | Viimane kasutaja, kes voogu värskendas. |
modifiedon |
DateTime | Viimane kord, kui voogu värskendati. |
name |
String | Kuvatav nimi, mille olete voole andnud. |
ownerid |
Otsing | Kasutaja või meeskond, kellele voog kuulub. |
statecode |
Valik | Voolu olek. Staatus võib olla:0 - Mustand (väljas)1 - Aktiveeritud (sees)2 -Peatatud. |
type |
Valik | Näitab, kas voog on jooksev voog või mall, mida saab kasutada rohkemate voogude loomiseks. 1 -Definitsioon2 -Aktiveerimise3 -Mall. |
workflowid |
GUID | Kõiki importe hõlmava pilvevoo kordumatu identifikaator. |
workflowidunique |
GUID | Selle voolu paigaldamise ainulaadne identifikaator. |
Märkus.
Web API puhul on otsinguväärtused ühe väärtusega navigeerimisatribuudid , mida saab laiendada, et saada üksikasju seotud kirjest.
Otsinguveergudel on ka vastavad GUID-otsingu atribuudid , mida saab päringutes kasutada. Otsinguatribuutidel on see nimetamistava: _<logical name>_value
. Web API töövoo olemitüübi puhul saate viidata järgmistele otsinguatribuutidele: _createdby_value
, _modifiedby_value
, ja _ownerid_value
.
Loendi vood
Pilvevoogude loendi toomiseks võite esitada töövootabeli kohta päringu. Järgmine päring tagastab esimese automatiseeritud, kiir- või ajastatud voo, mis on praegu sisse lülitatud.
See staatiline OutputFirstActiveFlow
meetod nõuab autenditud klienti, kes rakendab IOrganizationService. See kasutab IOrganizationService.RetrieveMultiple meetodit.
/// <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"]}");
}
Rohkemate kirjete toomiseks eemaldage piirang TopCount .
Väljund
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
Lisateave:
Loo pilvevoog
Automatiseeritud, koheste ja ajastatud voogude nõutavad atribuudid on:,,,ja category
name
. type
primaryentity
clientdata
Kasutage none
seda tüüpi voogude jaoks primaryentity
.
See staatiline meetod nõuab autenditud klienti, kes rakendab IOrganizationService. See kasutab meetodit 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);
}
Kõigi statecode
sel viisil loodud voogude väärtuseks 0
seatakse(mustand või väljas). Vool tuleb enne kasutamist lubada.
Kõige olulisem omadus on see clientdata
, mis sisaldab connectionReferences
seda, mida vool kasutab, ja voolu määratlust . Need connectionReferences
on vastendused igale ühendusele, mida voog kasutab.
{
"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"
}
Pilvevoo värskendamine
Voo värskendamiseks määrake ainult need atribuudid, mida soovite muuta.
See staatiline meetod nõuab autenditud klienti, kes rakendab IOrganizationService. See kasutab IOrganizationService.Update meetodit voo kirjelduse värskendamiseks ja omaniku määramiseks.
/// <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);
}
Lisateave: Tabeliridade värskendamine ja kustutamine organisatsiooniteenuse > põhivärskenduse abil
Pilvevoo kustutamine
Järgmistes näidetes kirjeldatakse, kuidas kustutada pilvevoogu esindavat töövookirjet.
Staatiline DeleteCloudFlow
meetod kustutab töövookirje.
/// <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);
}
Lisateave: kirje kustutamine SDK abil
Hankige kõik kasutajad, kellega pilvevoogu jagatakse
Kasutage sõnumit, RetrieveSharedPrincipalsAndAccess
et kuvada loend kõigist kasutajatest, kellega pilvevoog on jagatud.
Kasutage SDK-ga klassi RetrieveSharedPrincipalsAndAccessRequest ja kasutage koos Web API-ga funktsiooni RetrieveSharedPrincipalsAndAccess.
Lisateave: kirjele juurdepääsu omavate printsipaalide hankimine
Pilvevoo jagamine või jagamise tühistamine
Jagage pilvevoogu nagu iga teist Dataverse sõnumit kasutavat kirjet GrantAccess
. Kasutage SDK-ga klassi GrantAccessRequest ja Web API-ga toimingut GrantAccess. Lisateave: GrantAccessi näide
Kui soovite kirje jagamisel antavaid pääsuõigusi muuta, kasutage sõnumit ModifyAccess
. Kasutage SDK-ga klassi ModifyAccessRequest ja Web API-ga toimingut ModifyAccess. Lisateave: Accessi näite muutmine
Kirje ühiskasutuse tühistamiseks kasutage sõnumit RevokeAccess
. Kasutage SDK-ga klassi RevokeAccessRequest ja Web API-ga toimingut RevokeAccess. Lisateave: Juurdepääsu tühistamine
Ekspordivood
Kui voog on osa lahendusest, saate selle eksportida, eksportides sõnumi abil ExportSolution
voogu sisaldava lahenduse.
Allolev staatiline ExportSolution
näidismeetod kasutab rakendust ExportSolutionRequest , et tuua byte[]
mittehallatava lahenduse ZIP-fail määratud UniqueName’iga.
/// <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;
}
Impordi vood
Kui teil on lahenduse ZIP-fail, saate selle sõnumi abil ImportSolution
importida.
Voogude importimisel peaksite määrama järgmised parameetrid.
Atribuudi nimi | Kirjeldus |
---|---|
OverwriteUnmanagedCustomizations |
Kui nende voogude eksemplare on olemas Dataverse, tuleb see lipp seada nende importimiseks true . Vastasel juhul ei kirjutata neid üle. |
PublishWorkflows |
Näitab, kas importimisel aktiveeritakse klassikalised Dataverse töövood. See säte ei kehti muud tüüpi voogude kohta. |
CustomizationFile |
64-kodeeringuga ZIP-fail, mis sisaldab lahendust. |
Staatilise ImportSolution
proovi meetod näitab, kuidas importida lahendusefaili klassi ImportSolutionRequest abil
/// <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);
}
Vaata ka
Organisatsiooni teenust kasutavad olemiklassi toimingud
Tehke toiminguid Web API abil
Ühiskasutus ja määramine
Koodile juurdepääsu kontrollimine
Lahendustega töötamine Dataverse SDK abil
Tagasiside
https://aka.ms/ContentUserFeedback.
Varsti tulekul: 2024. aasta jooksul tühistame GitHubi probleemide funktsiooni sisutagasiside mehhanismina ja asendame selle uue tagasisidesüsteemiga. Lisateabe saamiseks vtEsita ja vaata tagasisidet