Blogg |

Advanced WHS Mobile Device Development: [Part 2] – How to Select the Sales Order

Monday, July 13, 2020
Reading time: 8 minutes

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

To create a new process, you will need to make some adjustments to the standard so that you can create a Mobile device menu item record that has a process guide framework enabled. The first thing you need to do is to extend a few enums for your process: WHSWorkExecuteMode and WHSWorkActivity or WHSWorkCreationProcess, depending on what kind of process you are creating (Work-related or indirect).

Once you have extended the standard enums, you can now enable the process guide functionality for the process by modifying WHSRFMenuItemTable.workActivityMustUseProcess GuideFramework() method:

    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@companial.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.

Edgaras Radvilas

Mer om Finance and Supply Chain Management