Автор |
Сообщение |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 11:48:09
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
Jupiter wrote:Подскажите, как в Delphi для getProductByTypeListRequest задать ProductType?
А зачем? Вы собираете всю базу продуктов-подпродуктов и т.д.? Собирайте по GetProductChangesList. Да, первый раз получите весь справочник "от царя Гороха", зато потом - только то, что изменилось.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 12:00:11
|
Jupiter
Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 100
Оффлайн
|
Владимир Игнатов wrote:
Jupiter wrote:Подскажите, как в Delphi для getProductByTypeListRequest задать ProductType?
А зачем? Вы собираете всю базу продуктов-подпродуктов и т.д.? Собирайте по GetProductChangesList. Да, первый раз получите весь справочник "от царя Гороха", зато потом - только то, что изменилось.
Спасибо! И все же, вдруг понадобится.
В ProductService_v2 типы продукции хранятся в виде ProductType2 = (_1, _2, _3, _4, _5, _6, _7, _8).
В запросе указываю так: aReq.productType:=ProductService_v2.ProductType(0);
В xml попадает <productType>_1</productType> и возникает ошибка, т.к. должно быть целое число. Но как его задать из Delphi?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:14:49
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
ProductService_v2.ProductType._1, кажется.
Если в цикле, ProductService_v2.ProductType(i).
ВАЖНО! Всем, кто еще использует болванки кода, которые я когда-то сюда постил, перед aRes:=clnt..... поставить FreeAndNil(aRes), как и перед aResR:=clnt..... в "двухстадийных" запросах, которые могут крутиться в цикле. Иначе возникает утечка памяти.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 31/10/2017 13:16:26
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:22:41
|
Jupiter
Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 100
Оффлайн
|
Владимир Игнатов wrote:ProductService_v2.ProductType._1, кажется.
Если в цикле, ProductService_v2.ProductType(i).
ProductService_v2.ProductType. - не содержит больше ничего.
ProductService_v2.ProductType2._1 - то же самое, что и ProductService_v2.ProductType2(0)
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:26:08
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
pi.productType:=ams_Mercury_g2b.ProductType(q.FieldByName('ProductType').AsInteger-1);
Проверьте по файлу запроса rio_req.txt правильность перевода, нужен ли там "-1"?
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 31/10/2017 13:28:19
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:35:05
|
Jupiter
Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 100
Оффлайн
|
Владимир Игнатов wrote:pi.productType:=ams_Mercury_g2b.ProductType(q.FieldByName('ProductType').AsInteger-1);
Проверьте по файлу запроса rio_req.txt правильность перевода, нужен ли там "-1"?
У меня aReq: ProductService_v2.getProductByTypeListRequest;
Поэтому при попытке написать
aReq.productType:=ams_Mercury_g2b.ProductType(1);
возникает ошибка несовместимости типов
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:41:42
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
Jupiter wrote:У меня aReq: ProductService_v2.getProductByTypeListRequest;
:=ProductService_v2.productType2._13
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:44:53
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
При генерации .pas из .wsdl у меня снята галка scoped enumeration или как-то так, чтобы не появлялось каждый раз (_1, _2...) и т.д. много раз для разных типов.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:44:59
|
Jupiter
Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 100
Оффлайн
|
Владимир Игнатов wrote:
Jupiter wrote:У меня aReq: ProductService_v2.getProductByTypeListRequest;
:=ProductService_v2.productType2._13
То же самое, вот сгенерированный запрос:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns sd="http://www.w3.org/2001/XMLSchema"
xmlns si="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<getProductByTypeListRequest xmlns="http://api.vetrf.ru/schema/cdm/registry/ws-definitions/v2">
<listOptions xmlns="http://api.vetrf.ru/schema/cdm/base">
<count>1</count>
<offset>0</offset>
</listOptions>
<productType xmlns="http://api.vetrf.ru/schema/cdm/dictionary/v2">_1</productType>
</getProductByTypeListRequest>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:46:28
|
Jupiter
Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 100
Оффлайн
|
Владимир Игнатов wrote:При генерации .pas из .wsdl у меня снята галка scoped enumeration или как-то так, чтобы не появлялось каждый раз (_1, _2...) и т.д. много раз для разных типов.
Интересно. То есть у Вас там целые числа (1, 2, ...) ?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:47:34
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
Jupiter wrote:
Владимир Игнатов wrote:При генерации .pas из .wsdl у меня снята галка scoped enumeration или как-то так, чтобы не появлялось каждый раз (_1, _2...) и т.д. много раз для разных типов.
Интересно. То есть у Вас там целые числа (1, 2, ...) ?
Нет, сквозная нумерация. Но может это виляет?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 13:50:10
|
Jupiter
Зарегистрирован: 24/09/2017 19:02:23
Сообщений: 100
Оффлайн
|
ProductService_v2.productType2(i) Вам возвращает d, а не _d ?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 31/10/2017 14:41:13
|
Владимир Игнатов
Зарегистрирован: 02/08/2017 09:19:30
Сообщений: 581
Оффлайн
|
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_13', '1');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_23', '2');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_33', '3');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_4', '4');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_5', '5');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_6', '6');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_7', '7');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ProductService_v2.ProductType), '_8', '8');
Принимать 1 раз, при старте программы. Убедиться в правильности первых строчных аргументов.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 21/11/2017 10:24:28
|
GusVal
Зарегистрирован: 10/11/2017 12:14:53
Сообщений: 176
Оффлайн
|
Подбираю ручки к API... На основании wsdl...
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns sd="http://www.w3.org/2001/XMLSchema" xmlns si="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<submitApplicationRequest xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
<apiKey>xxx</apiKey>
<application xmlns="http://api.vetrf.ru/schema/cdm/application">
<serviceId>mercury-g2b.service:2.0</serviceId>
<issuerId>YYY</issuerId>
<issueDate>2017-11-20T17:38:31.390+03:00</issueDate>
<data>
<getBusinessEntityUserListRequest xmlns="http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2">
<localTransactionId>20171120173831901</localTransactionId>
<initiator>
<login xmlns="http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2">UserXYZ</login>
</initiator>
<listOptions xmlns="http://api.vetrf.ru/schema/cdm/base">
<count>100</count>
<offset>0</offset>
</listOptions>
</getBusinessEntityUserListRequest>
</data>
</application>
</submitApplicationRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Вот такой запрос отправляю на сервер...
submitApplicationRequest отрабатывает SUCCEESS
receiveApplicationResult возвращает REJECTED... И "Unsupported application data format" в сообщении...
Помогите, плз, понять, что не так в структуре... Застрял что-то...
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 21/11/2017 10:54:45
|
nifor
![[Avatar]](/vetrf-forum/images/avatar/a17479231dc298309a3fda7d7d00111a.jpg)
Зарегистрирован: 21/04/2017 04:01:50
Сообщений: 150
Оффлайн
|
GusVal wrote:Подбираю ручки к API... На основании wsdl...
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns  sd="http://www.w3.org/2001/XMLSchema" xmlns  si="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<submitApplicationRequest xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
<apiKey>xxx</apiKey>
<application xmlns="http://api.vetrf.ru/schema/cdm/application">
<serviceId>mercury-g2b.service:2.0</serviceId>
<issuerId>YYY</issuerId>
<issueDate>2017-11-20T17:38:31.390+03:00</issueDate>
<data>
<getBusinessEntityUserListRequest xmlns="http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2">
<localTransactionId>20171120173831901</localTransactionId>
<initiator>
<login xmlns="http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2">UserXYZ</login>
</initiator>
<listOptions xmlns="http://api.vetrf.ru/schema/cdm/base">
<count>100</count>
<offset>0</offset>
</listOptions>
</getBusinessEntityUserListRequest>
</data>
</application>
</submitApplicationRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Вот такой запрос отправляю на сервер...
submitApplicationRequest отрабатывает SUCCEESS
receiveApplicationResult возвращает REJECTED... И "Unsupported application data format" в сообщении...
Помогите, плз, понять, что не так в структуре... Застрял что-то...
Так вы выложите receiveApplicationResult запрос
|
|
 |
|