Klaidos pranešimas "Negalite pakeisti vietos kodo", kai keičiate pardavimo užsakymo reikšmę "Pirkėjo-gavėjo nr" programoje "„Microsoft“ Dynamics NAV"

Taikoma
Microsoft Dynamics NAV 5.0 Service Pack 1 Dynamics NAV 2009 Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 2009 R2

Šis straipsnis taikomas "„Microsoft“ Dynamics NAV" visose šalyse ir visų kalbų lokalėse.

Požymiai

Pakeitę lauką Pirkėjas Pardavimo užsakyme Nėra reikšmės, gaunate tokį klaidos pranešimą:

Pastaba

Vietos kodo keisti negalima, nes pardavimo užsakyme yra rezervavimas, prekių sekimas arba užsakymo sekimas.

Ši problema kyla, jei atitinkamos toliau išvardytos sąlygos.

  • Įjungtas užsakymo sekimo strategijos parametras.
  • Esama pardavimo užsakymo eilutė atnaujinama.

Ši problema kyla šiuose produktuose:

  • „„Microsoft“ Dynamics NAV 2009 R2‟
  • "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas
  • "„Microsoft“ Dynamics NAV 5.0" 1 pakeitimų paketas

Sprendimas

Karštųjų pataisų informacija

Dabar palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau juo siekiama tik išspręsti šiame straipsnyje aprašytą problemą. Taikyti ją tik sistemoms, kuriose kilo ši konkreti problema. Ši karštoji pataisa gali būti papildomai patikrinta. Todėl, jei ši problema jūsų rimtai nepaveikė, rekomenduojame palaukti kito "„Microsoft“ Dynamics NAV 2009" pakeitimų paketo arba kitos "„Microsoft“ Dynamics NAV" versijos, kurioje yra ši karštoji pataisa.

Pastaba Ypatingais atvejais mokesčiai, kurie paprastai taikomi už palaikymo skambučius, gali būti atšaukti, jei "„Microsoft“ Dynamics" ir susijusių produktų techninio palaikymo specialistas nustato, kad konkretus naujinimas išspręs jūsų problemą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka atitinkamo konkretaus naujinimo reikalavimų.

            
          

Diegimo informacija

"„Microsoft“" pateikia programavimo pavyzdžių tik iliustracijai, be išreikštų ar numanomų garantijų. Tai apima, bet neapsiriboja, numanomas tinkamumo parduoti arba tinkamumo konkrečiam tikslui garantijas. Straipsnyje laikomasi nuomonės, kad esate susipažinę su demonstruojama programavimo kalba ir įrankiais, naudojamais kuriant ir derinant procedūras. "„Microsoft“" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcionalumą. Tačiau jie nemodifikuos šių pavyzdžių, kad suteiktų papildomų funkcinių galimybių, arba nesukurs procedūrų, atitinkančių jūsų konkrečius reikalavimus.

Pastaba Prieš diegdami šią karštąją pataisą patikrinkite, ar visi „Microsoft“ Dynamics NAV kliento vartotojai yra atsiregistravę nuo sistemos. Tai apima "„Microsoft“ Dynamics NAV Application Server" (NAS) tarnybas. Turite būti vienintelis kliento vartotojas, kuris yra prisijungęs, kai įdiegiate šią karštąją pataisą.

Norėdami įdiegti šią karštąją pataisą, privalote turėti kūrėjo licenciją.

Rekomenduojame vartotojo paskyrai "Windows" prisijungimų lange arba duomenų bazės prisijungimų lange priskirti "SUPER" vaidmens ID. Jei vartotojo paskyrai negalima priskirti "SUPER" vaidmens ID, turite patikrinti, ar vartotojo paskyra turi šias teises:

  • Objekto, kurį keisite, modifikavimo teisė.
  • Sistemos objekto ID 5210 ir sistemos objekto ID 9015 objekto vykdymo teisės.

                
Pastaba: neturite turėti teisių į duomenų saugyklas, nebent turite atlikti duomenų taisymą.

Kodo keitimai

Pastaba Visada išbandykite kodo pataisas kontroliuojamoje aplinkoje prieš taikydami jas gamybos kompiuteriuose.
Norėdami išspręsti šią problemą, pakeiskite kodą lentelėje Pardavimo antraštė (36). Norėdami tai padaryti, atlikite toliau aprašytus veiksmus.

  1. Naikinti šią teksto konstantą:

    Text047@1095 : TextConst 'ENU=You cannot change %1 because reservation, item tracking, or order tracking exists on the sales order.'; 
    
  2. Pakeiskite funkcijos RecreateSalesLines kodą taip:
    Esamas kodas

    SalesLine.TESTFIELD("Return Qty. Received",0);
                  SalesLine.TESTFIELD("Shipment No.",'');
                  SalesLine.TESTFIELD("Return Receipt No.",'');
                  SalesLine.TESTFIELD("Blanket Order No.",'');
                  SalesLine.TESTFIELD("Prepmt. Amt. Inv.",0);
                  SalesLineTmp := SalesLine;
                  IF SalesLine.Nonstock THEN BEGIN
                    SalesLine.Nonstock := FALSE;
                    SalesLine.MODIFY;
                  END;
                  SalesLineTmp.INSERT;
                  RecreateReservEntry(SalesLine,0,TRUE);
                  RecreateReqLine(SalesLine,0,TRUE);
                UNTIL SalesLine.NEXT = 0;
    
    // Delete the following lines.
                IF "Location Code" <> xRec."Location Code" THEN                 
                  IF NOT TempReservEntry.ISEMPTY THEN                              
                    ERROR(Text047,FIELDCAPTION("Location Code"));               
    // End of the deleted lines.
    
                ItemChargeAssgntSales.SETRANGE("Document Type","Document Type");
                ItemChargeAssgntSales.SETRANGE("Document No.","No.");
                IF ItemChargeAssgntSales.FINDSET THEN BEGIN
    …
    

    Pakeitimo kodas

    SalesLine.TESTFIELD("Return Qty. Received",0);
                  SalesLine.TESTFIELD("Shipment No.",'');
                  SalesLine.TESTFIELD("Return Receipt No.",'');
                  SalesLine.TESTFIELD("Blanket Order No.",'');
                  SalesLine.TESTFIELD("Prepmt. Amt. Inv.",0);
    
    // Add the following lines.
                  IF SalesLine."Location Code" <> "Location Code" THEN                      
                    SalesLine.VALIDATE("Location Code","Location Code");                     
    // End of the added lines.
    
                  SalesLineTmp := SalesLine;
                  IF SalesLine.Nonstock THEN BEGIN
                    SalesLine.Nonstock := FALSE;
                    SalesLine.MODIFY;
                  END;
                 SalesLineTmp.INSERT;
                  RecreateReservEntry(SalesLine,0,TRUE);
                  RecreateReqLine(SalesLine,0,TRUE);
                UNTIL SalesLine.NEXT = 0;
    
                ItemChargeAssgntSales.SETRANGE("Document Type","Document Type");
                ItemChargeAssgntSales.SETRANGE("Document No.","No.");
                IF ItemChargeAssgntSales.FINDSET THEN BEGIN
    …
    

Būtinosios sąlygos

Norėdami taikyti šią karštąją pataisą, turite įdiegti vieną iš šių produktų:

  • „„Microsoft“ Dynamics NAV 2009 R2‟
  • "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas
  • "„Microsoft“ Dynamics NAV 5.0" 1 pakeitimų paketas

Pašalinimo informacija

Šios karštosios pataisos pašalinti negalite.

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Pastaba: tai "SPARČIOJO PUBLIKAVIMO" straipsnis, sukurtas tiesiogiai iš "„Microsoft“" palaikymo organizacijos. Čia pateikta informacija pateikiama tokia, kokia yra, reaguojant į kylančias problemas. Dėl greito jos pateikimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrėta bet kuriuo metu be išankstinio įspėjimo. Dėl kitų aplinkybių žr. Naudojimo sąlygas .