27.05.2013, 23:20 | #21 |
Модератор
|
Цитата:
Цитата:
Увы, это не пошаговое руководство, а приглашение покопаться в коде таких-то классов
Все, остается определиться с тем что и как будет инициировать отправку read сообщения из системы Б P.S. пишу по памяти и некоторые термины могут быть указаны неточно, уж звиняйте, но логика вроде как должна прослеживаться
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: konfet (1), S.Kuskov (1). |
03.06.2013, 09:37 | #22 |
Снова балуюсь косаптой :)
|
Цитата:
Кроме того, я Вас не просил "искать за меня", а просил предоставить цинк на имеющуюся документацию либо доработку. Или просто написать короткий список необходимых действий, как это сделал Vadik. И такого списка по ссылке, которая выше по теме - нет.
__________________
Бесты и регарды! Последний раз редактировалось konfet; 03.06.2013 в 10:02. |
|
03.06.2013, 09:56 | #23 |
Снова балуюсь косаптой :)
|
Расскажу, как задача была решена с помощью .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 = ''; } 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 |
Участник
|
Цитата:
Сообщение от konfet
Через .NET же передается строка любого размера (проверено на строке размером в 100 килобайт), то есть между приложениями можно передать в принципе любую осмысленную информацию. Для передачи строки таблицы или другого сложного объекта можно использовать xml и функции преобразования.
|
|
Теги |
aif |
|
|