AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2019, 14:38   #1  
dark_knight is offline
dark_knight
Участник
 
13 / 10 (1) +
Регистрация: 20.01.2019
sysoperation framework просто пакетное задание
Добрый день,

В рамках изучения sysoperation framework написал 3 класса:

1) Contract class:
X++:
// Объявление класса Contract
// Атрибут указывает, что класс является Contract классом
[DataContractAttribute] 
class SimpleBatchJobContract
{
    str         text;
}
// Метод для установления и получения значения переменной класса Contract
[   
    // Атрибут определяет элемент данных, который будет использоваться Service классом
    DataMemberAttribute('Text'),
    // Метка поля диалога 
    SysOperationLabelAttribute("@ICL363"),
    // Атрибут видимости на диалоге 
    SysOperationControlVisibilityAttribute(true)] 
public str parmText (str _text = text)
{
    text = _text;
    return text;
}
2) Service class:
X++:
// Объявление класса-наследника SysOperationServiceBase
class SimpleBatchJobService  extends SysOperationServiceBase
{
}

// Метод, выполняющий основную логику класса Service
// Атрибут указывает, что проверки авторизации выполняются для метода, который был вызван на сервере
[SysEntryPointAttribute] 
public void run(SimpleBatchJobContract _batchJobContract)
{
    ;

    try
    {
        // Вывод текста, указанного в форме диалога
        info(strFmt('%1',_batchJobContract.parmText()));    }
    catch
    {
// Вывод имени функции в случае ошибки
        info(funcName()); 
    }
}
3) Controller class:
X++:
// Объявление класса-наследника SysOperationServiceController
class SimpleBatchJobController extends SysOperationServiceController
{
}

// Данный метод содержит описание задачи
public ClassDescription caption()
{
    return("Пример простого пакетного задания");
}

// Метод указывает Service класс
protected void initService()
{
    // Указание класса Service
    this.parmClassName(classStr(SimpleBatchJobService)); 
    // Указание метода Service класса, который будет запущен
    this.parmMethodName(methodStr(SimpleBatchJobService, run));
    // Указание режима запуска класса Service 
    this.parmExecutionMode(SysOperationExecutionMode::Synchronous); 
}

// Метод-конструктор класса SimpleBatchJobController
public static SimpleBatchJobController construct()
{
    // Получение экземпляра класса SimpleBatchJobController
    return new SimpleBatchJobController(); 
}

// Метод, вызывающий диалоговое окно для запуска задания
public static void main(Args _args)
{
    SimpleBatchJobController controller;
    ;
    // Получение экземпляра класса
    controller = SimpleBatchJobController::construct();
    // Указание Service класса
    controller.initService();
    // Запуск формы 
    controller.startOperation(); 
}
при попытке запустить класс контроллер получаю ошибку вида:

No metadata class defined for data contract object

Подскажите пожалуйста что я сделал не так?

Заранее спасибо.
Старый 11.07.2019, 15:52   #2  
EVGL is offline
EVGL
Moderator
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,819 / 2348 (86) +++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Попробуйте Refresh / AOD cache aka. Refresh elements сделать.
За это сообщение автора поблагодарили: dark_knight (1).
Старый 11.07.2019, 17:40   #3  
dark_knight is offline
dark_knight
Участник
 
13 / 10 (1) +
Регистрация: 20.01.2019
это странно но мне помогло затирание комментов в методе class declaration contract класса. вот так
X++:
[DataContractAttribute] 
class SimpleBatchJobContract
{
    str         text;
}
Спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Batch Processing in Dynamics AX 2012 Using SysOperation Framework Blog bot DAX Blogs 0 28.03.2017 00:11
Microsoft Dynamics AX 2012 White Paper: Introduction to the SysOperation Framework Vadik DAX: База знаний и проекты 69 17.07.2013 01:44
emeadaxsupport: Update to AX 2012 Framework Component Documentation: SysOperation Framework Blog bot DAX Blogs 0 09.06.2012 00:11
daxmusings: From RunBase to SysOperation : Business Operation Framework (Cont'd) Blog bot DAX Blogs 0 19.08.2011 16:11
daxmusings: From RunBase to SysOperation : Business Operation Framework Blog bot DAX Blogs 4 17.08.2011 16:01
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:00.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.