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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2006, 17:17   #1  
sao is offline
sao
Участник
 
58 / 16 (1) ++
Регистрация: 07.04.2005
Адрес: Подмосковье
Передать контейнер в job через COM
Здравствуйте! собственно проблема в заголовке.
Пытаюсь сделать так, но передача контейнера как параметра не проходит. в самом job args параметр убрал и поставил на вход контейнер.
Код:
	Dim Axapta As Variant
	Dim Container As Variant
	Dim Args As Variant
	
	Set Axapta = CreateObject("AxaptaCOMConnector.Axapta")
	Axapta.Logon "MyUser", "", "", "MyConfiguration"
	Set Container = Axapta.CreateContainer()	
	Container.Append "Element1", 2, 3.3 
	
	Axapta.CallJob "MyOtherJob", Container
	Axapta.logoff
В хелпе говориться использовать Args.
Код:
               Set Args = Axapta.CreateObject("args")
               ‘ call "MyOtherJob" with args object
               Axapta.CallJob "MyOtherJob", Args
Не очень понятно тогда, как контейнер передать через args.

Заранее спасибо.
Старый 21.02.2006, 17:36   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,317 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А Вы уверены что контейнер в VB и контейнер в Axapta - есть одно и тоже? Тут AndyD как-то даже расписывал структуру поля типа контейнер в Axapta.
Я бы советовал передавать аргументы через строку
__________________
Возможно сделать все. Вопрос времени
Старый 21.02.2006, 17:56   #3  
sao is offline
sao
Участник
 
58 / 16 (1) ++
Регистрация: 07.04.2005
Адрес: Подмосковье
Цитата:
А Вы уверены что контейнер в VB и контейнер в Axapta - есть одно и тоже?
Не уверен конечно. Поскольку первый раз делаю такое. но в хелпе написано:
Цитата:
Creates a COM object of the IAxaptaContainer type. The Microsoft Axapta container corresponds to the container known from the Axapta X++ language.
Если верить хелпу то одно и тоже.
Цитата:
Я бы советовал передавать аргументы через строку
Вариант конечно... буду надеяться, что появяться еще идеи...
Старый 21.02.2006, 17:50   #4  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Никак. Через объект класса Args в качестве параметра можно передать либо: а) объект (args.parmObject), б) значение перечислимого типа (args.parmEnum), в) строку (args.parm)
В Вашем случае, предпочтительнее последний вариант.
Старый 21.02.2006, 18:04   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Можно попробовать черезКласс / SysAnyType и parmObject
Старый 21.02.2006, 19:34   #6  
sao is offline
sao
Участник
 
58 / 16 (1) ++
Регистрация: 07.04.2005
Адрес: Подмосковье
Сделал так:
1. Создал класс в аксапте qqq_CreateSale,
  • метод
    Код:
     
        void new(container _ctr)
        {
          ctrSale = _ctr;
        }
  • метод CreateSale нестатический и в нем обработка, того что надо.

2.
Код:
    Dim ax As Axapta
    Dim salestable As Variant
    Dim Container As IAxaptaContainer
 
    Set ax = CreateObject("AxaptaCOMConnector.Axapta")
    ax.Logon "myuser", "", "", "Myconfiguration"
    Set Container = ax.CreateContainer
    Container.Append "Element1", 2, 3.3

    Set qqq_CreateSales = ax.CreateObject("qqq_CreateSales", Container)
    qqq_CreateSales.Call "CreateSale"
    ax.Logoff
    qqq_CreateSales = nothing
    ax = nothing
Вообщем работает! Всем спасибо за участие.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как передать параметр из Job-a в Class с возможностью перезаписи? Yury J DAX: Программирование 14 11.01.2009 17:11
Построчный импорт из Excel через COM olesh DAX: Программирование 20 23.10.2008 14:01
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
связь с 1С через COM rinugun DAX: Программирование 9 03.12.2004 11:28

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

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

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