Friday, November 24, 2023

Der automatische Abgleich funktioniert für IBAN in der niederländischen Version von Microsoft Dynamics NAV 2009 nicht – Microsoft-Support

Dieses Problem tritt beim Importieren eines Kontoauszugs mit CAMT in der niederländischen Version von Microsoft Dynamics NAV 2009 auf. Darüber hinaus wird der offene Debitorenbucheintrag nicht automatisch abgeglichen. Befolgen Sie die Schritte im Abschnitt „Codeänderungen", um dieses Problem zu beheben. Dieses Problem tritt bei folgenden Produkten auf:

  • Die niederländische Version von Microsoft Dynamics NAV 2009 R2

  • Die niederländische Version von Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Auflösung

Hotfix-Informationen

Ein unterstützter Hotfix ist jetzt von Microsoft verfügbar. Es dient jedoch lediglich der Behebung des in diesem Artikel beschriebenen Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise weiteren Tests unterzogen. Wenn Sie von diesem Problem nicht schwerwiegend betroffen sind, empfehlen wir Ihnen daher, auf das nächste Microsoft Dynamics NAV 2009 Service Pack oder die nächste Microsoft Dynamics NAV-Version zu warten, die diesen Hotfix enthält.

Hinweis: In besonderen Fällen können die Gebühren, die normalerweise für Supportanrufe anfallen, storniert werden, wenn ein Mitarbeiter des technischen Supports für Microsoft Dynamics und verwandte Produkte feststellt, dass ein bestimmtes Update Ihr Problem lösen wird. Für zusätzliche Supportfragen und Probleme, die für das jeweilige Update nicht in Frage kommen, fallen die üblichen Supportkosten an.

Installationsinformationen

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Gewährleistung. Dazu gehören unter anderem stillschweigende Garantien der Marktgängigkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der demonstrierten Programmiersprache und den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können dabei helfen, die Funktionalität eines bestimmten Verfahrens zu erläutern. Sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren zu erstellen, die Ihren spezifischen Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Benutzer des Microsoft Dynamics NAV-Clients vom System abgemeldet sind. Dazu gehören Microsoft Dynamics NAV Application Server (NAS)-Dienste. Sie sollten der einzige Clientbenutzer sein, der angemeldet ist, wenn Sie diesen Hotfix implementieren.

Um diesen Hotfix zu implementieren, benötigen Sie eine Entwicklerlizenz.

Wir empfehlen, dem Benutzerkonto im Fenster „Windows-Anmeldungen" oder im Fenster „Datenbank-Anmeldungen" die Rollen-ID „SUPER" zuzuweisen. Wenn dem Benutzerkonto nicht die Rollen-ID „SUPER" zugewiesen werden kann, müssen Sie überprüfen, ob das Benutzerkonto über die folgenden Berechtigungen verfügt:

  • Die Änderungsberechtigung für das Objekt, das Sie ändern möchten.

  • Die Ausführungsberechtigung für das Systemobjekt-ID-5210-Objekt und für das Systemobjekt-ID-9015-Objekt

    Objekt.

Hinweis Sie müssen keine Rechte an den Datenspeichern haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Codeänderungen

Hinweis: Testen Sie Codekorrekturen immer in einer kontrollierten Umgebung, bevor Sie die Korrekturen auf Ihren Produktionscomputern anwenden.

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Ändern Sie den Code in den Eigenschaften im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code

     ...
    CBGStatementRec@1000000: Datensatz 11400;
    BEGINNEN
    ResetNumbers;

    // Folgende Zeilen löschen.
    WENN CBGStatementRec.FIND('-') DANN BEGIN
    WIEDERHOLEN
    MatchCBGStatement(CBGStatementRec);
    UNTIL CBGStatementRec.NEXT() = 0;
    ENDE;
    // Ende der gelöschten Zeilen.

    ENDE;

    }
    ...

    Ersatzcode

     ...
    CBGStatementRec@1000000: Datensatz 11400;
    BEGINNEN
    ResetNumbers;

    // Fügen Sie die folgenden Zeilen hinzu.
    IF CBGStatementRec.FIND('-') THEN
    WIEDERHOLEN
    MatchCBGStatement(CBGStatementRec);
    UNTIL CBGStatementRec.NEXT = 0;
    // Ende der hinzugefügten Zeilen.

    ENDE;

    }
    ...
  2. Ändern Sie den Code in „Globale Variablen" im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code 1

     ...
    PostDesRec@1000016: Datensatz 11000006;
    PaymenthistorylineRec@1000017: Datensatz 11000002;
    TransactionModeRec@1000018: Datensatz 11000004;

    // Folgende Zeilen löschen.
    Tab@1000019 : Text[2];
    BankaccountNo@1000020: ARRAY [5] OF Code[40];
    Name@1000021 : Code[40];
    // Ende der gelöschten Zeilen.

    Adresse@1000022: Code[40];
    Stadt@1000023: Code[40];
    Identifikation@1000024: Code[40];
    ...

    Ersatzcode 1

     ...
    PostDesRec@1000016: Datensatz 11000006;
    PaymenthistorylineRec@1000017: Datensatz 11000002;
    TransactionModeRec@1000018: Datensatz 11000004;

    // Fügen Sie die folgenden Zeilen hinzu.
    TempBankAccount@1000025: Datensatz 270;
    Name@1000021 : Code[80];
    // Ende der hinzugefügten Zeilen.

    Adresse@1000022: Code[40];
    Stadt@1000023: Code[40];
    Identifikation@1000024: Code[40];
    ...

    Vorhandener Code 2

     ...
    Adresse@1000022: Code[40];
    Stadt@1000023: Code[40];
    Identifikation@1000024: Code[40];

    // Folgende Zeilen löschen.
    Rechnungsnummer@1000025: Text[250];
    Len@1000026 : Ganzzahl;
    NumberOfPossibleBankAccounts@1000027 : Ganzzahl;
    // Ende der gelöschten Zeilen.

    NumberOfDocumentNumbers@1000028 : Ganzzahl;
    NumberOfLinesProcessed@1000029 : Ganzzahl;
    NumberOfLinesChanged@1000030 : Ganzzahl;
    ...

    Ersatzcode 2

     ...
    Adresse@1000022: Code[40];
    Stadt@1000023: Code[40];
    Identifikation@1000024: Code[40];
    NumberOfDocumentNumbers@1000028 : Ganzzahl;
    NumberOfLinesProcessed@1000029 : Ganzzahl;
    NumberOfLinesChanged@1000030 : Ganzzahl;
    ...

    Vorhandener Code 3

     ...
    Fenster@1000040: Dialog;
    LocalFunctionalityMgt@1000041: Codeeinheit 11400;
    HideMessages@1000042: Boolean;

    VERFAHREN MatchCBGStatement@1000000(CBGStatementRec@1000000 : Datensatz 11400);
    VAR
    ...

    Ersatzcode 3

     ...
    Fenster@1000040: Dialog;
    LocalFunctionalityMgt@1000041: Codeeinheit 11400;
    HideMessages@1000042: Boolean;

    // Fügen Sie die folgende Zeile hinzu.
    BankAccountCharsToKeep@1000019 : Text[250];

    VERFAHREN MatchCBGStatement@1000000(CBGStatementRec@1000000 : Datensatz 11400);
    VAR
    ...
  3. Ändern Sie den Code in der MatchCBGStatementLine-Funktion im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code 1

     ...
    VERFAHREN MatchCBGStatementLine@1000001(CBGStatementRec@1000000: Datensatz 11400;VAR CBGStatementlineRec@1000001: Datensatz 11401);
    VAR
    RecChanged@1000002 : Boolean;

    // Folgende Zeile löschen.
    Gefunden@1000003: Boolean;

    PaymentHistoryFound@1000004: Boolean;
    i@1000005 : Ganzzahl;
    strFilter@1000006 : Text[250];
    ...

    Ersatzcode 1

     ...
    VERFAHREN MatchCBGStatementLine@1000001(CBGStatementRec@1000000: Datensatz 11400;VAR CBGStatementlineRec@1000001: Datensatz 11401);
    VAR
    RecChanged@1000002 : Boolean;
    PaymentHistoryFound@1000004: Boolean;
    i@1000005 : Ganzzahl;
    strFilter@1000006 : Text[250];
    ...

    Vorhandener Code 2

     ...
    NumberOfLinesProcessed := NumberOfLinesProcessed + 1;
    RecChanged := FALSE;

    - CLEAR(BankaccountNo);
    CLEAR(Name);
    CLEAR(Adresse);
    CLEAR(Stadt);
    ...

    Ersatzcode 2

     ...
    NumberOfLinesProcessed := NumberOfLinesProcessed + 1;
    RecChanged := FALSE;

    // Fügen Sie die folgende Zeile hinzu.
    CLEAR(TempBankAccount);

    CLEAR(Name);
    CLEAR(Adresse);
    CLEAR(Stadt);
    ...

    Vorhandener Code 3

     ...
    CLEAR(Adresse);
    CLEAR(Stadt);
    CLEAR(Identifikation);

    // Folgende Zeile löschen.
    NumberOfPossibleBankAccounts := 0;

    PostDesRec.SETRANGE("Journal Template Name", CBGStatementlineRec."Journal Template Name");
    PostDesRec.SETRANGE("CBG Statement No.", CBGStatementlineRec."No.");
    ...

    Ersatzcode 3

     ...
    CLEAR(Adresse);
    CLEAR(Stadt);
    CLEAR(Identifikation);

    PostDesRec.SETRANGE("Journal Template Name", CBGStatementlineRec."Journal Template Name");
    PostDesRec.SETRANGE("CBG Statement No.", CBGStatementlineRec."No.");
    ...

    Vorhandener Code 4

     ...
    PostDesRec.SETRANGE("CBG Statement No.", CBGStatementlineRec."No.");
    PostDesRec.SETRANGE("CBG Statement Line No.", CBGStatementlineRec."Line No.");

    // Folgende Zeile löschen.
    WENN PostDesRec.FIND('-') DANN BEGIN

    WIEDERHOLEN
    CASE PostDesRec."Informationstyp" OF
    PostDesRec."Informationstyp"::"Beschreibung und Sonstiges":
    ...

    Ersatzcode 4

     ...
    PostDesRec.SETRANGE("CBG Statement No.", CBGStatementlineRec."No.");
    PostDesRec.SETRANGE("CBG Statement Line No.", CBGStatementlineRec."Line No.");

    // Fügen Sie die folgende Zeile hinzu.
    IF PostDesRec.FIND('-') THEN

    WIEDERHOLEN
    CASE PostDesRec."Informationstyp" OF
    PostDesRec."Informationstyp"::"Beschreibung und Sonstiges":
    ...

    Vorhandener Code 5

     ...
    WIEDERHOLEN
    CASE PostDesRec."Informationstyp" OF
    PostDesRec."Informationstyp"::"Beschreibung und Sonstiges":

    // Folgende Zeilen löschen.
    WENN NICHT SplitAccountnumber(PostDesRec.Description) DANN
    SplitInvoicenumber(PostDesRec.Description);
    PostDesRec."Information Type"::"Konto-Nr. Ausgleichskonto":
    SplitAccountnumber(PostDesRec.Description);
    // Ende des Dle

    PostDesRec."Informationstyp"::"Name Kontoinhaber":
    Name := PostDesRec.Description;
    PostDesRec."Informationstyp"::"Adresskontoinhaber":
    ...

    Ersatzcode 5

     ...
    WIEDERHOLEN
    CASE PostDesRec."Informationstyp" OF
    PostDesRec."Informationstyp"::"Beschreibung und Sonstiges":

    // Fügen Sie die folgenden Zeilen hinzu.
    SplitAccountNumber(PostDesRec.Description);
    PostDesRec."Information Type"::"Konto-Nr. Ausgleichskonto":
    AddPossibleBankAccount(PostDesRec.Description);
    // Ende der hinzugefügten Zeilen.

    PostDesRec."Informationstyp"::"Name Kontoinhaber":
    Name := PostDesRec.Description;
    PostDesRec."Informationstyp"::"Adresskontoinhaber":
    ...

    Vorhandener Code 6

     ...
    Identifikation := PostDesRec.Description;
    ENDE;
    UNTIL PostDesRec.NEXT = 0;

    // Folgende Zeilen löschen.
    ENDE;

    IF CBGStatementlineRec."Konto-Nr." = '' DANN BEGINNEN
    FOR i := 1 TO 5 DO BEGIN
    WENN BankkontoNr[i] <> '' DANN BEGINNEN
    WENN CBGStatementlineRec.Credit > 0, DANN BEGINNEN
    WENN FindAccountnumber(BankaccountNo[i], TempRec."Source Type"::Customer,CBGStatementlineRec."Account No.") DANN BEGINNEN
    // Ende der gelöschten Zeilen.

    CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Customer;
    CBGStatementlineRec.VALIDATE("Konto-Nr.", CBGStatementlineRec."Konto-Nr.");
    CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed;
    ...

    Ersatzcode 6

     ...
    Identifikation := PostDesRec.Description;
    ENDE;
    UNTIL PostDesRec.NEXT = 0;

    // Fügen Sie die folgenden Zeilen hinzu.
    IF CBGStatementlineRec."Konto-Nr." = '' DANN BEGINNEN
    WENN TempBankAccount.FINDFIRST DANN
    WIEDERHOLEN
    WENN TempBankAccount.IBAN <> '' DANN BEGINNEN
    WENN CBGStatementlineRec.Credit > 0, DANN BEGINNEN
    WENN FindAccountnumber(TempBankAccount.IBAN,TempRec."Source Type"::Customer,CBGStatementlineRec."Account No.") DANN BEGINNEN
    // Ende der hinzugefügten Zeilen.

    CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Customer;
    CBGStatementlineRec.VALIDATE("Konto-Nr.", CBGStatementlineRec."Konto-Nr.");
    CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed;
    ...

    Vorhandener Code 7

     ...
    RecChanged := TRUE;
    ENDE;
    ENDE SONST BEGINNEN

    // Folgende Zeile löschen.
    WENN FindAccountnumber(BankaccountNo[i], TempRec."Source Type"::Vendor,CBGStatementlineRec."Account No.") DANN BEGINNEN

    CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Vendor;
    CBGStatementlineRec.VALIDATE("Konto-Nr.", CBGStatementlineRec."Konto-Nr.");
    CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed;
    ...

    Ersatzcode 7

     ...
    RecChanged := TRUE;
    ENDE;
    ENDE SONST BEGINNEN

    // Fügen Sie die folgende Zeile hinzu.
    WENN FindAccountnumber(TempBankAccount.IBAN,TempRec."Source Type"::Vendor,CBGStatementlineRec."Account No.") DANN BEGINNEN

    CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Vendor;
    CBGStatementlineRec.VALIDATE("Konto-Nr.", CBGStatementlineRec."Konto-Nr.");
    CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed;
    ...

    Vorhandener Code 8

     ...
    ENDE;
    ENDE;
    ENDE;

    // Folgende Zeile löschen.
    ENDE;

    WENN NICHT neu geändert, dann beginnen
    WENN Name <> '' DANN BEGINNEN
    WENN CBGStatementlineRec.Credit > 0, DANN BEGINNEN
    ...

    Ersatzcode 8

     ...
    ENDE;
    ENDE;
    ENDE;

    // Fügen Sie die folgende Zeile hinzu.
    BIS TempBankAccount.NEXT = 0;

    WENN NICHT neu geändert, dann beginnen
    WENN Name <> '' DANN BEGINNEN
    WENN CBGStatementlineRec.Credit > 0, DANN BEGINNEN
    ...

    Vorhandener Code 9

     ...
    ENDE;
    ENDE;

    // Folgende Zeilen löschen.
    WENN RecChanged, DANN BEGINNEN
    CBGStatementlineRec.MODIFY(TRUE);
    // Ende der gelöschten Zeilen.

    ENDE;
    ENDE;
    ...

    Ersatzcode 9

     ...
    ENDE;
    ENDE;

    // Fügen Sie die folgenden Zeilen hinzu.
    WENN RecChanged THEN
    CBGStatementlineRec.MODIFY(TRUE);
    ENDE;

    VERFAHREN SplitAccountNumber@1000002(strBuf@1000001 : Text[250]);
    VAR
    AccNo@1000003 : Text[30];
    BEGINNEN
    IF LocalFunctionalityMgt.CheckBankAccNo(COPYSTR(strBuf,1,30),'',AccNo) THEN
    AddPossibleBankAccount(AccNo);
    ENDE;

    VERFAHREN FindAccountnumber@1000004("Account Name"@1000001: Code[80];"Source Type"@1000002: Integer;VAR Sourcenumber@1000003: Code[20]) Found@1000000: Boolean;
    BEGINNEN
    TempRec.SETRANGE("Data Type",TempRec."Data Type"::Bankaccount);
    TempRec.SETRANGE("Quellentyp","Quellentyp");
    TempRec.SETRANGE(Word,"Kontoname");
    WENN TempRec.FIND('-') DANN BEGINNEN
    Quellennummer := TempRec."Quellennr.";
    EXIT(TRUE);
    // Ende der hinzugefügten Zeilen.

    ENDE;
    ENDE;
    ...
  4. Ändern Sie den Code in der SplitAccountnumber-Funktion im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code

     ...
    ENDE;
    ENDE;

    // Folgende Zeilen löschen.
    VERFAHREN SplitAccountnumber@1000002(VAR strBuf@1000001 : Text[250]) result@1000000 : Boolean;
    VAR
    strHlpBuf@1000002 : Text[250];
    AccNo@1000003 : Text[30];
    BEGINNEN
    Ergebnis := LocalFunctionalityMgt.CheckBankAccNo(COPYSTR(strBuf,1,30), '', AccNo);
    WENN Ergebnis, DANN BEGINNEN
    NumberOfPossibleBankAccounts := NumberOfPossibleBankAccounts + 1;
    BankaccountNo[NumberOfPossibleBankAccounts] :=
    LocalFunctionalityMgt.CharacterFilter(AccNo,'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ');
    ENDE;
    ENDE;

    VERFAHREN SplitInvoicenumber@1000003(strBuf@1000000 : Text[250]);
    BEGINNEN
    ENDE;

    VERFAHREN FindAccountnumber@1000004("Account Name"@1000001: Code[80];"Source Type"@1000002: Integer;VAR Sourcenumber@1000003: Code[20]) Found@1000000: Boolean;
    BEGINNEN
    TempRec.SETRANGE(TempRec."Data Type", TempRec."Data Type"::Bankaccount);
    TempRec.SETRANGE(TempRec."Quellentyp", "Quellentyp");
    TempRec.SETRANGE(TempRec.Word, "Kontoname");
    WENN TempRec.FIND('-') DANN BEGINNEN
    Quellennummer := TempRec."Quellennr.";
    EXIT(TRUE);
    ENDE;
    ENDE;
    // Ende der gelöschten Zeilen.

    VERFAHREN FindNAC@1000005(Name@1000001: Code[80];Adresse@1000002: Code[80];Stadt@1000003: Code[80];"Quellentyp"@1000004: Ganzzahl;VAR QuellnummerGefunden@1000005: Code[20] ) gefunden@1000000 : Boolean;
    VAR
    NameResultTemp@1000006: TEMPORÄRER Datensatz 11000008;
    ...

    Ersatzcode

     ...
    ENDE;
    ENDE;

    VERFAHREN FindNAC@1000005(Name@1000001: Code[80];Adresse@1000002: Code[80];Stadt@1000003: Code[80];"Quellentyp"@1000004: Ganzzahl;VAR QuellnummerGefunden@1000005: Code[20] ) gefunden@1000000 : Boolean;
    VAR
    NameResultTemp@1000006: TEMPORÄRER Datensatz 11000008;
    ...
  5. Ändern Sie den Code in der FindNAC-Funktion im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code 1

     ...
    AddressResultTemp.SETCURRENTKEY("Quellentyp", "Quellennr.");
    CityResultTemp.SETCURRENTKEY("Quellentyp", "Quellennr.");

    // Folgende Zeilen löschen.
    TempRec.SETRANGE(TempRec."Quellentyp", "Quellentyp");
    TempRec.SETRANGE(TempRec."Data Type", TempRec."Data Type"::Name);
    TempRec.SETRANGE(TempRec.Word, COPYSTR(Name,1,20));
    // Ende der gelöschten Zeilen.

    IF TempRec.FIND('-') THEN
    WIEDERHOLEN
    NameResultTemp := TempRec;
    ...

    Ersatzcode 1

     ...
    AddressResultTemp.SETCURRENTKEY("Quellentyp", "Quellennr.");
    CityResultTemp.SETCURRENTKEY("Quellentyp", "Quellennr.");

    // Fügen Sie die folgenden Zeilen hinzu.
    TempRec.SETRANGE("Quellentyp","Quellentyp");
    TempRec.SETRANGE("Data Type",TempRec."Data Type"::Name);
    TempRec.SETRANGE(Word,COPYSTR(Name,1,20));
    // Ende der hinzugefügten Zeilen.

    IF TempRec.FIND('-') THEN
    WIEDERHOLEN
    NameResultTemp := TempRec;
    ...

    Vorhandener Code 2

     ...
    NameResultTemp.INSERT;
    BIS TempRec.NEXT = 0;

    // Folgende Zeilen löschen.
    TempRec.RESET();
    TempRec.SETRANGE(TempRec."Quellentyp", "Quellentyp");
    TempRec.SETRANGE(TempRec."Data Type", TempRec."Data Type"::Street);
    TempRec.SETRANGE(TempRec.Word, COPYSTR(Address,1,20));
    // Ende der gelöschten Zeilen.

    IF TempRec.FIND('-') THEN
    WIEDERHOLEN
    NameResultTemp.SETRANGE("Source Type",TempRec."Source Type");
    ...

    Ersatzcode 2

     ...NameResultTemp.INSERT;
    BIS TempRec.NEXT = 0;

    // Fügen Sie die folgenden Zeilen hinzu.
    TempRec.RESET;
    TempRec.SETRANGE("Quellentyp","Quellentyp");
    TempRec.SETRANGE("Data Type",TempRec."Data Type"::Street);
    TempRec.SETRANGE(Word,COPYSTR(Address,1,20));
    // Ende der hinzugefügten Zeilen.

    IF TempRec.FIND('-') THEN
    WIEDERHOLEN
    NameResultTemp.SETRANGE("Source Type",TempRec."Source Type");
    ...

    Vorhandener Code 3

     ...
    ENDE;
    BIS TempRec.NEXT = 0;

    // Folgende Zeilen löschen.
    TempRec.RESET();
    TempRec.SETRANGE(TempRec."Quellentyp", "Quellentyp");
    TempRec.SETRANGE(TempRec."Data Type", TempRec."Data Type"::City);
    TempRec.SETRANGE(TempRec.Word, COPYSTR(City,1,20));
    // Ende der gelöschten Zeilen.

    IF TempRec.FIND('-') THEN
    WIEDERHOLEN
    AddressResultTemp.SETRANGE("Source Type",TempRec."Source Type");
    ...

    Ersatzcode 3

     ...
    ENDE;
    BIS TempRec.NEXT = 0;

    // Fügen Sie die folgenden Zeilen hinzu.
    TempRec.RESET;
    TempRec.SETRANGE("Quellentyp","Quellentyp");
    TempRec.SETRANGE("Data Type",TempRec."Data Type"::City);
    TempRec.SETRANGE(Word,COPYSTR(City,1,20));
    // Ende der hinzugefügten Zeilen.

    IF TempRec.FIND('-') THEN
    WIEDERHOLEN
    AddressResultTemp.SETRANGE("Source Type",TempRec."Source Type");
    ...
  6. Ändern Sie den Code in der MakeTempfile-Funktion im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code

     ...
    VAR
    NumberRec@1000000 : Ganzzahl;
    RecNumerator@1000001 : Ganzzahl;

    // Folgende Zeile löschen.
    BankAccountCharsToKeep@1000002 : Text[50];

    BEGINNEN
    BankAccountCharsToKeep := 'ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789';
    TempRec.RESET();
    ...

    Ersatzcode

     ...
    VAR
    NumberRec@1000000 : Ganzzahl;
    RecNumerator@1000001 : Ganzzahl;
    BEGINNEN
    BankAccountCharsToKeep := 'ABCDEFGHIJKLMNOPQRSTUVWYXZ0123456789';
    TempRec.RESET();
    ...
  7. Ändern Sie den Code in der GetTransactionModeFilter-Funktion im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code 1

     ...
    LOKALE VERFAHREN GetTransactionModeFilter@1000012(VAR CBGStatementLineRec@1000000 : Record 11401;VAR strFilter@1000001 : Text[250];Account_Type@1000002 : Integer);
    VAR
    CBGStatementRec@1000003: Datensatz 11400;

    // Folgende Zeile löschen.
    BankAccountRec@1000004: Datensatz 270;

    BEGINNEN
    strFilter := '';
    IF CBGStatementRec.GET(CBGStatementLineRec."Journal Template Name",CBGStatementLineRec."No.") THEN BEGIN
    ...

    Ersatzcode 1

     ...
    LOKALE VERFAHREN GetTransactionModeFilter@1000012(VAR CBGStatementLineRec@1000000 : Record 11401;VAR strFilter@1000001 : Text[250];Account_Type@1000002 : Integer);
    VAR
    CBGStatementRec@1000003: Datensatz 11400;
    BEGINNEN
    strFilter := '';
    IF CBGStatementRec.GET(CBGStatementLineRec."Journal Template Name",CBGStatementLineRec."No.") THEN BEGIN
    ...

    Vorhandener Code 2

     ...
    strFilter := '';
    IF CBGStatementRec.GET(CBGStatementLineRec."Journal Template Name",CBGStatementLineRec."No.") THEN BEGIN
    TransactionModeRec.SETRANGE("Kontotyp", Account_Type);

    // Folgende Zeile löschen.
    TransactionModeRec.SETRANGE(TransactionModeRec."Unsere Bank", CBGStatementRec."Konto-Nr.");

    WENN TransactionModeRec.FIND('-') DANN BEGIN
    strFilter := '''''';
    WIEDERHOLEN
    ...

    Ersatzcode 2

     ...
    strFilter := '';
    IF CBGStatementRec.GET(CBGStatementLineRec."Journal Template Name",CBGStatementLineRec."No.") THEN BEGIN
    TransactionModeRec.SETRANGE("Kontotyp", Account_Type);

    // Fügen Sie die folgende Zeile hinzu.
    TransactionModeRec.SETRANGE("Our Bank",CBGStatementRec."Account No.");

    WENN TransactionModeRec.FIND('-') DANN BEGIN
    strFilter := '''''';
    WIEDERHOLEN
    ...
  8. Ändern Sie den Code in der SetHideMessages-Funktion im CBG Statement Reconciliation-Codeuint (11000006) wie folgt:
    Vorhandener Code

     ...
    HideMessages := HideMessages2;
    ENDE;

    // Folgende Zeilen löschen.
    BEGINNEN
    {

    // Bankschriften übereinstimmen, automatisch boekstuk(regels) vereffenen
    }
    // Ende der gelöschten Zeilen.

    ENDE.
    }
    }
    ...

    Ersatzcode

     ...
    HideMessages := HideMessages2;
    ENDE;

    // Fügen Sie die folgenden Zeilen hinzu.
    LOKALES VERFAHREN AddPossibleBankAccount@1000018(AccountNumber@1000000 : Text[30]);
    BEGINNEN
    TempBankAccount.INIT;
    TempBankAccount.VALIDATE(TempBankAccount."No.",FORMAT(TempBankAccount.COUNT + 1));
    TempBankAccount.IBAN := LocalFunctionalityMgt.CharacterFilter(AccountNumber,BankAccountCharsToKeep);
    TempBankAccount.INSERT;
    ENDE;

    BEGINNEN
    // Ende der hinzugefügten Zeilen.

    ENDE.
    }
    }
    ...


Voraussetzungen

Um diesen Hotfix anwenden zu können, muss eines der folgenden Produkte installiert sein:

  • Die niederländische Version von Microsoft Dynamics NAV 2009 R2

  • Die niederländische Version von Microsoft Dynamics NAV 2009 SP1

Informationen zum Entfernen

Sie können diesen Hotfix nicht entfernen.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Gilt für" aufgeführt sind.

Hinweis Dies ist ein „FAST PUBLISH"-Artikel, der direkt von der Microsoft-Supportorganisation erstellt wurde. Die hierin enthaltenen Informationen werden unverändert als Reaktion auf neu auftretende Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung können die Materialien Tippfehler enthalten und jederzeit ohne Vorankündigung überarbeitet werden. Weitere Hinweise finden Sie in den Nutzungsbedingungen .

No comments:

Post a Comment