|
![]() |
#1 |
Участник
|
Георгий, тут еще неизвестно, что имеется в виду под "засасыванием файла в Аксапту". Может нужно не содержимое файла распарсить и по таблицам раскидать, а например сам файл целиком к записи в документообороте присоединить. Но что и для чего, конечно, знать надо заранее. Я вообще не понимаю, как может взяться не знакомый с какой-то системой человек что-то в незнакомую систему загрузить, ведь он не знает, будет ли соблюдена целостность данных, к чему это может привести, и тем более как потом исправить проблему, если закачается не то и не туда.
|
|
![]() |
#2 |
Участник
|
Zabr, разносится именно содержимое из файла. Всё разносится корректно, но только руками,а нужно автоматически. Естественно, не зная этого, я бы даже не стал пытаться решать какие-то задачи.
|
|
![]() |
#3 |
Участник
|
Алексей, если бы вы сразу написали внятно, правильный ответ не заставил бы себя ждать 2 часа, как сейчас. А то ведь вы написали: Есть задача - помещать xml-файл, созданный в приложении, работающем на платформе Lotus Domino в Axapta. А на самом-то деле: Задача загрузки данных из файла в Аксапту решена, запускается вручную из Аксапты, а надо запускать автоматически по расписанию, желательно извне Аксапты. Это же совершенно другая задача.
|
|
![]() |
#4 |
Участник
|
"Задача загрузки данных из файла в Аксапту решена, запускается вручную из Аксапты, а надо запускать автоматически по расписанию, желательно извне Аксапты"
Да, именно так. Прошу прощения за неверное определение. Каким образом возможно это реализовать и насколько трудоёмок данный процесс? |
|
![]() |
#5 |
Участник
|
Импорт XML-файла через SMTP и POP3
Можно ли настроить Axapta что бы она обращалась в почтовый ящик, выдергивала оттуда вложенный xml-файл и запускала уже имеющуюся процедуру размещения данных из этого файла? Если да, то можно ли привести тут код, который эту задачу выполнял бы?
|
|
![]() |
#6 |
Участник
|
Цитата:
(theBat это умеет, outlook скорее всего тоже). Но зачем вам вообще заморачиваться с почтой ? Почта тут - лишнее звено, из за которого будут одни проблемы при эксплуатации. Не надежно все это. На мой взгляд такой способ - извращение. Не лучше ли из Аксапты, напрямую, запрашивать некий web сервис, который по заданному адресу будет возвращать xml пакет с данными, необходимыми для импорта в Аксапту ? (Эту функцию можно будет затем запускать в Аксапте в режиме пакетной обработки с любой периодичностью) Вот пример, который импортирует данные о курсах валют с сайта ЦБ (http://www.cbr.ru/scripts/XML_daily.asp) - все очень просто X++: void run() { com xml; XMLNodeList nodelist; XMLElement xmlNodeLine; int i; Currency currency; CurrencyCode currencyCode; ExchRates exchRates; InteropPermission dllPermission = new InteropPermission(InteropKind::ComInterop); ; dllPermission.assert(); try { xml = new COM('Microsoft.Xmldom'); xml.async(False); xml.validateOnParse(False); xml.load(strfmt("http://www.cbr.ru/scripts/XML_daily.asp")); nodelist = xml.getElementsByTagName("Valute"); for (i = 0; i < nodelist.length(); i ++) { xmlNodeLine = nodelist.item(i); currencyCode = valueFromXMLNode(types::String, xmlNodeLine.getElementsByTagName('CharCode').item(0)).value('value'); currency = currency::find(currencyCode); if (currency.RecId != 0) { exchRates = exchRates::find(currencyCode); if (exchRates.RecId == 0) { exchRates.CurrencyCode = currencyCode; exchRates.FromDate = systemDateGet(); exchRates.ExchRate = valueFromXMLNode(types::Real, xmlNodeLine.getElementsByTagName('Value').item(0)).value('value') / valueFromXMLNode(types::Real, xmlNodeLine.getElementsByTagName('Nominal').item(0)).value('value') * 100; if (exchRates.validateWrite()) { exchRates.insert(); info (strFmt('Введен курс валюты %1 со значением %2 на дату %3', exchRates.CurrencyCode, exchRates.ExchRate, exchRates.FromDate)); } } } } } catch (Exception::Error) { error(chi_GetTimeStamp() + "Процедура импорта валютных курсов завершилась неудачей"); } } Это всего лишь один из примеров реализации. Есть возможность передавать через web сервисы и "закрытые" данные, и данные по параметрическим запросам... Обратитесь к поставщикам вашего xml файла. Создать web сервис, который будет выдавать xml - дело 5 минут для грамотного NET программиста, например... |
|
![]() |
#7 |
Участник
|
У нас данные в XML-файл выгружаются из системы на платформе Lotus Domino, которая и является почтовой, с клиентами Lotus Notes, по-этому нам ближе вариант именно через почтовый ящик
|
|