|
![]() |
#1 |
Участник
|
Значит так
![]() 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'; Решение: Значение атрибута 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')); } Добавил пользователя к конечной точке: 3) Ошибка: Политика действий конечной точки не существует. Причина: Из 1 Ошибки видно, что имя запрашиваемого сервиса было ItemService вместо InventItemService, то соответственно и Действия называются ItemService.find вместо InventItemService.find Решение: Привел значения атрибута Name таблицы AifAction в соответствие к требуемым, тоесть вместо ItemService.find написал InventItemService.find и так далее. |
|
![]() |
#2 |
Участник
|
Теперь мне не понятно как в выгружаемом 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/create</Action> так как, в AX 2009 №2 требуется импортировать выгруженую номенклатуру и требуется имено InventItemService/create И соответственно получаю следущую ошибку: Элемент "QueryCriteria" с пространством имен "http://schemas.microsoft.com/dynamic.../QueryCriteria" не найден. Строка 1, позиция 2. Причина: InventItemService/find требует в загаловке первый элемент QueryCriteria Решение: Подскажите пожалуйста решение ![]() |
|
![]() |
#3 |
Участник
|
Решение найдено:
Прекрыл find в AX 2009 №1 (где выгружаем номенклатуру) вот этой строкой: <Action>http://schemas.microsoft.com/dynamics/2008/01/services/InventItemService/create</Action> |
|
![]() |
#4 |
Участник
|
Всё вроде как работает, документ перемещается между двумя системами, но я наткнулся на удивительное по моему мнению исключение:
Получается, что я должен настроеть Номерную серию, но при этом смысл импорта теряется напрочь, какой смысл импортированой номенклатуры, если они будет иметь отличные значения от выгружаемых номенклатур. Помогите разобраться с этим исключением, существуют ли способы обхода? P.S. Конечно можно переписать проверку на номерную серию, но хочеться всё настроить с минимальной правкой кода. Последний раз редактировалось Sergikrus; 28.04.2011 в 10:04. |
|
![]() |
#5 |
Участник
|
По поводу перекрытия внешнего кода писал раньше.
Ругается на номерную серию именно из-за несоответствия форматов - они-то как раз должны быть одинаковыми. Единственное что меня смущает - это поле Следующий (NumberSequenceTable.Next) оно не обновится при импорте номенклатуры. Т.е. возможна ситуация, когда при импорте номенклатуры с ItemId = 000005 при текущем значении NumberSequenceTable.Next == ItemId, при создании номенклатуры в импортирующей базе будет вылезать ошибка = "...запись уже существует". Это будет продолжаться до тех пор, пока NumberSequenceTable.Next не станет больше ItemId - что, однако, произойдет при следующей попытке создания номенклатуры. Впринципе это не критично, но об этом не стоит забывать. |
|
![]() |
#6 |
Участник
|
Да, да, всё верно, забыл просто об этом упомянуть.
![]() Ну тогда всё ясно, всем спасибо за ответы, информация в данном посте более чем исчерпывающая. У меня всё заработало. Но всёже я считаю, что это крайне не удачная идея, вести синхронно номерную серию в двух система. |
|
![]() |
#7 |
MCT
|
Цитата:
Цитата:
__________________
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. |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от Sergikrus
![]() ...
Получается, что я должен настроеть Номерную серию, но при этом смысл импорта теряется напрочь, какой смысл импортированой номенклатуры, если они будет иметь отличные значения от выгружаемых номенклатур. Помогите разобраться с этим исключением, существуют ли способы обхода? P.S. Конечно можно переписать проверку на номерную серию, но хочеться всё настроить с минимальной правкой кода.
__________________
Dynamics AX 4.0 SP2 |
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
Участник
|
![]()
Столкнулся с новой, пока для меня не понятно как решаемой ошибки:
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]". Не ясно совершенно, что от меня требуется? |
|
Теги |
aif, ax2009, как правильно, настройка |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|