|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Прошу помощи. Интреграция базы MSSQL и Меркурий через шлюз на Delphi  XML
Индекс форума » Автоматизированная система МЕРКУРИЙ
Автор Сообщение
Jupiter


Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 88
Оффлайн

Подскажите, пожалуйста, как в Delphi через submitApplicationRequest вызвать какой-нибудь метод и получить applicationId?
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 428
Оффлайн

Jupiter


Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 88
Оффлайн

Если я правильно понял, то после aResR:=clnt.receiveApplicationResult(aReqR) в aResR.application_.result.GetVetDocumentChangesListResponse должен находиться список документов, но там Inaccessible value, хотя aResR.application_.status = COMPLETED и в rio_resp.txt список документов сохраняется
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 428
Оффлайн

Jupiter wrote:Если я правильно понял, то после aResR:=clnt.receiveApplicationResult(aReqR) в aResR.application_.result.GetVetDocumentChangesListResponse должен находиться список документов, но там Inaccessible value, хотя aResR.application_.status = COMPLETED и в rio_resp.txt список документов сохраняется

Там в примере есть Res:=
вот туда и помещается список.
.count что показывает?

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 17/10/2017 10:12:41

Jupiter


Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 88
Оффлайн

Владимир Игнатов wrote:
Jupiter wrote:Если я правильно понял, то после aResR:=clnt.receiveApplicationResult(aReqR) в aResR.application_.result.GetVetDocumentChangesListResponse должен находиться список документов, но там Inaccessible value, хотя aResR.application_.status = COMPLETED и в rio_resp.txt список документов сохраняется

Там в примере есть Res:=
вот туда и помещается список.
.count что показывает?


В Res помещается из aResR.application_.result.GetVetDocumentChangesListResponse, но так как там Inaccessible value, то, следовательно, и в Res тоже. Count также недоступно.
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 428
Оффлайн

Jupiter wrote:
Владимир Игнатов wrote:
Jupiter wrote:Если я правильно понял, то после aResR:=clnt.receiveApplicationResult(aReqR) в aResR.application_.result.GetVetDocumentChangesListResponse должен находиться список документов, но там Inaccessible value, хотя aResR.application_.status = COMPLETED и в rio_resp.txt список документов сохраняется

Там в примере есть Res:=
вот туда и помещается список.
.count что показывает?


В Res помещается из aResR.application_.result.GetVetDocumentChangesListResponse, но так как там Inaccessible value, то, следовательно, и в Res тоже. Count также недоступно.

Фигня-с. Вторая часть из http://vetrf.ru/vetrf-forum/posts/list/7130.page#44785 сделана? Про ApplicationResultWrapper?
Jupiter


Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 88
Оффлайн

Владимир Игнатов wrote:
Jupiter wrote:
Владимир Игнатов wrote:
Jupiter wrote:Если я правильно понял, то после aResR:=clnt.receiveApplicationResult(aReqR) в aResR.application_.result.GetVetDocumentChangesListResponse должен находиться список документов, но там Inaccessible value, хотя aResR.application_.status = COMPLETED и в rio_resp.txt список документов сохраняется

Там в примере есть Res:=
вот туда и помещается список.
.count что показывает?


В Res помещается из aResR.application_.result.GetVetDocumentChangesListResponse, но так как там Inaccessible value, то, следовательно, и в Res тоже. Count также недоступно.

Фигня-с. Вторая часть из http://vetrf.ru/vetrf-forum/posts/list/7130.page#44785 сделана? Про ApplicationResultWrapper?


Вот содержимое моего application_v1.1.xsd
<?xml version = "1.0" encoding = "UTF-8"?>
<xs:schema targetNamespace="http://api.vetrf.ru/schema/cdm/application"
xmlnss="http://www.w3.org/2001/XMLSchema"
xmlns:apl="http://api.vetrf.ru/schema/cdm/application"
xmlns:bs="http://api.vetrf.ru/schema/cdm/base"
elementFormDefault="qualified" version="2.0"
xmlns:merc="http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2">

<xs:import namespace="http://api.vetrf.ru/schema/cdm/base" schemaLocation="base_v1.1.xsd"/>
<xs:import namespace="http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2" schemaLocation="mercury_g2b_applications_v2.0.xsd"/>

<xs:element name="application" type="apl:Application"/>
<xs:element name="applicationData" type="apl:ApplicationData" abstract="true"/>
<xs:element name="applicationResultData" type="apl:ApplicationResultData" abstract="true"/>
<xs:element name="businessError" type="apl:BusinessError"/>
<xs:element name="errorList" type="apl:BusinessErrorList"/>
<xs:element name="binary" type="apl:BinaryContent"/>

<xs:complexType name="Application">
<xs:sequence>
<xs:element name="applicationId" type="bs:UUID" minOccurs="0" maxOccurs="1"/>
<xs:element name="status" type="apl:ApplicationStatus" minOccurs="0" maxOccurs="1"/>
<xs:element name="serviceId" type="xs:Name" minOccurs="0" maxOccurs="1"/>
<xs:element name="issuerId" type="bs:UUID" minOccurs="0" maxOccurs="1"/>
<xs:element name="issueDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
<xs:element name="rcvDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
<xs:element name="prdcRsltDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
<xs:element name="data" type="apl:ApplicationDataWrapper" minOccurs="0" maxOccurs="1"/>
<xs:element name="result" type="apl:ApplicationResultWrapper" minOccurs="0" maxOccurs="1"/>
<xs:element name="errors" type="apl:BusinessErrorList" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>

<xs:simpleType name="ApplicationStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="ACCEPTED"/>
<xs:enumeration value="IN_PROCESS"/>
<xs:enumeration value="COMPLETED"/>
<xs:enumeration value="REJECTED"/>
</xs:restriction>
</xs:simpleType>

<xs:complexType name="ApplicationDataWrapper">
<xs:sequence>
<xs:element name="processIncomingConsignmentRequest" ref="merc:processIncomingConsignmentRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="prepareOutgoingConsignmentRequest" ref="merc:prepareOutgoingConsignmentRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="registerProductionOperationRequest" ref="merc:registerProductionOperationRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="mergeStockEntriesRequest" ref="merc:mergeStockEntriesRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="withdrawVetDocumentRequest" ref="merc:withdrawVetDocumentRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyBusinessEntityRequest" ref="merc:modifyBusinessEntityRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyEnterpriseRequest" ref="merc:modifyEnterpriseRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyActivityLocationsRequest" ref="merc:modifyActivityLocationsRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="resolveDiscrepancyRequest" ref="merc:resolveDiscrepancyRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyProducerStockListRequest" ref="merc:modifyProducerStockListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getVetDocumentByUuidRequest" ref="merc:getVetDocumentByUuidRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getVetDocumentListRequest" ref="merc:getVetDocumentListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getVetDocumentChangesListRequest" ref="merc:getVetDocumentChangesListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryByGuidRequest" ref="merc:getStockEntryByGuidRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryByUuidRequest" ref="merc:getStockEntryByUuidRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryListRequest" ref="merc:getStockEntryListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryChangesListRequest" ref="merc:getStockEntryChangesListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryVersionListRequest" ref="merc:getStockEntryVersionListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateTransportMovementDetailsRequest" ref="merc:updateTransportMovementDetailsRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateVeterinaryEventsRequest" ref="merc:updateVeterinaryEventsRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="checkShipmentRegionalizationRequest" ref="merc:checkShipmentRegionalizationRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="addBusinessEntityUserRequest" ref="merc:addBusinessEntityUserRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getBusinessEntityUserListRequest" ref="merc:getBusinessEntityUserListRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getBusinessEntityUserRequest" ref="merc:getBusinessEntityUserRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateUserAuthoritiesRequest" ref="merc:updateUserAuthoritiesRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateUserWorkingAreasRequest" ref="merc:updateUserWorkingAreasRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="unbindBusinessEntityUserRequest" ref="merc:unbindBusinessEntityUserRequest" minOccurs="0" maxOccurs="1"/>
<xs:element name="getAppliedUserAuthorityListRequest" ref="merc:getAppliedUserAuthorityListRequest" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="encoding" type="apl:ContentEncoding" use="optional"/>
</xs:complexType>

<xs:complexType name="ApplicationResultWrapper">
<xs:sequence>
<xs:element name="processIncomingConsignmentResponse" ref="merc:processIncomingConsignmentResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="prepareOutgoingConsignmentResponse" ref="merc:prepareOutgoingConsignmentResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="registerProductionOperationResponse" ref="merc:registerProductionOperationResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="mergeStockEntriesResponse" ref="merc:mergeStockEntriesResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="withdrawVetDocumentResponse" ref="merc:withdrawVetDocumentResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyBusinessEntityResponse" ref="merc:modifyBusinessEntityResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyEnterpriseResponse" ref="merc:modifyEnterpriseResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyActivityLocationsResponse" ref="merc:modifyActivityLocationsResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="resolveDiscrepancyResponse" ref="merc:resolveDiscrepancyResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifyProducerStockListResponse" ref="merc:modifyProducerStockListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getVetDocumentByUuidResponse" ref="merc:getVetDocumentByUuidResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getVetDocumentListResponse" ref="merc:getVetDocumentListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getVetDocumentChangesListResponse" ref="merc:getVetDocumentChangesListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryByGuidResponse" ref="merc:getStockEntryByGuidResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryByUuidResponse" ref="merc:getStockEntryByUuidResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryListResponse" ref="merc:getStockEntryListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryChangesListResponse" ref="merc:getStockEntryChangesListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getStockEntryVersionListResponse" ref="merc:getStockEntryVersionListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateTransportMovementDetailsResponse" ref="merc:updateTransportMovementDetailsResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateVeterinaryEventsResponse" ref="merc:updateVeterinaryEventsResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="checkShipmentRegionalizationResponse" ref="merc:checkShipmentRegionalizationResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="addBusinessEntityUserResponse" ref="merc:addBusinessEntityUserResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getBusinessEntityUserListResponse" ref="merc:getBusinessEntityUserListResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getBusinessEntityUserResponse" ref="merc:getBusinessEntityUserResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateUserAuthoritiesResponse" ref="merc:updateUserAuthoritiesResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="updateUserWorkingAreasResponse" ref="merc:updateUserWorkingAreasResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="unbindBusinessEntityUserResponse" ref="merc:unbindBusinessEntityUserResponse" minOccurs="0" maxOccurs="1"/>
<xs:element name="getAppliedUserAuthorityListResponse" ref="merc:getAppliedUserAuthorityListResponse" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="encoding" type="apl:ContentEncoding" use="optional"/>
</xs:complexType>

<xs:complexType name="ApplicationData" abstract="true"/>

<xs:complexType name="ApplicationResultData" abstract="true"/>

<xs:complexType name="BusinessErrorList">
<xs:sequence>
<xs:element name="error" type="apl:BusinessError" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="BusinessError">
<xs:simpleContent>
<xs:extension base="bs:Error"/>
</xs:simpleContent>
</xs:complexType>

<xs:simpleType name="APIKey">
<xs:restriction base="xs:string"/>
</xs:simpleType>

<xs:simpleType name="ContentEncoding">
<xs:restriction base="xs:token">
<xs:enumeration value="plain"/>
<xs:enumeration value="gzip"/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="BinaryContent">
<xs:restriction base="xs:base64Binary"/>
</xs:simpleType>
</xs:schema>
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 428
Оффлайн

Нет идей. Перегенерировать заново класс Delphi из сохраненных wsdl.
start


Зарегистрирован: 20/10/2017 10:58:42
Сообщений: 21
Оффлайн

Делаю проект на Delphi. Все стандартно - импортирую WSDL-файл ApplicationManagementService_v1.3_production.wsdl (хотя перепробовал и все остальные версии), после импорта получаю -
// Cannot unwrap:
// - Input part does not refer to an element
// - Output part does not refer to an element
function submitApplicationRequest(const request: submitApplicationRequest): submitApplicationResponse; stdcall;

то-есть не найдено описание для submitApplicationResponse? Что делаю неправильно?

Это сообщение было редактировано 2 раз. Последнее обновление произошло в 20/10/2017 11:07:28

Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 428
Оффлайн

Не все версии Delphi одинаково полезны (умеют правильно импортировать wsdl). 10.2 вроде, нормально импортирует, 10.1 тоже, за более ранние - не уверен. И зачем v1.3? Почему не 2.0?
start


Зарегистрирован: 20/10/2017 10:58:42
Сообщений: 21
Оффлайн

2.0 тоже пробовал, ответ - "Сссылка на неизвестное пространство имен". Дельфи - 10.1 Берлин.
Может надо все остальные файлы скачать? На которые ссылается?
Владимир Игнатов


Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 428
Оффлайн

start wrote:Может надо все остальные файлы скачать? На которые ссылается?

Уфф! Конечно. Если в строку адреса при импорте вставить URL от wsdl, оно само прочитает и связанные файлы тоже, а если указан путь на диске, то связанные файлы там же рядом должны быть.
start


Зарегистрирован: 20/10/2017 10:58:42
Сообщений: 21
Оффлайн

Спасибо огромное за подсказку!!! Скомпилил!
Андрей Тр


Зарегистрирован: 23/10/2017 13:28:54
Сообщений: 5
Оффлайн

Здравствуйте.
У меня похожая история.
Шлюз на Дельфи, импортировал http://api.vetrf.ru/schema/platform/services/2.0-RC-last/EnterpriseService_v2.0_pilot.wsdl, указав адрес по ссылке (не с диска).

В результате получил

EnterpriseServicePortType = interface(IInvokable)
['{CEC5F5F5-12B0-4A97-A41F-78E21DCCFFBE}']

// Cannot unwrap:
// - Input element wrapper name does not match operation's name
function GetBusinessEntityByGuid(const request: getBusinessEntityByGuidRequest): getBusinessEntityByGuidResponse; stdcall;

и для всех остальных функций этого класса также.
Импорт сделан в Дельфи ХЕ 7.

Что не так?
Jupiter


Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 88
Оффлайн

Подскажите, как в Delphi для getProductByTypeListRequest задать ProductType?
 
Индекс форума » Автоматизированная система МЕРКУРИЙ
Перейти:   

Powered by JForum 2.1.8 © JForum Team