Создание файлов шаблонов обратной записи

Файл шаблона обратной записи – это файл в формате XML, содержащий один или несколько шаблонов обратной записи.

Шаблон обратной записи состоит из элемента WebMessage, в котором указывается имя шаблона, пул подключений и операторы SQL, необходимые для вставки и обновления записей в созданных таблицах и столбцах обратной записи. Когда разработчики контента включают табличное представление для обратной записи, они должны указать имя шаблона обратной записи, который будет использоваться для вставки и обновления записей в табличном представлении.

Требования к шаблону обратной записи

Шаблон обратной записи должен соответствовать следующим требованиям:

  • WebMessage: необходимо указать имя шаблона обратной записи с помощью атрибута name в элементе WebMessage.

    Чтобы обратная запись работала правильно, при включении ее в табличное представление разработчик контента должен указать имя шаблона обратной записи, который будет использоваться для вставки и обновления записей в представлении.

    В примере показан шаблон обратной записи под именем SetQuotaUseID.

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool: для соответствия требованиям безопасности необходимо указать пул подключений, а также команды SQL для вставки и обновления записей. Эти команды SQL ссылаются на значения, которые передаются в схеме обратной записи, чтобы сгенерировать инструкции SQL для изменения таблицы базы данных.

  • VALUES: на значения столбцов можно ссылаться по идентификатору столбца или по позиции столбца. Предпочтительнее использовать идентификатор столбца.

    Заключите значения строк и дат в одинарные кавычки. Одинарные кавычки не требуются для числовых значений.

    • Идентификатор столбца – идентификатор каждого столбца является буквенно-цифровым и генерируется случайным образом. Идентификаторы столбцов можно найти в определении XML анализа, которое доступно на вкладке Дополнительно редактора анализа. Например, значения идентификаторов столбцов могут быть следующими: @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      Если используется идентификатор столбца, обратная запись продолжает работать даже при изменении порядка столбцов.

      XML на вкладке "Дополнительно" редактора анализа

    • Положение столбца – нумерация положения столбцов начинается с 1. Например, значения положения столбцов могут быть следующими: @1, @3, '@5'

      Если порядок столбцов меняется, обратная запись больше не работает, и это причина, по которой идентификаторы столбцов предпочтительнее.

  • Необходимо включить в шаблон оба элемента: <insert> и <update>. Если не требуется включать команды SQL в элементы, то между открывающим и закрывающим тегами нужно вставить пробел. Например, необходимо ввести такой элемент:

    <insert> </insert>
    

    А не такой:

    <insert></insert>
    

    Если опустить пробел, появится сообщение об ошибке обратной записи, например "Система не может прочитать шаблон обратной записи 'my_template'".

  • Если тип данных параметра не является целым или вещественным числом, заключите его в одинарные кавычки. Если база данных не выполняет завершения транзакций автоматически, добавьте необязательный узел postUpdate после узлов insert и update, чтобы принудительно выполнить завершение транзакции. Узел postUpdate обычно следует этому примеру:

    <postUpdate>COMMIT</postUpdate>
    

Пример обратной записи файла шаблона с использованием синтаксиса идентификатора столбца

Файл шаблона обратной записи, ссылающийся на значения по идентификатору столбца, может выглядеть так:

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuotaUseID">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert>
            <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>

Пример обратной записи файла шаблона с использованием синтаксиса положения столбца

Файл шаблона обратной записи, который ссылается на значения по позиции столбца, может выглядеть так:

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuota">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert>
            <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>