Partekatu honen bidez:


Lan egin hodeiko fluxuekin kodea erabiliz

Fluxu guztiak Dataverse -n gordetzen dira eta Dataverse .NET-erako SDK edo Web APIa erabil ditzakezu kudeatzeko.

Artikulu honek Soluzioak fitxan sartutako fluxuen kudeaketa jorratzen du Power Automate. Gaur egun, Nire Fluxuak ataleko fluxuak kudeatzea ez da onartzen kodearekin.

Elkarreragin APIekin Dataverse

Dataverse baliokideak diren gaitasunek .NET-erako SDK edo Web APIa erabiliz baliokideak eskaintzen dituzte. Dataverse

Zein metodo erabili behar dut?

Metodo onena proiektuaren teknologiaren eta dituzun trebetasunen araberakoa da.

Zure proiektuak .NET erabiltzen badu, SDK erabiltzea gomendatzen dugu. SDK-k garapen-esperientzia errazten du objektu-eredu motatua eta autentifikazio-metodoak eskainiz.

Informazio gehiago: Erabili Erakundearen zerbitzua

Nola konektatu?

Konektatzeko modua .NET edo Web APIrako SDK erabiltzen ari zaren araberakoa da. Dataverse

SDK-arekin, bezero-aplikazio batekin konektatu behar duzu IOrganizationService instantzia batera sartzeko. ... IOrganizationService Dataverse-rekin elkarreragiteko metodoak eskaintzen dituen interfazea da.

Informazio gehiago:

Lan-fluxuaren taula

Hodeiko fluxuak Web APIan lan-fluxuaren entitate mota gisa irudikatzen den Prozesu (Lan-fluxu) taulan gordetzen dira. ......

Hurrengo taulak lan-fluxuen taulako zutabe garrantzitsuak deskribatzen ditu:

Izen logikoa Idatzi Deskribapenak
category Aukera Fluxuaren kategoria. Hona hemen kategoria desberdinak.
0 - Lan-fluxu klasikoak. Dataverse
1 - Elkarrizketa klasikoak. Dataverse
2 - Negozio arauak.
3 - Ekintza klasikoak. Dataverse
4 - Negozio-prozesuen fluxuak.
5 - Fluxu Modernoa (Fluxu automatizatuak, berehalakoak edo programatuak).
6 - Mahaigaineko fluxuak.
clientdata String Fluxuaren definizioaren eta bere connectionReferences-en kate-kodetutako JSON bat.
createdby Bilaketa Fluxua sortu duen erabiltzailea.
createdon DateTime Fluxua sortu zen data.
description String Erabiltzaileak fluxuaren deskribapena eman du.
ismanaged Boolearra Fluxua kudeatutako soluzio baten bidez instalatu den adierazten du.
modifiedby Bilaketa Fluxua eguneratu duen azken erabiltzailea.
modifiedon DateTime Fluxua azken aldiz eguneratu zen aldia.
name String Fluxuari eman diozun bistaratzeko izena.
ownerid Bilaketa Fluxuaren jabea den erabiltzailea edo taldea.
statecode Aukera Fluxuaren egoera. Egoera hau izan daiteke:
0 - Zirriborroa (Desaktibatuta)
1 - Aktibatuta (Piztuta)
2 - Suspendituta.
type Aukera Fluxua martxan dagoen fluxua den edo fluxu gehiago sortzeko erabil daitekeen txantiloia den adierazten du.
1 - Definizioa,
2 - Aktibazioa
3 - Txantiloia.
workflowid GUIDa Inportazio guztietan hodeiko fluxu baten identifikatzaile bakarra.
workflowidunique GUIDa Fluxu honen instalazioaren identifikatzaile bakarra.

Oharra

Web APIarekin, bilaketa-balioak hauek dira: balio bakarreko nabigazio-propietateak erlazionatutako erregistrotik xehetasunak lortzeko zabaldu daitekeena.

Bilaketa-zutabeek ere badute dagokien GUIDa bilaketa-propietateak kontsultetan erabil daitekeena. Bilaketa-propietateek izendapen-konbentzio hau dute: _<logical name>_value. Web APIko lan-fluxuaren entitate motarako, bilaketa-propietate hauek erreferentzia ditzakezu: _createdby_value, _modifiedby_value, eta _ownerid_value.

Zerrendatu fluxuak

Hodeiko fluxuen zerrenda berreskuratzeko, lan-fluxuen taula kontsulta dezakezu. Hurrengo kontsultak une honetan 'piztuta' dagoen lehenengo fluxu automatizatua, berehalakoa edo programatua itzultzen du:

Estatiko hau OutputFirstActiveFlow metodoak inplementatzen duen bezero autentifikatu bat behar du IOrganizationService. Erabiltzen du IOrganizationService.RetrieveMultiple metodoa.

/// <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"]}");
}

Erregistro gehiago berreskuratzeko, kendu Gehieneko Kopurua muga.

Irteera

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

Informazio gehiago:

Sortu hodeiko fluxu bat

Fluxu automatizatu, berehalako eta programatuetarako beharrezko propietateak hauek dira: category, name, type, primaryentity, eta clientdata. Erabili none -rentzat primaryentity fluxu mota hauetarako.

Metodo estatiko honek bezero autentifikatu bat behar du, hau ezartzen duena: IOrganizationService. Erabiltzen du IOrganizationService.Create metodoa.

/// <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);
}

Informazio gehiago: Sortu taula-errenkadak Antolakuntza Zerbitzua erabiliz

Modu honetan sortutako fluxu guztiak statecode (Zirriborroa edo 'Desaktibatuta') gisa ezarrita daude. 0 Fluxua gaituta egon behar da erabili ahal izateko.

Propietate garrantzitsuena clientdata da, fluxuak erabiltzen duen connectionReferences eta fluxuaren definizioa jasotzen dituena. Fluxuak erabiltzen dituen konexio bakoitzerako mapaketak dira 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"
}

Hodeiko fluxu bat eguneratu

Fluxu bat eguneratzeko, aldatu nahi dituzun propietateak bakarrik ezarri.

Metodo estatiko honek bezero autentifikatu bat behar du, hau ezartzen duena: IOrganizationService. Fluxuaren deskribapena eguneratzeko eta jabea ezartzeko IOrganizationService.Update metodoa erabiltzen du.

/// <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);
}

Informazio gehiago: Taularen errenkadak eguneratu eta ezabatu Antolakuntza Zerbitzua erabiliz > Oinarrizko eguneratzea

Ezabatu hodeiko fluxu bat

Adibide hauek hodeiko fluxu bat adierazten duen lan-fluxuaren erregistroa nola ezabatu erakusten dute.

Metodo estatikoak lan-fluxuaren erregistro bat ezabatzen du. 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);

}

Informazio gehiago: Ezabatu erregistro bat SDK erabiliz

Lortu hodeiko fluxu bat partekatzen den erabiltzaile guztiak

Erabili RetrieveSharedPrincipalsAndAccess mezua hodeiko fluxu bat partekatzen den erabiltzaile guztien zerrenda lortzeko.

SDK-arekin, erabili RetrieveSharedPrincipalsAndAccessRequest klasea, eta Web API-arekin erabili RetrieveSharedPrincipalsAndAccess funtzioa.

Informazio gehiago: Lortu erregistro baterako sarbidea duten nagusiak

Hodeiko fluxu bat partekatu edo partekatzeari utzi

Partekatu hodeiko fluxu bat beste edozein erregistro bezala mezua erabiliz. Dataverse GrantAccess SDK-arekin, erabili GrantAccessRequest klasea eta Web API-arekin erabili GrantAccess ekintza. Informazio gehiago: GrantAccess adibidea

Erregistro bat partekatzean ematen dituzun sarbide-eskubideak aldatu nahi badituzu, erabili ModifyAccess mezua. SDK-arekin, erabili ModifyAccessRequest klasea eta Web API-arekin erabili ModifyAccess ekintza. Informazio gehiago: ModifyAccess adibidea

Erregistro bat partekatzeari uzteko, erabili RevokeAccess mezua. SDK-arekin, erabili RevokeAccessRequest klasea eta Web API-arekin erabili RevokeAccess ekintza. Informazio gehiago: Sarbidea ezeztatzea

Esportazio-fluxuak

Fluxu bat soluzio baten parte denean, esportatu dezakezu fluxua duen soluzioa esportatuz ExportSolution mezua erabiliz.

Hurrengo metodo estatikoak ExportSolution ExportSolutionRequest erabiltzen du zehaztutako UniqueName byte[] duen kudeatu gabeko soluzioaren ZIP fitxategia duen fitxategia berreskuratzeko.

/// <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;
}

Inportazio-fluxuak

ZIP fitxategi bat duzunean, mezua erabiliz inporta dezakezu. ImportSolution

Fluxuak inportatzerakoan, parametro hauek ezarri behar dituzu:

Propietatearen izena Deskribapenak
OverwriteUnmanagedCustomizations Fluxu hauen instantziak badaude Dataverse-n, bandera hau true -ra ezarri behar da inportatzeko. Bestela, ez dira gainidatziko.
PublishWorkflows Inportatzean lan-fluxu klasikoak aktibatuta dauden adierazten du. Dataverse Ezarpen hau ez da aplikatzen beste fluxu mota batzuetan.
CustomizationFile Soluzioa duen base 64 kodeketa duen zip fitxategi bat.

Lagin estatiko ImportSolution metodoak erakusten du nola inportatu soluzio-fitxategi bat ImportSolutionRequest klasea erabiliz

/// <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);
}

FAQa

Zer gertatzen da api.flow.microsoft.com-eko APIarekin?

api.flow.microsoft.com helbideko APIa ez da onartzen. Bezeroek artikulu honetan aurretik dokumentatutako Dataverse Web APIak erabili beharko lituzkete. Power Automate

Bestela, bezeroek kudeaketa konektoreak erabil ditzakete: Power Automate Kudeaketa edo Power Automate Administratzaileentzat.

Bezeroek API bateraezinak erabil ditzakete beren ardurapean. api.flow.microsoft.com API hauek alda daitezke, beraz, aldaketa garrantzitsuak gerta daitezke.

Erakundearen zerbitzua erabiliz entitate klaseko eragiketak
Egin eragiketak Web APIa erabiliz
Partekatzea eta esleitzea
Kodean sarbidea egiaztatzea
Lan egin irtenbideekin erabiliz Dataverse SDK