Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление


Скачать 195.17 Kb.
Название Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление
Тип Руководство
rykovodstvo.ru > Руководство эксплуатация > Руководство
АВТОМАТИЗИРОВАННАЯ СИСТЕМА
РАСЧЕТОВ ЗА УСЛУГИ СВЯЗИ
«Fastcom»


версия 12

Руководство программиста.

Создание отчётов типа XML+XSLT.

Всего страниц -

Оглавление


Введение 3

Структура отчётов типа XML 4

Запросы и типы данных 4

Вложенные запросы 5

Сокращение выводимой информации 7

Применение XSLT 10

Атрибуты элементов 10

Заранее неизвестная структура вложенности 10

Печатные макеты 11

Деловая графика 12

Штрих-коды 12

Code128 12

Code39 13

EAN13 13

PDF417 13

QR 14

Выполнение из WEB-интерфейса пользователя АСР 14

Создание отчёта 15

Вызов XML-отчёта из собственных скриптов и внешних приложений 19

Формирование XML-схемы отчета 21



Введение



XML – Extended Markup Language – расширяемый язык разметки, предназначенный для представления структурированных данных. Является наследником языков разметки SGML и HTML. Текущая стандарт для версии 1.0 принят консорциумом W3C в 2008 году (http://www.w3.org/TR/2008/REC-xml-20081126/).

XML нашёл широкое применение, как универсальный формат обмена данными между различными программными системами, в том числе:

  • Контент-менеджера для Web-сайтов;

  • Конфигурационные файлы программного обеспечения;

  • CommerceML – единый формат обмена коммерческой информацией. Применяется в программных продуктах 1С для обмена каталогами, заказами и другими документами;

  • Системы документирования (DocBook и др.);

  • Язык разметки Web-страниц (XHTLM, более строгая версия языка HTML, использующая все правила XML);

  • Язык представления описания векторной графики SVG (Scalable Vector Graphics);

  • Представление документов в электронном виде в Федеральную Налоговую Службу (http://nalog.ru/otchet/el_vid/forms/forms5/);

и т.д.
Для преобразования данных, представленных в виде XML в другие форматы (XML и текстовые) разработано семейство рекомендаций под общим названием XSL (eXtensible Stylesheet Language), в которое входят:

  • XSLT (XSL Transformations) – язык преобразования XML-документов;

  • XSL-FO (XSL Formatting Objects) – язык разметки типографских макетов;

  • XPath – язык путей и выражений, используемый для доступа к отдельным частям XML-документов.


Настоящий документ описывает технологию формирования отчётов в формате XML, применяемую в АСР Fastcom, и предполагает наличие у разработчика отчётов базовых знаний о стандартах XML 1.0, XSLT 1.0. При отсутствии таких знаний рекомендуется ознакомиться со следующими материалами:

  • http://citforum.ru/internet/xml/ - Язык XML - практическое введение;

  • http://citforum.ru/internet/xslt/index.shtml– перевод стандарта XSLT на русский язык (не является официальным переводом).


Структура отчётов типа XML

Запросы и типы данных



Язык XML создан для представления структурированной информации, поэтому при разработке механизма генерации XML-отчётов в АСР Fastcom было уделено внимание структуре данных, но не их оформлению. Данные в формате XML представляются вложенными секциями, например:



ФЛ-2012/101

2012-05-20



Иван

Иванов




В АСР Fastcom каждая вложенная секция соответствует строке, возвращаемой простым запросом на языке SQL. Например, запрос
SELECT CODE, NAME FROM RF_T_SERVICE_KIND
Сгенерирует XML-файл примерно следующего содержания:


LL_TRAF_IN

Объём входящего трафика






SMS_INFO

SMS-оповещение


При генерации XML действуют следующие правила:

  1. Для каждой строки результата запроса создаётся секция, в проведённом примере - ;

  2. Наименования столбцов приводятся к нижнему регистру, и выводятся в виде отдельных элементов;

  3. Значения NULL выводятся в результирующий XML в сокращённой форме вида ;

  4. Допускается выводить в XML значения типа «строка» (VARCHAR2), «число» (NUMBER), «дата» (DATE), «отметка времени» (TIMESTAMP, TIMESTAMP WITH TIMEZONE, TIMESTAMP WITH LOCAL TIMEZONE). Значения форматируются в следующем виде:

    • Строка – как есть. Если в строке могут встречаться спецсимволы XML, такие как “<�”, “&” и т.д. – получившийся файл может быть некорректным. В таком случае Вам придётся позаботиться о преобразовании таких символов в допустимый для XML вид самостоятельно, например с помощью вызова RP_P_XML.X:


SELECT RP_P_XML.X(‘<&>’) “bad_data” FROM DUAL
Преобразование не производится автоматически исходя из соображений производительности. Также Вам предоставляется самостоятельно собрать корректные конструкции XML внутри значений столбцов. При необходимости Вы можете включить режим автоматического преобразования строк для всего запроса с помощью соответствующего поля формы ввода запроса;

  • Число преобразуется к формату FM9999999999999999999.9999999999999999. Если такой формат не подходит – выполните преобразование в подходящий формат самостоятельно, используя функцию Oracle TO_CHAR;

  • При работе со значениями типов DATE и TIMESTAMP в результирующий XML данные выводятся в формате ‘YYYY-MM-DDTHH24:MI:SS’ или ‘YYYY-MM-DDTHH24:MI:SS.FFFFTZH:TZM’, что соответствует принятому в стандарте XML Schema1 типу данных dateTime. Символ ‘T’ не распознаётся Oracle в качестве элемента формата данных, поэтому при подстановке значений во вложенные запросы (в виде выражений {ИМЯ}) используются более привычные для Oracle форматы: ‘YYYY-MM-DD HH24:MI:SS’ для DATE, ‘YYYY-MM-DD HH24:MI:SS.FFFF’ для TIMESTAMP и ‘YYYY-MM-DD HH24:MI:SS.FFFF TZR’ для TIMESTAMP WITH TIMEZONE и TIMESTAMP WITH LOCAL TIMEZONE. Значения TIMESTAMP WITH LOCAL TIMEZONE выводятся по текущей временной зоне сессии, формирующей отчёт.


Использование других типов данных приведёт к ошибке выполнения отчёта.

  1. Длина значения вместе с тегами и отступами не должна превышать 4000 символов.



Вложенные запросы



Для построения более сложных XML-отчётов применяются вложенные запросы, например для выгрузки всех объектов договоров по типам можно применить следующие запросы:
SELECT CODE, NAME FROM RF_T_OBJECT_TYPE
и подчинённый запрос
SELECT ID, IDENTIFER, HIST_FROM, HIST_TO, CONTRACT_ID

FROM CT_T_OBJECT

WHERE OBJECTTYPE_CODE=’{CODE}’
В результате получим XML-отчёт следующего вида:


PHONE

Телефон



1001

5553322

2006.02.01T00:00:00

2099.12.31T23:59:59

207





994

5557722

2008.04.15T00:00:00

2099.12.31T23:59:59

207







LLINE

Выделенная линия


Для каждой строки запроса, перечисляющего типы договоров, был выполнен вложенный запрос. Результаты выполнения вложенного запроса размещаются внутри соответствующей секции вышестоящего запроса. В приведённом выше примере для типа объекта PHONE подчинённый запрос выдал две строки, а для типа объекта LLINE – ни одной.

В подчинённом запросе использована конструкция {CODE}, с помощью которой подчинённых запрос сослался на результаты вышестоящего запроса. Значение каждого столбца результирующих строк запроса доступно в подчинённых запросах любого уровня вложенности через конструкцию {ИМЯ}. Подстановка значений выполняется непосредственно в текст запроса, поэтому для строковых значений необходимо заключать конструкцию {ИМЯ} в кавычки для соблюдения синтаксиса языка SQL. Например:
WHERE OBJECTTYPE_CODE=’{CODE}’
будет преобразовано в WHERE OBJECTTYPE_CODE=’LLINE’, что является синтаксически правильной конструкцией. Конструкция вида
WHERE OBJECTTYPE_CODE={CODE}
будет преобразована к виду WHERE OBJECTTYPE_CODE=LLINE. Если столбец LLINE не определён, выполнение запроса завершится с ошибкой. Если определён – запрос будет синтаксически-правильным, но будет выдавать не те данные, которые ожидает разработчик. Тем не менее, иногда может иметь смысл выбирать имена столбцов или таблицы источника данных, основываясь на параметрах отчёта или результатах выполнения вышестоящих запросов.

Часто для связи сущностей используются числовые или символьные идентификаторы, не несущие смысловой нагрузки. Так в вышеприведённом примере значение поля CODE может быть не интересно получателю отчёта, но для того, чтобы сослаться на его значение в подчинённом запросе приходится выводить его в результирующий XML. Чтобы этого избежать, достаточно переименовать столбец результатов, включив в его наименование знак ‘$’. Подсистема генерации XML-отчётов не выводит такие значения в результирующий XML, но позволяет пользоваться ими во вложенных запросах:
SELECT CODE “CODE$”, NAME FROM RF_T_OBJECT_TYPE;

SELECT IDENTIFER FROM CT_T_OBJECT WHERE OBJECTTYPE_CODE=’{CODE$}’;
Та же конструкция {ИМЯ} позволяет обращаться к параметрам вызова отчёта.
В том случае, если запрос имеет столбцы, имена которых совпадают с параметрами отчёта или именами столбцов вышестоящих запросов, то для вложенных запросов становятся доступны только эти значения. Например:

Отчёт параметрами CODE=’LLINE’, YEAR=’2012’
SELECT ‘ZZZ’ CODE, NAME FROM X WHERE X.CODE=’{CODE}’

-- здесь {CODE}=LLINE, {YEAR}=2012
SELECT PARENT, DESCRIPTION FROM Y WHERE CODE=’{CODE}’

-- здесь {CODE}=ZZZ, {YEAR}=2012
Из вложенного запроса нет возможности обратиться к исходному значению переопределённого параметра. При необходимости такого обращения создавайте псевдонимы для значений, например:
Отчёт параметрами CODE=’LLINE’, YEAR=’2012’
SELECT ‘ZZZ’ CODE, NAME, CODE P_CODE$ FROM X WHERE X.CODE=’{CODE}’

-- здесь {CODE}=LLINE, {YEAR}=2012
SELECT PARENT, DESCRIPTION FROM Y WHERE CODE=’{P_CODE$}’

-- здесь {CODE}=ZZZ, {YEAR}=2012, {P_CODE$}=LLINE

Сокращение выводимой информации



В вышеприведённом примере выводимые в отчёт секции object содержат идентификатор договора. Структура базы данных АСР Fastcom позволяет иметь на одном договоре множество объектов.

В случае, если необходимо каждому выводимому в отчёт объекту сопоставить информацию о договоре (дата, номер), можно использовать еще один вложенный запрос вида:
SELECT CONTRACT_NO, CONTRACT_DATE FROM CT_T_CONTRACT

WHERE ID=’{CONTRACT_ID}’
, но при этом информация о договоре, имеющем несколько объектов, будет выведена в отчёт несколько раз, что увеличит объём результирующего файла. Кроме того, вложенный запрос может быть затратным в вычислительном плане, и вычислять его с одними и теми же параметрами десятки раз – накладно.

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


  1. SELECT CODE$, NAME FROM RF_T_OBJECT_TYPE

    1. SELECT ID, IDENTIFER, HIST_FROM, HIST_TO,

RP_P_XML.MN(‘CONTRACT’,CONTRACT_ID) CONTRACT_ID

FROM CT_T_OBJECT WHERE OBJECTTYPE_CODE=’{CODE$}’

  1. SELECT ID, CONTRACT_NO, CONTRACT_DATE FROM CT_T_CONTRACT

WHERE ID IN ( SELECT DISTINCT COLUMN_VALUE FROM TABLE(RP_P_XML.RN(‘CONTRACT’)))

Вызов RP_P_XML.MN(NAME, VALUE) добавляет числовое значение VALUE в именованный список NAME. Значение NAME – любая строка длиной до 32 символов. Также существуют вызовы MS для строковых данных, MD для данных типа «дата», MT для данных TIMESTAMP, MZ для данных TIMESTAMP WITH TIME ZONE, ML для данных TIMESTAMP WITH LOCAL TIME ZONE.

Запрос “2.” Использует конструкцию SELECT COLUMN_VALUE FROM TABLE(RP_P_XML.RN(NAME)). Результатом такого запроса будут все числа, сохранённые в наборе NAME. К результатам допустимо применять любые операции SQL – сравнение, сортировка, объединение с другими таблицами и т.д.

Каждая из функций M<�тип данных> имеет аналогичную функцию R<�тип данных>, возвращающую содержимое именованного списка соответствующего тип данных.

Результатом выполнения отчёта, составленного из приведённых выше запросов, будет XML следующего вида:


PHONE

Телефон



1001

5553322

2006.02.01T00:00:00

2099.12.31T23:59:59

207





994

5557722

2008.04.15T00:00:00

2099.12.31T23:59:59

207





207

ЁЖ-2004/1002

2004.08.16T00:00:00


Функции R<�тип> имеют второй параметр, при указании в котором значения ‘Y’ после возврата значений списка будет выполнена его очистка. Таким образом Вы можете сделать областью видимости именованного списка один из подзапросов, например

  1. SELECT * FROM TABLE1

  1. SELECT RP_P_XML.MN(‘A’,ID), COUNT(ID) FROM TABLE2 WHERE X={Y}

  2. SELECT * FROM TABLE2 WHERE ID IN (SELECT COLUMN_NAME FROM RP_P_XML.RN(‘A’,’Y’))

Первый вызов запроса «a» запишет некоторые данные в именованный список ‘A’. Запрос «b» выберет данные из списка ‘A’, и очистит его. Следующий вызов запроса «a» (для следующей строки запроса «1») начнёт «с чистого листа». Если опустить второй параметр (‘Y’) у запроса «b», то второй вызов запроса «a» будет добавлять данные к уже имеющемся в сохранённом списке данным.

Применение XSLT



Настоящая глава не является учебником по XSLT, а только отвечает на вопросы «не получается сделать XML вот такого формата, как быть?».

Атрибуты элементов


Система генерации XML-отчётов не позволяет задавать атрибуты элементов в формате , но для некоторых форматов обмена это необходимо. Выполнить XSL-преобразование к такому виду очень просто. Шаблон











выполнит преобразование XML-элемента




value1

value2



к виду



Заранее неизвестная структура вложенности


Система генерации XML-отчётов в АСР Fastcom предполагает, что структура вложенности элементов известна заранее. Иногда бывает, что элемент может быть вложен в другой элемент такого-же типа неограниченное количество раз, например:



country

Россия



state

Свердловская область



city

Екатеринбург



zone

ВИЗ










Сгенерировать такой файл из АСР Fastcom непосредственно невозможно – сколько будет вложенных элементов неизвестно.

Для решения этой проблемы предлагается выгрузить элементы линейно, используя сохраняемые именованные наборы значений и/или конструкции SQL CONNECT BY PRIOR, снабдив элементы XML кодами привязки. Должен получиться XML следующего вида:



<id>100</</b>id>



country

Россия





200


100


state

Свердловская область





300


200


city

Екатеринбург


XSLT-конструкция вида












select=”../geo[parent = $cur]”/>




приведёт данные к желаемому виду.


Печатные макеты


Подсистема генерации отчётов АСР Fastcom умеет применять XSL-FO преобразование, используя библиотеку Apache FOP 2.1, распространяемую по лицензии Apache. Для получения файла в формате PDF необходимо предварительно выполнить XSL-преобразование в формат XSL-FO.

Преобразование может быть как создано вручную, так и с помощью сторонних WYSIWYG-редакторов, например Ecrion XF Designer.

( http://www.ecrion.com/products/xfdesigner/overview.aspx )

Подсистема генерации отчётов автоматически определяет необходимость применения Apache FOP к результатам XML-преобразования по расширению имени файла, задаваемому через параметр отчёта SPOOL_FILE. (Подробнее о параметрах отчётов в документе «Порядок администрирования отчётов.doc»). Если расширение имени файла есть PDF, RTF, PS, PNG, TIFF (Форматирование в RFT и TIFF с текущей версией Apache FOP не рекомендуется – результат неудовлетворительный), XSLT-преобразование отчёта должно в результате выдавать корректный файл FO, который будет обработан библиотекой Apache FOP и выведен в требуемый формат.

Деловая графика


При необходимости включения в отчёты деловой графики предлагается использовать векторную графику в формате SVG (http://www.w3.org/Graphics/SVG/). Формат является расширением XML, поэтому преобразование в него Ваших данных возможно выполнить за одно XSL-преобразование. Также SVG-графика может быть обработана библиотекой Apache FOP с преобразованием в PDF или PNG (растровый графический формат).

В каталоге FASTCOM_HOME/REP/XML/diagram приведены готовые XSL-преобразования, которые можно использовать в своих отчётах, и примеры их использования.

Штрих-коды


Для генерации штрих-кодов Fastcom Report Producer использует библиотеку Barcode4J (http://barcode4j.sourceforge.net). Все описанные в разделе примеры штрих-кодов реализованы в библиотеке Barcode4J2, а не в коде Fastcom Report Producer. Повлиять на форматы XML-конструкций, добавить какие-то поля и т.д. разработчики АСР Fastcom не имеют возможности.

В состав АСР Fastcom входит отчёт XML$BARCODES, демонстрирующий возможности по генерации штрих-кодов.

Для вставки штрих-кодов в отчёты, форматируемый Apache FOP, используйте следующие конструкции:

В «заголовок» XSLT-файла отчёта поместите следующее объявление:



xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:fo="http://www.w3.org/1999/XSL/Format"

xmlns:svg="http://www.w3.org/2000/svg"

xmlns:bar="http://barcode4j.krysalis.org/ns"

>
Для вставки штрих-кодов в документ используйте следующие конструкции:

Code128








8mm

0.21mm

ABC

10mw



bottom

Courier New

6pt








Code39








8mm

0.19mm

2.5

1mw

10mw

auto



bottom

Arial

6pt

__ __ __ __

false

false









EAN13




orientation="90">



20mm

0.33mm

10mw

auto



bottom

Arial

6pt









PDF417








0.352777mm

3mw

2

2

2

3

90

3

2mw

2mw

3.0







QR








1mm

4mw

UTF-8

Q






Выполнение из WEB-интерфейса пользователя АСР


В АСР Fastcom существуют два сервера отчётов:

  • Fastcom Report Dispatcher – приложение WIN32;

  • Fastcom Report Producer – кроссплатформенное Java-приложение.


WIN32-версия может выполнять отчёты XML и XSLT-преобразования, используя свободно-распространяемые библиотеки iconv, libxml2, libxslt и zlib. Эта версия не может выполнять преобразования FOP.

Java-версия может выполнять отчёты XML и XSLT-преобразования с использованием библиотеки Apache Xalan, и FOP-преобразования с использованеим библиотеки Apache FOP.

Программа REPORT$XML диспетчера отчётов содержит обращение к действию Apache FOP, поэтому выполнение XML-отчётов без Java-версии приложения Fastcom Report Producer невозможно. Если Вы не испытываете необходимости в применении FOP-преобразований, Вы можете удалить это действие из программы REPORT$XML, и в этом случае для выполнения обычных XML+XSLT-отчётов Java-версия не потребуется.

Создание отчёта


Процедура общего описания отчёта аналогична созданию любого другого отчёта:

  1. Создать отчёт в форме «Меню Fastcom/Администрирование/Отчёты/Отчёты».



  1. Установить тип отчёта – XML+XSLT.



При этом имя файла отчёта станет необязательным полем, и появится кнопка «Запросы XML».

  1. В поле «имя файла» ввести имя файла, содержащего таблицу стилей XSL-преобразования (программу преобразования). Файл должен находиться в каталоге FASTCOM_HOME/REP/XML.

  2. Нажать кнопку «Запросы XML», и создать корневой запрос для отчёта.



В поле «XML-элемент» ввести имя элемента для каждой строки запроса.
Правила разметки документов XML предполагают, что документ содержит один и только один корневой элемент, поэтому корневой запрос отчёта необходимо составить так, чтобы он выдавал одну и только одну строку результатов, например запрос
SELECT 1 IGNORE$ FROM DUAL
приведёт к выдаче единственной секции с именем (в данном случае) – report :



, внутри которой будут содержаться результаты выполнения остальных запросов.

Это также подходящее место для включения в результаты запроса копий значений входных параметров и/или общих для всего отчёта данных:
SELECT CURRENT_DATE GENERATED, ‘{REQUESTED_BY}’ AUTHOR FROM DUAL
сгенерирует XML-документ вида


2012-05-30T12:42:00

Иванов Иван Иванович


, где CURRENT_DATE – системная функция, возвращающая текущую дату, {REQUESTED_BY} – значение соответствующего параметра отчёта.
Поле «Экранировать» указывает необходимость обработки спецсимволов языка XML, которые могут встречаться в результатах запроса (символы <, >, &). Установка значения в «Да» приведет к автоматической замене этих символов ВО ВСЕХ СТРОКОВЫХ СТОЛБЦАХ запроса на соответствующие последовательности (<>&), и приведёт к некоторому снижению производительности, особенно заметному за простых запросах, выдающих большое количество строк.


  1. При необходимости ввести подчинённые запросы, использовав действие «Добавить подчинённый».



  1. В форме ввода отчёта, в поле «Запрос XML» выбрать созданный корневой запрос отчёта.

На основании одного запроса (дерева подчинённых запросов) можно построить множество отчётов, различающихся используемым стилем XSL-преобразования и/или значениями скрытых параметров.


  1. Сохранить отчёт, и ввести параметры его вызова:



Обязательным параметром для отчётов типа XML+XSLT является параметр SPOOL_FILE, задающий имя файла для вывода отчёта из «толстого» интерфейса Oracle Forms, и использующийся для вычисления расширения имени файла при формировании отчёта из «тонкого» Web-интерфейса пользователя АСР.

  1. Добавьте отчёт в необходимые группы и установите права пользователей на использование отчёта.


Вызов XML-отчёта из собственных скриптов и внешних приложений



XML-отчёты могут использоваться не только в интерактивном режиме, но и для выполнения из внешних программ и скриптов.

При выполнении отчёта в оперативной памяти Oracle Database создаются и используются структуры, используемые для хранения результатов вышестоящих запросов и именованных наборов значений. При запуске отчётов важно выполнять очистку этих областей памяти, в противном случае вы рискуете получить некорректные данные в отчёте или использовать слишком много ресурсов сервера на уже не нужные задачи.

Для выполнения XML-отчёта необходимо выполнить следующие действия:

  • Очистить контекст отчёта (области оперативной памяти), выполнив процедуру RP_P_XML.NS_RESET. Если соединение с Oracle создано только для выполнения одного XML-отчёта, то очистку контекста можно не выполнять.

  • Установить значения параметров отчёта, выполнив вызовы RP_P_XML.S(NAME, VALUE), где:

    • NAME – строка, имя параметра,

    • VALUE – строка, значение параметра.

  • Установить в контекст значение идентификатора корневого запроса XML-отчёта вызовом RP_P_XML.SET_QUERY_ID(P_ID), где P_ID – идентификатор запроса в таблице RP_P_XML_QUERY.

  • Выбрать строки отчёта из представления RP_V_XML_REPORT.

  • Очистить контекст отчёта для освобождения ресурсов - RP_P_XML.NS_RESET.


Пример скрипта, генерирующего XML-отчёт (для утилиты SQLPLUS):
-- уберём лишний вывод

set feed off term off ver off show off pau off

set pagesize 0

set linesize 0

set echo off

set trims on

set trim on

set newpage none

set underline off

BEGIN

-- очистка контекста

RP_P_XML.NS_RESET;

-- установка параметров

RP_P_XML.S(‘OWNER’,’1’);

RP_P_XML.S(‘CONTRACT_ID’,’12341’);

-- установим корневой запрос

RP_P_XML.SET_QUERY_ID(117);

END;

/
COL S FORMAT A4000
SPOOL result.xml

-- заголовок XML-файла

PROMPT
-- выберем строки отчёта

SELECT COLUMN_VALUE S FROM RP_V_XML_REPORT;
SPOOL off

QUIT
Из-за особенностей Oracle Database при возникновении ошибки в одном из вложенных запросов сообщение об ошибке в большинстве случаев будет содержать неактуальные данные, а именно код ошибки и никакой расшифровки.

Получить настоящий текст ошибки можно вызывав функцию RP_P_XML.GET_ERROR_TEXT, или выполнив отчёт RP_MESSAGES с параметром «подсистема АСР», установленным в XML REPORT.
Преобразование XSLT внутри Oracle Sever не выполняется. При необходимости воспользуйтесь утилитой H:\BIN\XML\xsltproc.exe или утилитой oraxsl из комплекта Oracle Database Server или Oracle Client.



Формирование XML-схемы отчета



Иногда для обмена данными с другими компаниями или работы с WYSIWYG-редакторами XML требуется описание структуры XML-файла, называемое XML Schema. АСР Fastcom предлагает отчёт с кодом XML_GENERATE_XSD, выполняющий генерацию схемы для XML-запроса, включая подчинённые запросы.

При работе отчёта выполняется разбор XML-запросов, при этом вместо параметров подставляются пустые строки. Следует писать XML-запросы так, чтобы они сохраняли синтаксическую правильность и без указания параметров, например в запросе:
SELECT CONTRACT_NO FROM CT_T_CONTRACT WHERE ID={CONTRACT_ID}
при обработке отчётом XML_GENERATE_XSD параметр {CONTRACT_ID} будет заменён на пустую строку. Получившийся запрос
SELECT CONTRACT_NO FROM CT_T_CONTRACT WHERE ID=
не является синтаксически корректным, и XML-схема для такого запроса не будет построена. При подстановке числовых значений безопасно добавлять лидирующий символ ‘0’, например так:
SELECT CONTRACT_NO FROM CT_T_CONTRACT WHERE ID=0{CONTRACT_ID}
при генерации схемы запрос будет оканчиваться вполне корректной с точки зрения языка SQL конструкцией WHERE ID=0, запрос будет проанализирован и схема составлена. При использовании запроса лидирующий ноль не внесёт изменения в поведение запроса: конструкция WHERE ID=0123 равносильна конструкции WHERE ID=123.
Сформированную отчётом схему следует рассматривать не как готовый продукт, а как шаблон для ручного редактирования, т.к. генератор не имеет полной информации о возможных результирующих данных, и не определяет ограничений на данные. Так, например, нет возможности автоматически выяснить, сколько строк вернёт тот или иной запрос – всегда одну, всегда больше одной, одну или ни одной и т.д. Неизвестно, может ли значение элемента быть NULL, быть только целым положительным, и т.д.

1 XML Schema – стандарт описания структуры XML-документов. Позволяет проверить корректность оформления XML-документа стандартными средствами, до загрузки документа в основное приложение. Описание стандарта: http://www.w3.org/standards/xml/schema

2 В текущей версии Fastcom Report Producer используется модифицированная версия библиотеки Barcode4J, т.к. при использовании «стандартной» версии библиотеки возникает конфликт по зависимостям с библиотекой Jasper Reports. Если Вы по каким-то причинам захотите заменить версию библиотеки Barcode4J на другую – приготовьтесь к тому, что её придётся собирать из исходных кодов с учётом других библиотек, используемых Fastcom Report Producer, и устранять «ошибки», появившиеся в Barcode4J из-за «неродных» версий библиотек.

Исходный код модифицированной библиотеки находится в %FATCOM_HOME%/SRC/fpr/gpl


Похожие:

Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Расчётов за услуги связи «Fastcom» версия 12 Руководство системного...
Автоматизированная система расчётов «Fastcom» версия 12, разработанная ООО «Форс-Центр разработки»
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Расчётов за услуги связи «Fastcom» версия 12 Руководство администратора...

Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Расчётов за услуги связи «Fastcom» версия 12 Руководство администратора...
Приложение Fastcom Report Producer – составная часть аср fastcom, предназначена для формирования отчётов по запросу пользователей...
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Расчётов за услуги связи «Fastcom» версия 12 Руководство администратора...
Оператор, участвующий в бизнес-процессах предприятия связи и использующий аср для реализации возложенных на него задач
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Расчетов за услуги связи «Fastcom» версия 12 Руководство системного...
Бпо – Базовое программное обеспечение программное обеспечение фирмы oracle, необходимое для функционирования ппо
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Оглавление
Услуги связи по передаче данных и телематические услуги связи, оказываемые по сетям фиксированной связи альтаир-тула
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Руководство пользователя оглавление
Данный документ описывает порядок и правила установки отчетов для пк мастер-Тур и отображения ссылок на печатные формы отчетов на...
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon М. Ю. Храмцов С. В. Шарф Руководство системного программиста (администратора)...
Руководство системного программиста (администратора) системы управления прохождением задач мвс-1000/7 (версия 1, RedHat)
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Инструкция по заполнению электронной формы «Шаблон part sr ncz data 18. xml»
Регламента финансовых расчетов на оптовом рынке электрической энергии (Приложения №16 к Договору о присоединении к торговой системе...
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Программа Миграционный учёт Версия 89 Руководство пользователя ©...
России. Основная область применения программы в гостиницах и организациях оказывающих гостиничные услуги, у юридических лиц, принимающих...
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Руководство программиста москва 2014 год аннотация в настоящем документе...
Директор Департамента инновационного развития Министерства экономического развития
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Руководство пользователя nsuts оглавление 1 Руководство пользователя...
Перейти на страницу регистрации можно либо по ссылке, данной вам организаторами, либо нажав на ссылку registration page на главной...
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Дистанционное Банковское Обслуживание Руководство пользователя Клиента...
Для обеспечения максимальной безопасности при передаче информации по каналам связи используются самые совершенные технологии, современные...
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Инструкция по эксплуатации ктс требования к эксплуатационному персоналу
«Fastcom» версии 12 (аср «Fastcom») и предназначен для руководства компании, планирующего эксплуатацию комплекса на предприятии
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon Реферат Аннотация : в дипломной работе на базе платформы 1С будет...
Создание автоматизированной информационной системы «Свод отчетов» для уво при гувд пермского края
Расчетов за услуги связи «Fastcom» версия 12 Руководство программиста. Создание отчётов типа xml+xslt. Всего страниц Оглавление icon 1. Формирование xml-файла межевого плана по 4 схеме
В соответствии с Приказом Росреестра от 25. 06. 2013 г. № П/237 с 26. 08. 2013 г введена в действие четвертая версия xml-схемы (V04...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск