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 Suche nach einem Artikel der XRechnungpufferzeile durch den IsHandeld Parameter komplett übersteuern. 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
)
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;

OnBeforeFindItemChargeForLine

Mit diesem Event können Sie die Suche nach einem Zu-/Abschlag (Artikel) der XRechnungpufferzeile durch den IsHandeld Parameter komplett übersteuern. 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
)
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 Suche nach einer Ressource der XRechnungpufferzeile durch den IsHandeld Parameter komplett übersteuern. 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
)
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 Suche nach einem Sachkonto der XRechnungpufferzeile durch den IsHandeld Parameter komplett übersteuern. 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
)
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;

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 Create Purchase Document"

OnBeforeModifyPurchaseHeader

Mit diesem Event können Sie die den Einkaufskopf anpassen, bevor er in der Datenbank modifiziert wird.

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

OnBeforeModifyPurchaseLine

Mit diesem Event können Sie die Einkaufszeile anpassen, bevor sie in der Datenbank modifiziert wird.

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

OnBeforeAddDocumentAttachmentToPurchaseHeader

Mit diesem Event können Sie die Ursprungsdatei (XML/PDF) und die rechnungsbegleitenden Anlagen über die BC Standardtabelle Name/Value Buffer abgreifen und an gewünschter Stelle ablegen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", OnBeforeAddDocumentAttachmentToPurchaseHeader, '', false, true)]
local procedure OnBeforeAddDocumentAttachmentToPurchaseHeader(
    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

Mit diesem Event können Sie die Ursprungsdatei (XML/PDF) und die rechnungsbegleitenden Anlagen über die BC Standardtabelle Name/Value Buffer abgreifen und an gewünschter Stelle ablegen.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", OnBeforeAddIncomingDocumentToPurchaseHeader, '', false, true)]
local procedure OnBeforeAddIncomingDocumentToPurchaseHeader(
    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;

OnAfterArchiveXRechnungImportHeader

Mit diesem Event kann der in die Datenbank eingefügte archivierte XRechnungsimportkopf abgerufen werden und z.B. die XML Datei aus dem Feld "XML File" revisionssicher an ein Dokumentenmanagementsystem übertragen werden.

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

OnBeforeAddDocumentAttachmentToPurchaseHeader

Dieses Event wird ausgelöst, wenn die importierte Ursprungsdatei (XML oder PDF) sowie enthaltene Anhänge als Beleganhang an den erzeugten Einkaufsbeleg übertragen werden sollen – also wenn in der Einrichtung oder im Importbeleg die Option Beleganhang gewählt wurde. Über den Parameter IsHandled kann die Standardlogik unterbunden werden, um die Dateien stattdessen z.B. in einem eigenen DMS abzulegen. Die zu übertragenden Dateien stehen im temporären TempNameValueBuffer zur Verfügung. DocumentAttachmentCreated zeigt nach der Standardausführung an, ob Anhänge erstellt wurden.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeAddDocumentAttachmentToPurchaseHeader', '', false, true)]
local procedure OnBeforeAddDocumentAttachmentToPurchaseHeader(
    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

Dieses Event wird ausgelöst, wenn die importierte Ursprungsdatei (XML oder PDF) sowie enthaltene Anhänge als eingehender Beleg an den erzeugten Einkaufsbeleg übertragen werden sollen – also wenn in der Einrichtung oder im Importbeleg die Option Eingehender Beleg gewählt wurde. Über den Parameter IsHandled kann die Standardlogik unterbunden werden, um die Dateien stattdessen z.B. in einem eigenen DMS abzulegen. Die zu übertragenden Dateien stehen im temporären TempNameValueBuffer zur Verfügung. IncomingDocumentCreated zeigt nach der Standardausführung an, ob ein eingehender Beleg erstellt wurde.

[EventSubscriber(ObjectType::Codeunit, Codeunit::"SNCX Create Purchase Document", 'OnBeforeAddIncomingDocumentToPurchaseHeader', '', false, true)]
local procedure OnBeforeAddIncomingDocumentToPurchaseHeader(
    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;