Entity collection as OData action parameter

Data entities in F&O can be exposed through OData protocol. You can also add OData actions by creating methods in X++ and decorating them with SysODataCollectionAttribute. You can see an example in MssLeaveRequestDateEntity.getDirects(): [ SysODataActionAttribute(’getDirects’, false), SysODataCollectionAttribute(’return’, Types::Record, ‘MssLeaveRequestDateEntity’) ] public static List getDirects( str reportingPersonnelNumber, date fromDate, date toDate, LeaveRequestApprovalStatus leaveRequestStatus) { List list …

Continue reading ‘Entity collection as OData action parameter’ »

Introduction to generics

My next blog post will cover a few topics regarding generics in AX 7 and because many X++ developers aren’t familiar with this concept (as it’s not used in X++ directly), I thought it would be to explain what it is. Imagine that you’re designing a collection class (such as a list) in a statically-typed …

Continue reading ‘Introduction to generics’ »

Tips for CIL debugging: Collection classes

In some cases, you can make your debugging much easier if you debug CIL instead of the original X++ code. Working with collection classes (lists, maps, etc) is such a case. For example, the following picture shows a map (mapping customer IDs to CustTable records, e.g. for caching) as displayed by the AX debugger: If …

Continue reading ‘Tips for CIL debugging: Collection classes’ »

C#: Array and collection intializers

I was recently asked few questions about array and collection intializers in C#. Because it may be useful for others as well, I decided to write the answer down in this form. All information below is valid for C# in version 3.0 or higher. Arrays A single-dimensional array is normally declared and initialized this way: string[] …

Continue reading ‘C#: Array and collection intializers’ »