Šis raksts attiecas uz Microsoft Dynamics NAV visiem reģioniem.
Pazīmes
Pieņemsim, ka programmas Microsoft Dynamics NAV 2009 dialoglodziņā Atrašanās vietas karte atzīmējat izvēles rūtiņas Pieprasīt paņemšanu un Nodalījuma obligātumu. Nosūtot pārdošanas pasūtījumu komplekta krājumam, kuram atrašanās vietā ir atzīmēta izvēles rūtiņa Automātiskās būvēšanas komplekta MK , noliktavas ierakstā paliek nepareizs daudzums. Tomēr krājumu virsgrāmatas ieraksts parāda pareizu pārdošanas ieraksta daudzumu. Tādēļ pastāv nelīdzsvarotība starp noliktavas ierakstu un krājumu virsgrāmatas ierakstu.
Šī problēma rodas šādos produktos:
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 1. servisa pakotne
Risinājums
Informācija par labojumfailu
Atbalstīts labojumfails tagad ir pieejams no Microsoft. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Lietojiet to tikai sistēmām, kurās rodas šī konkrētā problēma. Šim labojumfailam var tikt veiktas papildu pārbaudes. Tāpēc, ja šī problēma jūs nopietni neietekmē, ieteicams gaidīt nākamo Microsoft Dynamics NAV 2009 servisa pakotni vai nākamo Microsoft Dynamics NAV versiju, kurā ir šis labojumfails.
Piezīme Īpašos gadījumos maksa, kas parasti tiek piemērota par atbalsta zvaniem, var tikt atcelta, ja Microsoft Dynamics un saistīto produktu tehniskā atbalsta speciālists nosaka, ka problēma tiks novērsta, instalējot noteiktu atjauninājumu. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.
Informācija par instalāciju
Microsoft sniedz programmēšanas piemērus tikai ilustrācijai, bez tiešas vai netiešas garantijas. Tas ietver, bet neaprobežojas ar netiešām garantijām par piemērotību pārdošanai vai piemērotībai noteiktam mērķim. Šajā rakstā tiek pieņemts, ka pārzināt demonstrējamo programmēšanas valodu un rīkus, kas tiek izmantoti procedūru izveidei un atkļūdošanai. Microsoft atbalsta inženieri var palīdzēt izskaidrot konkrētās procedūras funkcionalitāti, bet viņi šos piemērus nemodificēs, lai nodrošinātu papildu funkcionalitāti vai veidotu procedūras, kas atbilst jūsu specifiskajām prasībām.
Piezīme Pirms šī labojumfaila instalēšanas pārliecinieties, vai visi Microsoft Navision klienta lietotāji ir atteikušies no sistēmas. Tas ietver Microsoft Navision lietojumprogrammu pakalpojumu (NAS) klienta lietotājus. Jūs esat vienīgais klienta lietotājs, kurš ir pieteicies, ieviešot šo labojumfailu.
Lai ieviestu šo labojumfailu, ir nepieciešama izstrādātāja licence.
Iesakām lietotāja kontam logā Windows pieteikšanās vai datu bāzes pieteikšanās logā piešķirt lomas ID "SUPER". Ja lietotāja kontam nevar piešķirt "SUPER" lomas ID, jums ir jāpārbauda, vai lietotāja kontam ir šādas atļaujas:
- Modificēt objektu, kuru mainīsit.
- Izpildes atļauja sistēmas objekta ID 5210 un sistēmas objekta ID 9015.
Piezīme. Jums nav tiesību uz datu krātuvēm, ja vien jums nav jāveic datu labošana.
Koda izmaiņas
Piezīme Pirms labojumu lietošanas ražošanas datoros vienmēr pārbaudiet koda labojumus kontrolētā vidē.
Lai atrisinātu šo problēmu, veiciet tālāk norādītās darbības.
Izveidojiet jaunu globālo mainīgo Vienuma Jnl.-Post Line kodvienībā (22) un pēc tam mainīgo norādiet šādi:
- Nosaukums: TempWhseJnlLine
- DataType: Record
- Apakštips: Noliktavas žurnāla rinda
- Pagaidu: Jā
Mainiet kodu funkcijā PostOutput vienumā Jnl.-Post Line codeunit (22) šādi:
Esošais kods... "Invoiced Quantity" := 0; END; PostItem; IF NOT Kitting THEN UpdateProdOrderLine(ProdOrderLine,ReTrack); // Delete the following lines. IF Location."Bin Mandatory" AND (NOT CalledFromInvtPutawayPick) THEN WhseJnlPostLine.RUN(WhseJnlLine); // End of the lines. END; END; END; ...Aizstāšanas kods
... "Invoiced Quantity" := 0; END; PostItem; IF NOT Kitting THEN UpdateProdOrderLine(ProdOrderLine,ReTrack); // Add the following lines. IF Location."Bin Mandatory" AND (NOT CalledFromInvtPutawayPick) THEN BEGIN TempWhseJnlLine := WhseJnlLine; WhseJnlPostLine.RUN(WhseJnlLine); END; // End of the lines. END; END; END; ...Izveidojiet procedūru GetOutputWhseJnlLine vienumā Jnl.-Post Line codeunit (22) šādi:
Izveidojiet parametra mainīgo un pēc tam norādiet mainīgo šādi:
- Nosaukums: OutputWhseJnlLine
- DataType: Record
- Apakštips: Noliktavas žurnāla rinda
- Pagaidu: Jā
Pievienojiet kodu šādi:
PROCEDURE GetOutputWhseJnlLine(VAR OutputWhseJnlLine); OutputWhseJnlLine := TempWhseJnlLine; OutputWhseJnlLine.INSERT;
Izveidojiet jaunu lokālo variablu funkcijā Code MK Jnl.-Post Line codeunit (32) un pēc tam norādiet mainīgo šādi:
- Nosaukums: TempOutputWhseJnlLine
- DataType: Record
- Apakštips: Noliktavas žurnāla rinda
- Pagaidu: Jā
Mainiet kodu funkcijā Kods MK Jnl.-pasta rindas koda vienībā (32) šādi:
Esošs kods 1... TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2); ReserveBOMJnlLine.TransferBOMJnlToItemJnlLine(BOMJnlLine,ItemJnlLine,"Quantity (Base)"); ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim2); IF "Entry Type" = "Entry Type"::Assembly THEN BEGIN ProdOrderLine.DELETE; ProdOrderLine.Status := ProdOrderLine.Status::Finished; ProdOrderLine.INSERT; ...Nomaiņas kods 1
... TransferDimToItemJnlLine(ItemJnlLine,TempJnlLineDim2); ReserveBOMJnlLine.TransferBOMJnlToItemJnlLine(BOMJnlLine,ItemJnlLine,"Quantity (Base)"); ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim2); // Add the following line. ItemJnlPostLine.GetOutputWhseJnlLine(TempOutputWhseJnlLine); IF "Entry Type" = "Entry Type"::Assembly THEN BEGIN ProdOrderLine.DELETE; ProdOrderLine.Status := ProdOrderLine.Status::Finished; ProdOrderLine.INSERT; ...Esošs kods 2
... OutputItemLedgEntryNo := ItemJnlLine."Item Shpt. Entry No."; END; PostWhseJnlLine(ItemJnlLine,TempHandlingSpecification,OriginalQuantity,OriginalQuantityBase); PostTempJnlLines; IF BOMReg."No." = 0 THEN BEGIN BOMReg.LOCKTABLE; IF BOMReg.FIND('+') THEN BOMReg."No." := BOMReg."No." + 1 ...Nomaiņas kods 2
... OutputItemLedgEntryNo := ItemJnlLine."Item Shpt. Entry No."; END; PostWhseJnlLine(ItemJnlLine,TempHandlingSpecification,OriginalQuantity,OriginalQuantityBase); PostTempJnlLines; // Add the following line. PostSalesWhseJnlLine(TempOutputWhseJnlLine); IF BOMReg."No." = 0 THEN BEGIN BOMReg.LOCKTABLE; IF BOMReg.FIND('+') THEN BOMReg."No." := BOMReg."No." + 1 ...Izveidojiet funkciju PostSalesWhseJnlLine MK Jnl.-Post Row kodvienībā (32) šādi:
Izveidojiet jaunu parametru un pēc tam norādiet parametru šādi:
- Nosaukums: TempOutputWhseJnlLine2
- DataType: Record
- Apakštips: Noliktavas žurnāla rinda
- Pagaidu: Jā
Pievienojiet kodu šādi:
LOCAL PROCEDURE PostSalesWhseJnlLine(VAR TempOutputWhseJnlLine); BEGIN WITH TempOutputWhseJnlLine2 DO BEGIN IF FINDFIRST THEN BEGIN Quantity := -Quantity; "From Bin Code" := "To Bin Code"; "From Zone Code" := "To Zone Code"; "To Bin Code" := ''; "To Zone Code" := ''; WhseJnlPostLine.RUN(TempOutputWhseJnlLine2); END; END; END;
Priekšnosacījumi
Lai lietotu šo labojumfailu, ir jābūt instalētam vienam no šiem produktiem:
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 1. servisa pakotne
Noņemšanas informācija
Šo labojumfailu nevar noņemt.
Statuss
Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".
Piezīme Šis ir "ĀTRĀS PUBLICĒŠANAS" raksts, kas izveidots tieši Microsoft atbalsta organizācijā. Šeit ietvertā informācija tiek sniegta tāda, kāda tā ir, reaģējot uz jauniem jautājumiem. Ātrās pieejamības rezultātā materiālos var būt drukas kļūdas, un tos var pārskatīt jebkurā laikā bez iepriekšēja brīdinājuma. Citus apsvērumus skatiet lietošanas nosacījumos .