Wrong Posting in Transfer Orders

DedipyamanDedipyaman Member Posts: 16
edited 2005-12-30 in Navision Attain
While posting Transfer Order in a multi User Enviornment , the users gets a message that "The Table is being locked by the User XXXX".After some time this message disappear .
Now on Re-Posting the same Transfer Order we receive an error message that "Lot No is required for Item AAAA ",on looking at the Item tracking Details we find that the Quantity to handle field is '0'. On further probing we find that shipment has been done for thr Order,But the Quantity Shipped field on the Transfer Order Line Table is Still '0'.

Comments

  • kinekine Member Posts: 12,562
    It seems as some problematic customization... (with commit in wrong place)
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • DedipyamanDedipyaman Member Posts: 16
    That I understand , but no customisation has been done from our which involves use of "COMMIT".
  • mrandwijkmrandwijk Member Posts: 8
    Did you ever find out how to solve this problem? Because I'm having exactly the same problem and it definitely is not a commit problem in the customisation code.......
  • kinekine Member Posts: 12,562
    I found the "wrong" code. It is deep in the run of posting procedure and is used only when lot or serial no. are used. It is in form "Item Tracking Lines" and is called from CU 99000836 - Transfer Line-Reserve:
    MoveItemTracking(VAR TransferLine : Record "Transfer Line";OldTrackingSpecification : Record "Tracking Specification";TransferQty : Dec
    InitTrackingSpecification(TransferLine,TempTrackingSpecification,AvailabilityDate,Direction::Inbound);
    TempTrackingSpecification."Serial No." := OldTrackingSpecification."Serial No.";
    TempTrackingSpecification."New Serial No." := OldTrackingSpecification."Serial No.";
    TempTrackingSpecification."Lot No." := OldTrackingSpecification."Lot No.";
    TempTrackingSpecification."New Lot No." := OldTrackingSpecification."Lot No.";
    TempTrackingSpecification."Warranty Date" := OldTrackingSpecification."Warranty Date";
    TempTrackingSpecification."Expiration Date" := OldTrackingSpecification."Expiration Date";
    TempTrackingSpecification."Quantity Handled (Base)" := 0;
    TempTrackingSpecification.VALIDATE("Quantity (Base)",TransferQty);
    TempTrackingSpecification.Positive := TempTrackingSpecification."Quantity (Base)" > 0;
    TempTrackingSpecification."Buffer Status" := TempTrackingSpecification."Buffer Status"::" ";
    CLEAR(ItemTrackingForm);
    //***********
    ItemTrackingForm.SetBlockCommit(TRUE); //ADDED 
    //***********
    ItemTrackingForm.SetOnTransfer;
    ItemTrackingForm.SetSource(TempTrackingSpecification,AvailabilityDate);
    ItemTrackingForm.TempItemTrackingDef(TempTrackingSpecification);
    

    The added line prevent calling commit in the form procedures... This is code from 3.70A
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • ara3nara3n Member Posts: 9,256
    Yes Kine
    I had found the same issue a while back. It's really stupid to call the form during posting routine for serialized and lot tracking items. The function should be in a codeunit. and commit should be done on form if it is called.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • mrandwijkmrandwijk Member Posts: 8
    Thanks a lot. I've spent so much time already looking for the solution!
    And happy new year by the way!
Sign In or Register to comment.