Как анализировать неразрешенный набор результатов в палитре Tibco BW JDBC

Мне нужно подключиться к хранимой процедуре удаленного сервера MS SQL из палитры Tibco BW JDBC, чтобы получить набор результатов, где мы не будем знать имена столбцов набора результатов.

В моей локальной среде я издевался над процедурой, чтобы вернуть ожидаемый набор результатов, но с фиктивными именами столбцов. Следовательно, при синтаксическом анализе неразрешенного набора результатов возникает ошибка, если имя столбца в наборе результатов отличается от имени, определенного в выходных данных.

Если я использую параметр «набор результатов как схему», то также возникает ошибка при анализе набора результатов, если имя столбца отличается.

Есть ли способ исправить это в Tibco BW?

Заранее спасибо.


person user1919581    schedule 05.02.2018    source источник


Ответы (2)


Для меня звучит так, будто преобразование вывода процедуры UnresolvedResultsets в схему столбца/значения может помочь решить вашу проблему. Вы можете использовать стандартную операцию «Преобразование XML» для преобразования $JDBC-Procedure/resultSet/UnresolvedResultsets в схему столбцов/значений.

Шаг 1 создайте XSLT-файл со следующим содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:str="http://exslt.org/strings" 
xmlns:tns="http://www.*****.com/DMS/Core/Schemas/Index/Schema.xsd" 
version="2.0">
   <xsl:output method="xml" encoding="UTF-8" indent="yes" />
   <xsl:template match="/">
    <xsl:element name="ROOTELEMENT">
     <xsl:for-each select="//node()[not(exists(child::*))]">
        <xsl:if test="name()">
           <xsl:element name="Column">
              <xsl:element name="Name">
                 <xsl:value-of select="name()" />
              </xsl:element>
              <xsl:element name="Value">
                 <xsl:value-of select="." />
              </xsl:element>
           </xsl:element>
           </xsl:if>
         </xsl:for-each>
      </xsl:element>
   </xsl:template>
</xsl:stylesheet>

Шаг 2 добавьте действие «Преобразование XML» и укажите файл xslt, созданный на шаге 1, как таблицу стилей Шаг 2

Шаг 3 сопоставляет $JDBC-Procedure/resultSet/UnresolvedResultssets с преобразованием входных данных XML < img src="https://i.stack.imgur.com/df9eH.jpg" alt="Шаг 3">

Результат должен быть таким: введите здесь описание изображения

вот ссылка на руководство по преобразованию XML

person David Abragimov    schedule 09.03.2018

Вы можете попробовать ParsigXML, используя «Любой элемент»:

Входные данные - это неразрешенный набор

и это вывод, который я анализирую:

введите здесь описание изображения

Надеюсь, это сработает для вас.

person Boosa Liberman    schedule 31.05.2018
comment
Не публикуйте изображения кода или ошибок! Хорошим дополнением могут быть изображения и скриншоты. к посту, но, пожалуйста, убедитесь, что пост по-прежнему понятен и полезен без них. Если вы публикуете изображения кода или сообщения об ошибках, убедитесь, что вы также копируете и вставляете или вводите фактический код/сообщение непосредственно в сообщение. - person Rob; 01.06.2018