Cost accounting (2)
Thinking of migrating to on-premise Dynamics 365 for Finance and Operations, Enterprise Edition?
A day in the life of a buyer in Microsoft Dynamics 365 Enterprise
Machine learning, Part I: Microsoft's machine learning packages in SQL and R Server
Machine learning for Dynamics, Part 1: Microsoft's ML packages in SQL and R Server
Announcement: Extensibility documentation is now available
Dynamics 365 for Operations: Class extensions and Chain of Command (COC)-Next keyword
{
real studentAge(int arg)
…
}
}
class Student_Extension
{
real studentAge (int arg)
var s = next studentAge(arg + 4);
return s;
}
}
Print c. studentAge (33);
How to Prepare for Your Next ERP Audit
Access 200+ Dynamics 365 & AX Sessions You Won’t Find Anywhere Else at D365UG/AXUG Summit Nashville
The Learning Curve of a Lifetime Awaits you in Nashville
Boost your expertise at the unmatched, unbeatable D365UG/AXUG Summit Nashville, October 10-13, where you’ll share product insight with peers and walk away with lifelong friends and more new knowledge than you thought possible. A powerhouse of idea exchange and energy, D365UG/AXUG Summit is your best chance to connect with fellow industry experts and share insights that will bring you big returns for years to come.
Learn from your seriously smart peers and the experts
Music City is certainly the place to be for toe-tapping tunes. And at D365UG/AXUG Summit there’s a whole lot of other tapping going on, too. Imagine tapping into the expertise of your user group peers, experts, and instructors as your minds mingle over by-user, for-user generated content, including:
- Over 200 educational sessions. Our Programming Committee combed through comments, surveys and feedback galore, putting together new sessions and pulling out the best of the best from last year’s top-rated sessions, such as“Your Project is At Risk! Now What?” and “Data Archiving: A Component of your Dynamics AX Strategy.”
- 40+ Pre-Conference Academy courses. According to the Pew Research Center, 75% of professionals say extra training helped them advance within their current company. Let Pre-Conference Academy help you succeed!
- AXUG Medics, comprised of AXUG All Stars, Microsoft MVPs, and other global experts including Ludwig Reinhard and Kelly Kane.
Bring your appetite for education and don't worry about bitin' off more'n you can chew! Click the left-hand icon for more information about our educational offerings.
Here's a rip-roaring past attendee testimonial:
“For me personally, I learned from the sessions I attended, from the sponsors in the hallway, the fellow end users, and partners at meals, and during the networking time. Everyone I was privileged to spend time with was open and willing to share their knowledge and experiences with one another, it did not matter if it was a partner, ISV, or end user sharing, all in ear shot were eager to listen and learn.”
- Holly Kutil, IT Coordinator at American Ring
Boot up and register now to save $200
If you are a member of the User Group for Dynamics 365 & AX (D365UG/AXUG), outside of the fantastic value of D365UG/AXUG Summit, save $200 when you register before the Advanced Pricing deadline on September 7. Not yet a member? You can also save and gain year-long value when you bundle your conference registration to become a member of the user group. Discover membership benefits.
During D365UG/AXUG Summit, you’ll challenge, inform, educate, share, and have fun from dawn to dusk. So roll up your sleeves and bring what you wish: Questions, feedback, list of sessions to attend… Just don’t forget your boots—it is Nashville, after all.
Inspire 2017 Notebook: A look back at 11 big stories for Microsoft Dynamics partners
How to: Export Model Store
Hello everyone, this post have been on my draft for quite some time and since this is a blog for noobs we can’t miss the basics!
- To avoid problems, disable AOS.
- Open Microsoft Dynamics AX Management Shell, you can find it on Control Panel\All Control Panel Items\Administrative Tools.
- In Microsoft Dynamics AX Management Shell, type the following command, and then press ENTER.
Export-AXModelStore -File <Filename> -Details
Example:
Export-AXModelStore -File DAX_CU9_BPK -Details
This command exports the model store to an .axmodelstore file.
- It might take a couple of minutes but Management Shell will tell you when it’s done.
To know more about how to export model file please click here.

Microsoft Dynamics AX: Patrones de diseño
Service Restored | Worldwide | Payments | Unable to process credit card transactions through FDC | July 20, 2017
Add call stack to InfoLog messages
The main communication channel for our ERP users in case we want to tell them something is via the InfoLog messages within Microsoft Dynamics AX. In case we get an error or a warning, the technical staff does not receive the details required to troubleshoot the issue much easier. In this post I would like to show you how to...
The post Add call stack to InfoLog messages appeared first on DAXRunBase.
A view from afar: Microsoft Dynamics messaging, deal flow, and analyst relations (Podcast transcript)
Dynamics AX 2012 – DIXF Performance Benchmark Results
The Dynamics AX InMarket team has provided the following benchmarking results for DIXF imports based on numerous requests for this information. If there are any questions or requests for additional entity coverage please let me know!
Problem Statement:
Customer is importing around 500K records and the need for some form of benchmarking the performance expected out of importing/exporting using DIXF.
This article answer customer’s questions about what kind of performance they could expect out of DIXF.
Machine Configuration
Below was the machine configuration on which the benchmark testing was performed.
Machine (3 BOX Setup) | Processor GHz | RAM (GB) | #Cores | OS Version |
AOS | 2.67 | 16 | 24 | Windows Server 2008 R2 Enterprise |
SQL | 2.13 | 48 | 8 | Windows Server 2008 R2 Enterprise |
Client | 2.41 | 8 | 8 | Windows Server 2008 R2 Enterprise |
Entities
Microsoft performed the benchmark performance testing for below entities with different amount of data in each iteration. Similar iterations was performed with different numbers of batch tasks.
Entity | Iteration 1 (Records) | Iteration 2 (Records) | Iteration 3 (Records) | Iteration 4 (Records) | Iteration 5 (Records) |
Opening Balance | 1500 | 3000 | 6000 | 12000 | 24000 |
Product | 5000 | 10000 | 20000 | 40000 | 80000 |
Sales Order header | 1000 | 2000 | 4000 | 8000 | 16000 |
Sales Order Line | 5000 | 10000 | 20000 | 40000 | 80000 |
Vendor Invoice Header | 500 | 1000 | 2000 | 4000 | 8000 |
Vendor Invoice Line | 1500 | 3000 | 6000 | 12000 | 24000 |
Sales Order Composite Entity | 6000 | 12000 | 24000 | 48000 | 96000 |
Vendor Invoice Composite Entity | 2000 | 4000 | 8000 | 16000 | 32000 |
Results
Below are the results for each entity when run under the batch execution with different tasks/record counts.
Opening Balance Entity (Batch Execution)
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Opening Balance | 32 | 1500 (3 lines per journal) | 3 sec | 24 sec |
32 | 3000 (3 lines per journal) | 4 sec | 32 sec | |
32 | 6000 (3 lines per journal) | 9 sec | 59 sec | |
32 | 12000 (3 lines per journal) | 9 sec | 2 min 2 sec | |
32 | 24000 (3 lines per journal) | 15 sec | 5 min 28 sec |
Execution details with different numbers of tasks.
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Opening Balance | 32 | 24000 (3 lines per journal) | 15 sec | 5 min 28 sec |
16 | 24000 (3 lines per journal) | 14 sec | 8 min 27 sec | |
8 | 24000 (3 lines per journal) | 14 sec | 10 min 52 sec |
Product Entity (Batch Execution)
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Product | 32 | 5000 | 6 sec | 2 min 45 sec |
32 | 10000 | 9 sec | 5 min 26 sec | |
32 | 20000 | 17 sec | 11 min 13 sec | |
32 | 40000 | 37 sec | 26 min 41 sec | |
32 | 80000 | 1 min 3 sec | 58 min 37 sec |
Execution details with different numbers of tasks.
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Product | 32 | 80000 | 1 min 3 sec | 58 min 37 sec |
16 | 80000 | 1 min 1 sec | 1 hr 1 min 56 sec | |
8 | 80000 | 1 min 2 sec | 1 hr 41 min 32 sec |
Sales Order Header (Batch Execution)
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Sales Order Header | 32 | 1000 | 3 sec | 7 sec |
32 | 2000 | 3 sec | 11 sec | |
32 | 4000 | 4 sec | 21 sec | |
32 | 8000 | 5 sec | 40 sec | |
32 | 16000 | 7 sec | 1 min 40 sec |
Sales Order Line (Batch Execution)
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
SALES Order Line | 32 | 5000 | 5 sec | 48 sec |
32 | 10000 | 7 sec | 1 min 49 sec | |
32 | 20000 | 10 sec | 3 min 47 sec | |
32 | 40000 | 23 sec | 7 min 28 sec | |
32 | 80000 | 42 sec | 17 min 1 sec |
Sales Order Composite Entity (Batch Execution)
Entity | Sub Entity | Record Count | No. of Tasks | Staging Execution Time | Target Execution Time |
Sales Order | SOH | 1000 | 10 | 16 sec | 2 min 13 sec |
SOL | 5000 | 22 | |||
SOH | 2000 | 10 | 34 sec | 4 min | |
SOL | 10000 | 22 | |||
SOH | 4000 | 10 | 1 min | 8 min 34 sec | |
SOL | 20000 | 22 | |||
SOH | 8000 | 10 | 2 min 15 sec | 18 min 16 sec | |
SOL | 40000 | 22 | |||
SOH | 16000 | 10 | 3 min 38 sec | 38 min 19 sec | |
SOL | 80000 | 22 |
Execution details with different numbers of tasks.
Entity | Sub Entity | Record Count | No. of Tasks | Staging Execution Time | Target Execution Time |
Sales Order | SOH | 16000 | 32 | 3 min 40 sec | 37 min 18 sec |
SOL | 80000 | ||||
SOH | 16000 | 16 | 3 min 38 sec | 40 min42 sec | |
SOL | 80000 | ||||
SOH | 16000 | 8 | 3 min 36 sec | 52 min 37 sec | |
SOL | 80000 |
Vendor Invoice Header (Batch Execution)
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Vendor Invoice Header | 32 | 500 | 2 sec | 4 sec |
32 | 1000 | 2 sec | 6 sec | |
32 | 2000 | 2 sec | 10 sec | |
32 | 4000 | 3 sec | 17 sec | |
32 | 8000 | 4 sec | 41 sec |
Vendor Invoice Line (Batch Execution)
Entity | No. of Tasks | Record Count | Staging Execution Time | Target Execution Time |
Vendor Invoice Line | 32 | 1500 | 3 sec | 24 sec |
32 | 3000 | 4 sec | 41 sec | |
32 | 6000 | 3 sec | 1 min 23 sec | |
32 | 12000 | 6 sec | 2 min 44 sec | |
32 | 24000 | 8 sec | 5 min 51 sec |
Vendor Invoice Composite Entity (Batch Execution)
Entity | Sub Entity | Record Count | No. of Tasks | Staging Execution Time | Target Execution Time |
Vendor Invoice | VIH | 500 | 10 | 3 sec | 33 sec |
VIL | 1500 | 22 | |||
VIH | 1000 | 10 | 11 sec | 1 min | |
VIL | 3000 | 22 | |||
VIH | 2000 | 10 | 20 sec | 1 min 56 sec | |
VIL | 6000 | 22 | |||
VIH | 4000 | 10 | 35 sec | 3 min 54 sec | |
VIL | 12000 | 22 | |||
VIH | 8000 | 10 | 1 min 13 sec | 7 min 58 sec | |
VIL | 24000 | 22 |
Execution details with different numbers of tasks.
Entity | Sub Entity | Record Count | No. of Tasks | Staging Execution Time | Target Execution Time |
Vendor Invoice | VIH | 8000 | 32 | 1 min 6 sec | 7 min 43 sec |
VIL | 24000 | ||||
VIH | 8000 | 16 | 1 min 7 sec | 7 min 34 sec | |
VIL | 24000 | ||||
VIH | 8000 | 8 | 1 min 6 sec | 9 min 15 sec | |
VIL | 24000 |
High Availability best practices for Dynamics AX 2012
Microsoft Q4 2017 Earnings Release: Revenue beats expectations, Azure accelerates
Beware the Penny Difference
Discovery of JSON-based custom services in AX 7
If you download AX integration samples from GitHub, you’ll see (in JsonConsoleApplication project) that you can call JSON-based custom services by code like this:
var request = HttpWebRequest.Create(ClientConfiguration.Default.UriString+"api/services/UserSessionService/AifUserSessionService/GetUserSessionInfo"); request.Headers[OAuthHelper.OAuthHeader]= OAuthHelper.GetAuthenticationHeader(); request.Method="POST"; request.GetResponse();
It will call the operation and return its return value as JSON:
{"$id":"1","AOSLocaleName":"en-US","AXLanguage":"EN-US","Company":"DAT","CompanyTimeZone":58,"CurrencyInfo":{"$id":"2","CurrencyCode":"USD","Description":"US Dollar","ExchangeRate":100.0,"ISOCurrencyCode":"USD","Prefix":"","Suffix":""},"IsSysAdmin":true,"UserId":"wintermute","UserPreferredCalendar":0,"UserPreferredTimeZone":18}
This is what happens when you use the POST method of HTTP; if you switch to GET, you’ll actually get some information about the service.
Therefore if you merely change the value of request.Method:
var request = HttpWebRequest.Create(ClientConfiguration.Default.UriString + "api/services/UserSessionService/AifUserSessionService/GetUserSessionInfo"); request.Headers[OAuthHelper.OAuthHeader] = OAuthHelper.GetAuthenticationHeader();request.Method = "GET"; request.GetResponse();
you’ll get a very different response:
{"Parameters":[],"Return":{"Name":"return","Type":"AifUserSessionInfo"}}
You can see that the operation doesn’t expect any parameters and it returns a single object of AifUserSessionInfo type. This gives you some limited information about how to use this service.
You can also use GET requests to discover existing services and their operations.
/api/services gives you a list of all service groups:
{"ServiceGroups":[{"Name":"AxClient"},…,{"Name":"UserSessionService"}…]}
/api/services/UserSessionService provides a list of services in the service group:
{"Services":[{"Name":"AifUserSessionService"}]}
/api/services/UserSessionService/AifUserSessionService shows all operations of the individual service:
{"Operations":[{"Name":"ApplyTimeZone"},{"Name":"GetAccessRights"},{"Name":"GetPartitionKey"},{"Name":"GetPartitionKeysForUser"},{"Name":"GetUserSessionInfo"},{"Name":"IsSinglePartitionSystem"},{"Name":"RemoveTimeZone"}]}
Don’t forget than opening an URL in browser makes a GET request, therefore you don’t have to write any code to get this kind of information about custom services.
But maybe you would like something a bit more sophisticated, which is the topic of the next post: Open API for JSON-based custom services in AX 7.