Monday, July 13, 2020
Welcome to the second part of our WHS mobile device development series where we will dive into how you can improve your mobile device development experience in Dynamics 365 Finance & Supply Chain management by building new process windows using the process guide framework.
Throughout this blog post, we will walk through the first step – Sales order selection. This consists of the Sales ID input field and details panel.
Dynamics 365 WHS Mobile Device Development - How to Select the Sales Order
Step 1 – Sales Order Selection
Let’s investigate the ERASalesProcessGuidePromptSalesIdPageBuilder class first. The two main methods that are used here are addDataControls() which is responsible for the main display fields and addActionControls() which is responsible for adding actionable controls like buttons and filters. For the main fields, we add an input for Sales ID and some additional fields for the details panel (this part is optional). For actionable controls, we add an OK button and a cancel button.
protected void addDataControls(ProcessGuidePage _page)
{
_page.addTextBox(ProcessGuideDataTypeNames::SalesId, "@MCR12613", extendedTypeNum(SalesId));
//Fill details panel
_page.addLabel(ProcessGuideDataTypeNames::RFTitle, 'Instructions:', extendedTypeNum(Description));
_page.addLabel(ProcessGuideDataTypeNames::RFDescription1, "@MCR35828", extendedTypeNum(Description));
}
protected void addActionControls(ProcessGuidePage _page)
{
#ProcessGuideActionNames
_page.addButton(step.createAction(#ActionOK), true);
_page.addButton(step.createAction(#ActionCancelExitProcess));
}
As for ERASalesProcessGuidePromptSalesIdStep class, we must make sure that the value entered by the user is a valid one. The isComplete() method is used to evaluate if the step is completed and the validateControls() method is used to handle what we should do if the step is not valid.
protected boolean isComplete()
{
WhsrfPassthrough pass = controller.parmSessionState().parmPass();
SalesId salesId = pass.lookup(ProcessGuideDataTypeNames::SalesId);
return SalesTable::exist(salesId);
}
protected void validateControls()
{
SalesId salesId = processingResult.fieldValues.lookupStr(ProcessGuideDataTypeNames::SalesId);
if (!SalesTable::exist(salesId))
{
throw error(strFmt("@MCR10331", salesId));
}
super();
}
The result of this step is the following:
Figure 1. Step 1: Sales order selection and details
We hope that you have found these insights useful and that they help you to improve your Dynamics 365 Finance & Supply Chain WHS mobile device development process. Don’t hesitate to contact our team at service@1ClickFactory.com if you have any questions or need help with development!
In case you missed part 1 of the blog series, check it out now to learn more about the process guide framework
Stay tuned for part three of this four-part blog series on Dynamics 365 Finance & Supply Chain Management WHS mobile device development process.