Führen Sie das Korrekturskript für aus Accounts Payable Operations

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Führen Sie das Korrekturskript für eine erfolgreiche Installation von aus Accounts Payable Operations.

    Vorbereitungen

    • Installieren Verarbeitung Von Kreditorenrechnungen Plugin.
    • Führen Sie ein Korrekturskript aus, damit die Ausnahme für unzureichende Mittel (Header-Betragsabweichung) funktioniert.
    • Legen Sie fest Anwendungsbereich Bis Allgemeine Architektur von Quell-to-Pay .
    • Alle Rechnungen, die der Bestellung zugeordnet sind, müssen im System verfügbar sein, damit die Ausnahme für unzureichende Mittel (Header-Betragsabweichung) funktioniert.
    • Stellen Sie sicher, dass Rechnungen dieselbe Währung haben wie die, die der Bestellwährung zugeordnet ist, damit die Ausnahme erfolgreich ausgeführt wird.
    • Sie können das Korrekturskript in Batches ausführen, indem Sie den Befehl hinzufügen gr.setLimit(100000) Nach der Befehlszeile gr.addEncodedQuery("in_Process_Invoiced_amount_ISEMPTY" . Führen Sie das Skript in Batches von 100 oder 200 KB aus.
    • Stellen Sie sicher, dass Bestellungen mit aktualisiert werden Rechnungsbetrag in Bearbeitung Und Rechnungsbetrag Felder.
      Hinweis:
      Wenn das Korrekturskript für Bestellungen nicht ausgeführt wird, funktioniert die Ausnahme für unzureichende Mittel (Abweichung des Headerbetrags), die einer Rechnung zugeordnet ist, nicht.

    Erforderliche Rolle: Administrator

    Prozedur

    1. Navigieren zu Alle > Systemdefinition > Korrekturskriptsan.
    2. Klicken Sie auf Neu.
      Ein neuer Korrekturskriptdatensatz wird geöffnet.
    3. In Name Feld, geben Sie den Namen als ein Aktualisieren Sie die fakturierten Bestellbeträge für APO .
    4. In Skript Feld kopieren, fügen Sie das unten genannte Skript ein.
    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;
    }
    1. Klicken Sie auf Absenden.
    2. Suchen und wählen Sie in der Listenansicht des Korrekturskripts aus Aktualisieren Sie die fakturierten Bestellbeträge für APO Korrekturskript.
      Die Aktualisieren Sie die fakturierten Bestellbeträge für APO Korrekturskript wird geöffnet.
    3. Wählen Sie Aus Führen Sie Das Korrekturskript Aus .
      Ein Popup-Fenster mit Optionen für wird angezeigt Abbrechen , Fahren Sie Fort Und Fahren Sie im Hintergrund fort .
    4. Klicken Sie auf Im Hintergrund fortfahren.