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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2013, 23:20   #21  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Правда, стандартные документы AIF для клиентов/поставщиков появились, похоже, с АХ 2009.
Для клиентов стандартный документ есть в 4.0, для поставщиков - делается визардом.
Цитата:
Увы, это не пошаговое руководство, а приглашение покопаться в коде таких-то классов
В системе A:
  • разрешаете нужный документ и действие (в качестве примера - createCustomer в actions)
  • создаете local endpoints (в общем случае - 1:1 с компаниями в локальной системе)
  • создаете endpoints (в общем случае - 1:1 с внешними системами, в нашем случае - система Б)
  • настраиваете для ednpoint Б маппинг для кодов \ единиц измерения \ валют и т.д.
  • настраиваете для ednpoint ограничения и пользователей которые могут инициировать сообщения
  • настраиваете action policy (для endpoint разрешаете createCustomer)
  • настраиваете data policy (какие поля в документе можно использовать \ какие являются обязательными)
  • генерируете XSD схему для документа, вдумчиво на нее смотрите
  • включаете нужный adapter (для простоты предположим файловый)
  • создаете channel использующий этот адаптер (папка в файловой системе)
  • создаете xml файл в сответствии со схемой, подкладываете его в папку
  • настраиваете batch journal из четырех заданий, запускаете
Все, настроили обработку входящих сообщений в системе A. В системе Б подобным образом настраиваете отправку с использованием read actions (есть некоторый челлендж связанный с тем что read action в заголовке исходящего сообщения в системе Б должен стать create action во входящем в системе А, но это решается через external action identifier или несложный xslt)
Все, остается определиться с тем что и как будет инициировать отправку read сообщения из системы Б
P.S. пишу по памяти и некоторые термины могут быть указаны неточно, уж звиняйте, но логика вроде как должна прослеживаться
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: konfet (1), S.Kuskov (1).
Старый 03.06.2013, 09:37   #22  
konfet is offline
konfet
Снова балуюсь косаптой :)
 
143 / 50 (2) ++++
Регистрация: 23.04.2003
Адрес: Moscow
Цитата:
Сообщение от lvan Посмотреть сообщение
там есть все, и даже табличка с документами и версией ах, в которой они появились
и пошаговые инструкции тоже есть
вам просто лень искать, видимо, мне тоже лень за вас искать
Есть лень, а есть "сроки выполнения задачи". Я не настолько крут, чтобы за 2-3 дня самостоятельно нарыть и прочитать кучу документации по новым средствам разработки, и с их помощью реализовать новый проект, пусть несложный.
Кроме того, я Вас не просил "искать за меня", а просил предоставить цинк на имеющуюся документацию либо доработку. Или просто написать короткий список необходимых действий, как это сделал Vadik.
И такого списка по ссылке, которая выше по теме - нет.
__________________
Бесты и регарды!

Последний раз редактировалось konfet; 03.06.2013 в 10:02.
Старый 03.06.2013, 09:56   #23  
konfet is offline
konfet
Снова балуюсь косаптой :)
 
143 / 50 (2) ++++
Регистрация: 23.04.2003
Адрес: Moscow
Расскажу, как задача была решена с помощью .NET коннектора - может, кому-то пригодится.
Сначала пробовал COM-коннектор, но: во первых он морально устарел, его лучше сейчас не использовать.
Во вторых, при вызове из приложения 1 (далее П1) кода приложения 2 (далее П2) через ком-коннектор - передается строка размером до 1000 байт. Через .NET же передается строка любого размера (проверено на строке размером в 100 килобайт), то есть между приложениями можно передать в принципе любую осмысленную информацию.
Для передачи строки таблицы или другого сложного объекта можно использовать xml и функции преобразования.
Итак. Тестовая задача: передать из П1 в П2 на обработку только что заведенного в П1 клиента.
Перво-наперво, в репозитарий AOT П1, в ветку References, добавляем сборку Microsoft.Dynamics.BusinessConnectorNet.



Вызывающий код в П1:
X++:
static void testNETres(Args _args)
{
    Microsoft.Dynamics.BusinessConnectorNet.Axapta ax;
    Microsoft.Dynamics.BusinessConnectorNet.AxaptaObject axObj;
    CustTable ct;
    int xmlLen, resLen, bigLen, i;
    str xml, res, s, resres;    
    ;

    select firstonly ct;
    s = ct.xml();
    xmlLen = strLen(s);
    ax = new Microsoft.Dynamics.BusinessConnectorNet.Axapta();
    ax.Logon("","","","");
    axObj = ax.CreateAxaptaObject("test_Appl2");
    res = axObj.Call('test_NET', s);
    res = ''; 
}
В П2, в классе test_Appl2 создаем метод test_NET в котором осуществляется обработка переданного клиента.

X++:
str test_NET(str _s)
{
    custTable xTable;
    XmlDocument  xmlDocument = new XmlDocument();
    str xml;
    ;

    xml = _s;
    if (xmlDocument.loadXml(xml))
    {
        Global::recordFromXMLNode(xmlDocument.documentElement(), xTable);

//  дальше можно делать с клиентом все что надо
//  ...
        return xTable.Name;
    }
    return xml;

}
Вот так вот на самом деле просто всё.
__________________
Бесты и регарды!
За это сообщение автора поблагодарили: AlGol (2), raz (5).
Старый 03.06.2013, 16:59   #24  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от konfet Посмотреть сообщение
Через .NET же передается строка любого размера (проверено на строке размером в 100 килобайт), то есть между приложениями можно передать в принципе любую осмысленную информацию. Для передачи строки таблицы или другого сложного объекта можно использовать xml и функции преобразования.
На размерах строк более 100 кб оказывается, что передать можно данные отнюдь не любого размера, и особо крупные xml-ки по значению не передаются Есть ограничение по умолчанию в 4Mb, см. также обсуждение Падает клиент при прикреплении файла
Теги
aif

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax-erp: Creating SSRS-Reports in Dynamics AX 2012 – What’s no longer possible in AX-reports Blog bot DAX Blogs 0 18.07.2012 12:11
axinthefield: Compatibility Testing for Microsoft Dynamics AX Blog bot DAX Blogs 0 23.06.2012 02:26
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47
Запуск отчета в Dynamics AX 3.0 SP5 из внешнего приложения polygris DAX: Программирование 4 01.12.2008 12:40
Arijit Basu: Reporting & BI in AX: An Overview [Level 100] Blog bot DAX Blogs 0 07.01.2008 16:01

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

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

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