Unable to connect to the remote server at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) at Microsoft.WindowsAzure.Storage.Table.CloudTable.Exists(Boolean primaryOnly, TableRequestOptions requestOptions, OperationContext operationContext) at Microsoft.WindowsAzure.Storage.Table.CloudTable.CreateIfNotExists(TableRequestOptions requestOptions, OperationContext operationContext) at Microsoft.DynamicsOnline.Infrastructure.Components.TableAccessor.TableStorageAccessor.PerformOperation(CloudStorageAccount storageAccount, String tableName, Func`1 operation) at Microsoft.DynamicsOnline.Infrastructure.Components.TableAccessor.TableStorageAccessor.AddRecord[T](CloudStorageAccount storageAccount, String tableName, T record) at Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.SharedServiceUnitStorage.UploadData(SharedServiceUnitStorageData data, Stream stream) at
Dynamics Ax 7
I still like the Idea shared by “Gary Vaynerchuk ” Post ” Document dont create” So I document what I face today and resolved.
Today I am facing Project compilation Error in Visual studio output pane, I am struggling to understand Table control, so I can meet the development of my next assignment. Error was
Severity Code Description Project File Line Suppression State
Error One or more errors occurred. —> System.InvalidOperationException: Cannot stop DynamicsAxBatch service on computer ‘.’. —> System.ComponentModel.Win32Exception: The service cannot accept control messages at this time
— End of inner exception stack trace —
When I open Services, I found that DynamicsAXBatch services is in stopping mode and stuck.
So I killed the service process with CMD command. “taskkill /f /pid [pid number]”
The message already shows the service name. ” DynamicsAXBatch” You can copy it from Service detail dialog.
So Open CMD with run as administrator and run the following command and get pid
sc queryex DynamicsAxBatch
Now I have IP.
And kill the Process Id
taskkill /f /pid 5352
Now I start the service again.
Project is successfully complied.
Hi every one, Today I have very small tip. During customization we need to add filters at run time. Specially in the case of inquiry forms. But Now we have to work with extension. Extensions are much more powerful then over layering.
So first one thing to copy Datasource OnQueryEXecuting event. And paste in Extension class.
The sample code snippet is here.
[FormDataSourceEventHandler(formDataSourceStr(HcmDiscussion, HcmTopicRef), FormDataSourceEventType::QueryExecuting)]
public static void HcmTopicRef_OnQueryExecuting(FormDataSource sender, FormDataSourceEventArgs e)
FormRun HcmDiscussionForm = sender.formRun();
I found following error, while running custom report.
Following message shown message.
Report run from controller class. I found “controller.parmArgs(_args);” was missing. That reason report threw this error.
Complete code will be similar.
I did some customization in Business Document or some places these reports are called control document. In classic Ax 2012 we overlay and a lot of efforts saves. But In D365 use extension, which is more powerful feature.
With help of a following article I did customization at least 3 to 4 reports and these reports works fine.
But In one case. It did not work, the required report designer did not show in
Setup > Forms > Form setup. Click Print Management . And original report with design run instead of custom design.
I tried on multiple environment, but issue sustain.
By adding following code snippet in my Extended Controller class will resolve the issue. It works for me.
protected void outputReport()
reportDesign = ssrsReportStr(MyPurchPurchaseOrder,Report);
Amazing, I got requirement that Change request option need not in workflow. I opened the workflow approval in AOT. Approval all options were there. As compare to other AOT objects where we enable disabled two properties without creating extension are “Label” and visible. But here nothing found. There is no option to modify anything “out of the box” workflow.
While exploring workflow designer configuring Workflow. I found that some properties when we drag approval object on workflow designer. Not step object inside approval.
In properties, I found some options. That works for me.
On workflow dialog change request options is gone.
Table Id can be found SysTableIdView. in Dev environments, you can do direct query on sql server.
select * from SysTableIdView
If you did not access sql server then you can open it on table browser.
Here collection of good articles / blog posts for Extension framework.
I just completed the customization using extension. Initially, it’s really tough for me. But with passage of time and my library of code snippet increased, I felt the power of extensions over old classic overlay concept. Even I used extension in custom forms instead write old age methods in controls and data sources.
Here are some links which are very helpful for me and worth to share.
Reports through extension:
Hi all, My fellow Sohail Shaikh wrote an excellent blog Post, I used it in my customization to avoid overlay methods in some of out of the box table.
That article made my day and worked perfectly fine. But here one thing that article missed. How we have to set form designer the custom workflow in list page . Something like If I copied from Sheiks sabs article.
There is error when I created on initialized of custom table in a extension class for list page . I got following error.
So it is not possible, I still not figure out. Later possible I will got they way to do so. Any how I achieved this in extension for interaction class. I copied the post event of initializeQuery method and copied in my class and following code will work for me. To enable or disabled workflow in list page
[PostHandlerFor(classStr(TableListPageInteraction), methodStr(ListPageInteraction, initializeQuery))]
public static void TableListPageInteraction_Post_initializeQuery(XppPrePostArgs args)
TableListPageInteraction TableListPageInteraction = args.getThis();
StatusTable RFQStatusTable = purchRFQCaseTableListPageInteraction.listPage().activeRecord(queryDataSourceStr(TableListPage, DDSRFQStatus)) as DDSRFQStatus;
FormRun formRun = TableListPageInteraction.listPage().formRun();
It works for me