Freigeben über


Benutzerdefinierte Felder in Invoice Capture

In diesem Artikel wird erläutert, wie Sie benutzerdefinierte Felder in der Invoice Capture-Lösung verwenden.

Bei Invoice Capture wurden Standardfelder im Kopf und in den Positionen eingeführt, um die Verarbeitung von Rechnungen zu erleichtern. Die Kundschaft verfügt jedoch häufig über zusätzliche Felder, die unterstützt werden müssen, um Geschäftsanforderungen zu erfüllen. Mit der Funktion Benutzerdefinierte Felder in Invoice Capture unterstützen können zusätzliche Felder mit unterschiedlichen Eigenschaften erstellt werden. Der Wert dieser Felder kann entweder automatisch aus dem Originaldokument extrahiert oder vom Prüfenden manuell eingegeben werden.

Eigenschaften benutzerdefinierter Felder

Bei Invoice Capture gibt es zwei Bereiche für die Rechnungsfelder: Kopfzeile und Position.

Invoice Capture verfügt über drei Feldgruppen: Allgemein, Steuern und Belastungen. Steuern und Gebühren werden verwendet, um die Anzahl der Zeilen in den Bereichen Steuern und Gebühren zu erhöhen. Steuern und Gebühren werden auf Zeilenebene nicht unterstützt.

Datentypen

Invoice Capture unterstützt drei Datentypen für benutzerdefinierte Felder:

  • Einzelne Textzeile
  • Datum und Uhrzeit (nur Datum)
  • Währung

Implementierung

Um eine neue Lösung zu erstellen und benutzerdefinierte Felder hinzuzufügen, führen Sie die folgenden Schritte aus.

  1. Melden Sie sich im Power Apps Maker Portal an und wählen Sie die Zielumgebung aus.

  2. Wählen Sie Lösungen und dann Neue Lösung aus.

  3. Öffnen Sie die Lösung und fügen Sie die folgenden Tabellen hinzu:

    • Stagingrechnungs-Kopfzeile
    • Stagingrechnungsposition
    • Benutzerdefinierte Feldeinstellung
  4. Wählen Sie die Tabelle Stagingrechnungs-Kopfzeile oder Stagingrechnungsposition und dann Weiter aus.

  5. Wählen Sie Hinzufügen aus.

  6. Wählen Sie die Tabelle und dann Neu>Spalte aus.

  7. Geben Sie den Feldnamen ein, wählen Sie den Datentyp und dann Speichern aus.

  8. Suchen Sie nach der Spalte, die Sie gerade erstellt haben, und notieren Sie sich den logischen Namen.

  9. Wählen Sie Benutzerdefinierte Feldeinstellung und dann Bearbeiten aus.

  10. Wählen Sie Neue Zeile mithilfe des Formulars aus, geben Sie den Wert für die Feldeigenschaften ein und wählen Sie dann Speichern aus.

Führen Sie diese Schritte aus, um die Details für die einzelnen Felder zu überprüfen.

  1. Gehen Sie in Invoice Capture zu System einrichten>Konfigurationsgruppe verwalten.
  2. Wählen Sie die Konfigurationsgruppe und dann Sichtbare Felder verwalten aus, um die Felder hinzuzufügen.
  3. Der Side-by-Side-Viewer zeigt die hinzugefügten Felder an und Sie können Werte eingeben.

Benutzerdefinierte Felder zuordnen

Der Wert benutzerdefinierter Felder muss den entsprechenden Feldern in Microsoft Dynamics 365 Finance zugeordnet werden. Sie müssen eine benutzerdefinierte Erweiterung verwenden, um diese Zuordnung durchführen zu können.

Beispielsweise gibt es in Invoice Capture ein Feld mit dem logischen Namen cus_udfdate. Dieses Feld wird dem Feld CashDiscountDate im Rechnungskopf von Dynamics 365 Finance zugeordnet.

Hier ist der Beispielcode.

using Newtonsoft.Json.Linq; 
[ExtensionOf(classStr(VendInvoiceCapInvDataUpdateHandler))] 
internal final class VendInvoiceCapInvDataUpdateHandler _Extension 
{ 
    public static void updateInvoiceHeader(VendorInvoiceHeaderEntity _header, JArray _attributes, CapturedInvoiceType _invoiceType) 
    { 
        next updateInvoiceHeader(_header, _attributes, _invoiceType); 
        // extend logic based on invoice type 
        if (_invoiceType == CapturedInvoiceType::CostInvoice) 
        { 
            System.Collections.IEnumerator iterator = _attributes.GetEnumerator(); 
            while (iterator.MoveNext()) 
            { 
                JObject attribute = iterator.Current; 
                str propName = attribute.GetValue('Key').ToString(); 
                str strValue =  attribute.GetValue('Value').ToString(); 
                switch (propName) 
                { 
                    case "cus_udfdate": 
                        _header.CashDiscountDate = str2Date(strValue, 213); 
                        break; 
                } 
            } 
            _header.update(); 
        } 
    } 
}