Controller class
/// <summary> /// /// </summary> class Sales_UpdateMoDSalesOrderController extends SysOperationServiceController { public static Sales_UpdateMoDSalesOrderController construct(Args _args) { Sales_UpdateMoDSalesOrderController controller = new Sales_UpdateMoDSalesOrderController(classStr( Sales_UpdateMoDSalesOrderService ), methodStr( Sales_UpdateMoDSalesOrderService, updateMoDSalesOrder ), SysOperationExecutionMode::Synchronous); controller.parmArgs( _args ); return controller; } public static void main(Args _args) { Set recordSet; SalesTable salesTable; MultiSelectionHelper multiselectionHelper; Sales_UpdateMoDSalesOrderContract dataContract; Sales_UpdateMoDSalesOrderController controller; controller = Sales_UpdateMoDSalesOrderController::construct( _args ); // Get marked records from calling form if (_args && _args.caller() is FormRun) { recordSet = new Set(Types::Record); multiselectionHelper = MultiSelectionHelper::createFromCaller(_args.caller()); salesTable = multiselectionHelper.getFirst(); while (salesTable) { recordSet.add(salesTable); salesTable = multiselectionHelper.getNext(); } } // Put records from calling datasource into dataContract dataContract = controller.getDataContractObject(); if (dataContract is Sales_UpdateMoDSalesOrderContract) { dataContract.parmRecordCon(recordSet.pack()); } controller.startOperation(); } }
Contract class
/// <summary> /// The data contract for Intercompany update of Mode of delivery /// </summary> [ DataContract, SysOperationGroup('GeneralGroup',"@SYS81043",'1',FormArrangeMethod::Vertical) ] class Sales_UpdateMoDSalesOrderContract implements SysOperationInitializable, SysOperationValidatable { UpsModeOfDelivery upsModeOfDelivery; container recordCon; /// <summary> /// Indicates whether the contract is valid. /// </summary> /// <returns> /// A Boolean value that indicates whether the contract is valid. /// </returns> public boolean validate() { boolean isValid = true; return isValid; } /// <summary> /// Initailizes the default values to parameters. /// </summary> public void initialize() { } /// <summary> /// Method used to specify the data memmber attribute /// </summary> /// <param> /// <name>parmShipmentDate</name>is used to set and get the shipmentDate /// </param> [ DataMember, SysOperationGroupMember('GeneralGroup'), SysOperationDisplayOrder('1'), SysOperationLabelAttribute(literalstr("@Warehouse:UpsModeOfDelivery")) ] public UpsModeOfDelivery parmUpsModeOfDelivery( UpsModeOfDelivery _upsModeOfDelivery = upsModeOfDelivery ) { upsModeOfDelivery = _upsModeOfDelivery; return upsModeOfDelivery; } /// <summary> /// Method used to specify the data memmber attribute /// </summary> /// <param name = "_recordCon"></param> /// <returns></returns> [DataMemberAttribute, SysOperationControlVisibilityAttribute(false)] public container parmRecordCon(container _recordCon = recordCon) { recordCon = _recordCon; return recordCon; } }
Service class
class Sales_UpdateMoDSalesOrderService { /// <summary> /// Creates transfer order for from and to wareshouse combination /// </summary> /// <param name = "_contract">TransferOrderCreateContract from dialog</param> public void updateMoDSalesOrder(Sales_UpdateMoDSalesOrderContract _contract) { Set recordSet; Common record; SalesTable salesTable; SetEnumerator se; ModeOfDeliverySetup smModeOfDeliverySetup; // Process records if (conLen(_contract.parmRecordCon()) > 0) { recordSet = Set::create(_contract.parmRecordCon()); se = recordSet.getEnumerator(); while (se.moveNext()) { record = se.current(); switch (record.TableId) { case tableNum(SalesTable): salesTable = record; salesTable.DlvMode = _contract.parmUpsModeOfDelivery(); info(strFmt("%1 %2", salesTable.SalesId, salesTable.DlvMode)); break; default: break; } } } } }
No comments:
Post a Comment