Работа с Меркурием

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 16 Июнь 2019, 9:28

Дед Пахом писал(а):
16 Июнь 2019, 9:05
В 2019-м, я смотрю, не все ещё и про XPath слышали.
Слышали. :) А как его из Clarion использовать-то ?
Идти по пути генерации и запуска скриптов - ну совсем не хочется … :(
Я использую штатный Clarion XML, а он о таком не знает.
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 16 Июнь 2019, 9:46

Игорь Столяров писал(а):
16 Июнь 2019, 9:28
Дед Пахом писал(а):
16 Июнь 2019, 9:05
В 2019-м, я смотрю, не все ещё и про XPath слышали.
Слышали. :) А как его из Clarion использовать-то ?
Идти по пути генерации и запуска скриптов - ну совсем не хочется … :(
Я использую штатный Clarion XML, а он о таком не знает.
Может, зря не хочется. При их использовании вопросов практически не возникает никаких. Даже если что-то замороченное нужно, гуглим, всегда находится готовый пример. При наличии объектного интерфейса кода в программе минимум. И работает всегда и сразу. Это важно, когда время реагирования на возникающие потребности сжато.
Рязань решает.

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 16 Июнь 2019, 9:51

Пример загрузки накладной из Егаис. Без марок. Марки дополнительно грузятся, там кода побольше.

Код: Выделить всё

  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
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 16 Июнь 2019, 10:07

finsoftrz писал(а):
16 Июнь 2019, 9:46
Может, зря не хочется.
Я всё - пробил дно. Сделал запрос на получение списка ВСД - всё COMPLETED, но в тестовом контуре нет данных.
А в продуктивном контуре - нет пока доступа к Ветис.API ... :( Значит получается, что у солдата выходной … ;)
«V» значит Вендетта !

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 17 Июнь 2019, 6:02

finsoftrz писал(а):
14 Июнь 2019, 22:11
Запрос стран для рабочего контура (важно правильно указать адреса в 2-3 строках):
А можно попросить Вас показать такой же пример XML запроса для списка регионов по стране ?
Потому, что пример на сайте Ветис.API нерабочий, похоже как и всё, что связно с ИКАР. :(

Код: Выделить всё

        <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>
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 17 Июнь 2019, 7:53

Для какого контура? В тестовом и рабочем они слегка разные.
Рязань решает.

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 17 Июнь 2019, 7:56

Для тестового:

Код: Выделить всё

  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>')
Рязань решает.

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 17 Июнь 2019, 7:57

Для рабочего:

Код: Выделить всё

  
  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>')
  
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 17 Июнь 2019, 8:18

Спасибо ! Сразу пошла вода в хату … :)

Я смутно догадывался, что какая-то засада с xmlns:ikar="хттп://api.vetrf.ru/schema/cdm/ikar",
но подобрать нужное объявление вчера не смог за весь вечер … :(
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 17 Июнь 2019, 8:35

Когда сервер возвращает ошибку, там может быть полезная информация.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 17 Июнь 2019, 8:50

finsoftrz писал(а):
17 Июнь 2019, 8:35
Когда сервер возвращает ошибку, там может быть полезная информация.
Та я ошибки смотрю, конечно … Но когда берёшь пример запроса с сайта производителя (икона !) и он глючит -
то начинаешь конечно искать проблемы в своём коде. Вы заменили два объявления в шапке запроса, я смотрел WSDL
и не нашёл там такого … :( Вот откуда оно ?
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 17 Июнь 2019, 9:17

На форумах еще много обсуждений. Кто-то и примеры выкладывает. Беда у всех одна. Времени, конечно, такой серфинг много отнимает...
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 17 Июнь 2019, 11:34

Классическое лоббирование. Протолкнули закон на обязаловку, теперь все должны.
Есть несколько крупных разработчиков, которые получают инфу, заказывают специалистов, оплачивают консультации и
командировки (в столицу), отели, досуг, подарки, конверты для шефа. Это как раз был мой сектор, когда в молодости работал в банке.
Остальные долбятся с негодными примерами и барахтаются по форумам как хотят … :(
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1271
Зарегистрирован: 06 Ноябрь 2014, 12:48

Работа с Меркурием

Сообщение finsoftrz » 17 Июнь 2019, 12:11

Я тоже 4 года в банке отработал. С 1994 по 1998. Вначале один в отделе был, потом еще 4 женщин дали. Стало много тяжелее. Разруливать их вечные женские дрязги между отделами. А потом ушел в свободный полет.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4140
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Работа с Меркурием

Сообщение Игорь Столяров » 19 Июнь 2019, 19:37

Таки выяснилось, что хитрый Меркурий не хочет отдавать более 1000 записей на любой запрос … :(
Ну значит одной задачей меньше - не надо проверять и тестировать парсинг на больших XML файлах. :)
«V» значит Вендетта !

Ответить