Controller class:
class MCOCancelSalesOrderController extends SysOperationServiceController
{
protected void new()
{
super();
this.parmClassName(classStr(MCOCancelSalesOrderService));
this.parmMethodName(methodStr(MCOCancelSalesOrderService, processOperation));
this.parmDialogCaption("Batch operation dialog title");
}
public ClassDescription caption()
{
return "Batch operation task description";
}
public static void main(Args args)
{
MCOCancelSalesOrderController controller;
controller = new MCOCancelSalesOrderController();
controller.startOperation();
}
}
Contract class:
[
DataContractAttribute
]
public class MCOCancelSalesOrderContract implements SysOperationValidatable
{
TransDate startShipDate, cancelShipDate;
[
DataMemberAttribute(identifierStr(StatrShipDate)),
AifCollectionTypeAttribute('startShipDate', Types::Date),
SysOperationLabelAttribute(literalStr("@MCO:MCOStartshipdate")),
SysOperationDisplayOrderAttribute('1')
]
public transdate parmstartshipdate (TransDate _startShipDate = startShipDate)
{
startShipDate = _startShipDate;
return startShipDate;
}
[
DataMemberAttribute(identifierStr(CancelShipDate)),
AifCollectionTypeAttribute('cancelShipDate', Types::Date),
SysOperationLabelAttribute(literalStr("@MCO:MCOCancelshipdate")),
SysOperationDisplayOrderAttribute('2')
]
public transdate parmcancelshipdate (TransDate _cancelShipDate = cancelShipDate)
{
cancelShipDate = _cancelShipDate;
return cancelShipDate;
}
public boolean validate()
{
boolean isValid = true;
if (!startShipDate)
{
isValid = checkFailed(strFmt("@SYS84753", "@MCO:MCOStartshipdate"));
}
if (!cancelShipDate)
{
isValid = checkFailed(strFmt("@SYS84753", "@MCO:MCOCancelshipdate"));
}
return isValid;
}
}
Service class:
class MCOCancelSalesOrderService extends SysOperationServiceBase
{
TransDate StartShipDate, CancelShipDate;
public void processOperation(MCOCancelSalesOrderContract _contract)
{
StartShipDate = _contract.parmstartshipdate();
CancelShipDate = _contract.parmcancelshipdate();
if(StartShipDate && CancelShipDate)
{
Info("Both dates entered.");
}
}
}