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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2012, 12:02   #1  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
AIF - AifDocumentField (таблица соответствия)
День добрый!
Давно ждал подходящей задачи для AIF (Ax4.0)... и дождался
нужно осуществить интеграцию с внешней системой партнера через XML
все настроил с помщью AIF - AifFileSystemAdapter (импорт) - большое спасибо Sergikrus... и msdn
Создал в AOT query (тип документов новый), на его основе с помощью мастера сформировал классы для выгрузки. Привязал их к Конечной точке. Схема xsd - сформировалась стандартная. Кинул на форму ItemMenu, выгрузка прошла на УРА.

Следующим шагом нужно заменить сформированную автоматом XSD, на схему которую нам выдал наш партнер. Открыл AifSchemaStore заменил, парсер малость поворчал на не соблюдение норм..., в итоге договорились.

Снова открываю Основное \ Настройка \ AIF \ Конечные точки \ Политика действий \ Политики данных, отмечаю какие поля мне нужно выгрузить обязательно, какие желательно, какие не нужно выгружать ("/MyJournal/EmplId" - не выгружать), т.к. их нет в XSD

Отправляю документ на выгрузку и получаю ошибку
(Основное \ Период.операции \ AIF \ Диспетчер очередей)
Значение "/MyJournal/EmplId" не найдено в карте соответствия.
Т.е. Ax для всех полей моей таблицы MyJournal, пытается найти соответствующий элемент в XSD, даже если я указал (в AifDataPolicy), что это поле выгружать не нужно.
Дебагером нашел Table AifDataPolicy метод generateXsd
X++:
    // Get the document class id and construct the
    // schema map that will be used to create the
    // endpoint schema.
    documentId = AifAction::getDocumentClassId(actionId);
    map = AifDataPolicySchemaMap::construct(documentId);

    while select IsRequired, IsEnabled, MaxStringLength
        from policy
        where policy.EndpointId == endpointId && policy.ActionId == actionId

        join xpath from documentField
        where documentField.RecId == policy.DocumentFieldRecId
    {
        // Lookup the data policy element
        // associated with the xpath.
        element = map.lookup(documentField.xpath);
Тупик... Зачем генерировать заново схему? если она есть.
Копаю дальше, ага есть поле AifEndpointActionPolicy.DataPolicySynchronized
т.е. мою схему нужно синхронизировать. Но как и где, не могу разобраться...
И такое ощущение, что сбился я где-то значительно раньше...
Теги
aif, ax4.0, xml, xsd

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: The AIF processing services used by each of the AIF adapters in AX 2009 Blog bot DAX Blogs 0 27.05.2011 05:12
Aku: Assistent für AIF-Dokumentendienste und Tabellen mit InventDimId Blog bot DAX Blogs 0 22.04.2011 17:11
daxdilip: How to: Configure Dynamics AX AIF Services to listen for SSL Requests (https) Blog bot DAX Blogs 0 23.01.2011 10:12
emeadaxsupport: Error when trying to register the AIF services - "Cannot create a record in Data Policy Schema Information (AifDocumentField)" Blog bot DAX Blogs 0 29.03.2010 21:05
Dianne Siebold: AIF Top Ten Blog bot DAX Blogs 1 22.04.2008 11:19
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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