Работа с Меркурием
Добавлено: 16 Июнь 2019, 9:28
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Может, зря не хочется. При их использовании вопросов практически не возникает никаких. Даже если что-то замороченное нужно, гуглим, всегда находится готовый пример. При наличии объектного интерфейса кода в программе минимум. И работает всегда и сразу. Это важно, когда время реагирования на возникающие потребности сжато.Игорь Столяров писал(а): ↑16 Июнь 2019, 9:28Слышали. А как его из Clarion использовать-то ?
Идти по пути генерации и запуска скриптов - ну совсем не хочется …
Я использую штатный Clarion XML, а он о таком не знает.
Код: Выделить всё
fsXmlPar.init(Loc:NameTmp,Loc:NameVbsTmp,Loc:NameOutTmp)
fsXmlPar.EgaisNameSpace(3,0)
fsXmlPar.LoadGroupNS('//ns:Document/ns:WayBill_v3/wb:Header','lor:group',lor:group) !реквизиты шапки накладной
fsXmlPar.LoadGroupNS('//ns:Document/ns:WayBill_v3/wb:Header/wb:Shipper','lor:group',lor:group)
fsXmlPar.LoadQueueNS('//ns:Document/ns:WayBill_v3/wb:Content/wb:Position','lor:queue',lor:queue) !строки накладной
fsXmlPar.MakeScript(1)
if fsXmlPar.ErrorCode<>0
FsMessagePr('Ошибка! ' & clip(fsXmlPar.ErrorMessage))
lor:err=1
.
fsXmlPar.kill
А можно попросить Вас показать такой же пример XML запроса для списка регионов по стране ?
Код: Выделить всё
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws="http://api.vetrf.ru/schema/cdm/ikar/ws-definitions"
xmlns:base="http://api.vetrf.ru/schema/cdm/base"
xmlns:ikar="http://api.vetrf.ru/schema/cdm/ikar">
<soapenv:Header/>
<soapenv:Body>
<ws:getRegionListByCountryRequest>
<base:listOptions>
<base:count>3</base:count>
<base:offset>0</base:offset>
</base:listOptions>
<ikar:countryGuid>f133f1fd-7fa2-da91-d069-24df64749742</ikar:countryGuid>
</ws:getRegionListByCountryRequest>
</soapenv:Body>
</soapenv:Envelope>
Код: Выделить всё
fsFileMakerL.AddOutLine('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"')
fsFileMakerL.AddOutLine(' xmlns:ws="http://api.vetrf.ru/schema/cdm/ikar/ws-definitions"')
fsFileMakerL.AddOutLine(' xmlns:base="http://api.vetrf.ru/schema/cdm/base"')
fsFileMakerL.AddOutLine(' xmlns:ikar="http://api.vetrf.ru/schema/cdm/ikar">')
fsFileMakerL.AddOutLine(' <soapenv:Header/>')
fsFileMakerL.AddOutLine(' <soapenv:Body>')
fsFileMakerL.AddOutLine(' <ws:getDistrictListByRegionRequest>')
fsFileMakerL.AddOutLine(' <base:listOptions>')
fsFileMakerL.AddOutLine(' <base:count>100</base:count>')
fsFileMakerL.AddOutLine(' <base:offset>' & Loc:Sm & '</base:offset>')
fsFileMakerL.AddOutLine(' </base:listOptions>')
fsFileMakerL.AddOutLine(' <ikar:regionGuid>' & clip(Loc:GUIDParent) & '</ikar:regionGuid>')
fsFileMakerL.AddOutLine(' </ws:getDistrictListByRegionRequest>')
fsFileMakerL.AddOutLine(' </soapenv:Body>')
fsFileMakerL.AddOutLine('</soapenv:Envelope>')
Код: Выделить всё
fsFileMakerL.AddOutLine('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"')
fsFileMakerL.AddOutLine(' xmlns:ws="http://api.vetrf.ru/schema/cdm/registry/ws-definitions/v2"')
fsFileMakerL.AddOutLine(' xmlns:base="http://api.vetrf.ru/schema/cdm/base"')
fsFileMakerL.AddOutLine(' xmlns:ikar="http://api.vetrf.ru/schema/cdm/dictionary/v2">')
fsFileMakerL.AddOutLine(' <soapenv:Header/>')
fsFileMakerL.AddOutLine(' <soapenv:Body>')
fsFileMakerL.AddOutLine(' <ws:getRegionListByCountryRequest>')
fsFileMakerL.AddOutLine(' <base:listOptions>')
fsFileMakerL.AddOutLine(' <base:count>100</base:count>')
fsFileMakerL.AddOutLine(' <base:offset>' & Loc:Sm & '</base:offset>')
fsFileMakerL.AddOutLine(' </base:listOptions>')
fsFileMakerL.AddOutLine(' <ikar:countryGuid>' & clip(Loc:GUIDParent) & '</ikar:countryGuid>')
fsFileMakerL.AddOutLine(' </ws:getRegionListByCountryRequest>')
fsFileMakerL.AddOutLine(' </soapenv:Body>')
fsFileMakerL.AddOutLine('</soapenv:Envelope>')
Та я ошибки смотрю, конечно … Но когда берёшь пример запроса с сайта производителя (икона !) и он глючит -