---
sourceDocument: Australie Finance et chaîne d’approvisionnement
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/source-to-pay-operations

 Release :

    - australia

ft:locale :

    - fr-FR

ft:publication_title :

    - Australie Finance et chaîne d’approvisionnement

ft:clusterId :

    - stpop

bundleId :

    - stpop

workflow :

    - Creator


---

# Exécuter le script correctif pour Opérations de comptes fournisseurs

# Exécuter le script correctif pour Opérations de comptes fournisseurs {#ariaid-title1}

* Rversion finale: Australia
* 
* Mis à jour 12 mars 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes de lecture

Exécutez le script correctif pour une installation réussie de Opérations de comptes fournisseurs.

## Avant de commencer

* Installez le module d'extension Traitement `des factures des comptes fournisseurs ` .
* Exécuter le script de correctif pour l'exception Fonds insuffisants (écart du montant de l'en-tête) pour fonctionner.
* Définissez le périmètre de l'application sur Architecture commune Source-to-Pay.
* Toutes les factures associées au bon de commande doivent être disponibles dans le système pour l'exception de fonds insuffisants (écart de montant d'en-tête) pour fonctionner.
* Assurez-vous que les factures ont la même devise que celle associée à la devise du bon de commande pour que l'exception s'exécute correctement.
* Vous pouvez exécuter le script correctif par lots en ajoutant la commande `gr.setLimit(100000)` après la ligne de commande` gr.addEncodedQuery(<< in_process_invoiced_amountISEMPTY >>`. Exécutez le script par lots de 100k ou 200k.
* Assurez-vous que les bons de commande sont mis à jour avec les champs Montant de facture en cours de traitementet Montant de facture .  
  Remarque :  
  Si le script correctif n'est pas exécuté pour les bons de commande, l'exception de fonds insuffisants (écart de montant d'en-tête) associée à une facture ne fonctionne pas.

{#run-fix-script-for-apo__ul_gyr_r44_dzb}

Rôle requis : admin

## Procédure

1. Accédez à la TousDéfinition du systèmeScripts correctifs.
2. Cliquez sur Nouveau.  
   Un nouvel enregistrement de script correctif s'ouvre.
3. Dans le champ Nom , saisissez le nom Mettre `à jour les montants facturés des bons de commande pour APO`.
4. Dans le champ Script , copiez-collez le script mentionné ci-dessous.

    updatePOInvoicedAmounts();

    function updatePOInvoicedAmounts() {
        var sessionCurrency = new sn_currency.GlideCurrencyConfig().getSessionCurrency();
        var gr = new GlideRecord("sn_shop_purchase_order");
        gr.addEncodedQuery('in_process_invoiced_amountISEMPTY');
        gr.query();
        while (gr.next()) {
            var poSysID = gr.getValue('sys_id');
            var inProcessInvoiceAmt = getInProcessInvoicedAmount(poSysID);
            var invoicedAmount = getInvoicedAmount(poSysID);
            var poCurrency = !gs.nil(gr.total_amount) ? gr.total_amount.currency : sessionCurrency;
            var amtUpdated = false;
            if (!gs.nil(inProcessInvoiceAmt)) {
                inProcessInvoiceAmt = poCurrency + ';' + inProcessInvoiceAmt;
                gr.getElement('in_process_invoiced_amount').setDisplayValue(inProcessInvoiceAmt);
                amtUpdated = true;
            }
            if (!gs.nil(invoicedAmount)) {
                invoicedAmount = poCurrency + ';' + invoicedAmount;
                gr.getElement('invoiced_amount').setDisplayValue(invoicedAmount);
                amtUpdated = true;
            }
            if (amtUpdated)
                gr.update();
        }
    }
     
    function getInProcessInvoicedAmount(poSysId) {
        var query = 'invoice_amountISNOTEMPTY,^invoice_amount.amount!=0^stateINpo_matching_completed,exceptions_found,no_exceptions_found,pending_approval,approval_recalled,approved';
        var gr = new GlideAggregate('sn_shop_invoice');
        gr.addNotNullQuery('purchase_order');
        gr.addQuery('purchase_order', poSysId);
        gr.addEncodedQuery(query);
        gr.addAggregate('SUM', 'invoice_amount.amount');
        gr.groupBy('purchase_order');
        gr.query();
        if (gr.next()) {
            var inProcessInvoicedAmt = gr.getAggregate('SUM', 'invoice_amount.amount');
            return inProcessInvoicedAmt;
        }
        return 0;
    }
     
    function getInvoicedAmount(poSysId) {
        var query = 'invoice_amountISNOTEMPTY,^invoice_amount.amount!=0^stateINpending_payment,paid';
        var gr = new GlideAggregate('sn_shop_invoice');
        gr.addNotNullQuery('purchase_order');
        gr.addQuery('purchase_order', poSysId);
        gr.addEncodedQuery(query);
        gr.addAggregate('SUM', 'invoice_amount.amount');
        gr.groupBy('purchase_order');
        gr.query();
        if (gr.next()) {
            var invoicedAmt = gr.getAggregate('SUM', 'invoice_amount.amount');
            return invoicedAmt;
        }
        return 0;
    }

5. Cliquez sur Envoyer.
6. Dans la vue de liste des scripts correctifs, recherchez et sélectionnez `Mettre à jour les montants facturés des bons de commande pour le script de correction APO.`  
   Le script `Mettre à jour les montants facturés des bons de commande pour le correctif APO` s'ouvre.
7. Sélectionnez Exécuter le script correctif.  
   Une fenêtre contextuelle apparaît avec les options Annuler, Continuer et Continuer en arrière-plan.
8. Cliquez sur Continuer en arrière-plan.

