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’ »

XML response from OData services

If you call OData services in AX 7 (Dynamics 365 for Finance and Operations), you typically get data in JSON format, like this: { "@odata.context":"https://myaxinstance.cloudax.dynamics.com/data/$metadata","value":[ { "name":"ElectronicPaymentTypes","kind":"EntitySet","url":"ElectronicPaymentTypes" },{ "name":"ExpensePaymentDetails","kind":"EntitySet","url":"ExpensePaymentDetails" } … ] } JSON is a simple, lightweight format with good support in many tools, but sometimes you would rather get XML. XML is by …

Continue reading ‘XML response from OData services’ »

Filter for enum fields in OData service

It took me a while to figure out how to filter AX (Operations) enum fields in the URL for OData service (I was using Get records in Flow). For example, let’s say I wanted to get sales orders with status = open order. After a few failed attempts, I actually used classes generated by OData …

Continue reading ‘Filter for enum fields in OData service’ »

OData service across companies

The OData service in Dynamics 365 for Operations returns data from user’s default company. But you can easily add cross-company=true to the URL (e.g. https://myaos.cloudax.dynamics.com/data/Customers?cross-company=true) to get data from all companies. You can also filter the query by DataAreaId field, if you want data from a specific company. But developers usually don’t construct the URL …

Continue reading ‘OData service across companies’ »