Step 1. Add List and parm method to the Data contract
/// <summary>
/// The data contract class for Sample service.
/// </summary>
[DataContract]
internal class SampleDataContract
{
List recordIdList;
/// <summary>
/// Gets or sets the value of the datacontract parameter.
/// </summary>
/// <param name="_recordIdList">The new value of the datacontract parameter.</param>
/// <returns>The current value of datacontract parameter.</returns>
[
DataMember('recordIdList'),
AifCollectionType('return', Types::Int64),
SysOperationControlVisibility(false)
]
public List parmRecordIdList(List _recordIdList = recordIdList)
{
recordIdList = _recordIdList;
return recordIdList;
}
}
Step 2 Create init contract method in controller class
/// <summary>
/// A controller class for the Sample service
/// </summary>
internal final class SampleController extends SysOperationServiceController
{
internal static void main(Args _args)
{
SampleController controller = SampleController::newFromArgs(_args);
controller.startOperation();
}
/// <summary>
/// New from Args static constructor.
/// </summary>
/// <param name = "_args">Instance of Args class.</param>
/// <returns> Constructed <c>SampleController</c> class.</returns>
public static SampleController newFromArgs(Args _args)
{
SampleController controller = SampleController::construct();
controller.initializeFromArgs(_args);
return controller;
}
public void initializeFromArgs(Args _args)
{
super(_args);
SampleContract contract = this.getDataContractObject();
contract.parmRecordIdList(this.getRecordIdList());
}
private List getRecordIdList()
{
List recordIdList = new List(Types::Int64);
if (args.caller() is FormRun)
{
MultiSelectionHelper multiselectionHelper = MultiSelectionHelper::createFromCaller(args.caller());
multiselectionHelper.parmDatasource(FormDataUtil::getFormDataSource(this.parmArgs().record()));
common selectedRecord = multiselectionHelper.getFirst();
while (selectedRecord)
{
recordIdList.addEnd(selectedRecord.RecId);
selectedRecord = multiselectionHelper.getNext();
}
}
return recordIdList;
}
public static SampleController construct()
{
return new SampleController();
}
}