Jagamisviis:


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 -Definitsioon
2 -Aktiveerimise
3 -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 categoryname. typeprimaryentityclientdata 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);
}

Lisateave: tabeliridade loomine organisatsiooniteenuse abil

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