Työpöytätyönkulkujen käsitteleminen koodin avulla

Kehittäjät voivat lisätä sovelluksiin työpöytätyönkulkujen toimintoja, mukaan lukien työpöytätyönkulkujen ohjelmallinen käynnistäminen ja peruuttaminen. Nämä ominaisuudet ovat osa Microsoft Dataverse -ympäristöä.

Edellytykset

  1. Dataversen verkon ohjelmointirajapinnan tietämys, todentaminen Dataversen avulla ja OAuthin käyttäminen Dataversen avulla.
  2. Dataverse-ympäristön tietämys ja organisaation käsitykset sekä miten organisaation URL-osoite noudetaan manuaalisesti tai ohjelmoidusti.
  3. Työpöytätyönkulkujen käsitysten tietämys ja tieto siitä, mitä yhteydet ovat ja miten niitä luodaan.

Important

Tässä artikkelissa URL-osoitteiden kaikki hakasulkeet [...] ja syöttö-/tulostiedot, joilla on skenaariota koskevia arvoja, on korvattava.

Saatavilla olevien työpöytätyönkulkujen luettelo

Kaikki Dataversen työpöytätyönkulkujen komentosarjat ovat osa työnkulkuentiteettiä.

Suodata työnkulkuluettelot luokan perusteella työpöytätyönkulkujen tunnistamiseksi.

Työpöytätyönkulkujen noutopyyntö

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

GET https://[Organization URI]/api/data/v9.2/workflows?$filter=category+eq+6&$select=name,workflowid&$orderby=name HTTP/1.1  

Työpöytätyönkulkujen noutopyynnön vastaus

{
    "@odata.context": "https://[Organization URI]/api/data/v9.2/$metadata#workflows(name,workflowid)",
    "value": [
        {
            "@odata.etag": "W1069462",
            "name": "Desktop flow 1",
            "workflowid": "f091ffab-58bb-4630-a115-659453d56f59",
        },
        {
            "@odata.etag": "W1028555",
            "name": "Desktop flow 2",
            "workflowid": "eafba1a2-e8d4-4efa-b549-11d4dfd9a3d1",
        }
    ]
}

Työpöytätyönkulkujen rakenteen nouto

Jos haluat noutaa työnkulun rakenteen syöttöjä ja/tai tuloksia varten, voit käyttää kohdetyönkulun clientData-kenttää.

Työpöytätyönkulkujen rakenteen pyyntö

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

GET https://[Organization URI]/api/data/v9.2/workflows([Workflow Id])/clientdata/$value HTTP/1.1  

Työpöytätyönkulkujen rakenteen noutopyynnön vastaus

{
    "clientversion": "2.19.00170.22097",
    "properties": {
        "definition": {
            "dependencies": [],
            "isvalid": true,
            "name": "Desktop Flow 1",
            "package": "UEsDBBQAAAAIAIqZlF...",
            "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#"
        },
        "inputs": {
            "schema": {
                "properties": {
                    "Input1": {
                        "default": "",
                        "description": "",
                        "format": null,
                        "title": "Input 1",
                        "type": "string",
                        "value": "0"
                    },
                    "Input2": {
                        "default": "",
                        "description": "",
                        "format": null,
                        "title": "Input2",
                        "type": "string",
                        "value": ""
                    }
                },
                "type": "object"
            }
        },
        "outputs": {
            "schema": {
                "properties": {
                    "Output1": {
                        "default": "",
                        "description": "",
                        "format": null,
                        "title": "Output",
                        "type": "string",
                        "value": null
                    }
                },
                "type": "object"
            }
        }
    },
    "schemaversion": "ROBIN_20211012",
    "targets": {
        "schema": {
            "properties": {},
            "type": "object"
        }
    }
}

Työpöytätyönkulun suorituksen tilan nouto

Dataverse tallentaa kaikki työpöytätyönkulkujen suoritukset flowsession-entiteettiin.

Työpöytätyönkulun suorituksen tilan pyyntö

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

GET https://[Organization URI]/api/data/v9.2/flowsessions([Flow session ID])?$select=statuscode,statecode,startedon,completedon HTTP/1.1  

Työpöytätyönkulun suorituksen tilan vastaus

{
    "@odata.context": "https://[Organization URI]/api/data/v9.2/$metadata#flowsessions(statuscode,statecode,startedon,completedon)/$entity",
    "@odata.etag": "W1276122",
    "statuscode": 8,
    "statecode": 0,
    "startedon": "2022-06-16T12:54:40Z",
    "completedon": "2022-06-16T12:57:46Z",
}

Työpöytätyönkulun tulosten nouto

Jos työpöytätyönkululla on tuloksia, voit tehdä kyselyn tulosten kentästä ja noutaa ne.

Työpöytätyönkulkujen tulosten pyyntö

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

GET https://[Organization URI]/api/data/v9.2/flowsessions([Flow session ID])/outputs/$value HTTP/1.1  

Työpöytätyönkulkujen tulosten pyynnön vastaus

{
    "Output1": "My output value"
}

Työpöytätyönkulun suorituksen käynnistäminen

Dataversen avulla voit lisätä toimintoja, jotka käynnistävät työpöytätyönkulun sovelluksessa. Sinun täytyy käyttää tämän ominaisuuden toteuttamiseen RunDesktopFlow-toimintoa.

Jos haluat kutsua toimintoa, tarvitset seuraavat tiedot.

  • Suoritettavan alityöpöytätyönkulun ID. Voit hakea tämän tunnuksen ohjelmointirajapinnan avulla, kuten Saatavilla olevien työpöytätyönkulkujen luettelo -osassa aiemmin tässä artikkelissa kerrotaan.

    Tip

    Vaihtoehtoisesti voit noutaa tunnuksen manuaalisesti työpöytätyönkulun tietojen URL-osoitteesta Power Automatessa. URL-osoitteen muoto on seuraava: https://flow.microsoft.com/manage/environments/[Environment ID]/uiflows/[Desktop Flow ID]/details.

    Lisätietoja on kohdassa Työpöytätyönkulkujen hallinta.

  • Työpöytätyönkulun yhteyden (kohteena kone/koneryhmä) name, jota käytetään työnkulun suorittamisessa. Nimi voidaan noutaa Power Automaten saman yhteyssivun URL-osoitteesta. URL-osoitteen muoto on seuraava:
    https://flow.microsoft.com/manage/environments/[Environment ID]/connections?apiName=shared_uiflow&connectionName=[Connection Name].

    Note

    Lisätietoja on kohdassa Luo työpöytätyönkulkujen yhteyksiä.

    Tip

    Voit käyttää yhteyden syötteenä vaihtoehtoisesti yhteysviitteen loogista nimeä yhteyden nimen sijaan (käyttöesimerkki kuvattu alla kuvattu). Yhteysviitteet tallennetaan Dataverse-taulukkoon connectionreference, ja niistä voidaan laatia luettelo ohjelmallisesti samalla tavalla kuin työpöytätyönkuluista, niin kuin Saatavilla olevien työpöytätyönkulkujen luettelo -osiossa on kuvattu.

    Lisätietoja on kohdassa Yhteysviitteen käyttö ratkaisussa ja connectionreference-taulukon/entiteetin viiteoppaassa.

Työpöytätyönkulun käynnistyspyyntö

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

POST https://[Organization URI]/api/data/v9.2/workflows([Workflow ID])/Microsoft.Dynamics.CRM.RunDesktopFlow HTTP/1.1  
{
    "runMode": "attended",
    "runPriority": "normal",
    "connectionName": "[Connection Name]",
    "timeout": 7200,
    "inputs": "{\"Input1\":\"Value\", \"Input2\":\"Value\"}"
}

Työpöytätyönkulun käynnistämisen pyytäminen yhteysviitteellä

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

POST https://[Organization URI]/api/data/v9.2/workflows([Workflow ID])/Microsoft.Dynamics.CRM.RunDesktopFlow HTTP/1.1  
{
    "runMode": "attended",
    "runPriority": "normal",
    "connectionName": "[Connection Reference Logical Name]",
    "connectionType": 2,
    "timeout": 7200,
    "inputs": "{\"Input1\":\"Value\", \"Input2\":\"Value\"}"
}

Työpöytätyönkulun käynnistyspyynnön vastaus

{
    "@odata.context": "https://[Organization URI]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RunDesktopFlowResponse",
    "flowsessionId": "d9687093-d0c0-ec11-983e-0022480b428a"
}

Warning

Ohjelmointirajapintaa käytettäessä on joitakin rajoituksia, jotka tulee huomioida:

  • Kun käynnistät työpöytätyönkulun käyttämällä ohjelmointirajapintaa, komentosarjan syötteitä ei voi tarkastella suorituksen tietosivulta Power Automate -portaalissa.

  • Suoritusta edustavan työnkulkuistunnon omistaja on yhdistetty työpöytätyönkulkua edustavan työnkulkuentiteetin omistajaan. Ohjelmointirajapinnan kutsumisessa työnkululle on joitakin rajoituksia käyttäjän käyttöoikeuksilla: suorituksen peruuttaminen ja tilan noutaminen saatetaan estää, jos työnkulkuistunnon käyttöoikeudet puuttuvat.

  • Dataverse-tekeytymistä ei tueta.

Komentosarjan valmistumista koskevan ilmoituksen vastaanottaminen

RunDesktopFlow-toiminnon rungossa on käytettävissä valinnainen parametri nimeltään "callbackUrl". Voit käyttää sitä, jos haluat saada ilmoituksen komentosarjan valmistumisesta. Annettuun URL-osoitteeseen lähetetään POST-pyyntö, kun komentosarja on valmis.

Vastakutsun päätepisteen vastaanottama pyyntö

User-Agent: EnterpriseConnectors/1.0
Content-type: application/json; charset=utf-8
x-ms-workflow-id: [Workflow ID]
x-ms-run-id: [Flow session ID]

POST [yourCallbackURL]  
{
    "statuscode": 4,
    "statecode": 0,
    "startedon": "2022-09-05T08:04:11Z",
    "completedon": "2022-09-05T08:04:41Z",
    "flowsessionid": "d9687093-d0c0-ec11-983e-0022480b428a"
}

Jos vastakutsun URL-parametria ei ole annettu, työnkulkuistunnon tila on noudettava Dataversestä (katso lisätietoja kohdasta Työpöytätyönkulun suorituksen tilan nouto).

Note

  • Voit edelleen käyttää tilan kyselyä varamekanismina, vaikka antaisit vastakutsun URL-parametrin.
  • Vastakutsun päätepisteen toiminnon tulisi olla idempotenttinen.
  • POST-pyyntöä yritetään uudelleen kolme kertaa sekunnin välein, jos päätepisteesi palauttaa palvelinvirhevastauksen (koodi 500 tai suurempi) tai "Pyyntö aikakatkaistu" -vastauksen (koodi 408).

Vastakutsun URL-parametrin vaatimukset

  • Palvelimellasi täytyy olla ajankohtaiset TLS- ja salausohjelmistopaketit.

  • Vain HTTPS-protokolla sallitaan.

  • localhost-päätepisteen (kaikutesti) käyttö ei ole sallittu.

  • IP-osoitteita ei voi käyttää. Sinun täytyy käyttää nimettyä WWW-osoitetta, joka edellyttää DNS-nimen ratkaisua.

  • Palvelimesi täytyy sallia yhteydet Power Platform- ja Dynamics 365 -palveluiden IP-osoitearvoista, jotka on määritetty AzureCloud-palvelutunnisteessa.

    Tip

    Koska vastakutsua ei todenneta, joitakin varotoimia tulisi noudattaa

    • Tarkista työkulkuistunnon tunnuksen kelpoisuus, kun vastakutsun ilmoitus vastaanotetaan. Dataverse on totuuden lähde.
    • Toteuta tiedonsiirtorajoituksen strategia palvelinpuolella.
    • Yritä rajoittaa vastakutsujen URL-osoitteiden jakamista useiden organisaatioiden välillä.

Työpöytätyönkulun suorituksen peruuttaminen

Käynnistin-toiminnon tavoin myös jonoon asetetun tai suoritettavan työpöytätyönkulun voi peruuttaa. Jos haluat peruuttaa työpöytätyönkulun, käytä CancelDesktopFlowRun-toimintoa.

Työpöytätyönkulun suorittamisen peruutuspyyntö

Authorization: Bearer eyJ0eXAiOi...
Accept: application/json

POST https://[Organization URI]/api/data/v9.2/flowsessions(d9687093-d0c0-ec11-983e-0022480b428a)/Microsoft.Dynamics.CRM.CancelDesktopFlowRun HTTP/1.1  

Työpöytätyönkulun peruutuspyynnön vastaus

HTTP/1.1 204 No Content

Virheet

Kun virhe ilmenee, vastauksella on erilainen muoto, joka vastaa Dataversen virhesanomia. HTTP-virhekoodissa ja -sanomassa on oltava riittävästi tietoja ongelman ymmärtämiseksi.

HTTP/1.1 403 Forbidden

{
    "error": {
        "code": "0x80040220",
        "message": " Principal user (Id=526..., type=8) is missing prvReadworkflow privilege (Id=88...*)”
    }
}

Note

Voitko kertoa meille dokumentaatiota koskevan kielimäärityksesi? Vastaa lyhyeen kyselyyn. (Huomaa, että tämä kysely on englanninkielinen.)

Kyselyyn vastaaminen kestää noin seitsemän minuuttia. Henkilökohtaisia tietoja ei kerätä (tietosuojatiedot).