Fehlermeldung "die Indizierung 31 im Array ist außerhalb des zulässigen Bereichs" einen Kontoauszug importieren mit dem ABN AMRO Fortis in der niederländischen Version von Microsoft Dynamics NAV 5.0 SP1 Hotfix 2664885 angewendet

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 2694204
Dieser Artikel bezieht sich auf Microsoft Dynamics NAV für das Gebietsschema Niederlande (nl).
Problembeschreibung
Angenommen, Sie installieren Hotfix 2664885 in der niederländischen Version von Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1). Wenn Sie versuchen, einen Kontoauszug zu importieren, der das ABN AMRO Fortis Format verwendet, wird die folgende Fehlermeldung angezeigt:
Die Indizierung 31 im Array ist außerhalb des zulässigen Bereichs.
Weitere Informationen zu Hotfix 2664885 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2664885 Bankauszüge mit dem ABN AMRO MT940 Format werden in der niederländischen Version von Microsoft Dynamics NAV 5.0 Service Pack 1 nicht korrekt importiert.
Lösung

Hotfix-Informationen

Ein unterstützter Hotfix ist jetzt von Microsoft erhältlich. Allerdings nur soll zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten Sie auf das nächste Servicepack für Microsoft Dynamics NAV 2009 oder die nächste Microsoft Dynamics NAV-Version, die diesen Hotfix enthält.

Hinweis In besonderen Fällen bestimmt Gebühren fallen normalerweise Support aufrufen Wenn Experte Support für Microsoft Dynamics und zugehörige Produkte abgebrochen werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die für das betreffende Update nicht qualifizieren.

Informationen zur Installation

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Navision-Clientbenutzer vom System abgemeldet sind. Dies gilt auch für Clientbenutzer der Microsoft Navision Application Services (NAS). Sie sollte nur-Client-Benutzers, der angemeldet ist, wenn Sie diesen Hotfix installieren.

Muss eine Entwicklerlizenz verfügen, um diesen Hotfix installieren können.

Es wird empfohlen, das Benutzerkonto im Fenster Windows-Benutzernamen oder in dem Fenster Datenbankanmeldungen die Rollen-ID "SUPER" zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" nicht zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:
  • Änderungsberechtigung für das Objekt, das Sie ändern.
  • Die Execute-Berechtigung für das Objekt System Object ID 5210 und System Object ID 9015 .


Hinweis Sie müssen keinen Datenspeicher Administratorrechte nur Datenreparaturen durchzuführen.

Ändern von Code

Hinweis Immer behebt Testcode in einer kontrollierten Umgebung vor dem Anwenden von Updates auf Ihrem.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
  1. Ändern Sie den Code in den Import Swift MT940 Dataport (11000000) 1 Anzahl Artikel Daten wie folgt:
    Vorhandener Code 1
    ...END;'61': //contents of the changesBEGIN//FirstNetChangeLineInitLneVariables;ImpLneCurrencyDate := GetDate(5,6,Text1000005);ImpLnrDebCred := GetText(11,1);IF NOT (ImpLnrDebCred IN [Text1000006,Text1000007]) THEN BEGINShift := 4;...
    Neuer Code 1
    ...END;'61': //contents of the changesBEGIN//FirstNetChangeLine// Add the following line.Shift := 0;InitLneVariables;ImpLneCurrencyDate := GetDate(5,6,Text1000005);ImpLnrDebCred := GetText(11,1);IF NOT (ImpLnrDebCred IN [Text1000006,Text1000007]) THEN BEGINShift := 4;...
    Vorhandener Code 2
    ...IF (UPPERCASE(GetText(12+Shift,1)) IN ['A'..'Z']) THENShift := Shift + 1;ImpLneAmount := GetDecimal(12+Shift,16,',');ProcessLine;DescriptionBelongsToLine := TRUE;END;'86',Text1000008://Description...
    Neuer Code 2
    ...IF (UPPERCASE(GetText(12+Shift,1)) IN ['A'..'Z']) THENShift := Shift + 1;ImpLneAmount := GetDecimal(12+Shift,16,',');// Add the following lines.ImpLneDescription := '';ImpLneDescriptionCount := 0;// End of the lines.ProcessLine;DescriptionBelongsToLine := TRUE;END;'86',Text1000008://Description...
  2. Ändern Sie den Code in der Funktion ProcessRemark Import Swift MT940 Dataport (11000000) wie folgt:
    Vorhandener Code 1
    ...END;CBGStatementLine.INSERT(TRUE);END;PROCEDURE ProcessRemark@1000009();BEGINIF DescriptionBelongsToLine THEN BEGINIF CBGStatementLine.Description = '' THEN BEGINCBGStatementLine.Description := COPYSTR(ImpLneDescription,1,MAXSTRLEN(CBGStatementLine.Description));CBGStatementLine.MODIFY(TRUE);...
    Neuer Code 1
    ...END;CBGStatementLine.INSERT(TRUE);END;PROCEDURE ProcessRemark@1000009();// Add the following lines.VARBankAccount@1170000000 : Text[30];// End of the lines.BEGINIF DescriptionBelongsToLine THEN BEGINIF CBGStatementLine.Description = '' THEN BEGINCBGStatementLine.Description := COPYSTR(ImpLneDescription,1,MAXSTRLEN(CBGStatementLine.Description));CBGStatementLine.MODIFY(TRUE);...
    Vorhandener Code 2
    ...IF DescriptionBelongsToLine THEN BEGINIF CBGStatementLine.Description = '' THEN BEGINCBGStatementLine.Description := COPYSTR(ImpLneDescription,1,MAXSTRLEN(CBGStatementLine.Description));CBGStatementLine.MODIFY(TRUE);END;CBGStatementlineDescription.SETRANGE("Journal Template Name",CBGStatementLine."Journal Template Name");CBGStatementlineDescription.SETRANGE("CBG Statement No.",CBGStatementLine."No.");CBGStatementlineDescription.SETRANGE("CBG Statement Line No.",CBGStatementLine."Line No.");IF CBGStatementlineDescription.FIND('+') THENCBGStatementlineDescription."Line No." := CBGStatementlineDescription."Line No." + 10000...
    Neuer Code 2
    ...IF DescriptionBelongsToLine THEN BEGINIF CBGStatementLine.Description = '' THEN BEGINCBGStatementLine.Description := COPYSTR(ImpLneDescription,1,MAXSTRLEN(CBGStatementLine.Description));CBGStatementLine.MODIFY(TRUE);END;// Add the following lines.IF CheckBankAccount(COPYSTR(ImpLneDescription, 1, 30),BankAccount) THENImpLneDescription := BankAccount;// End of the lines.CBGStatementlineDescription.SETRANGE("Journal Template Name",CBGStatementLine."Journal Template Name");CBGStatementlineDescription.SETRANGE("CBG Statement No.",CBGStatementLine."No.");CBGStatementlineDescription.SETRANGE("CBG Statement Line No.",CBGStatementLine."Line No.");IF CBGStatementlineDescription.FIND('+') THENCBGStatementlineDescription."Line No." := CBGStatementlineDescription."Line No." + 10000...
  3. Ändern Sie den Code in der Funktion FindBankAcct Import Swift MT940 Dataport (11000000) wie folgt:
    Vorhandener code
    ...IF TextFilter(BankAcct."Bank Account No.", '0123456789') = TextFilter(AcctNo, '0123456789') THENEXIT(BankAcct."No.");UNTIL BankAcct.NEXT = 0;END;// Delete the following line.BEGINEND.}}...
    Neuer code
    ...IF TextFilter(BankAcct."Bank Account No.", '0123456789') = TextFilter(AcctNo, '0123456789') THENEXIT(BankAcct."No.");UNTIL BankAcct.NEXT = 0;END;// Add the following lines.PROCEDURE CheckAllDigitsAcc@1000012(Description@1000001 : Text[30];VAR Account@1000013 : Text[30]) : Boolean;VARi@1000014 : Integer;NumCount@1000015 : Integer;BEGINi := 1;NumCount := 0;Account := '';WHILE i <= STRLEN(Description) DO BEGINWHILE (Description[i] >= '0') AND (Description[i] <= '9') DO BEGINNumCount := NumCount + 1;Account := Account + FORMAT(Description[i]);i := i + 1;IF i > STRLEN(Description) THEN // can't add i <= STRLEN(Description) in this while condition, overflow.IF (NumCount = 9) OR (NumCount = 10) THENEXIT(TRUE);END;IF (NumCount = 9) OR (NumCount = 10) THENEXIT(TRUE)ELSE BEGINNumCount := 0;Account := '';END;i := i + 1;END;EXIT(FALSE);END;PROCEDURE CheckGiroAcc@1000013(Description@1170000000 : Text[30];VAR Account@1000017 : Text[30]) : Boolean;VARi@1000018 : Integer;j@1000019 : Integer;NumCount@1000020 : Integer;SubDescription@1000021 : Text[30];BEGINi := 1; // i show the position in the substringj := 1; // j show the position in the original DescriptionNumCount := 0;Account := '';WHILE j <= STRLEN(Description) DO BEGINSubDescription := COPYSTR(Description, j);i := STRPOS(SubDescription,'GIRO ');IF i > 0 THEN BEGINj := i + 6 + j - 1; // the exact position after "GIRO " in original DescriptionAccount := 'GIRO ';IF Description[j] = ' ' THEN BEGIN // check if there is third spacej := j + 1;Account := Account + ' ';END;WHILE (Description[j] >= '0') AND (Description[j] <= '9') DO BEGINNumCount := NumCount + 1;Account := Account + FORMAT(Description[j]);j := j + 1;IF j > STRLEN(Description) THEN BEGINIF NumCount = 7 THENEXIT(TRUE);END;END;IF NumCount = 7 THENEXIT(TRUE)ELSE BEGINNumCount := 0;Account := '';END;END ELSEEXIT(FALSE);END;EXIT(FALSE);END; PROCEDURE CheckPAcc@1000014(Description@1170000000 : Text[80];VAR Account@1000023 : Text[30]) : Boolean;VARi@1000024 : Integer;j@1000025 : Integer;NumCount@1000026 : Integer;SubDescription@1000027 : Text[30];BEGINi := 1;j := 1;NumCount := 0;Account := '';WHILE j < STRLEN(Description) DO BEGINSubDescription := COPYSTR(Description, j);i := STRPOS(SubDescription, 'P');IF i > 0 THEN BEGINj := i + 1 + j - 1;Account := 'P';WHILE (Description[j] >= '0') AND (Description[j] <= '9') DO BEGINNumCount := NumCount + 1;Account := Account + FORMAT(Description[j]);j := j + 1;IF j > STRLEN(Description) THENIF NumCount = 7 THENEXIT(TRUE);END;IF NumCount = 7 THENEXIT(TRUE)ELSE BEGINNumCount := 0;Account := '';END;END ELSEEXIT(FALSE);END;EXIT(FALSE);END; PROCEDURE CheckBankAccount@1000015(Description@1170000001 : Text[30];VAR Account@1000029 : Text[30]) : Boolean;BEGINDescription := DELCHR(Description, '=', '.');IF CheckAllDigitsAcc(Description, Account) THENEXIT(TRUE)ELSE IF CheckGiroAcc(Description, Account) THENEXIT(TRUE)ELSE IF CheckPAcc(Description, Account) THENEXIT(TRUE);END;BEGIN{// End of the lines.END.}}...

Voraussetzungen

Sie müssen die holländische Version des Microsoft Dynamics NAV 5.0 Service Pack 1 installiert, um diesen Hotfix anwenden.

Informationen zur Deinstallation

Dieser Hotfix kann nicht entfernt werden.
Status
Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt "Eigenschaften" aufgeführt sind.
Hinweis Dies ist ein im Schnellverfahren veröffentlichter Artikel, der direkt in der Microsoft Support-Organisation erstellt wurde. Die hierin enthaltenen Informationen werden ohne Mängelgewähr in Reaktion auf neue Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung kann das Material möglicherweise typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Siehe Rechtliche Hinweise für andere Faktoren.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 2694204 – Letzte Überarbeitung: 10/04/2015 12:52:00 – Revision: 2.0

Microsoft Dynamics NAV 5.0

  • kbqfe kbmbspartner kbmbsmigrate kbMBSQuickPub kbsurveynew kbnoloc kbmbscodefix kberrmsg kbmt KB2694204 KbMtde
Feedback