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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.09.2011, 13:59   #1  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Struct в args.object()
У меня одного аксапта падает, когда я пытаюсь передать Struct через args.object?
его вообще можно передавать так?
Старый 14.09.2011, 14:27   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вы случайно Object с parmObject не перепутали?
Старый 14.09.2011, 19:35   #3  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
ну да, parmObject конечно имел ввиду
Старый 15.09.2011, 00:53   #4  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
можно еще так:
X++:
args.parm(con2str(myStruct.pack()));
...
Struct myStruct = Struct::create(str2Con(args.parm()));
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Старый 15.09.2011, 09:36   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Я не смог воспроизвести ошибку при передаче Struct через Args.parmObject().
Старый 15.09.2011, 10:31   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Я не смог воспроизвести ошибку при передаче Struct через Args.parmObject().
У меня так же ошибка не воспроизводится.
Может быть объекты на разных сторонах клиент-сервера и какое-то из полей структуры содержит объект, по которому нет методов интерфейса SysPackable?
Старый 15.09.2011, 10:45   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Может быть объекты на разных сторонах клиент-сервера и какое-то из полей структуры содержит объект, по которому нет методов интерфейса SysPackable?
А разве при использовании parmObject происходит копирование объекта? Я думал что передаётся лишь ссылка на объект. Нужно проверить.

X++:
//Class_TestParmObject
public server static void main(Args _args)
{
    Struct Struct = _args.parmObject();
    ;

    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));
    Struct.valueIndex(1, "new value");
    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));
}
X++:
static void Job_TestParmObject(Args _args)
{
    Args args = new Args();
    Struct Struct = new Struct(Types::String, "Field1");
    ;

    Struct.value("Field1", "test");
    args.parmObject(Struct);

    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));

//    Class_TestParmObject::main(args);
    new MenuFunction(menuItemActionStr(MenuItem_TestParmObject), MenuItemType::Action).run(args);

    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));
}
Результат:
Цитата:
Client: test
Server: test
Server: new value
Client: new value

Последний раз редактировалось S.Kuskov; 15.09.2011 в 11:04.
Старый 15.09.2011, 12:47   #8  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
сейчас попробую ваш код у себя
Старый 15.09.2011, 13:15   #9  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Короче я понял в чем косяк был, я действительно когда инициализировал экземпляр args вместо args.parmObject(struct) указал args.object(struct)

ну и аксапта валилась при этом )) мухаха
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kamalblogs: Setting default object owner as Object creator in Window server 2008 for AIF in Dynamics Ax Blog bot DAX Blogs 1 04.08.2010 14:24
args.record - как заставить работать в форме PurchLine? Gustav DAX: Программирование 9 12.01.2010 16:53
emeadaxsupport: Renaming an AOT object in Dynamics AX 2009 that is under source control with Team Foundation Server Blog bot DAX Blogs 0 06.10.2009 02:05
Вызов метода element.args().caller().setOfficialsParams(.... Poleax DAX: Программирование 6 04.09.2008 19:49
Struct DmitryS DAX: Программирование 4 02.04.2008 11:22

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:44.