...
- Python:
- Ruby on Rails:
- PHP:
ais_name |
---|
...
Представления называются по стандартной схеме: <префикс>_V_<код>[_<постфикс>]
(пример: SI_V_SUBJECTS
). Справочник префиксов см. в разделе «Работа с хранимыми процедурами» — он является общим для пакетов и представлений. Постфиксы бывают следующие:
Постфикс | Пример | Примечание |
---|---|---|
JR |
| Расширенное представление (используется, например, в интерфейсе для реестров и журналов). Может присутствовать одновременно со стандартным и/или упрощенным |
SIMPLE |
| Упрощенное представление. Может присутствовать одновременно со стандартным и/или расширенным |
C |
| Как правило, обозначает состав (множество строк) документа |
T |
| Как правило, обозначает заголовочную часть (шапку) документа, специфичную для данного типа документа. |
Поля (columns) представления именуются в венгерской нотации: <префикс>_<код>
(пример: VC_NAME
). Если поле содержит идентификатор какой-либо сущности, то его наименование оканчивается на ID
(пример: N_USER_ID
— идентификатор абонента).
Стандартные префиксы для наименования полей в представлениях:
Префикс | Тип данных | Пример | Примечание |
---|---|---|---|
N | NUMBER |
| Тип |
VC | VARCHAR2 |
| Для текстовых полей с максимальной длиной 4000 байт |
D | DATE |
| Дата (с точностью до секунды) |
C | CHAR |
| Как правило, используется для хранения логических признаков и принимает значения |
CL | CLOB |
| Для текстовых полей неограниченной длины |
BL | BLOB |
| Для бинарных полей неограниченной длины |
Наименование поля или представления может любым, однако значительная часть их имеет стандартные наименования, связанные с основными сущностями, хранящимися в
ais_name |
---|
Наименование | Полное обозначение | Краткое обозначение | Пример | Расшифровка примера |
---|---|---|---|---|
Документ | DOCUMENT | DOC |
| Идентификатор документа |
Договор | CONTRACT | — |
| Идентификатор договора (договор является частным случаем документа) |
Схема докуметооборота | WORKFLOW | WFLOW |
| Идентификатор схемы документа |
Субъект учёта (СУ) | SUBJECT | SUBJ |
| Идентификатор СУ |
Фирма (организация) | FIRM | — |
| Идентификатор фирмы - организации, как правило, оказывающей услуги |
Объект учёта (ОУ) | OBJECT | OBJ |
| Идентификатор ОУ |
Абонент | USER | — |
| Идентификатор абонента (абонент также является субъектом учёта) |
Адрес | ADDRESS | ADDR |
| Идентификатор адреса (обычный адрес, IP-адрес, телефонный номер и т.д.) |
Счёт | ACCOUNT | ACC |
| Идентификатор счёта |
Валюта | CURRENCY | CURR |
| Идентификатор валюты (из справочника валют) |
Сетевая служба | SERVICE | SERV |
| Идентификатор сетевой службы (сетевая служба также является объектом учета) |
Единица измерения | UNIT | — |
| Идентификатор единицы измерения (из справочника единиц измерения) |
Справочная позиция | — | REF |
| Идентификатор произвольной записи из справочника |
Позиция номенклатуры | GOOD | — |
| Идентификатор позиции номенклатуры |
Регион | REGION | — |
| Идентификатор региона |
Доп. параметр | VALUE(S) | — |
| Идентификатор дополнительного параметра документа |
Запись о сеансе связи | — | CDR |
| Идентификатор CDR (записи о сеансе связи) |
Задание | JOB | — |
| Идентификатор задания |
Существуют также наименования полей и представлений, содержащие указания одновременно на несколько сущностей. Такая запись обозначает связь между ними. Примеры:
Наименование | Тип | Расшифровка |
---|---|---|
| Представление | Привязка абонентов к сетевым службам |
| Представление | Роли СУ в документах |
| Представление | Привязка счетов к СУ |
| Представление | Связи документов с документами |
| Поле | Идентификатор привязки документа к документу |
| Представление | Связи адресов с адресами |
| Поле | Идентификатор привязки одного адреса к другому |
| Представление | Дополнительные параметры СУ |
| Поле | Идентификатор дополнительного параметра СУ |
Кроме того, существуют и другие распространенные стандартные обозначения:
Наименование | Пример обозначения | Примечание |
---|---|---|
Код (краткое наименовение) |
| Краткое наименование сущности, как правило, уникально идентифицирующее её. Используется практически во всех сущностях системы. |
Имя (полное наименовение) |
| Полное наименование сущности. Используется практически во всех сущностях системы. |
Тип сущности |
| Если наименование поля содержит |
Номер |
| Порядковый номер чего-либо (например, номер строки в документе). Как правило, используется для сортировки при выводе. |
Примечание (комментарий) |
| Используется в большинстве сущностей системы для хранения дополнительной текстовой информации |
Дата начала |
| Используется для хранения даты начала некоторого периода времени. Может быть как со временем суток, так и без него |
Дата окончания |
| Используется для хранения даты окончания некоторого периода времени. Может быть как со временем суток, так и без него |
Дата операции |
| Как правило, обозначает дату совершения финансовой операции. Может быть как со временем суток, так и без него |
Идентификатор строки |
| Используется для идентификации строки состава документа или вообще строки в некоторой таблице |
Идентификатор родительской строки |
| Используется для ссылки на родительскую строку документа в двухуровневых документах |
Сумма |
| Сумма (как правило, сумма денежных средств с учётом налогов) |
Сумма налогов |
|
|
Сумма без налогов |
|
|
Количество |
| Как правило, количество товара или объем услуги. Обычно присутствует вместе с указанием единицы измерения ( |
Значение |
| Используется для хранения некоторого значения, имеющего заранее неизвестный характер (например, доп. параметр) |
Anchor | ||||
---|---|---|---|---|
|
...
Стандартные префиксы для названий пакетов (также являются стандартными и для представлений):
Префикс | Пример | Примечание |
---|---|---|
ACC |
| Взаимодействие с бухгалтерским программным обеспечением (БПО) |
AP |
| Функциональность, специфическая для приложений (личный кабинет и т.д.) |
EX |
| Взаимодействие с внешними системами (AAA, телефония, LDAP, DHCP и т.д.) |
RPT |
| Представления для отчетов |
SI |
| Работа с СУ, ОУ, базовыми справочниками |
SD |
| Работа с документами |
SR |
| Работа со справочниками номенклатуры и регионов |
SS |
| Системные пакеты и представления |
Вызов хранимой процедуры состоит из двух частей — <наименование пакета>.<наименование процедуры>
.
Аргументы процедуры в
ais_name |
---|
Префикс | Тип данных | Пример | Примечание | |
---|---|---|---|---|
num | NUMBER |
| Тип | |
vch | VARCHAR2 |
| Для текстовых полей с максимальной длиной 4000 байт | |
dt | DATE |
| Дата (с точностью до секунды) | |
b | CONST.BOOL |
|
NUMBER со значениями 0 или 1 | |
clb | CLOB |
| Для текстовых полей неограниченной длины | |
blb | BLOB |
| Для бинарных полей неограниченной длины | |
rc | RECORD |
| Структура. Как правило, поля соответствуют строке таблицы БД. | |
tbl | Nested table |
| Массив данных (PL/SQL collection) |
Язык PL/SQL позволяет вызывать процедуры с именованными аргументами (см. примеры ниже). Этим можно и нужно пользоваться. Разработчики
ais_name |
---|
...
Все используемые системой константы описаны в специальном сервисном пакете SS_CONSTANTS_PKG_S
, а (публичный синоним CONST
). Этот же пакет содержит функцию GET_CONST
, возвращающую значение константы по ее коду. Все константы также доступны в глобальном контексте CONST
и в представлении SS_V_CONSTANTS
.Для передачи констант в качестве значения аргумента хранимой процедуры
В PL/SQL-коде для передачи значений констант рекомендуется использовать обращение через пакет:
CONST.<код константы>
...
Code Block language sql title Пример использования констант в PL/SQL BEGIN -- Аннулировать документ с идентификатором 1577736201 SD_DOCUMENTS_PKG.SD_DOCUMENTS_CHANGE_STATE ( num_N_DOC_ID => 1577736201, num_N_New_DOC_STATE_ID => CONST.DOC_STATE_Canceled); END;
Для SQL-запросов
...
, которые выполняются вне PL/SQL, рекомендуется использовать функцию
CONST.GET_CONST('<код константы>')
: она возвращает числовое (типNUMBER
) значение константы и в случае ошибки в названии константы вызывает исключение видаPLS-00302: component 'DOC_TYPE_CHARGEDOG' must be declared
.Code Block language sql title Пример использования констант в SQL через функцию CONST.GET_CONST -- Подсчитать количество актуальных
...
актов начислений в системе SELECT COUNT(*) FROM SD_V_DOCUMENTS WHERE N_DOC_TYPE_ID =
...
CONST.GET_
...
CONST(
...
'
...
DOC_TYPE_
...
ChargeLog')
...
AND N_DOC_STATE_ID =
...
CONST.GET_
...
CONST('DOC_STATE_Actual');
Также в SQL-запросах можно применять обращение через контекстSYS_CONTEXT('CONST',
...
'<код константы>')
...
. Обратите внимание, функция
SYS_CONTEXT
...
всегда возвращает строковое значение. Чтобы при ее использовании не столкнуться с проблемами преобразования типов, результат
...
следует явно приводить к числовому
...
типу с помощью функции
TO_NUMBER
. Передача в данную функцию некорректного кода константы не приведёт к ошибке: в таком случае она возвращаетNULL
.Code Block language sql title Пример использования констант в SQL через функцию SYS_CONTEXT -- Подсчитать количество актуальных актов начислений в системе SELECT COUNT(*) FROM SD_V_DOCUMENTS WHERE N_DOC_TYPE_ID = TO_NUMBER(SYS_CONTEXT('CONST', 'DOC_TYPE_ChargeLog')) AND N_DOC_STATE_ID = TO_NUMBER(SYS_CONTEXT('CONST', 'DOC_STATE_Actual'));
Приложения, постоянно взаимодействующие с
ais_name |
---|
...
Code Block | ||
---|---|---|
| ||
BEGIN SS_AUTHENTICATION_PKG.LOGIN( vch_VC_IP => '127.0.0.1', -- IP-адрес, с которого выполняется вход в систему vch_VC_LOGIN => 'Payment_RPC', -- Логин пользователя АСР «Гидра» на приложение vch_VC_PASSWORD => 'secret123', -- Пароль пользователя на приложение vch_VC_APP_CODE => 'NETSERV_HID', -- Код приложения в АСР «Гидра» vch_VC_CLN_APPID => 'my app info'); -- Информационная строка приложения (название, версия и т. д.) ); END; |
Если не вызвать эту процедуру в начале работы, то другие процедуры могут выполняться некорректно или выдавать ошибки.
...
Code Block | ||
---|---|---|
| ||
BEGIN SS_AUTHENTICATION_PKG.SWITCH_CONTEXT( vch_VC_CLN_SESSIONID => 'my external id'); EXCEPTION WHEN ERRORS_PKG_S.SESSION_DOES_NOT_EXIST OR ERRORS_PKG_S.SESSION_CLOSED OR ERRORS_PKG_S.MULTIPLE_SESSIONS THEN SS_AUTHENTICATION_PKG.LOGIN( vch_VC_IP => '127.0.0.1', vch_VC_LOGIN => 'rpc', vch_VC_PASSWORD => 'password', vch_VC_APP_CODE => 'NETSERV_HID', vch_VC_CLN_SESSIONID => 'my external id', vch_VC_CLN_APPID => 'my app info'); END; / |
В версии 5.0 коды и определения ошибок перенесены в специальный пакет ERRORS_PKG_S из SS_AUTHENTICATION_PKG.
...