Nicht alle Informationen in der importierten Datei CAMT ist in Tabelle CBG Anweisung Zeile in der niederländischen Version von Microsoft Dynamics NAV 2009 übertragen. Folgen Sie den Schritten im Abschnitt ändert sich dieses Problem lösen. Dieses Problem tritt in den 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)
Problemlösung
Hotfix-Informationen
Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Allerdings ist es lediglich zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten 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 storniert werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update 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-Supporttechniker helfen der Erläuterung der Funktionalität bestimmter Prozeduren. Allerdings werden sie diese Beispiele nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren erstellen, die Ihren spezifischen Bedürfnisse erfüllen.
Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Dynamics NAV-Clientbenutzer vom System abgemeldet werden. Hierzu gehören Dienste Microsoft Dynamics NAV Application Server (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 im Fenster Datenbank-Anmeldenamen "SUPER" Rollen-ID 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.
-
Ausführungsberechtigung für System Object ID 5210 und System Object ID 9015
Objekt.
Hinweis Sie müssen keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.
Ändern von Code
Hinweis Testen Sie Programmcodeverbesserungen generell erst in einem Testsytem, bevor Sie sie im Produktionssystem verwenden.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:-
Ändern Sie den Code in globalen Variablen im CBG Abstimmung (11000006) wie folgt:
Vorhandener code...PaymenthistorylineRec@1000017 : Record 11000002;
TransactionModeRec@1000018 : Record 11000004; TempBankAccount@1000025 : TEMPORARY Record 270; Name@1000021 : Code[80]; Address@1000022 : Code[40]; City@1000023 : Code[40]; Identification@1000024 : Code[40]; NumberOfDocumentNumbers@1000028 : Integer; NumberOfLinesProcessed@1000029 : Integer; NumberOfLinesChanged@1000030 : Integer; ...Neuer code
...PaymenthistorylineRec@1000017 : Record 11000002;
TransactionModeRec@1000018 : Record 11000004; TempBankAccount@1000025 : TEMPORARY Record 270; NumberOfDocumentNumbers@1000028 : Integer; NumberOfLinesProcessed@1000029 : Integer; NumberOfLinesChanged@1000030 : Integer; ... -
Ändern Sie den Code in der Funktion MatchCBGStatementLine Abstimmung CBG Codeunit (11000006) wie folgt:
Vorhandener Code 1...PaymentHistoryFound@1000004 : Boolean;
i@1000005 : Integer; strFilter@1000006 : Text[250]; BEGIN MakeTempfile; NumberOfLinesProcessed := NumberOfLinesProcessed + 1; ...Neuer Code 1
...PaymentHistoryFound@1000004 : Boolean;
i@1000005 : Integer; strFilter@1000006 : Text[250]; Name@1000007 : Code[80]; Address@1000008 : Code[80]; City@1000009 : Code[80]; Identification@1000010 : Code[20]; BEGIN MakeTempfile; NumberOfLinesProcessed := NumberOfLinesProcessed + 1; ...Vorhandener Code 2
...PostDesRec."Information Type"::"City Acct. Holder":
City := PostDesRec.Description; PostDesRec."Information Type"::"Payment Identification": Identification := PostDesRec.Description; END; UNTIL PostDesRec.NEXT = 0; ...Neuer Code 2
...PostDesRec."Information Type"::"City Acct. Holder":
City := PostDesRec.Description; PostDesRec."Information Type"::"Payment Identification": Identification := COPYSTR(PostDesRec.Description,1,MAXSTRLEN(Identification)); END; UNTIL PostDesRec.NEXT = 0; ...Vorhandenen Code 3
...IF NOT RecChanged THEN BEGIN
IF Name <> '' THEN BEGIN IF CBGStatementlineRec.Credit > 0 THEN BEGIN IF FindNAC(Name, Address, City, TempRec."Source Type"::Customer,CBGStatementlineRec."Account No.") THEN BEGIN CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Customer; CBGStatementlineRec.VALIDATE("Account No.", CBGStatementlineRec."Account No."); CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed; ...Neuer Code 3
...IF NOT RecChanged THEN BEGIN
IF Name <> '' THEN BEGIN IF CBGStatementlineRec.Credit > 0 THEN BEGIN IF FindSourceNoByNAC(Name,Address,City,TempRec."Source Type"::Customer,CBGStatementlineRec."Account No.") THEN BEGIN CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Customer; CBGStatementlineRec.VALIDATE("Account No.", CBGStatementlineRec."Account No."); CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed; ...Vorhandenen Code 4
...RecChanged := TRUE;
END; END ELSE BEGIN IF FindNAC(Name, Address, City, TempRec."Source Type"::Vendor,CBGStatementlineRec."Account No.") THEN BEGIN CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Vendor; CBGStatementlineRec.VALIDATE("Account No.", CBGStatementlineRec."Account No."); CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed; ...Neuer Code 4
...RecChanged := TRUE;
END; END ELSE BEGIN IF FindSourceNoByNAC(Name,Address,City,TempRec."Source Type"::Vendor,CBGStatementlineRec."Account No.") THEN BEGIN CBGStatementlineRec."Account Type" := CBGStatementlineRec."Account Type"::Vendor; CBGStatementlineRec.VALIDATE("Account No.", CBGStatementlineRec."Account No."); CBGStatementlineRec."Reconciliation Status" := CBGStatementlineRec."Reconciliation Status"::Changed; ... -
Ändern Sie den Code in der Funktion FindNAC Abstimmung CBG Codeunit (11000006) wie folgt:
Vorhandener code...END;
END; PROCEDURE FindNAC@1000005(Name@1000001 : Code[80];Address@1000002 : Code[80];City@1000003 : Code[80];"Source Type"@1000004 : Integer;VAR SourcenumberFound@1000005 : Code[20]) found@1000000 : Boolean; VAR NameResultTemp@1000006 : TEMPORARY Record 11000008; AddressResultTemp@1000007 : TEMPORARY Record 11000008; CityResultTemp@1000008 : TEMPORARY Record 11000008; BEGIN found := FALSE; IF (Name = '') OR (Address = '') OR (City = '') THEN EXIT(FALSE); NameResultTemp.SETCURRENTKEY("Source Type", "Source No."); AddressResultTemp.SETCURRENTKEY("Source Type", "Source No."); CityResultTemp.SETCURRENTKEY("Source Type", "Source No."); TempRec.SETRANGE("Source Type","Source Type"); TempRec.SETRANGE("Data Type",TempRec."Data Type"::Name); TempRec.SETRANGE(Word,COPYSTR(Name,1,MAXSTRLEN(TempRec.Word))); IF TempRec.FIND('-') THEN REPEAT NameResultTemp := TempRec; NameResultTemp.INSERT; UNTIL TempRec.NEXT = 0; TempRec.RESET; TempRec.SETRANGE("Source Type","Source Type"); TempRec.SETRANGE("Data Type",TempRec."Data Type"::Street); TempRec.SETRANGE(Word,COPYSTR(Address,1,MAXSTRLEN(TempRec.Word))); IF TempRec.FIND('-') THEN REPEAT NameResultTemp.SETRANGE("Source Type",TempRec."Source Type"); NameResultTemp.SETRANGE("Source No.",TempRec."Source No."); IF NameResultTemp.FIND('-') THEN BEGIN AddressResultTemp := NameResultTemp; AddressResultTemp.INSERT; END; UNTIL TempRec.NEXT = 0; TempRec.RESET; TempRec.SETRANGE("Source Type","Source Type"); TempRec.SETRANGE("Data Type",TempRec."Data Type"::City); TempRec.SETRANGE(Word,COPYSTR(City,1,MAXSTRLEN(TempRec.Word))); IF TempRec.FIND('-') THEN REPEAT AddressResultTemp.SETRANGE("Source Type",TempRec."Source Type"); AddressResultTemp.SETRANGE("Source No.",TempRec."Source No."); IF AddressResultTemp.FIND('-') THEN BEGIN CityResultTemp := AddressResultTemp; CityResultTemp.INSERT; END; UNTIL TempRec.NEXT = 0; IF CityResultTemp.FIND('-') THEN BEGIN SourcenumberFound := CityResultTemp."Source No."; found := CityResultTemp.NEXT = 0; END; END; ...Neuer code
...END;
END; PROCEDURE FindSourceNoByNAC@1000005(Name@1000001 : Code[80];Address@1000002 : Code[80];City@1000003 : Code[80];SourceType@1000004 : Option;VAR FoundSourceNo@1000005 : Code[20]) Found@1000000 : Boolean; VAR TempFoundRecBuf@1000006 : TEMPORARY Record 11000008; BEGIN IF (Name = '') AND (Address = '') AND (City = '') THEN EXIT(FALSE); IF FindSourceNoByDataType(TempRec."Data Type"::Name,Name,TempFoundRecBuf,SourceType,FoundSourceNo) THEN EXIT(TRUE); IF FindSourceNoByDataType(TempRec."Data Type"::Street,Address,TempFoundRecBuf,SourceType,FoundSourceNo) THEN EXIT(TRUE); IF FindSourceNoByDataType(TempRec."Data Type"::City,City,TempFoundRecBuf,SourceType,FoundSourceNo) THEN EXIT(TRUE); EXIT(FALSE); END; LOCAL PROCEDURE FindSourceNoByDataType@1000016(DataType@1000001 : Option;Value@1000002 : Code[80];VAR TempFoundRecBuf@1000003 : TEMPORARY Record 11000008;SourceType@1000005 : Option;VAR FoundSourceNo@1000000 : Code[20]) FoundOne : Boolean; BEGIN IF Value = '' THEN EXIT(FALSE); TempRec.RESET; TempFoundRecBuf.RESET; IF TempFoundRecBuf.ISEMPTY THEN FoundOne := CollectMatches(SourceType,DataType,Value,TempFoundRecBuf) = 1 ELSE FoundOne := CollectDependentMatches(DataType,Value,TempFoundRecBuf) = 1; IF FoundOne THEN BEGIN TempFoundRecBuf.FINDFIRST; FoundSourceNo := TempFoundRecBuf."Source No."; END; END; ... -
Ändern Sie den Code in der Funktion CollectMatches Abstimmung CBG Codeunit (11000006) wie folgt:
Vorhandener code...END;
END; LOCAL PROCEDURE MakeTempfile@1000006(); VAR NumberRec@1000000 : Integer; ...Neuer code
...END;
END; LOCAL PROCEDURE CollectMatches@1000017(SourceType@1000000 : Option;DataType@1000003 : Option;Value@1000002 : Code[80];VAR TempFoundRecBuf@1000001 : TEMPORARY Record 11000008) : Integer; BEGIN TempRec.RESET; TempRec.SETRANGE("Source Type",SourceType); TempRec.SETRANGE("Data Type",DataType); TempRec.SETRANGE(Word,COPYSTR(Value,1,MAXSTRLEN(TempRec.Word))); IF TempRec.FINDSET THEN REPEAT TempFoundRecBuf := TempRec; TempFoundRecBuf.INSERT; UNTIL TempRec.NEXT = 0; TempFoundRecBuf.RESET; TempFoundRecBuf.SETRANGE("Data Type",DataType); EXIT(TempFoundRecBuf.COUNT); END; PROCEDURE CollectDependentMatches@1000019(DataType@1000002 : Option;Value@1000001 : Code[80];VAR TempFoundRecBuf@1000000 : TEMPORARY Record 11000008) : Integer; VAR CurrFoundRecBuf@1000004 : Record 11000008; BEGIN TempFoundRecBuf.FINDSET; REPEAT CurrFoundRecBuf.COPY(TempFoundRecBuf); IF TempRec.GET( COPYSTR(Value,1,MAXSTRLEN(TempRec.Word)),TempFoundRecBuf."Source Type",TempFoundRecBuf."Source No.",DataType) THEN BEGIN TempFoundRecBuf := TempRec; IF TempFoundRecBuf.INSERT THEN; END; TempFoundRecBuf.COPY(CurrFoundRecBuf); UNTIL TempFoundRecBuf.NEXT = 0; TempFoundRecBuf.RESET; TempFoundRecBuf.SETRANGE("Data Type",DataType); EXIT(TempFoundRecBuf.COUNT); END; LOCAL PROCEDURE MakeTempfile@1000006(); VAR NumberRec@1000000 : Integer; ...
Voraussetzungen
Sie müssen eines der folgenden Produkte verfügen, um diesen Hotfix installieren:
-
Die niederländische Version von Microsoft Dynamics NAV 2009 R2
-
Die niederländische Version von Microsoft Dynamics NAV 2009 SP1
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. Weitere Hinweise finden Sie unter Geschäftsbedingungen.