Hello,
I'm trying to learn sysoperation framework class. I've written 3 classes:
1) Contract:
[DataContractAttribute]
class SimpleBatchJobContract
{
str text;
}
[
DataMemberAttribute('Text'),
SysOperationLabelAttribute("@ICL363"),
SysOperationControlVisibilityAttribute(true)]
publicstr parmText (str _text = text)
{
text = _text;
return text;
}
2) Service:
class SimpleBatchJobService extends SysOperationServiceBase
{
}
[SysEntryPointAttribute]
publicvoid run(SimpleBatchJobContract _batchJobContract)
{
;
try
{
info(strFmt('%1',_batchJobContract.parmText())); }
catch
{
info(funcName());
}
}
3) Controller:
// Объявление класса-наследника SysOperationServiceController
class SimpleBatchJobController extends SysOperationServiceController
{
}
// Данныйметодсодержитописаниезадачи
public ClassDescription caption()
{
return("Пример простого пакетного задания");
}
protectedvoid initService()
{
this.parmClassName(classStr(SimpleBatchJobService));
// Указание метода Serviceкласса, который будет запущен
this.parmMethodName(methodStr(SimpleBatchJobService, run));
// УказаниережимазапускаклассаService
this.parmExecutionMode(SysOperationExecutionMode::Synchronous);
}
publicstatic SimpleBatchJobController construct()
{
returnnew SimpleBatchJobController();
}
publicstaticvoid main(Args _args)
{
SimpleBatchJobController controller;
;
controller = SimpleBatchJobController::construct();
controller.initService();
controller.startOperation();
}
when i try to launch controller class I get the error:
No metadata class defined for data contract object
Can you help me to understand what's wrong?
Thanks.