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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.09.2004, 12:46   #1  
sk45 is offline
sk45
Участник
 
21 / 10 (1) +
Регистрация: 30.05.2003
Вопрос по AxaptaCOMConnector
Организован обмен информацией между несколькими инсталляциями Axapta через AxaptaCOMConnector.
Но есть проблема: как возвратить результат отработанного метода вызываемого приложения в вызывающее в виде контейнера?
Примерно так:
COM cm = new COM ('AxaptaCOMConnector.Axapta2');
cm.logon2(...);
container = cm.CallStaticClassMethod('myClass','myMetod');

И какого типа должен быть контейнер.
Старый 10.09.2004, 13:03   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
AxDvgCOMUs.chm
Reference documentation \ IAxaptaContainer Interface
Старый 10.09.2004, 13:41   #3  
sk45 is offline
sk45
Участник
 
21 / 10 (1) +
Регистрация: 30.05.2003
COM cm = new COM ('AxaptaCOMConnector.Axapta2');
COM containerCOM;
cm.logon2(...);
containerCOM = cm.CreateContainer();
containerCOM = cm.CallStaticClassMethod('myClass','myMetod');

При этом значение контейнера становится "IAxaptaContainer" VT_DISPATCH,
методы Peek, Append и так далее выдаются ошибкой как не найденные после строчки
containerCOM = cm.CallStaticClassMethod('myClass','myMetod');
хотя до этой строки прекрасно работают
метод MyMetod статический и возвращает контейнер
Старый 10.09.2004, 14:22   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Извините, сразу не разглядел, что Ваш код - это X++, поэтому взял то, что быстрее всего запустить - VBA

PHP код:
Sub test()

Dim ax As New Axapta2
Dim cn 
As IAxaptaContainer

ax
.Logon2

Set cn 
ax.CallStaticClassMethod("Global""sec2TueMinSec"1000)
MsgBox cn.Peek(1)

ax.Logoff

End Sub 
вот что-то в этом роде
Старый 10.09.2004, 15:20   #5  
sk45 is offline
sk45
Участник
 
21 / 10 (1) +
Регистрация: 30.05.2003
мне кажеться я точно так же пишу только на х++ как и в vba
COM cm = new COM ('AxaptaCOMConnector.Axapta2');
COM contCOMtst;
COMVariant h = new COMVariant(COMVariantInOut::In_out, COMVariantType::VT_I4);

cm.logon2(curuserid(),' ');
contCOMtst = cm.CreateContainer();
contCOMtst = cm.CallStaticClassMethod('Class','Metod');
h = contCOMtst.Peek(1);
при этом на последней строке выдает ошибку : что метод peek не был найден у COMVariant Объекта
хотя метод peek срабатывает прекрасно если его разместить до вызова класса
COM cm = new COM ('AxaptaCOMConnector.Axapta2');
COM contCOMtst;
COMVariant h = new COMVariant(COMVariantInOut::In_out, COMVariantType::VT_I4);

cm.logon2(curuserid(),' ');
contCOMtst = cm.CreateContainer();
contCOMtst.Append(1,1);
h = contCOMtst.Peek(1);
contCOMtst = cm.CallStaticClassMethod('Class','Metod');
Старый 10.09.2004, 16:16   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
PHP код:
static void Job1(Args _args)
{
    
COM                    ax = new COM ('AxaptaCOMConnector.Axapta2');
    
COMVariant       COMVariantContainer;
    
COM                    COMContainer;
    
COMVariant       COMResult;
    
int                         i;
    ;

    
ax.logon2();

    
COMVariantContainer ax.CallStaticClassMethod("Info""infoStr2Con""a#b#c#");
    
COMContainer COM::createFromVariant(COMVariantContainer);

    for (
1<= COMContainer.length(); i++)
    {
        
COMResult COMContainer.peek(i);
        print 
COMResult.bStr();
    }                          

    
ax.logoff();

    
pause;

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Еще вопрос по AxaptaCOMConnector Dolter DAX: Программирование 28 26.11.2009 15:05
Проблемы с AxaptaCOMConnector Old DAX: Программирование 1 26.07.2007 10:34
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
AxaptaCOMConnector Yari DAX: Программирование 3 14.04.2006 15:25
AxaptaComConnector для новичка murad DAX: Программирование 8 05.10.2005 15:30

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

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

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