18.08.2022, 13:13 | #1 |
Участник
|
Business Connector, Axapta Record to Map
Всем привет.
Карты соответствия прекрасно подходят для расположения некой функции в одном месте. Потребителями данных могут быть и внешние системы. В данном случае используется Business Connector. Вопрос: как на стороне BC конвертировать Record в Map? Попробовал изобрести "велосипед": X++: HRMVirtualNetworkMap = ax.CreateAxaptaRecord(8140);
HRMVirtualNetworkMap.ExecuteStmt("EmplTable c; select firstOnly * from c where c.EmplId; axTbl_0.data(c)"); При этом "axTbl_0 = c" - то же не вариант, "axTbl_0" это не ссылка на ссылку. |
|
19.08.2022, 09:47 | #3 |
Участник
|
Не вижу в той теме хоть какого-либо упоминания по данному вопросу.
|
|
19.08.2022, 09:53 | #4 |
Участник
|
|
|
19.08.2022, 11:02 | #5 |
Участник
|
Внешнее ПО, код которого использует BC для взаимодействия с Аксаптой.
На стороне Аксапты можно добавить необходимые функции и вызвать их из BC - это вопросов не вызывает Вопрос в конвертации Record в Map с сохранением значений системных полей (без сохранения приведенный мной способ вполне жинеспособен) без добавления каких-либо функций на стороне Аксапты. Последний раз редактировалось Товарищ ♂uatr; 19.08.2022 в 11:28. |
|
19.08.2022, 12:25 | #6 |
Участник
|
Возможно в этом дело map tableId
|
|
19.08.2022, 17:29 | #7 |
Участник
|
Дело точно в этом, но для BC этот вопрос не решает изложенным способом в той теме.
|
|
22.08.2022, 14:14 | #8 |
Участник
|
Методом проб и ошибок решение было найдено.
Не смотря на то, что в карте соответствия функция не является статической, через BC к ней стоит обращаться именно таким способом. X++: ... ax = new Microsoft.Dynamics.BusinessConnectorNet.Axapta(); ... emplTable = ax.CreateAxaptaRecord(103); // таблица входящая в состав карты emplTable.ExecuteStmt("..."); ... resultObj = ax.CallStaticRecordMethod('HRMVirtualNetworkMap', 'someFunction', emplTable); Последний раз редактировалось Товарищ ♂uatr; 22.08.2022 в 14:39. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
|
|