Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Visi srautai saugomi Dataverse ir juos galite valdyti naudodami Dataverse SDK for .NET arba žiniatinklio API.
Šiame straipsnyje aptariamas srautų, įtrauktų į skirtuką Sprendimai , valdymas Power Automate. Šiuo metu srautų valdymas skiltyje Mano srautai nėra palaikomas naudojant kodą.
Sąveika su Dataverse API
Dataverse suteikia lygiavertes galimybes naudojant .NET skirtą **SDK** arba žiniatinklio API. Dataverse
Kurį metodą turėčiau naudoti?
Geriausias metodas priklauso nuo projekto technologijos ir jūsų turimų įgūdžių.
Jei jūsų projektas naudoja .NET, rekomenduojame naudoti SDK. SDK supaprastina kūrimo patirtį, pateikdamas tipizuotą objektų modelį ir autentifikavimo metodus.
Daugiau informacijos: Naudokitės organizacijos paslauga
Kaip prisijungti?
Kaip prisijungti, priklauso nuo to, ar naudojate .NET SDK, ar žiniatinklio API. Dataverse
Naudodami SDK, turite prisijungti prie kliento programos, kad gautumėte prieigą prie **IOrganizationService** egzemplioriaus.** ...
IOrganizationService yra sąsaja, teikianti metodus, kuriuos galite naudoti sąveikai su Dataverse.
Daugiau informacijos:
Darbo eigos lentelė
Debesijos srautai saugomi proceso (darbo eigos) lentelėje , kuri žiniatinklio API pateikiama kaip darbo eigos „EntityType“
Šioje lentelėje aprašomi svarbūs darbo eigos lentelės stulpeliai:
| Loginis pavadinimas | Tipas | Aprašą |
|---|---|---|
category |
Pasirinkimas | Srauto kategorija. Čia pateikiamos skirtingos kategorijos. 0 - Klasikiniai Dataverse darbo eigos.1 - Klasikiniai Dataverse dialogai. 2 - Verslo taisyklės. 3 - Klasikiniai Dataverse veiksmai. 4 - Verslo procesų srautai. 5 - Modern Flow (Automatizuoti, momentiniai arba suplanuoti srautai).6 - Darbastalio srautai. |
clientdata |
String | Eilutėje užkoduotas srauto apibrėžimo ir jo ryšio JSON. |
createdby |
Peržvalga | Vartotojas, kuris sukūrė srautą. |
createdon |
Data ir laikas | Data, kada srautas buvo sukurtas. |
description |
String | Vartotojo pateiktas srauto aprašymas. |
ismanaged |
Bulio logika | Nurodo, ar srautas buvo įdiegtas naudojant valdomąjį sprendimą. |
modifiedby |
Peržvalga | Paskutinis vartotojas, kuris atnaujino srautą. |
modifiedon |
Data ir laikas | Paskutinį kartą srautas buvo atnaujintas. |
name |
String | Rodomas pavadinimas, kurį suteikėte srautui. |
ownerid |
Peržvalga | Vartotojas arba komanda, kuriai priklauso srautas. |
statecode |
Pasirinkimas | Srauto būsena. Būsena gali būti:0 - Juodraštis (išjungtas)1 - Aktyvuota (įjungta)2 -Sustabdytas. |
type |
Pasirinkimas | Nurodo, ar srautas yra vykdomas srautas, ar šablonas, kurį galima naudoti norint sukurti daugiau srautų. 1 -Apibrėžimas2 -Aktyvinimas3 -Šablonas. |
workflowid |
GUID | Unikalus debesies srauto visuose importuojamuose objektuose identifikatorius. |
workflowidunique |
GUID | Unikalus šio srauto įrenginio identifikatorius. |
Pastaba.
Naudojant žiniatinklio API, peržvalgos reikšmės yra vienos reikšmės naršymo ypatybės , kurias galima išplėsti, kad gautumėte išsamios informacijos iš susijusio įrašo.
Peržvalgos stulpeliai taip pat turi atitinkamas GUID peržvalgos ypatybes , kurias galima naudoti užklausose. Peržvalgos ypatybės turi šią pavadinimų suteikimo konvenciją: _<logical name>_value "Web API" darbo eigos objekto tipui galite nurodyti šias peržvalgos ypatybes: _createdby_value, _modifiedby_value, ir _ownerid_value.
Sąrašo srautai
Norėdami gauti debesies srautų sąrašą, galite pateikti užklausą darbo eigos lentelei. Ši užklausa pateikia pirmąjį automatizuotą, momentinį arba suplanuotą srautą, kuris šiuo metu yra "įjungtas":
Šiam statiniam OutputFirstActiveFlow metodui reikalingas autentifikuotas klientas, kuris įgyvendina IOrganizationService. Jis naudoja IOrganizationService.RetrieveMultiple metodą.
/// <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"]}");
}
Norėdami gauti daugiau įrašų, pašalinkite "TopCount " limitą .
Išvesties
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
Daugiau informacijos:
Kurti debesies srautą
Būtinos automatizuotų, momentinių ir suplanuotų srautų ypatybės yra:,,,, category ir name. typeprimaryentityclientdata
none Naudokite primaryentity šių tipų srautams.
Šiam statiniam metodui reikalingas autentifikuotas klientas, kuris įgyvendina IOrganizationService. Jis naudoja IOrganizationService.Create metodą.
/// <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);
}
Daugiau informacijos: Lentelės eilučių kūrimas naudojant organizacijos tarnybą
Visų statecode tokiu būdu sukurtų srautų nustatymas yra ( 0 Juodraštis arba Išjungta). Kad srautą būtų galima naudoti, jį reikia įjungti.
Svarbiausia savybė yra ta clientdata, kurioje yra connectionReferences srauto naudojimas ir srauto apibrėžimas . Tai connectionReferences yra kiekvienos jungties, kurią naudoja srautas, susiejimai.
{
"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"
}
Atnaujinkite debesies srautą
Norėdami atnaujinti srautą, nustatykite tik tas ypatybes, kurias norite keisti.
Šiam statiniam metodui reikalingas autentifikuotas klientas, kuris įgyvendina IOrganizationService. Jis naudoja metodą IOrganizationService.Update , kad atnaujintų srauto aprašą ir nustatytų savininką.
/// <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);
}
Daugiau informacijos: Lentelės eilučių naujinimas ir naikinimas naudojant organizacijos tarnybos > bazinį naujinimą
Ištrinkite debesies srautą
Toliau pateiktuose pavyzdžiuose parodyta, kaip panaikinti darbo eigos įrašą, kuris atitinka debesies srautą.
Statinis DeleteCloudFlow metodas panaikina darbo eigos įrašą.
/// <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);
}
Daugiau informacijos: Įrašo naikinimas naudojant SDK
Gaukite visus vartotojus, su kuriais bendrinamas debesies srautas
Naudokite pranešimą, RetrieveSharedPrincipalsAndAccess kad gautumėte visų vartotojų, su kuriais bendrinamas debesies srautas, sąrašą.
Naudodami SDK naudokite RetrieveSharedPrincipalsAndAccessRequest klasę, o naudodami žiniatinklio API naudokite funkciją RetrieveSharedPrincipalsAndAccess.
Daugiau informacijos: Direktorių, turinčių prieigą prie įrašo, gavimas
Debesies srauto bendrinimas arba bendrinimo atšaukimas
Bendrinkite debesies srautą, kaip ir bet kurį kitą Dataverse įrašą, GrantAccess naudodami pranešimą. Naudodami SDK naudokite GrantAccessRequest klasę, o žiniatinklio API – veiksmą GrantAccess . Daugiau informacijos: GrantAccess pavyzdys
Jei norite pakeisti prieigos teises, kurias suteikiate bendrindami įrašą, naudokite ModifyAccess pranešimą. Naudodami SDK naudokite ModifyAccessRequest klasę , o žiniatinklio API – veiksmą ModifyAccess. Daugiau informacijos: ModifyAccess pavyzdys
Norėdami atšaukti įrašo bendrinimą, naudokite RevokeAccess pranešimą. Naudodami SDK naudokite klasę RevokeAccessRequest , o žiniatinklio API – veiksmą RevokleAccess. Daugiau informacijos: Prieigos atšaukimas
Eksporto srautai
Kai srautas yra sprendimo dalis, galite jį eksportuoti eksportuodami sprendimą, kuriame yra srautas, naudodami ExportSolution pranešimą.
Šis statinio ExportSolution pavyzdžio metodas naudoja ExportSolutionRequest , kad nuskaitytų byte[] nevaldomojo sprendimo ZIP failą su nurodytu 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;
}
Importo srautai
Kai turite sprendimo ZIP failą, galite jį importuoti naudodami ImportSolution pranešimą.
Kai importuojate srautus, turėtumėte nustatyti šiuos parametrus:
| Ypatybės pavadinimas | Aprašą |
|---|---|
OverwriteUnmanagedCustomizations |
Jei yra esamų šių srautų Dataverse egzempliorių, šią vėliavėlę reikia nustatyti, kad būtų galima juos importuoti true . Priešingu atveju jie neperrašomi. |
PublishWorkflows |
Nurodo, ar importuojant suaktyvinamos klasikinės Dataverse darbo eigos. Šis parametras netaikomas kitų tipų srautams. |
CustomizationFile |
Pagrindinis 64 užkoduotas ZIP failas, kuriame yra sprendimas. |
Statinio ImportSolution pavyzdžio metodas parodo, kaip importuoti sprendimo failą naudojant ImportSolutionRequest klasę
/// <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);
}
DUK
O kaip su API api.flow.microsoft.com?
API adresu api.flow.microsoft.com nepalaikoma. Vietoj to klientai turėtų naudoti žiniatinklio API, Dataverse kad dokumentuotų Power Automate anksčiau šiame straipsnyje.
Arba klientai gali naudoti valdymo jungtis: Power Automate Valdymas arba Power Automate administratoriams.
Klientai gali naudoti nepalaikomas api.flow.microsoft.com API savo rizika. Šios API gali keistis, todėl gali įvykti esminių pakeitimų.
Susijusi informacija
Objekto klasės operacijos naudojant organizacijos tarnybą
Operacijų atlikimas naudojant žiniatinklio API
Bendrinimas ir priskyrimas
Prieigos tikrinimas kodu
Dirbkite su sprendimais Dataverse naudodami SDK