Общая информация
API АСР "Гидра" Прикладной программный интерфейс АСР «Гидра» выполнен в виде набора PL/SQL пакетов (packages) СУБД Oracle 10g. Чтобы использовать API, необходимо установить Oracle Instant Client (версии Basic или Basic Light подойдут. После этого нужно настроить файл tnsnames.ora
для подключения к БД.
...
С точки зрения клиентского приложения, работа с представлением аналогична работе с обычной RDBMS-таблицей с помощью языка SQL. В АСР «Гидра» из представлений можно делать только выборки (SELECT-запросы); , а DDL-операции (запросы INSERT, UPDATE) не разрешаются.
Wiki Markup |
---|
Представления называются по стандартной схеме: {{<префикс>\_V\_<код>\[\_<постфикс>\]}} (пример: {{SI_V_SUBJECTS}}). Справочник префиксов см. в разделе «Работа с хранимыми процедурами» --- он является общим для пакетов и представлений. Постфиксы бывают следующие: |
Постфикс | Пример | Примечание |
---|---|---|
JR | | Расширенное представление (используется, например, в интерфейсе для реестров и журналов). Может присутствовать одновременно со стандартным и/или упрощенным |
SIMPLE | | Упрощенное представление. Может присутствовать одновременно со стандартным и/или расширенным |
C | | Как правило, обозначает состав (строки) документа |
T | | Как правило, обозначает заголовочную часть (шапку) документа, специфичную для данного типа документа. |
Поля (columns) представления именуются в венгерской нотации: <префикс>_<код>
(пример: VC_NAME
). Если поле содержит идентификатор какой-либо сущности, то его наименование оканчивается на ID
(пример: N_USER_ID
— идентификатор абонента).
...
Наименование | Полное обозначение | Краткое обозначение | Пример | Расшифровка примера |
---|---|---|---|---|
Документ | DOCUMENT | DOC | | Идентификатор документа |
Договор | CONTRACT | — | | Идентификатор договора (договор является частным случаем документа) |
Схема докуметооборота | WORKFLOW | WFLOW | | Идентификатор схемы документа |
Субъект учёта (СУ) | SUBJECT | SUBJ | | Идентификатор СУ |
Фирма (организация) | FIRM | — | | Идентификатор фирмы - организации, как правило, оказывающей услуги |
Объект учёта (ОУ) | OBJECT | OBJ | | Идентификатор ОУ |
Абонент | USER | — | | Идентификатор абонента (абонент также является субъектом учёта) |
Роль | ROLE | — | | Идентификатор роли СУ (ОУ, адреса) в документе |
Адрес | ADDRESS | ADDR | | Идентификатор адреса (обычный адрес, IP-адрес, телефонный номер и т.д.) |
Счёт | ACCOUNT | ACC | | Идентификатор счёта |
Валюта | CURRENCY | CURR | | Идентификатор валюты (из справочника валют) |
Сетевая служба | SERVICE | SERV | | Идентификатор сетевой службы (сетевая служба также является объектом учета) |
Единица измерения | UNIT | — | | Идентификатор валюты (из справочника единиц измерения) |
Справочная позиция | — | REF | | Идентификатор произвольной записи из справочника |
Позиция номенклатуры | GOOD | — | | Идентификатор позиции номенклатуры |
Регион | REGION | — | | Идентификатор региона |
Запись о сеансе связи | — | CDR | | Идентификатор CDR (записи о сеансе связи) |
Задание | JOB | — | | Идентификатор задания |
Существуют также наименования полей и представлений, содержащие указания одновременно на несколько сущностей. Это означает связь между ними. Примеры:
Наименование | Тип | Расшифровка |
---|---|---|
| Представление | Привязка абонентов к сетевым службам |
| Представление | Роли СУ в документах |
| Представление | Привязка счетов к СУ |
| Представление | Связи документов с документами |
| Поле | Идентификатор привязки документа к документу |
| Представление | Связи адресов с адресами |
| Поле | Идентификатор привязки одного адреса к другому |
...
Наименование | Пример обозначения | Примечание |
---|---|---|
Код (краткое наименовение) | | Краткое наименование сущности, как правило, уникально идентифицирующее её. Используется практически во всех сущностях системы. |
Имя (полное наименовение) | | Полное наименование сущности. Используется практически во всех сущностях системы. |
Тип сущности | | Если наименование поля содержит |
Номер | | Порядковый номер чего-либо (например, номер строки в документе). Как правило, используется для сортировки при выводе. |
Примечание (комментарий) | | Используется в большинстве сущностей системы для хранения дополнительной текстовой информации |
Дата начала | | Используется для хранения даты начала некоторого периода времени. Может быть как со временем суток, так и без него |
Дата окончания | | Используется для хранения даты окончания некоторого периода времени. Может быть как со временем суток, так и без него |
Дата операции | | Как правило, обозначает дату совершения финансовой операции. Может быть как со временем суток, так и без него |
Идентификатор строки | | Используется для идентификации строки состава документа или вообще строки в некоторой таблице |
Идентификатор родительской строки | | Используется для идентификации родительской строки документа в двухуровневых документах |
Сумма | | Сумма (как правило, сумма денежных средств с учётом налогов) |
Сумма налогов | |
|
Сумма без налогов | |
|
Количество | | Как правило, количество товара или объем услуги. Обычно присутствует вместе с указанием единицы измерения ( |
Значение | | Используется для хранения некоторого значения, имеющего заранее неизвестный характер (например, доп. параметр) |
...
Пакеты называются по стандартной схеме: <префикс>_<код>_PKG
для обычных пакетов (пример: SI_SUBJECTS_PKG
) и <префикс>_<код>_PKG_S
— для сервисных (пример: SI_SUBJECTS_PKG_S
).
Стандартные префиксы для названий пакетов (также являются стандартными и для представлений):
Префикс | Пример | Примечание |
---|---|---|
ACC | | Взаимодействие с бухгалтерским программным обеспечением (БПО) |
AP | | Функциональность, специфическая для приложений (личный кабинет и т.д.) |
EX | | Взаимодействие с внешними системами (AAA, телефония, LDAP, DHCP и т.д.) |
RPT | | Представления для отчетов |
SI | | Работа с СУ, ОУ, базовыми справочниками |
SD | | Работа с документами |
SR | | Работа со справочниками номенклатуры и регионов |
SS | | Системные пакеты и представления |
Вызов хранимой процедуры состоит из двух частей — <наименование пакета>.<наименование процедуры>
.
...
Code Block |
---|
DELETE FROM TT_MESSAGE_LOGS; |
Константы
При использовании представлений и хранимых процедур часто необходимо использовать предопределенные константы. Обычно они применяются для указания типа и состояния документов, СУ или ОУ, указания единицы измерения, ставки налога и т.д. Константа состоит из кода и значения (почти всегда значение числовое).
Все используемые системой константы описаны в специальном сервисном пакете SS_CONSTANTS_PKG_S
, а также доступны в глобальном контексте CONST
и в представлении SS_V_CONSTANTS
.
Для передачи констант в качестве значения аргумента хранимой процедуры рекомендуется использовать обращение через пакет: SS_CONSTANTS_PKG_S.<код константы>
. Пример:
Code Block |
---|
BEGIN
-- Аннулировать документ с идентификатором 1577736201
SD_DOCUMENTS_PKG.SD_DOCUMENTS_CHANGE_STATE (
num_N_DOC_ID => 1577736201,
num_N_New_DOC_STATE_ID => SS_CONSTANTS_PKG_S.DOC_STATE_Canceled);
END; |
Для SQL-запросов к представлениям необходимо применять обращение через контекст: SYS_CONTEXT('CONST', '<код константы>')
. Пример:
Code Block |
---|
-- Подсчитать количество актуальных инвойсов в системе
SELECT COUNT(*)
FROM SD_V_DOCUMENTS
WHERE N_DOC_TYPE_ID = SYS_CONTEXT('CONST', 'DOC_TYPE_Invoice')
AND N_DOC_STATE_ID = SYS_CONTEXT('CONST', 'DOC_STATE_Actual'); |