How to Extend Sales Order Update Functionality to Custom Fields in D365 Finance and Operations
How to Extend Sales Order Update Functionality to Custom Fields in D365 Finance and Operations
My colleague Jeremy Dobler wrote this nice article on how to extend sales order update functionality to custom fields in AX 2012. In this post, I’m going to show how to implement sales order update functionality to custom fields in Dynamics 365 Finance and Operations, and what changes are necessary when comparing to Dynamics AX.
“Once you have added the fields to the SalesTable and the SalesLine table and exposed the fields on the SalesTable form, add the new custom field to the HeaderToLineUpdate field group on the SalesTable Table.”
In D365FO, the new fields will need to be added via a table extension. Create the extensions on the SalesTable and SalesLine tables and add the desired fields. Once that is completed, add the fields to the HeaderToLineUpdate field group.
“In order for the system to recognize the sales order to line fields that need to be updated, the fields must be set to prompt, or always, in the Account Receivable parameters form. (Accounts receivable – Setup – Accounts receivable parameters – Updates – Update order lines (Button))
To add this field to the update order lines form, you will need to modify the lineUpdateDescription method in the SalesTable2LineField class.”
In D365FO we have to use the lineUpdateDescriptionDelegate object to subscribe and write our custom code:
Code:
Once this is complete if you go back to the AR parameters form, you will now find your custom field listed on the Update order lines form. Note: make sure to mark the field as prompt.
“The sales order line update process uses the sales order document service, so you will need to add some custom code for the system to copy the value from the sales header to the sales lines.”
In D365FO, we can’t overlayer, so we are going to need to create an extension on the AxSalesTable class. Here is the code:
Custom Code:
Create extension of AxSalesLine class:
Custom Code:
“The final piece to the puzzle is to add the set*YourCustomField* method to the setTableFields method in the AxSalesLine class”
Again, as we can’t overlayer, we will work in an extension of the AxSalesLine class. We already have an extension class for AxSalesLine, so create this one last method to replace the AX 2012 step:
This uses Chain of Command, and we want our code to run post the base class, so we use nextSetTableFields() prior to running our custom code.
Sales Order Update Functionality D365 Finance and Operations vs. Dynamics AX
New Fields
Jeremy’s article states the following:“Once you have added the fields to the SalesTable and the SalesLine table and exposed the fields on the SalesTable form, add the new custom field to the HeaderToLineUpdate field group on the SalesTable Table.”
In D365FO, the new fields will need to be added via a table extension. Create the extensions on the SalesTable and SalesLine tables and add the desired fields. Once that is completed, add the fields to the HeaderToLineUpdate field group.
Update Line Fields
Next Jeremy’s article states the following:“In order for the system to recognize the sales order to line fields that need to be updated, the fields must be set to prompt, or always, in the Account Receivable parameters form. (Accounts receivable – Setup – Accounts receivable parameters – Updates – Update order lines (Button))
To add this field to the update order lines form, you will need to modify the lineUpdateDescription method in the SalesTable2LineField class.”
In D365FO we have to use the lineUpdateDescriptionDelegate object to subscribe and write our custom code:
Code:
Sales Order Lines
Jeremy’s article then states:“The sales order line update process uses the sales order document service, so you will need to add some custom code for the system to copy the value from the sales header to the sales lines.”
In D365FO, we can’t overlayer, so we are going to need to create an extension on the AxSalesTable class. Here is the code:
Extension to Sales Line
Jeremy then has this in his article:“The final piece to the puzzle is to add the set*YourCustomField* method to the setTableFields method in the AxSalesLine class”
Again, as we can’t overlayer, we will work in an extension of the AxSalesLine class. We already have an extension class for AxSalesLine, so create this one last method to replace the AX 2012 step:
Comments
Post a Comment