"Maks. Raven strukture kusovnika na 50 je previsoka. Trenutna številka elementa [BOM_Number]. Končna številka glave BOM [BOM_Number]. Level [BOM_level]« po zagonu funkcije »Izračun kode nizke ravni« v programu Microsoft Dynamics NAV 2009

Velja za
Dynamics NAV 2009

Ta članek velja za Microsoft Dynamics NAV za vse države in jezikovne območne nastavitve.

Znaki

Oglejte si naslednji scenarij v programu Microsoft Dynamics NAV 2009:

  • Potrditveno polje »Dinamična koda nizke ravni « ni potrjeno v pogovornem oknu »Priprava proizvodnje «.
  • Ustvarite različico kusovnice za določeno produkcijsko kusovnico.
  • Polje »Stanje« nastavite na »Zaprto« za produkcijsko različico kusovne enote.
  • Zaženete funkcijo Calculate Low-Level Code .

V tem scenariju lahko prejmete to sporočilo o napaki:

Opomba

maks. Raven strukture kusovnika na 50 je previsoka. Trenutna številka elementa BOM_Number. Končna številka glave BOM BOM_Number. Raven BOM_level.

Vendar pa mora sistem izključiti proizvodno BOM iz izračuna na nizki ravni, če stanje različice nastavite na »Zaprto«.
Do te težave pride pri teh izdelkih:

  • Microsoft Dynamics NAV 2009 R2
  • Servisni paket SP1 za Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 2009

      

Rešitev

Informacije o sprotnih popravkih

Microsoft zdaj ponuja podprt sprotni popravek. Vendar pa je njegov namen le odpraviti težavo, ki je opisana v tem članku. Uporabite ga samo v sistemih, v katerih se je spopadalo s to določeno težavo. Ta sprotni popravek bo morda dodatno pretestiran. Če ta težava ne vpliva resno, priporočamo, da počakate na naslednji servisni paket za Microsoft Dynamics NAV 2009 ali naslednjo različico Microsoft Dynamics NAV, ki vsebuje ta hitri popravek.

Opomba V posebnih primerih so klici za podporo, v katere so običajno vključeni stroški, lahko brezplačni, če strokovnjak za tehnično podporo za Microsoft Dynamics in sorodne izdelke ugotovi, da neka posodobitev lahko odpravi vašo težavo. Običajni stroški podpore veljajo za dodatna vprašanja o podpori in težavah, ki niso povezana z določeno posodobitvijo.

          

Informacije o namestitvi

Microsoft ponuja primere programiranja samo za ponazoritev, brez izrecnega ali naznačenega jamstva. To vključuje, vendar ni omejeno na, naznačena jamstva glede primernosti za prodajo ali določen namen. V tem članku predvidevamo, da poznate programski jezik, ki je predstavljen, in orodja, ki se uporabljajo za ustvarjanje postopkov in njihovo odpravljanje napak. Microsoftovi inženirji za podporo vam lahko pomagajo razložiti delovanje določenega postopka. Vendar pa teh primerov ne bodo spremenili z namenom zagotavljanja dodatne funkcionalnosti ali oblikovali postopkov, ki ustrezajo vašim posebnim zahtevam.

Opomba Preden namestite ta hitri popravek, preverite, ali so vsi uporabniki odjemalca Microsoft Navision odjavljeni iz sistema. To vključuje uporabnike odjemalskih storitev Microsoft Navision Application Services (NAS). Ko uvedete ta sprotni popravek, morate biti edini odjemalski uporabnik, ki je prijavljen.

Če želite uvesti ta sprotni popravek, morate imeti licenco za razvijalce.

Priporočamo, da uporabniškemu računu v oknu »Prijave v Windows« ali »Prijave v zbirko podatkov« dodelite ID vloge »SUPER«. Če uporabniškemu računu ni mogoče dodeliti ID-ja vloge »SUPER«, morate preveriti, ali ima uporabniški račun ta dovoljenja:

  • Dovoljenje »Spremeni« za predmet, ki ga boste spreminjali.
  • Dovoljenje za izvajanje za predmet »Sistemski predmet z ID-jem 5210« in za predmet »Sistemski predmet z ID-jem 9015«.

Opomba: Če morate popraviti podatke, vam ni treba imeti pravic do podatkovnih shramb.

Spremembe kode

Opomba: Popravke kode vedno preskusite v nadzorovanem okolju, preden jih uporabite v produkcijskih računalnikih.
Če želite odpraviti to težavo, spremenite kodo v enoti kode za izračun Low-Level kode (99000793). To naredite tako:

  1. Spremenite kodo v funkciji CalcLevels. To naredite tako:

    1. Dodajte novo lokalno spremenljivko, nato pa določite spremenljivko, kot sledi:

      • Ime: ProductionBOMVersion
      • DataType: Zapis 99000779
    2. Dodajte novo lokalno spremenljivko, nato pa določite spremenljivko, kot sledi:

      • Ime: CalculateDeeperLevel
      • DataType: logična vrednost
    3. Kodo spremenite tako:
      Obstoječa koda

      ...
      50,Item."No.",BomHeaderNo,Level);
      
      
      // Delete the following line.
      IF ProdBOMHeader.Status = ProdBOMHeader.Status::Certified THEN BEGIN
      
      ProdBOMHeader."Low-Level Code" :=
      ...
      

      Nadomestna koda

      ...
      50,Item."No.",BomHeaderNo,Level);
      
      // Add the following lines.
      IF ProdBomComponent."Version Code" <> '' THEN BEGIN 
      ProductionBOMVersion.GET(ProdBomComponent."Production BOM No.",ProdBomComponent."Version Code"); 
      CalculateDeeperLevel := ProductionBOMVersion.Status = ProductionBOMVersion.Status::Certified; 
      END ELSE 
      CalculateDeeperLevel := ProdBOMHeader.Status = ProdBOMHeader.Status::Certified;
      
      IF CalculateDeeperLevel THEN BEGIN 
      // End of the added lines.
      
      ProdBOMHeader."Low-Level Code" :=
      ...
      
  2. Spremenite kodo v funkciji RecalcLowerLevels. To naredite tako:

    1. Dodajte novo lokalno spremenljivko, nato pa določite spremenljivko, kot sledi:

      • Ime: ProductionBOMVersion
      • DataType: Zapis 99000779
    2. Dodajte novo lokalno spremenljivko, nato pa določite spremenljivko, kot sledi:

      • Ime: CalculateDeeperLevel
      • DataType: logična vrednost
    3. Kodo spremenite tako:
      Obstoječa koda

      ...
      REPEAT
      // add 2 spaces for alignment to next lines
      CASE ProdBOMLine.Type OF
      ProdBOMLine.Type::Item:
      BEGIN
      EntityPresent := CompItem.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnItem(CompItem,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END;
      ProdBOMLine.Type::"Production BOM":
      BEGIN
      EntityPresent := CompBOM.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnBOM(CompBOM,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END
      END;
      // end of adding 2 spaces
      UNTIL ProdBOMLine.NEXT = 0;
      ...
      

      Nadomestna koda

      ...
      REPEAT
      
      // Add the following lines.
      IF ProdBOMLine."Version Code" <> '' THEN BEGIN 
      ProductionBOMVersion.GET(ProdBOMLine."Production BOM No.",ProdBOMLine."Version Code"); 
      CalculateDeeperLevel := ProductionBOMVersion.Status <> ProductionBOMVersion.Status::Closed; 
      END ELSE BEGIN 
      CompBOM.GET(ProdBOMLine."Production BOM No."); 
      CalculateDeeperLevel := CompBOM.Status <> CompBOM.Status::Closed; 
      END; 
      
      // closed BOMs are skipped
      IF CalculateDeeperLevel THEN 
      // End of the added lines.
      
      CASE ProdBOMLine.Type OF
      ProdBOMLine.Type::Item:
      BEGIN
      EntityPresent := CompItem.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnItem(CompItem,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END;
      ProdBOMLine.Type::"Production BOM":
      BEGIN
      EntityPresent := CompBOM.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnBOM(CompBOM,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END
      END;
      UNTIL ProdBOMLine.NEXT = 0;
      ...
      

Pogoji

Če želite uporabiti ta sprotni popravek, morate imeti nameščenega enega od teh izdelkov:

  • Microsoft Dynamics NAV 2009 R2
  • Servisni paket SP1 za Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 2009

Informacije o odstranitvi

Tega sprotnega popravka ne morete odstraniti.

Stanje

Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.

Opomba: To je članek »FAST PUBLISH«, ki je bil ustvarjen neposredno v organizaciji za Microsoftovo podporo. Informacije v tem dokumentu so na voljo takšne, kot odgovor na nastajajoče težave. Zaradi hitrosti njihove razpoložljivosti lahko gradivo vsebuje tipkarske napake in jih je mogoče kadarkoli pregledati brez obvestila. Za druga priporočila si oglejte Pogoje uporabe .