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

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 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 „unzureichende Mittel“ (Header-Betragsabweichung) funktioniert.
    • Legen Sie fest Anwendungsbereich Bis Allgemeine Source-to-Pay-Architektur .
    • 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_amountISEMPTY" . Führen Sie das Skript in Batches von 100k oder 200k 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 (Header-Betragsabweichung), 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 und das unten genannte Skript einfügen.
    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 Korrekturskript 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 Fahren Sie im Hintergrund fort .