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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2011, 13:29   #1  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Значит так :

1) Ошибка:
Сервиса с пространством имен = "http://schemas.microsoft.com/dynamics/2008/01/services" и внешним именем = "InventItemService не существует.

Причина:
в таблице AifService по критерию:

X++:
    select firstonly *
            from aifService
            where aifService.ExternalName == 'InventItemService'
            && aifService.Namespace == 'http://schemas.microsoft.com/dynamics/2008/01/services';
возвращает NULL

Решение: Значение атрибута ExternalName в таблице AifService привёл к значению InventItemService вместо ItemService

2) Ошибка:
Пользователь не авторизован для этой конечной точки.

Причина: так надо

Класс: AifRequestProcessor
X++:
 // Verifies that the current user has access to the service operation
static private void verifyRequestIsAllowed(AifMessage message)
{
    // #48319 - the sourceEndpointUser should always be equal to the currently logged in user.
    if(!isValidUser || ( message.sourceEndpointAxUserId() != curuserid()))
        //User is not authorized for this Endpoint.
        throw error(strfmt('SYS89826'));
}
Решение: Авторизовался в Windows, а затем и в AX 2009 под пользователем axservice

Добавил пользователя к конечной точке:
Нажмите на изображение для увеличения
Название: acess.JPG
Просмотров: 417
Размер:	50.6 Кб
ID:	6814

3) Ошибка:
Политика действий конечной точки не существует.

Причина:
Из 1 Ошибки видно, что имя запрашиваемого сервиса было ItemService вместо InventItemService, то соответственно и Действия называются ItemService.find вместо InventItemService.find

Решение:
Привел значения атрибута Name таблицы AifAction в соответствие к требуемым, тоесть вместо ItemService.find написал InventItemService.find и так далее.
Старый 27.04.2011, 13:39   #2  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Теперь мне не понятно как в выгружаемом xml документе:
X++:
<?xml version="1.0" encoding="UTF-8" ?> 
<Envelope xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/Message">
<Header> 
<MessageId>{03BC7142-4A2F-47BA-B9C5-0A748C3A97FA}</MessageId> 
<SourceEndpoint>In</SourceEndpoint> 
<DestinationEndpoint>Out</DestinationEndpoint> 
<Action>http://schemas.microsoft.com/dynamics/2008/01/services/InventItemService/find</Action> 
</Header>
<Action>http://schemas.microsoft.com/dynamics/2008/01/services/InventItemService/find</Action>

выгружать, со значением:

<Action>http://schemas.microsoft.com/dynamics/2008/01/services/InventItemService/create</Action>

так как, в AX 2009 №2 требуется импортировать выгруженую номенклатуру и требуется имено InventItemService/create

И соответственно получаю следущую ошибку:
Элемент "QueryCriteria" с пространством имен "http://schemas.microsoft.com/dynamic.../QueryCriteria" не найден. Строка 1, позиция 2.

Причина:
InventItemService/find требует в загаловке первый элемент QueryCriteria

Решение:
Подскажите пожалуйста решение
Старый 28.04.2011, 07:43   #3  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Решение найдено:
Прекрыл find в AX 2009 №1 (где выгружаем номенклатуру)
Нажмите на изображение для увеличения
Название: endpointover.JPG
Просмотров: 371
Размер:	53.7 Кб
ID:	6818

вот этой строкой:
<Action>http://schemas.microsoft.com/dynamics/2008/01/services/InventItemService/create</Action>
Старый 28.04.2011, 09:42   #4  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Всё вроде как работает, документ перемещается между двумя системами, но я наткнулся на удивительное по моему мнению исключение:
Нажмите на изображение для увеличения
Название: exept_NumSeq.JPG
Просмотров: 475
Размер:	44.4 Кб
ID:	6819

Получается, что я должен настроеть Номерную серию, но при этом смысл импорта теряется напрочь, какой смысл импортированой номенклатуры, если они будет иметь отличные значения от выгружаемых номенклатур.

Помогите разобраться с этим исключением, существуют ли способы обхода?

P.S. Конечно можно переписать проверку на номерную серию, но хочеться всё настроить с минимальной правкой кода.

Последний раз редактировалось Sergikrus; 28.04.2011 в 10:04.
Старый 28.04.2011, 10:17   #5  
Evgeniy_R is offline
Evgeniy_R
Участник
 
27 / 17 (1) ++
Регистрация: 03.11.2010
Адрес: Moscow Region
По поводу перекрытия внешнего кода писал раньше.

Ругается на номерную серию именно из-за несоответствия форматов - они-то как раз должны быть одинаковыми. Единственное что меня смущает - это поле Следующий (NumberSequenceTable.Next) оно не обновится при импорте номенклатуры.

Т.е. возможна ситуация, когда при импорте номенклатуры с ItemId = 000005 при текущем значении NumberSequenceTable.Next == ItemId, при создании номенклатуры в импортирующей базе будет вылезать ошибка = "...запись уже существует".
Это будет продолжаться до тех пор, пока NumberSequenceTable.Next не станет больше ItemId - что, однако, произойдет при следующей попытке создания номенклатуры.

Впринципе это не критично, но об этом не стоит забывать.
Старый 28.04.2011, 10:33   #6  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от Evgeniy_R Посмотреть сообщение
По поводу перекрытия внешнего кода писал раньше.
Да, да, всё верно, забыл просто об этом упомянуть.

Ну тогда всё ясно, всем спасибо за ответы, информация в данном посте более чем исчерпывающая. У меня всё заработало.

Но всёже я считаю, что это крайне не удачная идея, вести синхронно номерную серию в двух система.
Старый 15.03.2013, 10:28   #7  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от Sergikrus Посмотреть сообщение
...
1. Выполнил Job:
X++:
static void AifInboundProcessing(Args _args)
{
    AifInboundProcessingService inbound = new AifInboundProcessingService();
    AifGatewayReceiveService send = new AifGatewayReceiveService();
    ;
    send.run();
    inbound.run();
}
подскажите, а без джоба можно обойти - к примеру, пакетник откуда-то из меню запустить?

Цитата:
Сообщение от kaw Посмотреть сообщение
Скорее всего на форме "Действие", Вы создали запись вручную (без указания класса).
Регистрация желательно осуществлять по кнопке "Сканирование и регистрация",
система сканирует все классы, которые соответствуют стандарту AIf и автоматически добавляет в список доступных действий.
в ax 2009 не нашел кнопку "Сканирование и регистрация" - подскажите, как создавать действия в ax 2009?
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try.
Старый 29.04.2011, 13:47   #8  
in.dc is offline
in.dc
Участник
 
29 / 53 (2) ++++
Регистрация: 09.04.2009
Цитата:
Сообщение от Sergikrus Посмотреть сообщение
...
Получается, что я должен настроеть Номерную серию, но при этом смысл импорта теряется напрочь, какой смысл импортированой номенклатуры, если они будет иметь отличные значения от выгружаемых номенклатур.

Помогите разобраться с этим исключением, существуют ли способы обхода?

P.S. Конечно можно переписать проверку на номерную серию, но хочеться всё настроить с минимальной правкой кода.
А если в параметрах номерной серии номенклатуры принимающей Axapt'ы выставить настройку "Вручную"?
__________________
Dynamics AX 4.0 SP2
Старый 03.05.2011, 07:39   #9  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от in.dc Посмотреть сообщение
А если в параметрах номерной серии номенклатуры принимающей Axapt'ы выставить настройку "Вручную"?
Будет выдавать исключение о номерной серии на каждой связной сущности с InventTable
Старый 06.05.2011, 09:56   #10  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Angry
Столкнулся с новой, пока для меня не понятно как решаемой ошибки:

X++:
  . 
   : 
 "SalesLine"    "[URL]http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder[/URL]" 
    "SalesQty" 
   "[URL]http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder[/URL]". 
  : 
"PurchorderFormNum"    "[URL]http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder[/URL]".
В схеме XML документа присутствуют оба атрибута: SalesQty, PurchorderFormNum.

Не ясно совершенно, что от меня требуется?
Теги
aif, ax2009, как правильно, настройка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxdilip: How to: Configure Dynamics AX AIF Services to listen for SSL Requests (https) Blog bot DAX Blogs 0 23.01.2011 10:12
Dave: AIF Configuration and Additional Findings Blog bot DAX Blogs 1 04.11.2009 17:29
Dianne Siebold: AIF Top Ten Blog bot DAX Blogs 1 22.04.2008 11:19
Dave: Followup to AIF Configuration Entry Blog bot DAX Blogs 0 28.10.2006 19:01
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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