Friday, September 9, 2011

AX2012 : The function InventDim::dim2dimParm has been called with an unknown inventory dimension.

Hi Friends,
Recently i started working on my first customization in AX 2012 which was to add a new inventory tracking dimension in the system. I would like to share the following problem which I faced. After doing the basic setup modifications in the system, i was able to see the new dimension in tracking dimensions form, but when i tried to create a sales order , on entering the item itself i was greeting with this following long error message :
"



The function InventDim::dim2dimParm has been called with an unknown inventory dimension.


Microsoft.Dynamics.Ax.Xpp.ErrorException: Exception of type 'Microsoft.Dynamics.Ax.Xpp.ErrorException' was thrown.

at Dynamics.Ax.Application.InventDim.dim2dimParm(Int32 _dimField) in InventDim.dim2dimParm.xpp:line 31

at Dynamics.Ax.Application.InventDim.Clearnotselecteddim(InventDimParm _inventDimParm) in InventDim.clearNotSelectedDim.xpp:line 10

at Dynamics.Ax.Application.CustVendExternalItemDescription.findExternalItemDescription(ModuleCustVend _moduleType, String _itemId, InventDim _inventDim, String _custVendAccountId, String _custVendItemGroupId) in CustVendExternalItemDescription.findExternalItemDescription.xpp:line 31

at Dynamics.Ax.Application.CustVendExternalItemDescription.Findexternaldescription() in CustVendExternalItemDescription.findExternalDescription.xpp:line 34

at Dynamics.Ax.Application.PurchLine.Initfromvendexternalitemdescription(InventDim _inventDim, Boolean ) in PurchLine.initFromVendExternalItemDescription.xpp:line 5

at Dynamics.Ax.Application.PurchLine.Initfromvendexternalitemdescription()

at Dynamics.Ax.Application.PurchLineType.Initfrominventtable(InventTable inventTable) in PurchLineType.initFromInventTable.xpp:line 40

at Dynamics.Ax.Application.PurchLine.initFromInventTableIL(Object[] _inputContract) in PurchLine.initFromInventTableIL.xpp:line 20

at PurchLine::initFromInventTableIL(Object[] )

at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeStaticCall(Type type, String MethodName, Object[] parameters)

at Dynamics.Ax.Application.SysDictTable.invokeStaticMethod(Object[] _params) in SysDictTable.invokeStaticMethod.xpp:line 26

at SysDictTable::invokeStaticMethod(Object[] )

at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeStaticCall(Type type, String MethodName, Object[] parameters)

at Microsoft.Dynamics.Ax.Xpp.PredefinedFunctions.runAsInvoke(String className, String staticMethodName, Object[] parms, Object[]& exportInfolog)"



Wondering what went wrong I put debugger in the method from where the error was originating i.e. InventDim::dim2dimParm, to my surprise debugger was not stopping in the code.

On further troubleshooting, I came to know that some IL code is getting executed because of which the debugger is not stopping in AX client.

As we know that AX2012 there is a powerful capability that X++ code is compiled as IL code.
This IL code resides in the following location "C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin\XppIL\source".
I checked the Xpp file InventDim.Dim2DimParm by opening in Notepad and to my surprise the modifications which i did for new inventory dimension were not in this code.

To update this XPP file , we need to use generate incremental IL tool which can be found under build menu of Ax 2012 work space, there is also a shortcut for this (ctrl + shift + F7).

I generated incremented IL and then checked the XPP file and found that it is updated with the modification.

Now I was able to define item in sales line and system allowed me to proceed ahead.

so the catch was to "Generate incremental IL code" for your modifications before testing them.

7 comments:

  1. Good post!!

    I have the same issue!!

    I checked the il code it was not there.

    Then compiled. Now it is there.

    But still it is giving the same error.

    Any idea about it?? If you can help on this please reply.

    ReplyDelete
    Replies
    1. Did you restart the AOS after generating the IL code ?

      Delete
    2. Hi Rachit,

      I am facing same issue. I restarted the AOS still the issue is there. Please help me out

      Delete
    3. Hi Saurabh,
      Are you able to generate IL successfully??

      Thanks,
      Rachit

      Delete
  2. Hi Rachit Garg,

    i have problem when i create new Purchase order line i got this error msg:

    "Incorrect setup of dimension groups"

    i try to add line with the second icon ( select in create line form)for the same item, it is ok. but when i want to process that PO such as cofirm PO i got another issue and error inflog as below


    "The function InventDim::dim2dimParm has been called with an unknown inventory dimension."

    Can you help me to fix this issue?

    Thank you very much

    Rabia

    ReplyDelete
  3. Hi Rachit Garg,

    I'm doing the same customization like you do. I must add a new inventory tracking dimension. May I ask, if the customization require a lot of modification ?

    Thank you,
    Esther

    ReplyDelete