Condividi tramite


Impostare e configurare l'agente di comunicazione fornitore (anteprima pronta per l'uso in produzione)

Annotazioni

I gruppi di interesse della community sono ora passati da Yammer a Microsoft Viva Engage. Per partecipare a una community Viva Engage e partecipare alle discussioni più recenti, compilare il modulo Request access to Finance and Operations Viva Engage Community e scegliere la community a cui si vuole partecipare.

[Questo articolo è una documentazione preliminare soggetta a modifiche].

Questo articolo illustra come gli amministratori di sistema possono configurare e configurare l'agente di comunicazione fornitore.

Istruzioni video

Per istruzioni video su come configurare il Supplier Communications Agent, accedi a Supplier Communications Agent: Impostazione e configurazione | Dynamics 365 Bites (video).

Le sezioni rimanenti di questo articolo forniscono le stesse istruzioni in un formato basato su testo.

Prerequisiti

Prima di poter usare l'agente di comunicazione fornitore, il sistema deve soddisfare i requisiti seguenti:

  • È necessario eseguire Microsoft Dynamics 365 Supply Chain Management versione 10.0.44 o successiva, con tutti gli aggiornamenti qualitativi disponibili.

  • Le funzionalità seguenti devono essere attivate nella gestione delle funzionalità. Selezionare Controlla la disponibilità di aggiornamenti se le funzionalità non vengono visualizzate nel sistema.

    • (Anteprima pronta per la produzione) Home immersiva
    • (Anteprima pronta per la produzione) Gestione degli agenti
    • (Anteprima pronta per la produzione) Agente di comunicazione fornitore
    • Facoltativo: se si vuole che l'agente invii automaticamente messaggi di posta elettronica, attivare la funzionalità (anteprima) Inviare messaggi di posta elettronica di completamento ai fornitori con l'agente di comunicazione fornitore, inviando automaticamente messaggi di posta elettronica. È consigliabile disattivare questa funzionalità per gli ambienti sandbox. Il motivo è che i dati (ad esempio gli ordini di acquisto) potrebbero non essere aggiornati o che gli indirizzi di posta elettronica del fornitore potrebbero non essere presenti.

    Suggerimento

    Se non è possibile abilitare le funzionalità di gestione Agent, assicurarsi che tutte le funzionalità prerequisites siano soddisfatte, ad esempio i requisiti di versione e l'abilitazione della fatturazione di Copilot Studio.

  • Nell'interfaccia di amministrazione di Power Platform assicurati di eseguire le versioni seguenti delle applicazioni Dynamics 365 nel tuo ambiente di gestione della catena di approvvigionamento. È importante installarli o aggiornarli nell'ordine seguente:

    • Prima di tutto, installare la versione 1.0.03048.2 o successiva di Copilot per le app Finanza e Operazioni. Se è già installato, aggiornarlo alla versione più recente.
    • Installare quindi Copilot in Microsoft Dynamics 365 Supply Chain Management versione 1.1.03071.1 o successiva. Se è già installato, aggiornarlo alla versione più recente.
  • In genere, gli agenti di Microsoft Copilot Studio necessari per l'esecuzione dell'agente di comunicazione fornitore vengono pubblicati automaticamente. Potrebbero tuttavia essere presenti criteri di prevenzione della perdita dei dati (DLP) nell'ambiente che impediscono la pubblicazione di questi agenti. Per verificare se gli agenti sono stati pubblicati correttamente, accedere a Copilot Studio e trovare l'ambiente. Assicurarsi che gli agenti di Microsoft Copilot Studio seguenti siano pubblicati in tale ambiente:

    • Agente di comunicazione con i fornitori - in entrata
    • Agente di comunicazione fornitore - in uscita.

    Se i due agenti non vengono pubblicati, è possibile trovare assistenza in Risoluzione dei problemi di applicazione delle politiche sui dati per Copilot Studio.

Configurare un'identità dell'agente

L'agente di comunicazione fornitore interagisce con Dataverse e Microsoft Copilot Studio per svolgere il proprio lavoro. Selezionare l'identità usata dall'agente per queste interazioni e creare le connessioni necessarie.

Suggerimento

Per motivi di sicurezza e facilità di manutenzione, usare un'identità dedicata per l'agente.

Impostare gli utenti dell'identità dell'agente e assegnare ruoli di sicurezza

Usare le funzionalità di gestione degli utenti per il tenant per creare un utente di identità agente. Assegnare quindi le licenze e i ruoli di sicurezza descritti nelle sottosezioni seguenti a tale utente.

Requisiti di licenza

L'agente di comunicazione del fornitore utilizza connettori di livello premium, pertanto l'utente dell'agente deve disporre di una licenza che consenta tali connettori. Per altre informazioni, vedere Domande frequenti sulle licenze di Power Platform o scaricare la Guida alle licenze.

Esempi di licenze sufficienti includono Power Apps Premium, Power Automate Premium o Dynamics 365 Supply Chain Management.

Usare l'interfaccia di amministrazione Microsoft 365 per assegnare le licenze necessarie.

Ruoli di sicurezza obbligatori

Aggiungere l'utente con identità di agente all'ambiente Dataverse e a Supply Chain Management. Assegnare all'utente dell'identità dell'agente i ruoli di sicurezza illustrati negli elenchi seguenti.

  • Ruoli utente Dataverse necessari:

    • Utente Base di Finanza e Operazioni
    • Agente di comunicazione fornitore
    • Autore dell'ambiente
  • Ruoli utente necessari per la gestione della catena di approvvigionamento

    • (Anteprima) Agente di comunicazione fornitore
    • Utente di sistema
    • Agente di sistema

Annotazioni

Il ruolo Agente di sistema in Supply Chain Management esenta l'utente dell'identità dell'agente dall'applicazione della licenza. Ciò significa che non è necessario allocare una licenza utente all'agente.

Creare le connessioni necessarie

Per creare le connessioni necessarie, seguire questa procedura:

  1. Aprire il portale di Power Apps Maker e accedere come utente amministratore dell'ambiente.

  2. Usare l'elenco a discesa Ambiente nell'intestazione della pagina per selezionare l'ambiente associato alle applicazioni finanziarie e operative.

  3. Nello strumento di spostamento a sinistra selezionare Connessioni.

  4. Nella parte superiore della pagina, seleziona Nuova connessione.

  5. Usare il campo Search a destra della pagina per trovare la connessione con un Name di Microsoft Dataverse (se vengono visualizzate due, usare quella con l'icona verde). Selezionare Crea per tale riga e seguire le istruzioni visualizzate sullo schermo. Accedi con l'identità utente desiderata dell'agente quando richiesto.

  6. Tornare all'elenco Connessioni . Il nuovo connettore viene ora visualizzato in fondo all'elenco e prende il nome dall'identità agente con cui è stato effettuato l'accesso al momento della creazione.

  7. Nella parte superiore della pagina, seleziona Nuova connessione.

  8. Trova la connessione con un Nome di Microsoft Copilot Studio. Selezionare Crea per tale riga e seguire le istruzioni visualizzate sullo schermo. Accedi come identità dell'agente desiderata quando richiesto.

  9. Tornare all'elenco Connessioni . Il nuovo connettore viene ora visualizzato in fondo all'elenco e prende il nome dall'identità agente con cui è stato effettuato l'accesso al momento della creazione.

    Configurazione di connessioni di esempio

Attivare i flussi di avvio di Power Automate

Annotazioni

Questa sezione descrive uno dei due modi per attivare i flussi di attivazione Power Automate. L'altro modo consiste nell'usare uno script di PowerShell, descritto nella sezione Attivare i flussi di attivazione Power Automate usando uno script di PowerShell più avanti in questo articolo. Non è necessario eseguire entrambi i metodi. Scegliere il metodo preferito.

Per completare la configurazione dell'identità dell'agente, è necessario attivare i flussi di attivazione Power Automate. Seguire questa procedura per usare un'app Canvas e completare la configurazione.

  1. Accedere al portale di Power Apps Maker come utente amministratore dell'ambiente.
  2. Selezionare l'ambiente dall'elenco a discesa Ambiente nell'intestazione della pagina.
  3. Nel riquadro a sinistra, seleziona Soluzioni.
  4. Aprire la scheda Gestito .
  5. Trovare e aprire la soluzione con un nome visualizzato di Copilot nella soluzione di Supply Chain Management.
  6. Nel riquadro Oggetti selezionare App.
  7. Selezionare l'app con il nome visualizzato di (Pronto per la produzione - anteprima) Configura Agente di Comunicazione Fornitore.
  8. Se Play è disabilitato sulla barra dei comandi, selezionare Condividi, aggiungere il nome e selezionare Condividi.
  9. Selezionare di nuovo l'app (Anteprima pronta per la produzione) Configurare l'agente di comunicazione del fornitore e quindi selezionare Avvia sulla barra dei comandi.
  10. In Connections selezionare le connessioni create nella sezione precedente per Microsoft Dataverse e Microsoft Copilot Studio.
  11. Selezionare Applica in basso a destra nella pagina e attendere che tutti i flussi elencati in Stato dei flussi di attivazione agente vengano attivati.

Assegnare autorizzazioni agli utenti che utilizzano l'agente

Tutti gli utenti Dynamics 365 Supply Chain Management che lavorano con l'agente devono essere creati anche come utenti di Dataverse (se non sono già presenti). Per informazioni su come, vedere Creare utenti.

Assegnare inoltre i ruoli descritti nelle sottosezioni seguenti.

Autorizzazioni per gli utenti che gestiscono la configurazione dell'agente

  • Ruoli utente Dataverse necessari:

    • Utente Basic
    • Configuration Manager dell'Agente di Finanza e Operazioni
    • Utente di base per finanza e operazioni
  • Ruoli utente necessari per la gestione della catena di approvvigionamento

    • Utente di sistema
    • Responsabile acquisti e/o Agente di acquisto

Autorizzazioni per gli utenti che esaminano i risultati dell'agente

  • Ruoli utente Dataverse necessari:

    • Utente Basic
    • Utente di base per finanza e operazioni
  • Ruoli utente necessari per la gestione della catena di approvvigionamento

    • Utente di sistema
    • Agente di acquisto

Sincronizzare le cassette postali con Dataverse

Per abilitare le funzionalità di analisi e recapito della posta elettronica dell'agente di comunicazione fornitore, è necessario configurare le cassette postali di destinazione in modo che vengano sincronizzate con Dataverse a livello di server.

Cassetta postale privata

Importante

Solo il proprietario di una cassetta postale privata può creare una configurazione dell'agente ed esaminare i risultati dell'agente correlati. Il proprietario deve disporre delle autorizzazioni per gestire la configurazione dell'agente ed esaminare i risultati dell'agente.

Per configurare una cassetta postale privata, seguire questa procedura:

  1. Accedere all'interfaccia di amministrazione di Power Platform come utente con il ruolo di sicurezza amministratore di sistema. Anche se gli utenti senza un ruolo amministratore possono abilitare la sincronizzazione per le proprie cassette postali, potrebbe essere necessaria l'approvazione dell'amministratore.
  2. Selezionare l'ambiente da configurare.
  3. Nella barra dei comandi seleziona Impostazioni.
  4. Nella pagina Impostazioni , in Posta elettronica, selezionare Cassette postali.
  5. Nel menu a discesa Seleziona una visualizzazione nella parte superiore della pagina selezionare Cassette postali attive.
  6. Selezionare la casella di controllo per ogni cassetta postale che si vuole usare con l'agente di comunicazione fornitore.
  7. Sulla barra dei comandi selezionare Test e abilitare la cassetta postale per abilitare la sincronizzazione per le cassette postali selezionate.

Dopo aver configurato una cassetta postale privata, l'utente proprietario deve aggiornare le impostazioni di personalizzazione per specificare che tutti i messaggi di posta elettronica devono essere rilevati.

Per abilitare il rilevamento di tutti i messaggi di posta elettronica per una cassetta postale privata di cui si è proprietari, seguire questa procedura:

  1. Nella pagina Cassette postali attive selezionare il pulsante Impostazioni (simbolo a forma di ingranaggio) in alto a destra e quindi selezionare Impostazioni personalizzazione.
  2. Nella scheda Posta elettronica della finestra di dialogo Imposta opzioni personali selezionare Tutti i messaggi di posta elettronica nel campo Traccia.
  3. Seleziona OK.

Cassetta postale condivisa

Se si usa una cassetta postale condivisa, seguire questa procedura:

  1. Accedere all'interfaccia di amministrazione di Power Platform come utente con un ruolo di sicurezza amministratore di sistema.

  2. Selezionare l'ambiente da configurare.

  3. Nella barra dei comandi seleziona Impostazioni.

  4. Nella pagina Impostazioni , in Utenti e autorizzazioni selezionare Teams.

  5. Sulla barra dei comandi selezionare Crea team.

  6. Nella finestra di dialogo Nuovo team specificare un nome (ad esempio My Mail Team), business unit e administrator in base alle esigenze. Impostare il campo Tipo di team su Proprietario.

  7. Seleziona Avanti.

  8. Nella finestra di dialogo Aggiungi membri del team aggiungere tutti gli utenti che devono avere accesso alla cassetta postale condivisa.

    Importante

    Aggiungere come membri del team tutti gli utenti che creano una configurazione dell'agente ed esaminano i risultati dell'agente correlati a questa cassetta postale.

  9. Seleziona Avanti.

  10. Nella finestra di dialogo Gestisci ruoli di sicurezza selezionare Utente di base e Finanza e Operazioni Utente di base e quindi selezionare Salva.

  11. Si torna all'elenco dei team. Trovare il team appena creato e aprirlo.

  12. Nell'angolo superiore destro trovare la coda predefinita associata al team e aprirla. La coda ha lo stesso nome del team, impostata tra parentesi angolari (ad esempio: <Il Mio Team di Posta>).

  13. Una cassetta postale deve essere visualizzata nella sezione Impostazioni posta elettronica . Selezionare il nome della cassetta postale.

  14. Nella pagina dei dettagli della cassetta postale selezionare Attiva sulla barra dei comandi e quindi selezionare Attiva nella finestra di dialogo.

  15. Nella sezione Informazioni cassetta postale immettere l'indirizzo di posta elettronica condiviso e salvare.

  16. Sulla barra dei comandi selezionare Test e abilita cassette postali.

    Suggerimento

    Se l'operazione non riesce, esaminare la sezione Avvisi per la cassetta postale. Se include un messaggio di errore che indica che è necessaria l'approvazione, è necessario chiedere all'amministratore globale o a Exchange di approvare la cassetta postale. Per altre informazioni, vedere Approvare il messaggio di posta elettronica.

  17. Assicurarsi che non siano configurate e attive altre cassette postali con lo stesso indirizzo di posta elettronica.

    1. Tornare alla pagina Impostazioni per l'ambiente in uso.
    2. In Posta elettronica selezionare Cassette postali.
    3. Nel menu a discesa Seleziona una visualizzazione nella parte superiore della pagina selezionare Cassette postali attive.
    4. Se altre cassette postali hanno lo stesso indirizzo di posta elettronica dell'indirizzo di posta elettronica della cassetta postale condivisa, disattivarle.

Ottenere istruzioni dettagliate in Configurare la sincronizzazione lato server della posta elettronica.

Risoluzione dei problemi

Problemi relativi alla configurazione dell'agente di comunicazione fornitore

Per informazioni sui problemi che possono verificarsi durante la configurazione dell'agente di comunicazione fornitore, vedere Domande frequenti e risolvere i problemi tipici durante la configurazione e la configurazione dell'agente di comunicazione fornitore.

Problemi relativi alla sincronizzazione lato server

Informazioni su come risolvere i problemi comuni relativi alla sincronizzazione lato server in Risoluzione dei problemi e monitoraggio.

Aggiornare i dati (facoltativo)

Dopo aver abilitato Supplier Communications Agent in un ambiente sandbox, è consigliabile eseguire un aggiornamento dei dati. In questo modo, quando si esegue il test nell'ambiente sandbox, è possibile usare gli stessi dati presenti nell'ambiente di produzione. Informazioni su come eseguire un aggiornamento del database in Aggiorna database.

Impostare l'indirizzo di posta elettronica come contatto fornitore per il test

Quando si usa la funzione di revisione e applicazione delle modifiche degli ordini di acquisto ricevute nelle email dei fornitori, l'agente legge solo i messaggi di posta elettronica dai domini dei fornitori. Questa limitazione significa che quando si testa il sistema e si vogliono inviare o inoltrare messaggi di posta elettronica del fornitore dal proprio account di posta elettronica, è necessario aggiungere l'indirizzo di posta elettronica come contatto del fornitore. Per aggiungere l'indirizzo di posta elettronica, seguire questa procedura:

  1. Passare a Approvvigionamento e fornitore>Fornitori> fornitori.
  2. Creare o selezionare un fornitore.
  3. Nella scheda dettaglio Informazioni di contatto aggiungere una riga con il proprio indirizzo di posta elettronica (quello da cui inviare o inoltrare i messaggi di test).

Attivare i flussi di attivazione di Power Automate usando uno script PowerShell

Annotazioni

Questa sezione descrive uno dei due modi per attivare i flussi di attivazione Power Automate. L'altro modo consiste nell'usare un'app Canvas, descritta nella sezione Activate the triggering Power Automate flows indicata precedentemente in questo articolo. Non è necessario usare entrambi i metodi; scegliere il metodo preferito.

Questo script di PowerShell di esempio completa l'impostazione dell'identità dell'agente aggiornando i riferimenti di connessione per l'agente e attivando i flussi di avvio di Power Automate.

Per usare lo script di PowerShell di esempio, seguire questa procedura:

  1. Copia lo script e salvalo come un file .ps1.

  2. Prima di eseguire lo script, immettere i valori per i quattro parametri seguenti nella parte superiore:

    • environmentId: specifica l'ID del tuo ambiente Dataverse. È possibile trovare l'ID nell'interfaccia di amministrazione di Power Platform.
    • dataverseUrl: specifica l'URL del tuo ambiente Dataverse. È possibile trovare l'URL nell'interfaccia di amministrazione di Power Platform. Includere https:// nell'URL.
    • DVConnectionName: specifica il nome del connettore Dataverse da usare. Il connettore prende il nome dall'identità dell'agente con cui hai effettuato l'accesso al momento della sua creazione. È possibile trovare il nome nella pagina Connections in Power Apps.
    • MCSConnectionName: specificare il nome del connettore Copilot Studio da usare. Il connettore prende il nome dall'identità dell'agente con cui hai effettuato l'accesso al momento della sua creazione. È possibile trovare il nome nella pagina Connections in Power Apps.
  3. Personalizzare lo script in base alle esigenze.

  4. Eseguire lo script da qualsiasi console di PowerShell o Visual Studio Code. Se necessario, seguire le istruzioni per aggiornare PowerShell installato alla versione 7. Quando viene richiesto di accedere, accedi come amministratore dell'ambiente.

Questo è lo script:

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 | Where-Object Version -ge 2.17)) {
    Write-Warning -Message 'Installing required version of module Az.Accounts'
    Install-Module -Name Az.Accounts -AllowClobber -Scope CurrentUser -Force -MinimumVersion 2.17
}

# Import required modules
Import-Module Az.Accounts -MinimumVersion 2.17
Import-Module Microsoft.PowerApps.PowerShell

function Get-AccessToken {
    # 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

    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 "new_sharedcommondataserviceforapps_6ae5d" `
    -accessToken $accessToken

Set-ConnectionReferenceConnection `
    -userProvidedConnectionName $MCSConnectionName `
    -providerName "/providers/Microsoft.PowerApps/apis/shared_microsoftcopilotstudio" `
    -connectionReferenceLogicalName "msdyn_sharedmicrosoftcopilotstudio_0be09" `
    -accessToken $accessToken

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

Enable-TriggerFlow -flowId 'c1061034-ff20-f011-9989-002248095ade' -accessToken $accessToken # (Self Heal) Speed up updates in purchase orders with Supplier Communications Agent
Enable-TriggerFlow -flowId '1db577aa-83fe-ef11-bae1-000d3a34a571' -accessToken $accessToken # Speed up updates in purchase orders with Supplier Communications Agent
Enable-TriggerFlow -flowId 'acd7bb36-07a1-ef11-a72d-6045bd0390ae' -accessToken $accessToken # Send follow-up emails to vendors with Supplier Communications Agent

Write-Host
Write-Host 'Supplier communications agent is ready for use' -ForegroundColor Green