Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Dit artikel is van toepassing op Microsoft Dynamics NAV voor alle landen en alle taalinstellingen.

Symptomen

Wanneer u een servicecontract (niet prepaid) maken en wijzigen van de factuur vóór het boeken in Microsoft Dynamics NAV 2009, is er inconsistente gegevens tussen serviceposten en het grootboek. Dit probleem treedt op in de volgende producten:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 servicepack 1

Oplossing

Informatie over de hotfix

Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter alleen bedoeld om het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op het volgende servicepack voor Microsoft Dynamics NAV 2009 of de volgende Microsoft Dynamics NAV versie waarin deze hotfix is opgenomen.

Opmerking In speciale gevallen kunnen kosten die verbonden zijn aan ondersteuningsoproepen ondersteuning worden geannuleerd als een medewerker van Technical Support voor Microsoft Dynamics en verwante producten bepaalt dat een specifieke update de oplossing van uw probleem. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.


Informatie over de installatie

Microsoft verstrekt programmeervoorbeelden uitsluitend ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeertaal die wordt aangetoond en met de hulpprogramma's die worden gebruikt bent voor het maken van en naar procedures voor foutopsporing. Ondersteuningstechnici van Microsoft kunnen voor uitleg over de functionaliteit van een bepaalde procedure. Zij zal deze voorbeelden bieden extra functionaliteit of desgewenst uw specifieke vereisten echter niet wijzigen.

Opmerking Voordat u deze hotfix hebt geïnstalleerd, controleert u of dat alle gebruikers van Microsoft Navision-clients zijn afgemeld bij het systeem. Dit geldt ook voor gebruikers van Microsoft Navision Application Services (NAS)-clients. U moet de alleen clientgebruiker die is aangemeld wanneer u deze hotfix gaat implementeren.

Als u deze hotfix gaat implementeren, hebt u een ontwikkelaarslicentie voor.

Is raadzaam dat de gebruikersaccount in het venster Windows-aanmeldingen of Databaseaanmeldingen de rol-id 'SUPER'. Als de gebruikersaccount kan worden toegewezen als de ID 'SUPER' rol, moet u controleren of de gebruikersaccount de volgende machtigingen heeft:

  • De machtiging wijzigen voor het object dat u wijzigt.

  • De machtiging uitvoeren voor het object System Object ID 5210 en voor het object System Object ID 9015 .



Opmerking Er geen rechten voor de opgeslagen gegevens hebben, tenzij u gegevens herstellen.

Codewijzigingen

Opmerking Altijd test code worden opgelost in een testomgeving voordat u de correcties in de productieomgeving.
U kunt dit probleem oplossen door de volgende stappen uit te voeren:

  1. De code in de tabel Documentdimensie (357) als volgt wijzigen:
    Bestaande code 1

    ...      Text005@1009 : TextConst 'ENU=Canceled.';
    Text006@1010 : TextConst 'ENU=You may have changed a dimension. Some lines are already shipped. When you post the line with the changed dimension to the general ledger, amounts on the Inventory Interim account will be out of balance when reported per dimension.\\Do you want to update the lines?';

    PROCEDURE UpdateGlobalDimCode@25(GlobalDimCodeNo@1000 : Integer;"Table ID"@1001 : Integer;"Document Type"@1002 : Option;"Document No."@1003 : Code[20];"Line No."@1004 : Integer;NewDimValue@1005 : Code[20]);
    ...

    Nieuwe code 1

    ...      Text005@1009 : TextConst 'ENU=Canceled.';
    Text006@1010 : TextConst 'ENU=You may have changed a dimension. Some lines are already shipped. When you post the line with the changed dimension to the general ledger, amounts on the Inventory Interim account will be out of balance when reported per dimension.\\Do you want to update the lines?';
    Text007@1011 : TextConst 'ENU=You cannot change the dimension because the document is based on a service contract.';

    PROCEDURE UpdateGlobalDimCode@25(GlobalDimCodeNo@1000 : Integer;"Table ID"@1001 : Integer;"Document Type"@1002 : Option;"Document No."@1003 : Code[20];"Line No."@1004 : Integer;NewDimValue@1005 : Code[20]);
    ...

    Bestaande code 2

    ...    PROCEDURE VerifyLineDim@5(VAR DocDim@1000 : Record 357);
    VAR
    SalesLine@1001 : Record 37;
    PurchaseLine@1002 : Record 39;
    BEGIN
    CASE "Table ID" OF
    DATABASE::"Sales Line":
    BEGIN
    IF SalesLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN
    IF (SalesLine."Qty. Shipped Not Invoiced" <> 0) OR (SalesLine."Return Rcd. Not Invd." <> 0) THEN
    IF NOT CONFIRM(Text004,TRUE,SalesLine.TABLECAPTION) THEN
    ERROR(Text005)
    END;
    DATABASE::"Purchase Line":
    BEGIN
    IF PurchaseLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN
    IF (PurchaseLine."Qty. Rcd. Not Invoiced" <> 0) OR (PurchaseLine."Return Qty. Shipped Not Invd." <> 0) THEN

    IF NOT CONFIRM(Text004,TRUE,PurchaseLine.TABLECAPTION) THEN
    ERROR(Text005)
    END;
    END;
    END;
    ...

    Vervangende code 2

    ...    PROCEDURE VerifyLineDim@5(VAR DocDim@1000 : Record 357);
    VAR
    SalesLine@1001 : Record 37;
    PurchaseLine@1002 : Record 39;
    ServiceHeader@1003 : Record 5900;
    ServiceLine@1004 : Record 5902;
    BEGIN
    CASE "Table ID" OF
    DATABASE::"Sales Line":
    BEGIN
    IF SalesLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN
    IF (SalesLine."Qty. Shipped Not Invoiced" <> 0) OR (SalesLine."Return Rcd. Not Invd." <> 0) THEN
    IF NOT CONFIRM(Text004,TRUE,SalesLine.TABLECAPTION) THEN
    ERROR(Text005)
    END;
    DATABASE::"Purchase Line":
    BEGIN
    IF PurchaseLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN
    IF (PurchaseLine."Qty. Rcd. Not Invoiced" <> 0) OR (PurchaseLine."Return Qty. Shipped Not Invd." <> 0) THEN

    IF NOT CONFIRM(Text004,TRUE,PurchaseLine.TABLECAPTION) THEN
    ERROR(Text005)
    END;
    DATABASE::"Service Header":
    IF ServiceHeader.GET(DocDim."Document Type",DocDim."Document No.") AND (ServiceHeader."Contract No." <> '') THEN
    ERROR(Text007);
    DATABASE::"Service Line":
    IF ServiceLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN
    IF (ServiceLine."Contract No." <> '') THEN
    ERROR(Text007);
    END;
    END;
    ...

  2. De code in de tabel (5902) als volgt wijzigen:
    Bestaande code 1

    ...               IF (Quantity <> 0) AND ItemExists(xRec."No.") AND
    (("Spare Part Action" = "Spare Part Action"::"Component Replaced") OR
    ("Spare Part Action" = "Spare Part Action"::"Component Installed") OR
    ("Spare Part Action" = "Spare Part Action"::" "))
    THEN
    ReserveServLine.VerifyChange(Rec,xRec);
    END;

    OnDelete=VAR
    ...

    Nieuwe code 1

    ...               IF (Quantity <> 0) AND ItemExists(xRec."No.") AND
    (("Spare Part Action" = "Spare Part Action"::"Component Replaced") OR
    ("Spare Part Action" = "Spare Part Action"::"Component Installed") OR
    ("Spare Part Action" = "Spare Part Action"::" "))
    THEN
    ReserveServLine.VerifyChange(Rec,xRec);
    IF "Document Type" = ServiceLine."Document Type"::Invoice THEN
    IF ("Appl.-to Service Entry" <> 0) AND ("Contract No." <> '') THEN
    ERROR(Text046);
    END;

    OnDelete=VAR
    ...

    Bestaande code 2

    ...    { 5   ;   ;Type                ;Option        ;OnValidate=BEGIN



    GetServHeader;

    TESTFIELD("Qty. Shipped Not Invoiced",0);
    ...

    Vervangende code 2

    ...    { 5   ;   ;Type                ;Option        ;OnValidate=BEGIN
    IF ("Appl.-to Service Entry" <> 0) AND ("Contract No." <> '') THEN
    ERROR(Text046);

    GetServHeader;
    ...

    Bestaande code 3

    ...    { 6   ;   ;No.                 ;Code20        ;TableRelation=IF (Type=CONST(" ")) "Standard Text"
    ELSE IF (Type=CONST(G/L Account)) "G/L Account"
    ELSE IF (Type=CONST(Item)) Item
    ELSE IF (Type=CONST(Resource)) Resource
    ELSE IF (Type=CONST(Cost)) "Service Cost";
    OnValidate=VAR
    ShowLocMessage@1000 : Boolean;
    BEGIN
    TESTFIELD("Qty. Shipped Not Invoiced",0);
    ...

    Vervangende code 3

    ...    { 6   ;   ;No.                 ;Code20        ;TableRelation=IF (Type=CONST(" ")) "Standard Text"
    ELSE IF (Type=CONST(G/L Account)) "G/L Account"
    ELSE IF (Type=CONST(Item)) Item
    ELSE IF (Type=CONST(Resource)) Resource
    ELSE IF (Type=CONST(Cost)) "Service Cost";
    OnValidate=VAR
    ShowLocMessage@1000 : Boolean;
    BEGIN
    IF ("Appl.-to Service Entry" <> 0) AND ("Contract No." <> '') THEN
    ERROR(Text046);

    TESTFIELD("Qty. Shipped Not Invoiced",0);
    ...

    Bestaande code 4

    ...    { 22  ;   ;Unit Price          ;Decimal       ;OnValidate=BEGIN
    GetServHeader;


    IF ("Unit Price" > ServHeader."Max. Labor Unit Price") AND
    ...

    Vervangende code 4

    ...    { 22  ;   ;Unit Price          ;Decimal       ;OnValidate=BEGIN
    GetServHeader;
    IF ("Appl.-to Service Entry" > 0) AND (CurrFieldNo <> 0) THEN
    ERROR(Text046,FIELDCAPTION("Unit Price"));
    IF ("Unit Price" > ServHeader."Max. Labor Unit Price") AND
    ...

    Bestaande code 5

    ...      Text043@1097 : TextConst 'ENU=You cannot change the value of the %1 field manually if %2 for this line is %3';
    Text044@1012 : TextConst 'ENU=Do you want to split the resource line and use it to create resource lines\for the other service items with divided amounts?';
    Text045@1099 : TextConst 'ENU=You cannot delete this service line because one or more service entries exist for this line.';
    ...

    Vervangende code 5

    ...      Text043@1097 : TextConst 'ENU=You cannot change the value of the %1 field manually if %2 for this line is %3';
    Text044@1012 : TextConst 'ENU=Do you want to split the resource line and use it to create resource lines\for the other service items with divided amounts?';
    Text045@1099 : TextConst 'ENU=You cannot delete this service line because one or more service entries exist for this line.';
    Text046@1100 : TextConst 'ENU=You cannot modify the document because it is based on a service contract.';
    ...

Vereisten

Hebt u een van de volgende producten geïnstalleerd om deze hotfix:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 servicepack 1

Informatie over verwijderen

U kunt deze hotfix niet verwijderen.

Status

Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Opmerking Dit is een 'Snel publiceren' artikel dat rechtstreeks door het ondersteuningsteam van Microsoft is gemaakt. De informatie wordt geleverd zoals het is in reactie op de opkomende problemen. Omdat het artikel snel beschikbaar moest zijn, kunnen de materialen typografische fouten bevatten en op elk gewenst moment zonder voorafgaande kennisgeving worden gewijzigd. Zie de Gebruiksvoorwaarden voor andere overwegingen.

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×