If you are one of the few hundred people among millions who get a headache when the plane takes off and ascends to 35-40,000 feet and get even severe headaches when it starts its descent then you and I are the same. Being a consultant I take from 20-40 flights a year and these headaches were a pain that almost made me decide to drop travelling by plane completely. I tried several combination of things people recommend like nasal sprays, chewing gum, popping your ears and none of them worked for me. I was frustrated because if you have had that pain you know there is nothing more unbearable than the feeling of your brain veins about to burst. For those wondering why it happens, its due to the rapid change in cabin pressure that you cant adjust to. Thankfully right before I gave up something as simple as an ibuprofen(Advil) worked a little and the next flights I took I tried different timings of taking it and figured out the perfect combination. Here is what I found, hopefully it works for you too.
Take an ibuprofen 20 mins before take off and 50 mins before touch down is to happen. This makes it kick in at the perfect time of when the plane starts its ascend and air pressure changes rapidly and when it starts descending. I hope this post finds its way to the right people. Let me know your experiences and solutions and if this worked for you.
Recently came across a scenario where we had to debug a user session that had limited rights to the system, one way of doing that could be for instance walking through a trace of the user session and another would be to debug code while user steps through the process but that would be done only for server side calls. So what if we need to debug client side calls as well, how to go about doing that was the challenge. Since if we assign the user role to an admin and execute the process we also have admin privileges which are higher up the ladder and do not limit access to what that user role has. Not to worry there is a way you can do this by following the steps below:
1. Run Dynamics AX as an administrator
2. Add the role you want to debug to your own user, let the Sys Admin role stay as well.
3. Open a new development Work space.
4. Place breakpoints where you need them.
5. Create below job
A chat bot recently developed by my colleagues Amir Nazim and Zain Khan at Mazik Global got me excited for how much room there is for enhancing the AX user experience and simplifying day to day tasks of an ERP end user. This chat bot right now enables you to find an existing purchase order in AX within a few seconds and also has the option of letting you create a purchase order in AX by answering a few questions of the bot. So if you are an end user that’s on the go or is finding it too cumbersome to open AX just to see details of a purchase order you can simply hit up this bot and get it to do the work for you. See the video below in which I talk to this bot to perform these tasks for me without having to say please. This showcases the true power of Odata entities and the bot framework.
For information on how to create a similar bot visit:
In my previous post I showed how to capture a Trace of Payment Term creation that results in an etl file being generated. To read that trace we need to have Microsoft Dynamics AX Trace Parser installed. You do not need to be on the same machine that you took the trace on, you only need the ETL file. In the below video I quickly go over how to read a Trace file and the different options Trace parser provides. To see how to capture a trace read: How to capture a Trace log of any process in Dynamics AX 2012
Often times debugging a process is not enough to identify a bug or a query that is taking too long or the scenario only happens on a specific machine be it production or test and we need to get to the bottom of what is wrong that causes the issue. This calls for tracing the process and stepping through each cycle as it happened, thanks to Trace parser and the tracing cockpit provided in Dynamics AX 2012 we can capture every query executed and method called during that process. In the below video I show how to capture a trace log of any process.
Recently I was trying to find the best way to read only updated/changed data from AX for some entities like customers and vendors in D365. To do this in AX 2012 we would generally get a read only database copy made of production, enable modifiedDateTime fields and query the recently changed data from that database for our reporting needs but in D365 a cool new feature has been provided called change tracking. Through this you can get AX to push changes to your records to an external database outside of AX. A brief overview of this is that we use data entities to list what we need pushed out and configure them to export to our database. Read more on this here: https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/data-entities/entity-change-track
In Data management:
Register read only DB outside AX, providing its connection string:
Failed try of uploading data package to blob storage, error message: System.Reflection.TargetInvocationException has been thrwon
connection could be made because the target machine actively refused it
The change tracking information related to scheduler job 1090 and channel database group Default are only partially available, due to the headquarters data base change tracking retention period settling.
This creates the parm method which will not only get rid of the BP error but now you have your new field synced with the table creation field when an AIF service, a data migration entity or initialization is done.
This can be done by going through the web.config xml file which is located at “X:\AOSService\webroot”. Several parameters are configured here for for the application and i’ll go through some below, as a developer or administrator of Dynamics AX it is essential to know what configs are set here, so do give it a read and go through each element.
When creating a data entity for a data effective table there are a few properties we need to consider for our imports and exports to work correctly. There can be two scenarios.
1. Data entity is not date effective but one or more data sources within the entity are date effective.
For example we have to export details of a Party record. Now the Party record is saved under DirPartyTable that is not date effective but its First, Middle and Last names are stored in DirPersonName table that is date effective. In order to make sure that we get the latest names of this party while exporting data we need to configure the entity to do so, else it will send whatever record is first in DirPersonName against the party record. To configure it we simply need to set the Apply Date Filter Property to Yes for DirPersonName and make sure we add the ValidTo and ValidFrom fields of DirPersonName datasource to the entity field list.
Parent data source DirPartyTable, not DateEffective:
Child data source DirPersonName, that is date effective:
2. Data entity is date effective
What this means is that our data entity has at least one date effective data source and itself implements the date effective framework. Keeps track of latest and old records rather than overriding existing records on update. Will discuss this further in my next blog.
For more information about date effectivity in data entities see: Date effectivity