Saate tõrketeate, kui proovite konteerida üleviimistellimuse rida, millel on määratletud Kaubajälgimine saadetise Microsoft Dynamics NAV 2009 SP1 või Microsoft Dynamics NAV 2009 R2

Rakenduskoht
Dynamics NAV 2009

Selles artiklis käsitletakse microsoft Dynamics NAV-i kõigi keelelõpetuste korral.

Sümptomid

Kui proovite konteerida üleviimistellimuse rida, millel on määratletud kaubajälgimine lähetuse jaoks rakenduses Microsoft Dynamics NAV, kuvatakse järgmine tõrketeade:

Märkus.

Kauba nr. Kauba nr., seerianumber: Seerianumber, Partii nr. Partii nr on praegu kogus 1. See peab olema kogus 2.

See probleem ilmneb järgmistes toodetes:

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

Lahendus

Kiirparanduse teave

Microsoftilt on nüüd saadaval toetatud kiirparandus. Siiski on see mõeldud ainult selles artiklis kirjeldatud probleemi lahendamiseks. Rakendage see ainult süsteemidele, kus esineb see konkreetne probleem. See kiirparandus võib saada täiendavaid katseid. Seega, kui see probleem ei mõjuta teid tõsiselt, soovitame oodata järgmist Microsoft Dynamics NAV 2009 hoolduspaketti või järgmist Microsoft Dynamics NAV versiooni, mis sisaldab seda kiirparandust.

Märkus. Erijuhtudel võidakse tavaliselt tugiteenuse kõnede eest tehtud tasud tühistada, kui Microsoft Dynamicsi ja seotud toodete tehniline tugitöötaja leiab, et konkreetne värskendus lahendab teie probleemi. Tavapärased toetuskulud kehtivad täiendavatele tugiteenustega seotud küsimustele ja probleemidele, mis ei vasta kõnealuse värskenduse tingimustele.

            
          

Installiteave

Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, ilma et garantii oleks väljendatud või kaudselt. See hõlmab kaubastatavuse või kindlaks otstarbeks sobivuse kaudseid garantiisid, kuid mitte ainult. Selles artiklis eeldatakse, et olete tuttav kuvatava programmeerimiskeelega ja tööriistadega, mida kasutatakse protseduuride loomiseks ja silumiseks. Microsofti tugiteenuste insenerid saavad aidata selgitada konkreetse protseduuri funktsionaalsust, kuid nad ei muuda neid näiteid selleks, et pakkuda teie vajadustele vastavaid lisafunktsioone või koostada protseduure.

Märkus. Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Navisioni klientrakenduse kasutajad oleksid süsteemist välja logitud. See hõlmab ka Microsoft Navision Application Servicesi (NAS) klientkasutajaid. Peaksite olema ainus klientkasutaja, kes on sisse logitud, kui rakendate selle kiirparanduse.

Selle kiirparanduse rakendamiseks peab teil olema arendaja litsents.

Soovitame, et aknas Windowsi sisselogimised või aknas Andmebaasi sisselogimised olevale kasutajakontole määrataks "SUPER" rolli ID. Kui kasutajakontole ei saa superrolli ID-d määrata, peate kontrollima, kas kasutajakontol on järgmised õigused.

  • Muudetava objekti muutmisõigus.
  • Süsteemiobjekti ID 5210 ja süsteemiobjekti ID 9015 täitmisõigus.

                
Märkus. Teil pole andmesalvede jaoks õigusi, kui te ei pea tegema andmete parandamist.

Koodi muudatused

Märkus. Enne paranduste rakendamist tööarvutitele testige koodiparandusi alati kontrollitud keskkonnas.
Selle probleemi lahendamiseks muutke koodiuniti (6500) funktsiooni SynchronizeItemTrkgTransfer koodi järgmiselt.
Looge järgmine kohalik muutuja:

  • Nimi: TempReservEntry
  • DataType: TEMPORARY Record (337)

Olemasolev kood

...
  FromReservEntry.COPY(ToReservEntry);
  FromReservEntry.SETRANGE("Source Subtype",0);

// Delete the following lines.

IF ToReservEntry.FINDSET(TRUE) THEN
  REPEAT
    FromReservEntry.SETRANGE("Lot No.",ToReservEntry."Lot No.");
    FromReservEntry.SETRANGE("Serial No.",ToReservEntry."Serial No.");

    IF FromReservEntry.FIND('-') THEN

      REPEAT
        QtyToHandleBase += FromReservEntry."Qty. to Handle (Base)";
        QtyToInvoiceBase += FromReservEntry."Qty. to Invoice (Base)";
      UNTIL FromReservEntry.NEXT = 0;

    IF ABS(QtyToHandleBase) <> ABS(ToReservEntry."Qty. to Handle (Base)") THEN BEGIN

      ToReservEntry."Qty. to Handle (Base)" := -QtyToHandleBase;
      ToReservEntry."Qty. to Invoice (Base)" := -QtyToInvoiceBase;
      ToReservEntry.MODIFY;
    END;
  UNTIL ToReservEntry.NEXT = 0; 
// End of the deleted lines.
...

Asenduskood

...
 FromReservEntry.COPY(ToReservEntry);
 FromReservEntry.SETRANGE("Source Subtype",0);

// Add the following lines.
IF ToReservEntry.FINDSET THEN
  REPEAT
    TempReservEntry := ToReservEntry;
    TempReservEntry.INSERT;
  UNTIL ToReservEntry.NEXT = 0;

TempReservEntry.SETCURRENTKEY(
  "Item No.","Variant Code","Location Code","Item Tracking","Reservation Status","Lot No.","Serial No.");
IF TempReservEntry.FIND('-') THEN
  REPEAT
    FromReservEntry.SETRANGE("Lot No.",TempReservEntry."Lot No.");
    FromReservEntry.SETRANGE("Serial No.",TempReservEntry."Serial No.");

    QtyToHandleBase := 0;
    QtyToInvoiceBase := 0;
    IF FromReservEntry.FIND('-') THEN

      REPEAT
        QtyToHandleBase += FromReservEntry."Qty. to Handle (Base)";
        QtyToInvoiceBase += FromReservEntry."Qty. to Invoice (Base)";
      UNTIL FromReservEntry.NEXT = 0;

    TempReservEntry.SETRANGE("Lot No.",TempReservEntry."Lot No.");
    TempReservEntry.SETRANGE("Serial No.",TempReservEntry."Serial No.");
    REPEAT
      // remove already synchronized qty (can be more)
      QtyToHandleBase += TempReservEntry."Qty. to Handle (Base)";
      QtyToInvoiceBase += TempReservEntry."Qty. to Invoice (Base)";
      TempReservEntry.DELETE;
    UNTIL TempReservEntry.NEXT = 0;
    TempReservEntry.SETRANGE("Lot No.");
    TempReservEntry.SETRANGE("Serial No.");

    IF QtyToHandleBase <> 0 THEN BEGIN
      // remaining qty will be added to the last record
      ToReservEntry := TempReservEntry;
      ToReservEntry."Qty. to Handle (Base)" := -QtyToHandleBase;
      ToReservEntry."Qty. to Invoice (Base)" := -QtyToInvoiceBase;
      ToReservEntry.MODIFY;
    END;
  UNTIL TempReservEntry.NEXT = 0;
// End of the added lines.
...

          

Eeltingimused

Selle kiirparanduse rakendamiseks peab teil olema installitud üks järgmistest toodetest:

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

Lisaks peate selle kiirparanduse rakendamiseks olema kiirparanduse 2495989 installitud.
  Kiirparanduste 2495989 kohta lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:

2495989 tõrketeade "Saadaolev põhikogus peab olema 0", kui proovite konteerida üleviimistellimuse laotarnet rakenduses Microsoft Dynamics NAV 2009 SP1

Eemaldamisteave

Seda kiirparandust ei saa eemaldada.

Olek

Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.

Viited

VSTF DynamicsNAV SE: 240737

Märkus. See on otse Microsofti tugiteenuste organisatsioonist loodud FAST PUBLISH-artikkel. Käesolevas artiklis sisalduv teave on esitatud kujul, mis on seotud tekkivate küsimustega. Materjali kättesaadavaks tegemise kiiruse tõttu võivad materjalid sisaldada kirjavigu ja neid võib igal ajal ette teatamata läbi vaadata. Muid kaalutlusi leiate teemast Kasutustingimused .