10.06.2009, 10:06 | #1 |
MCP
|
Экспорт данных в xml из Axapta 3.0
Всем привет!
Сталкивался ли кто-нибудь с экспортом данных из Ax3 в xml? Какие классы отвечают за этот процесс? В результате хотелось бы получить файл с данными выбранными при помощи query. Сейчас пытаюсь делать так: X++: static void testExport(Args _args) { XMLDataExport dataExport; EmplTable emplTable; QueryBuildDataSource qbds; QueryRun qr; Query query; ; query = new query(); qbds = query.addDataSource(tablenum(EmplTable)); qbds.addRange(fieldnum(Empltable, EmplId)).value('10000'); qr = new queryRun(query); dataExport = new XMLDataExport(''); dataExport.doExport(qr); } |
|
10.06.2009, 10:35 | #2 |
Модератор
|
Ройте в сторону интеграции с BizTalk.
Ищите примеры. Все есть. С Уважением, Георгий |
|
10.06.2009, 11:09 | #3 |
Участник
|
Цитата:
Сообщение от kornix
X++: static void testExport(Args _args) { XMLDataExport dataExport; EmplTable emplTable; QueryBuildDataSource qbds; QueryRun qr; Query query; ; query = new query(); qbds = query.addDataSource(tablenum(EmplTable)); qbds.addRange(fieldnum(Empltable, EmplId)).value('10000'); qr = new queryRun(query); dataExport = new XMLDataExport(''); dataExport.doExport(qr); } Ошибка вылетает видимо из-за того, что в таблице EmplTable есть поле типа 'массив' вещественных чисел (workingHours (EDT HRMworkingHours)), например, если взять табличку InventTable - то все ок, трассировки стека не будет. Видимо не большая ошибка в данном классике есть, а именно в методе writeRecord вместо X++: // Array field. Traverse the elements for (arrayIndex = 1; arrayIndex <= fieldObject.arraySize(); arrayIndex++) { result += fieldName + ' offset="' + int2str(arrayIndex) + '">' + global::XMLString(record.(fieldList.field(fieldNo)), fieldObject.baseType(), _indent + 8) + '</Table:Field>\n'; } X++: // Array field. Traverse the elements for (arrayIndex = 1; arrayIndex <= fieldObject.arraySize(); arrayIndex++) { result += fieldName + ' offset="' + int2str(arrayIndex) + '">' //srf --> //+ global::XMLString(record.(fieldList.field(fieldNo)), fieldObject.baseType(), _indent + 8) + global::XMLString(record.(fieldId2Ext(fieldList.field(fieldNo), arrayIndex)), fieldObject.baseType(), _indent + 8) //srf <-- + '</Table:Field>\n'; } Последний раз редактировалось SRF; 10.06.2009 в 11:13. |
|
|
За это сообщение автора поблагодарили: kornix (1). |
10.06.2009, 14:24 | #4 |
MCP
|
|
|
Теги |
ax3.0, xml, экспорт |
|
|