D365F&O - X++ - Create Batch job using SysOperationServiceBase in X++
1- Create Contract class if you want to create any parameters.
[DataContractAttribute]
class SysOperationsBatchContract
{
TransDate asofDate;
[DataMember,
SysOperationLabel(literalStr("As of Date")),
SysOperationHelpText(literalStr("Show records As of Date.")),
SysOperationDisplayOrder('1')]
public TrandDate parmAsOfDate(TrandDate _asofDate = asofDate)
{
asofDate = _asofDate;
return asofDate;
}
}
2- Create new Controller class.
public class SalesOrderRefundBatchController extends SysOperationServiceController
{
/// <summary>
/// Default class contsructor
/// </summary>
protected void new()
{
super(classStr(SalesOrderRefundBatchService),
methodStr(SalesOrderRefundBatchService, process),
SysOperationExecutionMode::Synchronous);
}
/// <summary>
/// Class Caption
/// </summary>
/// <returns></returns>
public ClassDescription defaultCaption()
{
return "Sales refund processing";
}
/// <summary>
/// Contruct method
/// </summary>
/// <param name = "_executionMode"></param>
/// <returns></returns>
public static SalesOrderRefundBatchController construct(SysOperationExecutionMode
_executionMode = SysOperationExecutionMode::Synchronous)
{
SalesOrderRefundBatchController controller;
controller = new VSI_SalesOrderRefundBatchController();
controller.parmExecutionMode(_executionMode);
return controller;
}
/// <summary>
/// A class entry point
/// </summary>
/// <param name = "_args">An instance of <c>Args</c> which
/// contains calling arguments</param>
public static void main(Args _args)
{
SalesOrderRefundBatchController controller;
controller = SalesOrderRefundBatchController::construct();
controller.parmArgs(_args);
controller.startOperation();
}
}
3- Cretae Batch Service class.
public class SalesOrderRefundBatch extends SysOperationServiceBase
{
public void process(SysOperationsBatchContract _contract)
{
TransDate asofDate = _contract.parmAsOfDate();
// Your logic here
}
}
Comments
Post a Comment