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

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

AX2012 C# Interop code similar to FieldNum in X++

(0) ShareShare
ReportReport
Posted on by 215

I have some code in X++ that looks like this: `fieldNum(InventDim, configId)`

 

I need to duplicate this code in C# for an AX2012 Interop program.  I need to do this becuase I need to call the method

 

 `EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(FieldId _inventDimFieldId)`

 

I know how to make the call in C# but I am completely unsure how to get the FieldId.  I did find an article http://msdn.microsoft.com/en-us/library/cc616802.aspx that discusses using the  dll Microsoft.Dynamics.AX.Framework.Services.Client to get access to those specific methods but my AX2012 Environment has no DLL file named Microsoft.Dynamics.AX.Framework.Services.Client.  Is there some other way to call the above method or a different call to get access to the FieldId?

*This post is locked for comments

I have the same question (0)
  • Verified answer
    Joris dG Profile Picture
    17,775 on at

    You have to remember fieldNum is actually a pre-compiler instruction that translates that field name into a field ID in the actual compiled x++ code. That doesn't quite exist from the .NET end.

    What you can do however is use fieldName2Id, which I believe is a function on the global class or perhaps a static method on dicttable/sysdicttable or dictfield.

  • Ben Hoffman Profile Picture
    215 on at

    So then how do I call methods in .NET that require FieldIds?  There must be a way.  I looked for the FieldName2Id method and found it only in the AifUtil class which states it should only be used my Microsoft internally.

  • Suggested answer
    Martin Dráb Profile Picture
    238,097 Most Valuable Professional on at

    TableDataFieldMetadata  is indeed in Microsoft.Dynamics.AX.Framework.Services.Client namespace, but in Microsoft.Dynamics.Framework.Metadata.AX assembly (can be found in GAC).

    Just for information:

    fieldName2Id() is a system method (in AOT under System Documentation > Functions), but you could easily write your own wrapper method in a custom class.

    Joris also suggested SysDictField class - you could use factory methods newName() or findFieldByName() and id() to get the value.

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

News and Announcements

Season of Giving Solutions is Here!

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

#2
TAHER Mehdi Profile Picture

TAHER Mehdi 3

#3
Nakul Profile Picture

Nakul 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans