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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2011, 13:54   #1  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Георгий, тут еще неизвестно, что имеется в виду под "засасыванием файла в Аксапту". Может нужно не содержимое файла распарсить и по таблицам раскидать, а например сам файл целиком к записи в документообороте присоединить. Но что и для чего, конечно, знать надо заранее. Я вообще не понимаю, как может взяться не знакомый с какой-то системой человек что-то в незнакомую систему загрузить, ведь он не знает, будет ли соблюдена целостность данных, к чему это может привести, и тем более как потом исправить проблему, если закачается не то и не туда.
Старый 31.01.2011, 14:04   #2  
Алексей Рождествин is offline
Алексей Рождествин
Участник
 
8 / 10 (1) +
Регистрация: 31.01.2011
Zabr, разносится именно содержимое из файла. Всё разносится корректно, но только руками,а нужно автоматически. Естественно, не зная этого, я бы даже не стал пытаться решать какие-то задачи.
Старый 31.01.2011, 16:25   #3  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от Алексей Рождествин Посмотреть сообщение
Zabr, разносится именно содержимое из файла. Всё разносится корректно, но только руками,а нужно автоматически. Естественно, не зная этого, я бы даже не стал пытаться решать какие-то задачи.
Алексей, если бы вы сразу написали внятно, правильный ответ не заставил бы себя ждать 2 часа, как сейчас. А то ведь вы написали: Есть задача - помещать xml-файл, созданный в приложении, работающем на платформе Lotus Domino в Axapta. А на самом-то деле: Задача загрузки данных из файла в Аксапту решена, запускается вручную из Аксапты, а надо запускать автоматически по расписанию, желательно извне Аксапты. Это же совершенно другая задача.
Старый 15.02.2011, 11:06   #4  
Алексей Рождествин is offline
Алексей Рождествин
Участник
 
8 / 10 (1) +
Регистрация: 31.01.2011
"Задача загрузки данных из файла в Аксапту решена, запускается вручную из Аксапты, а надо запускать автоматически по расписанию, желательно извне Аксапты"
Да, именно так. Прошу прощения за неверное определение. Каким образом возможно это реализовать и насколько трудоёмок данный процесс?
Старый 15.02.2011, 11:37   #5  
Алексей Рождествин is offline
Алексей Рождествин
Участник
 
8 / 10 (1) +
Регистрация: 31.01.2011
Импорт XML-файла через SMTP и POP3
Можно ли настроить Axapta что бы она обращалась в почтовый ящик, выдергивала оттуда вложенный xml-файл и запускала уже имеющуюся процедуру размещения данных из этого файла? Если да, то можно ли привести тут код, который эту задачу выполнял бы?
Старый 15.02.2011, 14:26   #6  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от Алексей Рождествин Посмотреть сообщение
Можно ли настроить Axapta что бы она обращалась в почтовый ящик, выдергивала оттуда вложенный xml-файл и запускала уже имеющуюся процедуру размещения данных из этого файла? Если да, то можно ли привести тут код, который эту задачу выполнял бы?
Вы можете настроить сортировщик вашего почтового клиента на автоматическое сохранение attach файла в заданную папку, откуда затем читать файл Аксаптой.
(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() + "Процедура импорта валютных курсов завершилась неудачей");
    }
}
Этот код должен работать и в 3.0 и в AX2009

Это всего лишь один из примеров реализации. Есть возможность передавать через web сервисы и "закрытые" данные, и данные по параметрическим запросам...

Обратитесь к поставщикам вашего xml файла. Создать web сервис, который будет выдавать xml - дело 5 минут для грамотного NET программиста, например...
Старый 17.02.2011, 14:11   #7  
Алексей Рождествин is offline
Алексей Рождествин
Участник
 
8 / 10 (1) +
Регистрация: 31.01.2011
У нас данные в XML-файл выгружаются из системы на платформе Lotus Domino, которая и является почтовой, с клиентами Lotus Notes, по-этому нам ближе вариант именно через почтовый ящик
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
COM соединение DinDim DAX: Программирование 6 04.06.2010 16:42
Fred Shen: Argument passed to ‘KPIVALUE’ function must be a KPI name Blog bot DAX Blogs 4 03.06.2010 10:07
Kurt Hatlevik: Sneak preview of the WMS E&E Blog bot DAX Blogs 0 20.11.2008 01:10
msdynamicsax: VB script that test the com connector for Dynamics Ax 4.0 Blog bot DAX Blogs 0 25.08.2008 18:05

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

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

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