web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Batch number not copying to Intercompany Puchase order/Sales order even though Intercompany policies are setup with Batch number check box selected

(0) ShareShare
ReportReport
Posted on by

Hi All,

I am not sure of the exact functionality of batch number/Serial number update for intercompany orders in AX 2012. But looking at the Intercompany policies setup for Customers/Vendors in AX 2012, there are two check boxes in Purchase order policies tab under Lines field group, Serial Number and Batch number.  I assume and as per the help text for these fields these check boxes are used for synchronizing batch number or serial number between intercompany orders.

But when we have tried this in AX 2012 RTM version, the batch number is not getting copied between the intercompany orders. I have tried multiple scenarios , i.e 

- Create Purchase order in A company and Intercompany sales order is automatically created in B company

- Create Sales order in B company and Intercompany Purchase order is automatically created in A company

- Also tried Direct delivery intercompany sales order

In all the above cases the batch number is not getting copied between the intercompany orders. I have maintained same batch numbers for the item in both the companies.

I found some information about About synchronization of batch and serial numbers in msdn site (URL mentioned below) but even after following the steps mentioned in the site, the batch numbers are not getting copied.

https://msdn.microsoft.com/en-us/library/aa496793%28v=ax.10%29.aspx?f=255&MSPPError=-2147217396

 

Please let me know if i have missed any other setup or is there any standard bug in this. 

 

Regards,

Akshay

*This post is locked for comments

I have the same question (0)
  • Suggested answer
    Community Member Profile Picture
    on at

    Your MSDN link is of AX 4.

    In the intercompany parameters when defining trading relationship, ensure batch number is checked for both SO and PO policies.

    Refer technet.microsoft.com/.../aa573449.aspx

  • Community Member Profile Picture
    on at

    Hi,

    I am also having the same issue. Serial Number is not copying in the intercompany PO or SO. If I input serial number either in SO or PO, it is not getting copied to respective SO/PO in the other side. I have tried to enable the serial number option under Intercompany setup. But still it is not copying. Can anybody suggest some solution?

    Thanks in advance,

    Dhanoop R.Warrier

  • Suggested answer
    Community Member Profile Picture
    on at

    Hi,

    Which versión of AX are you working with? I had the same issue (with AX 2012 R2 CU1) and I had to implement one hotfix integrated in higher version of the product.

    Take a look this hotfix: KB 2821200 Can't update a packing slip for an intercompany sales order: Error message 'Inventory dimension Serial number must be specified.'

    Hope it helps you too!

    Regards!

  • Community Member Profile Picture
    on at

    Hi Virginia,

    I am using AX2012 R2 CU6.

    Let me download that hotfix and try.

    Thanks for the assistance.

    Dhanoop R.Warrier

  • Community Member Profile Picture
    on at

    Seems like the same hotfix has been removed. I am not able to access it.

  • Community Member Profile Picture
    on at

    Are you trying to download it through LCS? If you search on this plataform by the KB number, you can download the solution. You have to choose the review you want to donwload (at the first time, nothing is shown, you have to click the option "Show translations for platform and browser language".

  • Tim Schofield Profile Picture
    on at

    Also check related hotfix KB Article Number (s) : 3188224   .

  • Community Member Profile Picture
    on at

    hello !

    You can go and see the class IntercompanyTransferInventDim\Transfer

    And check the next statements:

    if (inventDimParm.InventLocationIdFlag && inventDimParm.InventBatchIdFlag && inventDimParm.InventSerialIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventLocationId, InventBatchId, InventSerialId from fromInventDim

                           group by InventLocationId, InventBatchId, InventSerialId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag && inventDimParm.InventBatchIdFlag && inventDimParm.InventSerialIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventLocationId, InventBatchId, InventSerialId from fromInventDim

                           group by InventLocationId, InventBatchId, InventSerialId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag && inventDimParm.InventBatchIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventLocationId, InventBatchId from fromInventDim

                           group by InventLocationId, InventBatchId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag && inventDimParm.InventSerialIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                               &&    fromInventTrans.PackingSlipReturned== NoYes::No

                   join InventLocationId, InventSerialId from fromInventDim

                           group by InventLocationId, InventSerialId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag && inventDimParm.InventBatchIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventLocationId, InventBatchId from fromInventDim

                           group by InventLocationId, InventBatchId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag && inventDimParm.InventSerialIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                               &&    fromInventTrans.PackingSlipReturned== NoYes::No

                   join InventLocationId, InventSerialId from fromInventDim

                           group by InventLocationId, InventSerialId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                               &&    fromInventTrans.PackingSlipReturned== NoYes::No

                   join InventLocationId, InventSerialId from fromInventDim

                           group by InventLocationId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventLocationIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventLocationId from fromInventDim

                           group by InventLocationId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventBatchIdFlag && inventDimParm.InventSerialIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventBatchId, InventSerialId from fromInventDim

                           group by InventBatchId, InventSerialId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventBatchIdFlag && inventDimParm.InventSerialIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventBatchId, InventSerialId from fromInventDim

                           group by InventBatchId, InventSerialId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventBatchIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventBatchId, InventSerialId from fromInventDim

                           group by InventBatchId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventBatchIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (isReturn == false

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventBatchId from fromInventDim

                           group by InventBatchId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventSerialIdFlag && inventDimParm.InventProfileIdFlag_RU)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventSerialId from fromInventDim

                           group by InventSerialId, InventProfileId_RU

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

               else if (inventDimParm.InventSerialIdFlag)

               {

                   select forceplaceholders sum(Qty) from fromInventTrans

                           where fromInventTrans.InventTransOrigin  == fromInventTransOrigin.RecId

                               && ((isReturn

                               && fromInventTrans.StatusReceipt     >= _statusReceipt

                               && fromInventTrans.StatusIssue       == StatusIssue::None)

                               || (!isReturn

                               && fromInventTrans.StatusIssue        <= _statusIssue

                               && fromInventTrans.StatusReceipt      == StatusReceipt::None))

                   join InventSerialId from fromInventDim

                           group by InventSerialId

                           where fromInventDim.InventDimId == fromInventTrans.InventDimId;

               }

    The inventSerialId must be after the join in all selects.

  • Community Member Profile Picture
    on at

    Hi,

        I'm facing similar issue. Did you come up with a solution for this? If so, could you please share it? Thanks in advance.

    Regards,

    Sriraksha S

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#1
Priya_K Profile Picture

Priya_K 4

#3
MyDynamicsNAV Profile Picture

MyDynamicsNAV 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans