Регистрация

Загрузить XML в DATASET

Обсуждение вопросов по разработке программ в среде продуктов копорации "Progress Software"
Старожил
Аватара пользователя
Сообщения: 516
Зарегистрирован: 20 сен 2006, 23:19
Откуда: Рига, Латвия

Загрузить XML в DATASET

Сообщение dmikai » 23 авг 2017, 17:14

Добрый день

Никак не получается загрузить данные в DATASET.
Вот программа:
Код: Выделить всё
DEFINE TEMP-TABLE requestResult NO-UNDO
    SERIALIZE-NAME "MultiRef"
    FIELD errorText AS CHARACTER
    FIELD requestId AS CHARACTER
    FIELD returnValue AS INTEGER.

DEFINE DATASET requestResultDset
    XML-NODE-TYPE "HIDDEN"
    FOR requestResult.

DATASET requestResultDset:read-xml("file","result1.txt", ?, ?, ?).


Вот сам XML:
Код: Выделить всё
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:ns2="urn:server.transaction.gramm"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
          id="id0"
          soapenc:root="0"
          soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns2:RequestResult">
    <errorText xsi:type="xsd:string"></errorText>
    <requestId xsi:type="xsd:string">BBD-0023JJK</requestId>
    <returnValue xsi:type="xsd:int">1</returnValue>
</multiRef>


Вот ошибка при загрузке:
Код: Выделить всё
Dataset name 'requestResultDset' in namespace '' not found in XML Document. (13514)


Однако в TEMP-TABLE загружается. Но нужен именно DATASET.
Код: Выделить всё
TEMP-TABLE requestResult:read-xml("file","result1.txt", ?, ?, ?).


Если же попробовать в первом примере создать запись и выгрузить DATASET как XML, то структура очень похожая:
Код: Выделить всё
<MultiRef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <errorText>Test error</errorText>
  <requestId>RequestID</requestId>
  <returnValue>100</returnValue>
</MultiRef>

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies

Re: Загрузить XML в DATASET

Сообщение Arelav » 25 авг 2017, 11:51

Привет!

Заменил в твоём примере multiRef на MultiRef, основываясь на том, в каком виде был выгружен XML из DATASET - это единственное отличие.
И загрузка в DATASET прошла без ошибок.

Код: Выделить всё
<MultiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:ns2="urn:server.transaction.gramm"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
          id="id0"
          soapenc:root="0"
          soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns2:RequestResult">
    <errorText xsi:type="xsd:string"></errorText>
    <requestId xsi:type="xsd:string">BBD-0023JJK</requestId>
    <returnValue xsi:type="xsd:int">1</returnValue>
</MultiRef>


Возможно имеет смысл открыть официальный кейс в саппорте: https://support.progress-tech.ru/

Старожил
Аватара пользователя
Сообщения: 516
Зарегистрирован: 20 сен 2006, 23:19
Откуда: Рига, Латвия

Re: Загрузить XML в DATASET

Сообщение dmikai » 27 авг 2017, 08:57

Arelav писал(а):Привет!

Заменил в твоём примере multiRef на MultiRef, основываясь на том, в каком виде был выгружен XML из DATASET - это единственное отличие.

Возможно имеет смысл открыть официальный кейс в саппорте: https://support.progress-tech.ru/


Спасибо!

Помогло. И сразу вспомнил, что неделю обратно читал пост про регистр в XML тэгах.
То есть еэто не баг!

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies

Re: Загрузить XML в DATASET

Сообщение Arelav » 28 авг 2017, 14:22

Ок. Пожалуйста!

P.S.
Меня просто смутило то, что в примерах из сети написание как multiRef распространённое явление.

Вернуться в PROGRESS - 4GL - ПРОГРАММИРОВАНИЕ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3