04.04.2024, 15:10 | #1 |
NavAx
|
AX2012 R3 CU8 Приключения с AIF и 1С
В общем, я устал биться в одиночку..
Проблема в следующем: Есть стандартнейший сервис InventItemService. Развернут порт HTTP на IIS. Но вот 1Ска не хочет воспринимать его WSDL, ругаясь на той, что в одном из XSD, на которые разбит этот WSDL, не указан атрибут targetNamespace. И он там, действительно, не указан. Это при попытке создать стандартное WSОпределение. Понятно, что руками все это можно прочитать, но сроки разработки будут x10... Выглядит это так: В общем WSDL (во второй части wsdl=wsdl1б если нужны подробности): X++: <?xml version="1.0" encoding="utf-8" ?> - <wsdl:definitions targetNamespace="http://schemas.microsoft.com/dynamics/2008/01/services" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/dynamics/2008/01/services" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> - <wsdl:types> - <xsd:schema targetNamespace="http://schemas.microsoft.com/dynamics/2008/01/services/Imports"> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd7" namespace="http://schemas.microsoft.com/dynamics/2008/01/services" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd8" namespace="http://schemas.microsoft.com/dynamics/2010/01/datacontracts" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd10" namespace="http://schemas.microsoft.com/dynamics/2008/01/documents/Fault" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd0" namespace="http://schemas.microsoft.com/2003/10/Serialization/" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKey" /> [B] <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd3" /> [/B] <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd4" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/QueryCriteria" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd5" namespace="http://schemas.microsoft.com/dynamics/2008/01/documents/Item" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd6" namespace="http://schemas.microsoft.com/dynamics/2008/01/sharedtypes" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd9" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> <xsd:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd11" namespace="http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.AX.Framework.Services" /> </xsd:schema> </wsdl:types> И внутри этого xsd3 имеем: X++: <?xml version="1.0" encoding="utf-8" ?> - <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList" /> <xs:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd4" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/QueryCriteria" /> <xs:import schemaLocation="http://ru-dev-ax/MicrosoftDynamicsAXAif60/tmpService/xppservice.svc?xsd=xsd5" namespace="http://schemas.microsoft.com/dynamics/2008/01/documents/Item" /> <xs:element name="EntityKeyList" type="q1:EntityKeyList" xmlns:q1="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList" /> <xs:element name="QueryCriteria" type="q2:QueryCriteria" xmlns:q2="http://schemas.microsoft.com/dynamics/2006/02/documents/QueryCriteria" /> <xs:element name="AxdItem" type="q3:AxdItem" xmlns:q3="http://schemas.microsoft.com/dynamics/2008/01/documents/Item" /> </xs:schema> X++: <?xml version="1.0" encoding="utf-8" ?> - <xs:schema elementFormDefault="qualified" [B]targetNamespace[/B]="http://schemas.microsoft.com/dynamics/2006/02/documents/QueryCriteria" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/dynamics/2006/02/documents/QueryCriteria"> Я уже думал, что в их XSD что-то не то с targetNamespace. Но нет - он там указан. Привел к единообразию их - их атрибуты были описаны через схему xsd:, а не через xs:. Установил одинаковую кодировку этим стандартным типам - utf-16. Все схемы в AifSchemaStore теперь единообразны и в одной кодировке. И ничего. И все равно этот XSD генерируется без targetNamespace. Почему?!!! И кто его генерирует? WCF? Бинарники AX AIF? И нафига сдался этой 1Ске этот targetNamespace... Ну, немного не валидный WSDL, но все его понимают нормально. По сравнению с WSDLями самой 1Ски так вообще эталон. Был у кого-то опыт интеграции и использования AIF сервисов Аксапты со стороны 1С и WSОпределением?
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... Последний раз редактировалось Maximin; 04.04.2024 в 15:14. |
|
04.04.2024, 16:43 | #2 |
Участник
|
Вряд ли подскажу.
Но может вот это наведет вас на полезные мысли КриптоПро. Отправка данных в ГИИС ДМДК. Электронная подпись XML |
|
Теги |
1с, aif, ax2012, ax2012r3, iis, xml, интеграция с 1с |
|
|