Hi all, small tip. I faced this issue, when I extend the custom report in D365 for finance and operations. During development on onebox
Solution was simple,
- restart IIS services
- Restart Reporting Services.
Happy Daxing.
A practitioner’s musings on Dynamics 365 Finance and Operations
by alirazazaidi
by alirazazaidi
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 —
at System.ServiceProcess.ServiceController.Stop()
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.
by alirazazaidi
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();
sender.query().dataSourceName(sender.name()).addRange(fieldnum(HcmTopicRef, HeadingRefRecId)).value(queryValue(_heading.RecId));
}
by alirazazaidi
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.
contract.parmRecordId(invoiceJour.RecId);
controller.parmArgs(_args);
controller.parmReportName(ssrsReportStr(DSSCompletionCertificate, Design));
controller.parmShowDialog(false);
controller.parmReportContract().parmRdpContract(contract);
controller.startOperation();
by alirazazaidi
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()
{
SRSCatalogItemName reportDesign;
reportDesign = ssrsReportStr(MyPurchPurchaseOrder,Report);
this.parmReportName(reportDesign);
this.parmReportContract().parmReportName(reportDesign);
formletterReport.parmReportRun().settingDetail().parmReportFormatName(reportDesign);
super();
}
by alirazazaidi
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.
by alirazazaidi
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.
http://usnconeboxax1aos.cloud.onebox.dynamics.com/?cmp=usmf&mi=SysTableBrowser&TableName=SysTableIdView
by alirazazaidi
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.
Event handling:
https://devserra.wordpress.com/2016/04/19/ax7-using-table-event-handler/
https://axility.net/en/access-stuff-in-the-new-event-subscriptions/
Workflow:
http://d365technext.blogspot.com/2018/07/avoid-over-layering-in-development-of.html
https://devmusings.blog/2018/03/18/custom-workflows-in-microsoft-dynamics-365-for-operations/
https://workflowax.wordpress.com/2009/10/30/participant-provider-example/
Model:
https://stoneridgesoftware.com/what-is-the-modelutil-exe-good-for/
https://community.dynamics.com/365/financeandoperations/f/765/t/223547
https://www.cloudfronts.com/model-importexport-in-dynamics-365-operations/
Email templates
https://www.sikich.com/insight/how-to-email-purchase-orders-in-dynamics-365-for-operations/
Vendor Collaboration:
Reports through extension:
Custom form:
by alirazazaidi
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.
http://d365technext.blogspot.com/2018/07/avoid-over-layering-in-development-of.html
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();
FormRun.design().workflowDatasource(formDataSourceStr(PurchRFQReplyTable, DDSRFQStatus));
FormRun.design().workflowEnabled(true);
FormRun.design().workflowType(workflowtypeStr(DSSRFQCaseWFType));
}
It works for me
by alirazazaidi
Hi all, this is post is for me. I used to make workflow in Customization, Instead created new labels, I used out the box label for workflow menus
menu items labels
@SPS1299 Submit to workflow
@SPS1329 Cancel
@SPS1303 Delegate
@SPS1306 Resubmit
@SPS1301 Reject
@SYS38598 Approve
@SYS109045 RequestChange
@SYS109048 Resubmit
Status enum labels
@SPS1268 not submitted
@SPS1283 Submitted
@SPS1285 Approved
@SYS75939 Draft
@SYS784 Rejected
@SYS319813 Cancelled
@SYS319123 InReview
@SYS109045 ChangeRequest