OfflineAuthenticationAdminEmail overwritten

My F&O environment asked me to log in every time to when I started debugging. I changed OfflineAuthenticationAdminEmail in DynamicsDevConfig.xml (at %USERPROFILE%\Documents\Visual Studio Dynamics 365), but I noticed that the value got overwritten every time when I started Visual Studio and opened an F&O project. I tried changing the value in j:\AosService\PackagesLocalDirectory\bin\DynamicsDevConfig.xml, but it didn’t …

Continue reading ‘OfflineAuthenticationAdminEmail overwritten’ »

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

F&O development with multiple version control workspaces

The usual setup (documented by Microsoft) of version control for F&O is using Team Foundation Version Control and configuring the workspace mapping like this: $/MyProject/Trunk/Main/Metadata k:\AosService\PackagesLocalDirectory $/MyProject/Trunk/Main/Projects c:\Users\Admin123456789\Documents\Visual Studio 2019\Projects This means that PackagesLocalDirectory contains both standard packages (such as ApplicationSuite) and custom packages, i.e. your development and ISV solutions you’ve installed. This works fine …

Continue reading ‘F&O development with multiple version control workspaces’ »

FormObservableLink works in data source extensions

FormObservableLink class is useful for refreshing display and edit methods in D365FO. You create an instance variable of FormObservableLink type in a form, initialize it and call its observe() method in display/edit methods that you need to refresh on demand. When the refresh is required, you call markChanged() method of FormObservableLink and the system will …

Continue reading ‘FormObservableLink works in data source extensions’ »

Compare records in code

When saving a record, I had to check which fields had changed and react in a special way if only certain fields (and not any other) changed their value. I could iterate all fields and compare their values in two table buffers (the original and the updated one), but I thought that D365FO might already …

Continue reading ‘Compare records in code’ »