Table of Contents

Events Import

Codeunit "SNCX UBL Copy to Import Tables"

OnBeforeModifyXRechnungImportHeader

Mit diesem Event kann der Importpufferkopf durch Sie modifiziert werden bevor er in der Datenbank gesichert wird.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeModifyXRechnungImportHeader', '', false, false)]
local procedure OnBeforeModifyXRechnungImportHeader(var SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header")
begin
end;

OnBeforeValidateCompanyInfo

Mit diesem Event kann die Prüfung auf die Firmendaten durch Sie überschrieben werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeValidateCompanyInfo', '', false, false)]
local procedure OnBeforeValidateCompanyInfo(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    CompanyInformation: Record "Company Information";
    var IsHandled: Boolean
)
begin
end;

OnBeforeFindBuyFromVendor

Mit diesem Event können Sie die Suche nach dem Einkauf-von Kreditor übersteuern und eine Kreditornr. übergeben, die in den Importpufferkopf übertragen wird.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindBuyFromVendor', '', false, false)]
local procedure OnBeforeFindBuyFromVendor(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var VendorNo: Code[20];
    var IsHandled: Boolean
)
begin
end;

OnAfterFindBuyFromVendor

Mit diesem Event können Sie die durch den XRechnung Standard gefundene oder auch nicht gefundene Kreditornr. selbst anpassen. Diese wird dann in den Importpufferkopf übertragen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterFindBuyFromVendor', '', false, false)]
local procedure OnAfterFindBuyFromVendor(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var VendorNo: Code[20]
)
begin
end;

OnBeforeFindPayToVendor

Mit diesem Event können Sie die Suche nach dem Zahlung-an Kreditor übersteuern und eine Kreditornr. übergeben, die in den Importpufferkopf übertragen wird.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindPayToVendor', '', false, false)]
local procedure OnBeforeFindPayToVendor(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var VendorNo: Code[20];
    var IsHandled: Boolean
)
begin
end;

OnAfterFindPayToVendor

Mit diesem Event können Sie die durch den XRechnung Standard gefundene oder auch nicht gefundene Kreditornr. selbst anpassen. Diese wird dann in den Importpufferkopf übertragen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterFindPayToVendor', '', false, false)]
local procedure OnAfterFindPayToVendor(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var VendorNo: Code[20]
)
begin
end;

OnBeforeFindItemForLine

Mit diesem Event können Sie die Standardsuche nach einem Artikel der XRechnungpufferzeile übersteuern. Setzen Sie IsHandled auf true, um die Standardsuche zu überspringen. Setzen Sie ItemFound auf true, wenn Ihre Logik einen Artikel in der Importpufferzeile gesetzt hat. Bleibt ItemFound auf false, wird die nachfolgende Auflösung fortgesetzt. Das Flag HeaderInserted zeigt bei true an, dass es keinen weiteren Beleg mit dieser Belegart und Nummer in der Puffertabelle und im Archiv gibt. Wäre dies der Fall, so wäre das Flag false und es würde am Ende des Imports einen Protokolleintrag geben, da eine Datei nicht mehrmals verarbeitet werden darf. In die Importpufferzeile können Sie direkt die entsprechende Art und Nummer eintragen. Ebenfalls sollte die korrekte Einheit hier gesetzt werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindItemForLine', '', false, false)]
local procedure OnBeforeFindItemForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    HeaderInserted: Boolean;
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterFindItemForLine

Mit diesem Event können Sie direkt in den Prozess eingreifen kurz bevor die Artikelnr. aus dem gefundenen Artikel und die Art Artikel an die Importpufferzeile übergeben wird. Sie können hier eine eigene Logik implementieren und den korrekten Artikel über das Flag ItemFound = true übergeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterFindItemForLine', '', false, false)]
local procedure OnAfterFindItemForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var Item: Record Item;
    var ItemFound: Boolean
)
begin
end;

OnBeforeFindTextToAccountForLine

Mit diesem Event können Sie die Standardsuche über die Text-zu-Konto-Zuordnung übersteuern. Setzen Sie IsHandled auf true, um die Standardsuche zu überspringen. Setzen Sie MappingFound auf true, wenn Ihre Logik Art und Nummer in der Importpufferzeile gesetzt hat. Bleibt MappingFound auf false, wird die nachfolgende Ressourcen-, Zu-/Abschlags- und Sachkontenauflösung fortgesetzt.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindTextToAccountForLine', '', false, false)]
local procedure OnBeforeFindTextToAccountForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    HeaderInserted: Boolean;
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var IsHandled: Boolean;
    var MappingFound: Boolean
)
begin
end;

OnBeforeFindItemChargeForLine

Mit diesem Event können Sie die Standardsuche nach einem Zu-/Abschlag (Artikel) der XRechnungpufferzeile übersteuern. Setzen Sie IsHandled auf true, um die Standardsuche zu überspringen. Setzen Sie ItemChargeFound auf true, wenn Ihre Logik einen Zu-/Abschlag in der Importpufferzeile gesetzt hat. Bleibt ItemChargeFound auf false, wird die nachfolgende Auflösung fortgesetzt. Das Flag HeaderInserted zeigt bei true an, dass es keinen weiteren Beleg mit dieser Belegart und Nummer in der Puffertabelle und im Archiv gibt. Wäre dies der Fall, so wäre das Flag false und es würde am Ende des Imports einen Protokolleintrag geben, da eine Datei nicht mehrmals verarbeitet werden darf. In die Importpufferzeile können Sie direkt die entsprechende Art und Nummer eintragen. HINWEIS: Die Verarbeitung des Zu-/Abschlags im späteren Einkaufsbeleg (Menge für Zuweisung setzen) muss durch den Benutzer selbst vorgenommen werden, da diese Information nicht über die XML mitgegeben wird.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindItemChargeForLine', '', false, false)]
local procedure OnBeforeFindItemChargeForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    HeaderInserted: Boolean;
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var IsHandled: Boolean;
    var ItemChargeFound: Boolean
)
begin
end;

OnAfterFindItemChargeForLine

Mit diesem Event können Sie direkt in den Prozess eingreifen kurz bevor die Zu-/Abschlagsnr. aus dem gefundenen Zu-/Abschlag (Artikel) und die Art Zu-/Abschlag (Artikel) an die Importpufferzeile übergeben wird. Sie können hier eine eigene Logik implementieren und den korrekten /u-/Abschlag (Artikel) über das Flag ItemChargeFound = true übergeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterFindItemChargeForLine', '', false, false)]
local procedure OnAfterFindItemChargeForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var ItemCharge: Record "Item Charge";
    var ItemChargeFound: Boolean
)
begin
end;

OnBeforeFindResourceForLine

Mit diesem Event können Sie die Standardsuche nach einer Ressource der XRechnungpufferzeile übersteuern. Setzen Sie IsHandled auf true, um die Standardsuche zu überspringen. Setzen Sie ResourceFound auf true, wenn Ihre Logik eine Ressource in der Importpufferzeile gesetzt hat. Bleibt ResourceFound auf false, wird die nachfolgende Auflösung fortgesetzt. Das Flag HeaderInserted zeigt bei true an, dass es keinen weiteren Beleg mit dieser Belegart und Nummer in der Puffertabelle und im Archiv gibt. Wäre dies der Fall, so wäre das Flag false und es würde am Ende des Imports einen Protokolleintrag geben, da eine Datei nicht mehrmals verarbeitet werden darf. In die Importpufferzeile können Sie direkt die entsprechende Art und Nummer eintragen. Ebenfalls sollte die korrekte Einheit hier gesetzt werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindResourceForLine', '', false, false)]
local procedure OnBeforeFindResourceForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    HeaderInserted: Boolean;
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var IsHandled: Boolean;
    var ResourceFound: Boolean
)
begin
end;

OnAfterFindResourceForLine

Mit diesem Event können Sie direkt in den Prozess eingreifen kurz bevor die Ressourcennr. aus der gefundenen Ressource und die Art Ressource an die Importpufferzeile übergeben wird. Sie können hier eine eigene Logik implementieren und die korrekte Ressourcennr. übergeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterFindResourceForLine', '', false, false)]
local procedure OnAfterFindResourceForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var ResourceNo: Code[20]
)
begin
end;

OnBeforeFindGLAccountForLine

Mit diesem Event können Sie die Standardsuche nach einem Sachkonto der XRechnungpufferzeile übersteuern. Setzen Sie IsHandled auf true, um die Standardsuche zu überspringen. Setzen Sie GLAccountFound auf true, wenn Ihre Logik ein Sachkonto in der Importpufferzeile gesetzt hat. Bleibt GLAccountFound auf false, wird kein Sachkonto gefunden und der Import protokolliert die Zeile entsprechend. Das Flag HeaderInserted zeigt bei true an, dass es keinen weiteren Beleg mit dieser Belegart und Nummer in der Puffertabelle und im Archiv gibt. Wäre dies der Fall, so wäre das Flag false und es würde am Ende des Imports einen Protokolleintrag geben, da eine Datei nicht mehrmals verarbeitet werden darf. In die Importpufferzeile können Sie direkt die entsprechende Art und Nummer eintragen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeFindGLAccountForLine', '', false, false)]
local procedure OnBeforeFindGLAccountForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    HeaderInserted: Boolean;
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var IsHandled: Boolean;
    var GLAccountFound: Boolean
)
begin
end;

OnAfterFindGLAccountForLine

Mit diesem Event können Sie direkt in den Prozess eingreifen kurz bevor die Sachkontonr. aus dem gefundenen Sachkonto und die Art Sachkonto an die Importpufferzeile übergeben wird. Sie können hier eine eigene Logik implementieren und die korrekte Sachkontonr. übergeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterFindGLAccountForLine', '', false, false)]
local procedure OnAfterFindGLAccountForLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var GLAccountNo: Code[20]
)
begin
end;

OnBeforeInsertAllowanceChargeImportLine

Mit diesem Event können Sie die Rechnungsgebühr Import Zeile anpassen, bevor sie in die Datenbank eingetragen wird.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeInsertAllowanceChargeImportLine', '', false, false)]
local procedure OnBeforeInsertAllowanceChargeImportLine(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXAllowChargeImportLine: Record "SNCX Allow. Charge Import Line"
)
begin
end;

OnBeforeModifyImportAdditionalSupportingDocument

Mit diesem Event können Sie die XRechnung Import Rechnungsbegleitende Anlage anpassen, bevor sie in die Datenbank eingetragen wird.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeModifyImportAdditionalSupportingDocument', '', false, false)]
local procedure OnBeforeModifyImportAdditionalSupportingDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXXRechnungImportAddDoc: Record "SNCX XRechnung Import Add.Doc."
)
begin
end;

OnBeforeModifyImportBillingReference

Mit diesem Event können Sie eine importierte Abrechnungsreferenz anpassen, bevor sie in der Datenbank gespeichert wird. Das Event wird für Abrechnungsreferenzen aus den unterschiedlichen Importpfaden verwendet.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeModifyImportBillingReference', '', false, false)]
local procedure OnBeforeModifyImportBillingReference(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SNCXImportBillingReference: Record "SNCX Import Billing Reference"
)
begin
end;

OnBeforeValidateLineDiscount

Mit diesem Event kann zur Berechnung des Zeilenrabatts der Importzeile die Menge der Einheit (BT-149) hinzugezogen werden. Der Parameter UseQtyPerUnitOfMeasure muss dafür auf true gesetzt werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnBeforeValidateLineDiscount', '', false, false)]
local procedure OnBeforeValidateLineDiscountInSNCXUBLCopyTo(
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var UseQtyPerUnitOfMeasure: Boolean
)
begin
end;

OnAfterValidateLineDiscount

Mit diesem Event der Zeilenrabatt der Importzeile individuell angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX UBL Copy to Import Tables", 'OnAfterValidateLineDiscount', '', false, false)]
local procedure OnAfterValidateLineDiscountInSNCXUBLCopyTo ImportTables(
    var SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var LineDiscountAmount: Decimal
)
begin
end;

Codeunit "SNCX Item Resolution"

Die Codeunit wird bei der Auflösung importierter Artikelidentifikationen verwendet. Sie wird sowohl beim Übertragen der Importdaten in die Importpuffertabellen als auch beim Abgleich importierter Zeilen mit Einkaufsaufträgen verwendet. Für jede Suchstrategie gibt es ein Before- und ein After-Event. Die Codeunit ist öffentlich zugänglich, damit Partner-Apps die Events abonnieren können.

OnBeforeResolveByGTIN

Wird vor der Standardsuche nach einem Artikel über das GTIN-Feld des Artikels und vor dem Fallback auf die Artikelnummer aufgerufen. Mit IsHandled = true wird die Standardsuche übersprungen. Der Subscriber muss ItemNo und ItemFound setzen, wenn ein eigener Treffer vorliegt.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnBeforeResolveByGTIN', '', false, false)]
local procedure OnBeforeResolveByGTINInItemResolution(
    GTIN: Code[14];
    var ItemNo: Code[20];
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterResolveByGTIN

Wird nach der GTIN-Suche und dem Artikelnummern-Fallback aufgerufen. ItemNo und ItemFound können für den finalen Rückgabewert angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnAfterResolveByGTIN', '', false, false)]
local procedure OnAfterResolveByGTINInItemResolution(
    GTIN: Code[14];
    var ItemNo: Code[20];
    var ItemFound: Boolean
)
begin
end;

OnBeforeResolveBySellersItemId

Wird vor der Standardsuche nach einer kreditorbezogenen Artikelreferenz aufgerufen. Mit IsHandled = true wird die Standardsuche übersprungen. Ein eigener Treffer wird über ItemNo, VariantCode und ItemFound zurückgegeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnBeforeResolveBySellersItemId', '', false, false)]
local procedure OnBeforeResolveBySellersItemIdInItemResolution(
    SellersItemId: Text;
    VendorNo: Code[20];
    var ItemNo: Code[20];
    var VariantCode: Code[10];
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterResolveBySellersItemId

Wird nach der Standardsuche nach einer kreditorbezogenen Artikelreferenz aufgerufen. ItemNo, VariantCode und ItemFound können für den finalen Rückgabewert angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnAfterResolveBySellersItemId', '', false, false)]
local procedure OnAfterResolveBySellersItemIdInItemResolution(
    SellersItemId: Text;
    VendorNo: Code[20];
    var ItemNo: Code[20];
    var VariantCode: Code[10];
    var ItemFound: Boolean
)
begin
end;

OnBeforeResolveByBuyersItemId

Wird vor der Standardsuche nach einer Barcode-Artikelreferenz aufgerufen. Mit IsHandled = true wird die Standardsuche übersprungen. Ein eigener Treffer wird über ItemNo, VariantCode und ItemFound zurückgegeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnBeforeResolveByBuyersItemId', '', false, false)]
local procedure OnBeforeResolveByBuyersItemIdInItemResolution(
    BuyersItemId: Text;
    var ItemNo: Code[20];
    var VariantCode: Code[10];
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterResolveByBuyersItemId

Wird nach der Standardsuche nach einer Barcode-Artikelreferenz aufgerufen. ItemNo, VariantCode und ItemFound können für den finalen Rückgabewert angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnAfterResolveByBuyersItemId', '', false, false)]
local procedure OnAfterResolveByBuyersItemIdInItemResolution(
    BuyersItemId: Text;
    var ItemNo: Code[20];
    var VariantCode: Code[10];
    var ItemFound: Boolean
)
begin
end;

OnBeforeResolveByItemNo

Wird vor der Standardsuche über die direkte Artikelnummer aufgerufen. Mit IsHandled = true wird die Standardsuche übersprungen. Ein eigener Treffer wird über ItemNo und ItemFound zurückgegeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnBeforeResolveByItemNo', '', false, false)]
local procedure OnBeforeResolveByItemNoInItemResolution(
    No: Code[20];
    var ItemNo: Code[20];
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterResolveByItemNo

Wird nach der Standardsuche über die direkte Artikelnummer aufgerufen. ItemNo und ItemFound können für den finalen Rückgabewert angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnAfterResolveByItemNo', '', false, false)]
local procedure OnAfterResolveByItemNoInItemResolution(
    No: Code[20];
    var ItemNo: Code[20];
    var ItemFound: Boolean
)
begin
end;

OnBeforeResolveByDescription

Wird vor der Standardsuche über exakte und unscharfe Artikelbeschreibung aufgerufen. Mit IsHandled = true wird die Standardsuche übersprungen. Ein eigener Treffer wird über ItemNo und ItemFound zurückgegeben. MinMatchPct enthält den verwendeten Mindestwert und kann vor der Standardsuche angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnBeforeResolveByDescription', '', false, false)]
local procedure OnBeforeResolveByDescriptionInItemResolution(
    var Description: Text;
    var MinMatchPct: Integer;
    var ItemNo: Code[20];
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterResolveByDescription

Wird nach der exakten und unscharfen Beschreibungssuche aufgerufen. ItemNo und ItemFound können für den finalen Rückgabewert angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnAfterResolveByDescription', '', false, false)]
local procedure OnAfterResolveByDescriptionInItemResolution(
    Description: Text;
    MinMatchPct: Integer;
    var ItemNo: Code[20];
    var ItemFound: Boolean
)
begin
end;

OnBeforeResolveByIdentificationAsItemNo

Wird vor dem Fallback auf eine Identifikation als direkte Artikelnummer aufgerufen. Mit IsHandled = true wird die Standardsuche übersprungen. Ein eigener Treffer wird über ItemNo und ItemFound zurückgegeben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnBeforeResolveByIdentificationAsItemNo', '', false, false)]
local procedure OnBeforeResolveByIdentificationAsItemNoInItemResolution(
    Identification: Text;
    var ItemNo: Code[20];
    var IsHandled: Boolean;
    var ItemFound: Boolean
)
begin
end;

OnAfterResolveByIdentificationAsItemNo

Wird nach dem Fallback auf eine Identifikation als direkte Artikelnummer aufgerufen. ItemNo und ItemFound können für den finalen Rückgabewert angepasst werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Item Resolution", 'OnAfterResolveByIdentificationAsItemNo', '', false, false)]
local procedure OnAfterResolveByIdentificationAsItemNoInItemResolution(
    Identification: Text;
    var ItemNo: Code[20];
    var ItemFound: Boolean
)
begin
end;

Codeunit "SNCX Create Purchase Document"

Diese Events gelten für die Anlage einer Einkaufsrechnung oder Einkaufsgutschrift aus einem importierten E-Rechnungsdokument.

OnBeforeModifyPurchaseHeader

Wird nach der Standardvalidierung des Einkaufsheaders und unmittelbar vor PurchaseHeader.Modify(false) aufgerufen. Partner können zusätzliche Headerfelder setzen oder Standardwerte überschreiben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeModifyPurchaseHeader', '', false, false)]
local procedure OnBeforeModifyPurchaseHeaderInCreatePurchaseDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var PurchaseHeader: Record "Purchase Header"
)
begin
end;

OnBeforeValidateFieldsFromImportLineToPurchaseLine

Wird vor der Standardübernahme der Importzeile in die Einkaufszeile aufgerufen. Mit IsHandled = true kann die Standardvalidierung vollständig übersprungen und durch eine eigene Zeilenanlage ersetzt werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeValidateFieldsFromImportLineToPurchaseLine', '', false, false)]
local procedure OnBeforeValidateFieldsFromImportLineToPurchaseLineInCreatePurchaseDocument(
    SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var PurchaseLine: Record "Purchase Line";
    var IsHandled: Boolean
)
begin
end;

OnBeforeModifyPurchaseLine

Wird nach der Standardübernahme der Importwerte und unmittelbar vor PurchaseLine.Modify(true) aufgerufen. Partner können die erzeugte Einkaufszeile abschließend anpassen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeModifyPurchaseLine', '', false, false)]
local procedure OnBeforeModifyPurchaseLineInCreatePurchaseDocument(
    SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var PurchaseLine: Record "Purchase Line"
)
begin
end;

OnAfterArchiveXRechnungImportHeader

Wird nach dem Einfügen des Archivheaders und dem Löschen des Importheaders aufgerufen. Der Archivheader kann für nachgelagerte Partnerlogik verwendet werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnAfterArchiveXRechnungImportHeader', '', false, false)]
local procedure OnAfterArchiveXRechnungImportHeaderInCreatePurchaseDocument(
    SNCXXRechnungImpArchHdr: Record "SNCX XRechnung Imp. Arch. Hdr."
)
begin
end;

OnBeforeAddDocumentAttachmentToPurchaseHeader

Wird nach dem Sammeln der XML- und zusätzlichen Dateien und vor dem Erzeugen der Standardanlagen aufgerufen. TempNameValueBuffer enthält die Dateien als temporäre Name/Value Buffer-Datensätze und kann von Partnern angepasst werden. Mit IsHandled = true wird die Standardanlage übersprungen; DocumentAttachmentCreated ist das Ergebnisflag des Erweiterungspunkts.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeAddDocumentAttachmentToPurchaseHeader', '', false, false)]
local procedure OnBeforeAddDocumentAttachmentToPurchaseHeaderInCreatePurchaseDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    PurchaseHeader: Record "Purchase Header";
    var TempNameValueBuffer: Record "Name/Value Buffer" temporary;
    var DocumentAttachmentCreated: Boolean;
    var IsHandled: Boolean
)
begin
end;

OnBeforeAddIncomingDocumentToPurchaseHeader

Wird nach dem Sammeln der XML- und zusätzlichen Dateien und vor dem Erzeugen des Eingangsbelegs aufgerufen. TempNameValueBuffer kann angepasst werden. Mit IsHandled = true wird die Standardverarbeitung übersprungen; IncomingDocumentCreated ist das Ergebnisflag des Erweiterungspunkts.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeAddIncomingDocumentToPurchaseHeader', '', false, false)]
local procedure OnBeforeAddIncomingDocumentToPurchaseHeaderInCreatePurchaseDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var PurchaseHeader: Record "Purchase Header";
    var TempNameValueBuffer: Record "Name/Value Buffer" temporary;
    var IncomingDocumentCreated: Boolean;
    var IsHandled: Boolean
)
begin
end;

Codeunit "SNCX Create Sales Document"

Diese Events gelten für die Anlage eines Verkaufsbelegs aus einem importierten Self-Billing-Dokument.

OnBeforeModifySalesHeader

Wird nach der Standardvalidierung des Verkaufsheaders und unmittelbar vor SalesHeader.Modify(false) aufgerufen. Partner können zusätzliche Headerfelder setzen oder Standardwerte überschreiben.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Sales Document", 'OnBeforeModifySalesHeader', '', false, false)]
local procedure OnBeforeModifySalesHeaderInCreateSalesDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SalesHeader: Record "Sales Header"
)
begin
end;

OnBeforeValidateFieldsFromImportLineToSalesLine

Wird vor der Standardübernahme der Importzeile in die Verkaufszeile aufgerufen. Mit IsHandled = true kann die Standardvalidierung vollständig übersprungen und durch eine eigene Zeilenanlage ersetzt werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Sales Document", 'OnBeforeValidateFieldsFromImportLineToSalesLine', '', false, false)]
local procedure OnBeforeValidateFieldsFromImportLineToSalesLineInCreateSalesDocument(
    SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var SalesLine: Record "Sales Line";
    var IsHandled: Boolean
)
begin
end;

OnBeforeModifySalesLine

Wird nach der Standardübernahme der Importwerte und unmittelbar vor SalesLine.Modify(true) aufgerufen. Partner können die erzeugte Verkaufszeile abschließend anpassen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Sales Document", 'OnBeforeModifySalesLine', '', false, false)]
local procedure OnBeforeModifySalesLineInCreateSalesDocument(
    SNCXXRechnungImportLine: Record "SNCX XRechnung Import Line";
    var SalesLine: Record "Sales Line"
)
begin
end;

OnAfterArchiveXRechnungImportHeader

Wird nach dem Einfügen des Archivheaders und dem Löschen des Importheaders aufgerufen. Der Archivheader kann für nachgelagerte Partnerlogik verwendet werden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Sales Document", 'OnAfterArchiveXRechnungImportHeader', '', false, false)]
local procedure OnAfterArchiveXRechnungImportHeaderInCreateSalesDocument(
    SNCXXRechnungImpArchHdr: Record "SNCX XRechnung Imp. Arch. Hdr."
)
begin
end;

OnBeforeAddDocumentAttachmentToSalesHeader

Wird nach dem Sammeln der XML-, PDF- und zusätzlichen Dateien und vor dem Erzeugen der Standardanlagen aufgerufen. TempNameValueBuffer enthält die Dateien als temporäre Name/Value Buffer-Datensätze und kann von Partnern angepasst werden. Mit IsHandled = true wird die Standardanlage übersprungen; DocumentAttachmentCreated ist das Ergebnisflag des Erweiterungspunkts.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Sales Document", 'OnBeforeAddDocumentAttachmentToSalesHeader', '', false, false)]
local procedure OnBeforeAddDocumentAttachmentToSalesHeaderInCreateSalesDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    SalesHeader: Record "Sales Header";
    var TempNameValueBuffer: Record "Name/Value Buffer" temporary;
    var DocumentAttachmentCreated: Boolean;
    var IsHandled: Boolean
)
begin
end;

OnBeforeAddIncomingDocumentToSalesHeader

Wird nach dem Sammeln der XML-, PDF- und zusätzlichen Dateien und vor dem Erzeugen des Eingangsbelegs aufgerufen. TempNameValueBuffer kann angepasst werden. Mit IsHandled = true wird die Standardverarbeitung übersprungen; IncomingDocumentCreated ist das Ergebnisflag des Erweiterungspunkts.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Sales Document", 'OnBeforeAddIncomingDocumentToSalesHeader', '', false, false)]
local procedure OnBeforeAddIncomingDocumentToSalesHeaderInCreateSalesDocument(
    SNCXXRechnungImportHeader: Record "SNCX XRechnung Import Header";
    var SalesHeader: Record "Sales Header";
    var TempNameValueBuffer: Record "Name/Value Buffer" temporary;
    var IncomingDocumentCreated: Boolean;
    var IsHandled: Boolean
)
begin
end;