"Maks. Razina strukture BOM-a na 50 je previsoka. Broj trenutne stavke [BOM_Number]. Broj zaglavlja završne BOM-a [BOM_Number]. Level [BOM_level]" prilikom pokretanja funkcije Izračun niskog koda u sustavu Microsoft Dynamics NAV 2009

Primjenjuje se na
Dynamics NAV 2009

Ovaj se članak odnosi na NAV sustava Microsoft Dynamics za sve države i regionalne sheme na svim jezicima.

Simptomi

Razmotrite sljedeći scenarij u sustavu Microsoft Dynamics NAV 2009:

  • Potvrdni okvir Dinamički kod niske razine nije potvrđen u dijaloškom okviru Postavljanje proizvodnje .
  • Stvarate verziju proizvodnog troškovnika (BOM-a) za određeni proizvodni BOM.
  • Okvir Status postavite na Zatvoreno za produkcijsku verziju BOM-a.
  • Pokrenut ćete funkciju Calculate Low-Level Code .

U tom se scenariju pojavljuje sljedeća poruka o pogrešci:

Napomena

Maks. Razina strukture BOM-a na 50 je previsoka. Broj trenutne stavke BOM_Number. Broj zaglavlja završne BOM-a BOM_Number. Razina BOM_level.

No sustav bi trebao isključiti produkcijski BOM iz izračuna niske razine ako status njegove verzije postavite na Zatvoreno.
Taj se problem pojavljuje u sljedećim proizvodima:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009

      

Rješenje

Informacije o hitnom popravku

Microsoft sada nudi podržani hitni popravak. No njegova je namjena samo ispravljanje problema opisanog u ovom članku. Primijenite ga samo na sustave koji imaju taj specifični problem. Ovaj hitni popravak može proći dodatna testiranja. Stoga, ako se ovaj problem ne odnosi ozbiljno, preporučujemo da pričekate sljedeći servisni paket za Microsoft Dynamics NAV 2009 ili sljedeću verziju sustava Microsoft Dynamics NAV koja sadrži ovaj hitni popravak.

Napomena: U posebnim slučajevima, ako stručnjak tehničke podrške za Microsoft Dynamics i povezane proizvode utvrdi da određeno ažuriranje može riješiti problem, poziv službi podrške može biti besplatan. Uobičajene cijene poziva službi za podršku primjenjuju se na dodatna pitanja i probleme koje nemaju veze s pripadnom nadopunom.

          

Informacije o instalaciji

Microsoft daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam objasniti funkcionalnost određenog postupka. Međutim, oni neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati postupke koji zadovoljavaju vaše specifične zahtjeve.

Napomena Prije nego što instalirate ovaj hitni popravak, provjerite jesu li svi korisnici Microsoft Navision klijenta odjavljeni sa sustava. To obuhvaća korisnike klijentskih usluga Microsoft Navision Application Services (NAS). Trebali biste biti jedini klijentski korisnik prijavljen na vrijeme implementacije ovog hitnog popravka.

Da biste implementirali ovaj hitni popravak, morate imati licencu za razvojne inženjere.

Preporučujemo da se korisničkom računu u prozoru Prijave u sustav Windows ili u prozoru Prijave u bazu podataka dodijeli ID uloge "SUPER". Ako korisničkom računu nije moguće dodijeliti ID uloge "SUPER", morate provjeriti ima li korisnički račun sljedeće dozvole:

  • Dozvola za izmjenu objekta koji ćete mijenjati.
  • Dozvola za izvršavanje za objekt System Object ID 5210 i za objekt System Object ID 9015

Napomena: nemate pravo na spremišta podataka, osim ako morate popraviti podatke.

Promjene koda

Napomena: uvijek testirajte popravke koda u kontroliranom okruženju prije primjene popravaka na proizvodnim računalima.
Da biste riješili taj problem, promijenite kod u funkciji Izračun Low-Level kodnoj jedinici koda (99000793). Slijedite korake u nastavku.

  1. Promijenite kod u funkciji CalcLevels. Slijedite korake u nastavku.

    1. Dodajte novu lokalnu varijablu, a zatim je navedite na sljedeći način:

      • Naziv: ProductionBOMVersion
      • DataType: Record 99000779
    2. Dodajte novu lokalnu varijablu, a zatim je navedite na sljedeći način:

      • Naziv: CalculateDeeperLevel
      • DataType: Booleova vrijednost
    3. Kod promijenite na sljedeći način:
      Postojeći kod

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

      Zamjenski kôd

      ...
      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. Promijenite kod u funkciji RecalcLowerLevels. Slijedite korake u nastavku.

    1. Dodajte novu lokalnu varijablu, a zatim je navedite na sljedeći način:

      • Naziv: ProductionBOMVersion
      • DataType: Record 99000779
    2. Dodajte novu lokalnu varijablu, a zatim je navedite na sljedeći način:

      • Naziv: CalculateDeeperLevel
      • DataType: Booleova vrijednost
    3. Kod promijenite na sljedeći način:
      Postojeći kod

      ...
      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;
      ...
      

      Zamjenski kôd

      ...
      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;
      ...
      

Preduvjeti

Da biste primijenili ovaj hitni popravak, morate imati instaliran neki od sljedećih proizvoda:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009

Podaci o uklanjanju

Ovaj hitni popravak ne možete ukloniti.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Napomena: Ovo je članak "FAST PUBLISH" stvoren izravno u Microsoftovoj ustanovi za podršku. Ovdje sadržane informacije pružaju se takve kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske pogreške i mogu se revidirati u bilo kojem trenutku bez prethodne najave. Dodatne napomene potražite u Uvjetima korištenja .