Opsæt og konfigurer Kontoafstemningsagenten (production-ready prøveversion)

[Denne artikel er foreløbig dokumentation og kan ændres.]

Note

Microsoft forbedrer Account Reconciliation Agent for at give kunderne større fleksibilitet i konfigurationen og forudsigeligt kreditforbrug. Indtil disse forbedringer er udgivet, skal Microsoft-teamet aktivere denne agent. Hvis du vil anmode om aktivering og blive guidet gennem processen, skal du udfylde denne formular.

I denne artikel forklares det, hvordan systemadministratorer kan konfigurere afstemningsagenten Konto i Microsoft Dynamics 365 Finance. Kunder kan bruge Power Platform administrationscenter til at konfigurere og indstille kontoudligningsagenten. Du kan få flere oplysninger under Deploy Dynamics 365 agenter ved hjælp af guiden agentinstallation.

Note

For at forbedre ydeevne og responskvalitet kan Microsoft automatisk opdatere den AI-model, som tjenesten bruger. Som følge heraf kan modellen, der genererer svar, afvige fra den, der vises i brugergrænsefladen.

Forudsætninger

Før du bruger afstemningsagenten Konto, skal du sørge for, at systemet opfylder følgende krav:

  • Du kører Dynamics 365 Finance version 10.0.46 eller nyere.

  • Du aktiverer følgende funktioner i Funktionsstyring. Hvis funktionerne ikke vises i dit system, skal du vælge Søg efter opdateringer.

    • Oplevelsesrigt hjem
    • Agentadministration
    • (Produktionsklar forhåndsversion) Kontoafstemningsagent
  • Du kører følgende pakker i Power Platform Administration:

    • Copilot til programmer til finans og drift, version 1.0.3048.2 eller senere
    • Copilot i Microsoft Dynamics 365 Finance, version 1.0.3049.1 eller nyere

De Microsoft Copilot Studio-agenter, der er nødvendige for at Account Reconciliation-agenten kan køre, offentliggøres automatisk. Men der kan være DLP-politikker (forebyggelse af datatab) i dit miljø, der forhindrer publicering af disse agenter. Følg disse trin for at kontrollere, om agenterne er blevet succesfuldt publiceret:

  1. Gå til Copilot Studio, og find dit miljø.
  2. Bekræft, at følgende Microsoft Copilot Studio-agenter er publiceret i det pågældende miljø:
  • Kontoafstemningsagent

Hvis agenterne ikke publiceres, se Fejlfind håndhævelse af datapolitikene for Copilot Studio. Bekræft, at agenterne er delt med organisationen.

Få mere at vide i Oversigt over Forenklet start. 

Oprette agentidentitet

Tip

Af hensyn til sikkerheden og vedligeholdelsen skal du bruge en dedikeret identitet for agenten.

Opret agentidentitetsbrugere, og tildel sikkerhedsroller

Opret brugerkonti til agentidentitet i både Dataverse og Finance.

Tildel følgende sikkerhedsroller til brugerkontiene:

  • Påkrævede Dataverse-brugerroller:

    • Basic-bruger af finans og drift
    • Rolle som kontoafstemningsagent
    • Miljøopretter
  • Påkrævede Finance-brugerroller:

    • Kontoafstemningsagent
    • Systembruger

Note

Sikkerhedsrollen systemagent er undtaget fra brugerlicenskrav til Dynamics 365 Finance and Operations. Du kan få mere at vide under Brug modelkontekstprotokol til finance- og driftsapps.

Udrul agenten

Note

Du kan udrulle agenten på to måder. Den første måde er at bruge den nye Agentinstallationsguide-oplevelse. Den anden måde er manuelt at oprette de nødvendige forbindelser og aktivere flowene ved hjælp af et PowerShell-script. I følgende afsnit beskrives de to måder.

Udrulning via agentens installationsguide

Guiden Agentinstallation forenkler processen med at konfigurere påkrævede forbindelser for agenten og aktiverer de nødvendige flow.

Få adgang til guiden Installation

Følg disse trin for at få adgang til guiden Installation:

  1. Åbn Copilot Hub i Power Platform Administration, og vælg Dynamics 365.
  2. Hvis du ikke kan se Copilot Hub i Power Platform Administration, skal du kontrollere, om funktionsflaget ShowDynamics365ERPInCopilotHub er aktiveret.
  3. Vælg destinationsmiljøet.
  4. Vælg kontoafstemningsagenten.
  5. Vælg Tilføj for at starte guiden Agentinstallation.

Udrul agenten ved hjælp af guiden

Forudsætninger – Guiden kontrollerer, om destinationsmiljøet opfylder alle påkrævede krav for afstemningsagenten for konti. Den indeholder også en valgfri handling for at opdatere de virtuelle objekter for afstemningsagent for konti. Selvom dette trin er valgfrit, anbefales det, at du opdaterer de virtuelle objekter for korrekt aktivering af afstemningsagenten Konti.

Vælg agent-id'et

Hver agent kører under en dedikeret agentbrugeridentitet. I dette trin skal du vælge den tidligere oprettede bruger som en del af trinnet Konfigurer agentidentitet.

Opretter forbindelse til agenten

I dette trin beder guiden dig om at vælge forbindelsesreferencen til Microsoft Dataverse og Copilot Studio. Hvis forbindelsesreferencen ikke findes, kan du oprette den. Hvis du vil oprette forbindelsesreferencen, skal du vælge plusikonet ud for rullelisten forbindelsesreference. Opret forbindelsesreferencer ved hjælp af den agentidentitet, du tidligere har konfigureret, som nævnt i brugergrænsefladen.

Når du har valgt eller oprettet en forbindelsesreference for hver af ressourcerne eller programmerne, skal du vælge Forbind agenten for at konfigurere forbindelsesreferencerne for agenten.

Derefter skal du aktivere alle Power Automate flow, der bruges af agenten, som en del af det andet trin på denne side.

Aktivering af agenten

Det sidste trin gør agenten tilgængelig til brug. Følg disse trin for at aktivere agenten:

  1. Publicer agentbotten i Copilot Studio.
  2. Kontrollér, at agenten er aktiveret og tilgængelig i destinationsmiljøet.
  3. Når du aktiverer agenten, bliver den aktiv og klar til brug.

Du kan få flere oplysninger om guiden Agentinstallation under Deploy Dynamics 365 agenter ved hjælp af guiden agentinstallation.

Manuel udrulning af agenten

Opret de påkrævede forbindelser

Kontoafstemningsagenten bruger forbindelser til Dataverse og Microsoft Copilot Studio til at udføre sit arbejde. Konfigurer disse connectors, før du bruger agenten.

Følg disse trin for at konfigurere connectorerne:

  1. Log på Power Apps ved hjælp af den nyoprettede agentidentitetsbruger.

  2. Vælg Forbindelser i navigationsruden til venstre.

  3. Vælg Ny forbindelse øverst på siden.

  4. I feltet Search skal du angive Microsoft Dataverse.

  5. Find forbindelsen Microsoft Dataverse i søgeresultaterne, vælg Opret for den, og følg vejledningen på skærmen for at oprette connectoren.

  6. Når du bliver bedt om at logge på, skal du logge på som den ønskede agentidentitet.

    Du returneres til siden Forbindelser. Den nye connector vises nederst på listen og er opkaldt efter den agentidentitet, du loggede på, som da du oprettede den.

  7. Vælg Ny forbindelse øverst på siden.

  8. Søg efter forbindelsen Microsoft Copilot Studio (prøveversion) forbindelse, vælg Opret, og følg vejledningen på skærmen for at oprette connectoren. Når du bliver bedt om at logge på, skal du logge på som den ønskede agentidentitet.

    Du returneres til siden Forbindelser. Den nye connector vises nederst på listen og er opkaldt efter den agentidentitet, du loggede på, som da du oprettede den.

Opdater forbindelsesreferencer, og aktivér de udløsende flows

Hvis du vil afslutte konfigurationen af agentidentitet, skal du opdatere agentens forbindelsesreferencer, så de peger på de forbindelser, du har oprettet. Du skal også aktivere de udløsende Power Automate-flows. Dette afsnit indeholder et eksempel på PowerShell script, som du kan bruge til at udføre begge opgaver.

Hvis du vil bruge PowerShell-eksempelscriptet, skal du følge disse trin:

  1. Kopiér scriptet, og gem det som en .ps1-fil.

  2. Før du kører scriptet, skal du angive følgende fire parametre øverst:

    • environmentId – Angiv id'et for dit Dataverse-miljø. Du kan finde dette id i Power Platform Administration.
    • dataverseUrl – Angiv URL-adressen for dit Dataverse-miljø. Du kan finde denne webadresse i Power Platform Administration.
    • DVConnectionName – Angiv navnet på den Dataverse-connector, der skal bruges. Connectoren er opkaldt efter den agentidentitet, du loggede på som, da du oprettede den. Du kan finde navnet på siden Connections i Power Apps.
    • MCSConnectionName – Angiv navnet på den Copilot Studio-connector, der skal bruges. Connectoren er opkaldt efter den agentidentitet, du loggede på som, da du oprettede den. Du kan finde navnet på siden Connections i Power Apps.
  3. Tilpas scriptet efter behov.

  4. Kør scriptet fra enhver PowerShell-konsol. Når du bliver bedt om at logge på, skal du logge på som miljøadministrator.

Eksempelscript til opdatering af forbindelsesreferencer og aktivering af udløsende flow

Param(
    [Parameter(Mandatory=$true, HelpMessage="Dataverse environment id")]
    [string]$environmentId = "", 
    [Parameter(Mandatory=$true, HelpMessage="Dataverse environment URL")]
    [string]$dataverseUrl = "",
    [Parameter(Mandatory=$true, HelpMessage="Microsoft Dataverse connection name")]
    [string]$DVConnectionName = "",
    [Parameter(Mandatory=$true, HelpMessage="Microsoft Copilot Studio connection name")]
    [string]$MCSConnectionName = ""
)
# Check PS version
if ($PSVersionTable.PSVersion.Major -lt 7) {
    Write-Error 'This script requires at least PowerShell version 7' -ErrorAction Stop
}

# Install the required modules if not already installed
if (-not (Get-Module -ListAvailable -Name Microsoft.PowerApps.PowerShell)) {
    Write-Warning -Message 'Installing module Microsoft.PowerApps.PowerShell'
    Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber -Scope CurrentUser
}

# Install the required modules if not already installed
if (-not (Get-Module -ListAvailable -Name Az.Accounts)) {
    Write-Warning -Message 'Installing module Az.Accounts'
    Install-Module -Name Az.Accounts -AllowClobber -Scope CurrentUser
}

# Import required modules
Import-Module Az.Accounts
Import-Module Microsoft.PowerApps.PowerShell
function Get-AccessToken {
    try {
    # Retrieve the access token for the Dataverse environment
    $accessToken = Get-AzAccessToken -ResourceUrl "$dataverseUrl" -AsSecureString
    $token = $accessToken.Token
    $userId = $accessToken.UserId

    Write-Host "Access token for $userId retrieved successfully." -ForegroundColor Green
    } catch {
        Write-Host "Failed to retrieve access token. Error: $($_.Exception.Message)" -ForegroundColor Red
    }
    return $token
}

function Get-ConnectionId {
    param (
        [string]$userProvidedName,
        [string]$providerName
    )
    $matchedConnectionId = $null
    $connections = Get-PowerAppConnection -EnvironmentName $environmentId -ConnectorNameFilter $providerName
    foreach ($con in $connections) {
        if (($con.ConnectionName -eq $userProvidedName) -or ($con.DisplayName -eq $userProvidedName))
        {
            $matchedConnectionId = $con.ConnectionName
            break
        }
    }
    if ($null -eq $matchedConnectionId)
    {
        Write-Error -Message "Unable to find connection $userProvidedName ($providerName)" -ErrorAction Stop
    }
    Write-Host "Found connection id $matchedConnectionId for connection $userProvidedName"
    return $matchedConnectionId
}

function Get-ConnectionReferenceId {
    param(
        [string]$connectionReferenceLogicalName,
        [securestring]$accessToken
    )
    $uri = "$dataverseUrl/api/data/v9.2/connectionreferences?`$filter=connectionreferencelogicalname eq '$connectionReferenceLogicalName'"
    $response = Invoke-RestMethod -Method Get `
        -Uri $uri `
        -Authentication Bearer -Token $accessToken `
        -ContentType 'application/json'        
    
    if ($null -eq $response) {
        Write-Error -Message "Connection reference not found for logical name $connectionReferenceLogicalName" -ErrorAction Stop
    }
    $connectionReferenceDisplayName = $response.value[0].connectionreferencedisplayname
    $connectionReferenceId = $response.value[0].connectionreferenceid
    Write-Host "Found connection reference id $connectionReferenceId for $connectionReferenceDisplayName ($connectionReferenceLogicalName)"
    return $connectionReferenceId
}

function Set-ConnectionReferenceConnection {
    param (
        [string]$connectionReferenceLogicalName,
        [string]$userProvidedConnectionName,
        [string]$providerName,
        [securestring]$accessToken
    )
    Write-Host "Updating connection reference ${connectionReferenceLogicalName}..."
    $connectionReferenceId = Get-ConnectionReferenceId -connectionReferenceLogicalName $connectionReferenceLogicalName -accessToken $accessToken
    $connectionId = Get-ConnectionId -userProvidedName $userProvidedConnectionName -providerName $providerName
    $body = @{
        "connectionid" = "$connectionId"
    } | ConvertTo-Json -Depth 1
    $uri = "$dataverseUrl/api/data/v9.2/connectionreferences($connectionReferenceId)"
    Write-Host "Updating connection reference URI: $uri with connection id $connectionId"
    Invoke-RestMethod -Method Patch `
        -Uri $uri `
        -Authentication Bearer -Token $accessToken `
        -ContentType 'application/json' `
        -Body $body
   
    Write-Host "Connection reference updated successfully." -ForegroundColor Green
    Write-Host
}

function ValidateUserEnvironment {
    param (
        [string]$environmentId
    )
   $env = Get-PowerAppEnvironment -EnvironmentName $environmentId
    
    if ($null -eq $env) {
        Write-Error -Message "Environment $environmentId was not found" -ErrorAction Stop
    }
    $displayName = $env.DisplayName
    Write-Host "Connected to environment: $displayName ($environmentId)"
}

function Enable-TriggerFlow {
    param (
        [string]$flowId,
        [securestring]$accessToken
    )
    $flowUri = "$dataverseUrl/api/data/v9.2/workflows($flowId)"
    $flow = $null
    Write-Host "Enabling flow $flowId with uri $flowUri"
    try {
        $flow = Invoke-RestMethod -Method Get `
            -Uri $flowUri `
            -Authentication Bearer -Token $accessToken `
            -ContentType 'application/json'
    }
    catch {
        Write-Error -Message $_.Exception -ErrorAction Stop
    }
    $displayName = $flow.name
    Write-Host "Activating flow $displayName for id $flowId"
    $body = @{
        "statecode" = 1  # Activated
        "statuscode" = 2 # Activated
    } | ConvertTo-Json -Depth 1 -Compress
    
    try {
        Invoke-RestMethod -Method Patch `
            -Uri $flowUri `
            -Authentication Bearer -Token $accessToken `
            -ContentType 'application/json' `
            -Body $body
    }
    catch {
        Write-Error -Message $_.Exception -ErrorAction Stop
    }
    Write-Host "Activated flow $displayName" -ForegroundColor Green
    Write-Host
}

# Actual script body
Write-Host
Write-Host "Authenticating interactively..."
Write-Host

Connect-AzAccount -UseDeviceAuthentication
$accessToken = Get-AccessToken
ValidateUserEnvironment -environmentId $environmentId

Write-Host
Write-Host 'Setting up connection references...'
Write-Host

Set-ConnectionReferenceConnection `
    -userProvidedConnectionName $DVConnectionName `
    -providerName "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps" `
    -connectionReferenceLogicalName "msdyn_sharedcommondataserviceforapps_f9321" `
    -accessToken $accessToken
Set-ConnectionReferenceConnection `
    -userProvidedConnectionName $MCSConnectionName `
    -providerName "/providers/Microsoft.PowerApps/apis/shared_microsoftcopilotstudio" `
    -connectionReferenceLogicalName "msdyn_sharedmicrosoftcopilotstudio_462f2" `
    -accessToken $accessToken

Write-Host
Write-Host 'Activating flows...'
Write-Host

Enable-TriggerFlow -flowId '570a7d17-ac0a-f011-bae1-6045bd0139fb' -accessToken $accessToken # Account reconciliation - Complete agent activity request
Enable-TriggerFlow -flowId '75c311f8-1880-ef11-ac21-000d3a5aa6e6' -accessToken $accessToken # Account reconciliation - Determine work to be done
Enable-TriggerFlow -flowId '13dd7af5-f73b-f111-bec6-0022480882fa' -accessToken $accessToken # Account reconciliation - Generate and log recommended action
Enable-TriggerFlow -flowId 'd3314698-792b-f111-88b5-00224808ca0b' -accessToken $accessToken # Account reconciliation - Agent execution is triggered

Write-Host
Write-Host 'Account reconciliation agents are ready for use' -ForegroundColor Green