Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Основной прикладной программный интерфейс

ais_name
выполнен в виде набора PL/SQL пакетов (packages) СУБД Oracle 11g (10g). Чтобы использовать данный API, необходимо установить Oracle Instant Client (версии Basic или Basic Light подойдут). После этого нужно настроить файл tnsnames.ora для подключения к БД.

...

ais_name
не предоставляет приложениям возможности прямого доступа к таблицам БД. Для извлечения информации из БД используются представления (views) и процедуры сервисных пакетов, а для добавления, модификации и удаления — только хранимые процедуры. Описание для версии 3.1 — plsqldoc_v3.1.zip, для версии 3.2 — plsqldoc_v3.2.zip, для 3.3 и последующих версий находится на Программная документация расположена во вложенных в данный раздел страницах. Документация генерируется автоматически на основании заголовков PL/SQL-пакетов в БД. Самая актуальная версия ее всегда находится в БД работающей у вас системы. Для ее просмотра достаточно установить, например, Oracle SQL Developer, подключиться к БД и в ней посмотреть заголовки пакетов (packages). В БД все объявления процедур, типов данных имеются в открытом виде. Также доступны представления (views) в исходном коде.

...

Представления называются по стандартной схеме: <префикс>_V_<код>[_<постфикс>] (пример: SI_V_SUBJECTS). Справочник префиксов см. в разделе «Работа с хранимыми процедурами» — он является общим для пакетов и представлений. Постфиксы бывают следующие:

...

Наименование поля или представления может любым, однако значительная часть их имеет стандартные наименования, связанные с основными сущностями, хранящимися в АСР

ais_name
:

Наименование

Полное обозначение

Краткое обозначение

Пример

Расшифровка примера

Документ

DOCUMENT

DOC

N_DOC_ID

Идентификатор документа

Договор

CONTRACT

N_CONTRACT_ID

Идентификатор договора (договор является частным случаем документа)

Схема докуметооборота

WORKFLOW

WFLOW

N_WORKFLOW_ID

Идентификатор схемы документа

Субъект учёта (СУ)

SUBJECT

SUBJ

N_SUBJECT_ID

Идентификатор СУ

Фирма (организация)

FIRM

N_FIRM_ID

Идентификатор фирмы - организации, как правило, оказывающей услуги

Объект учёта (ОУ)

OBJECT

OBJ

N_OBJECT_ID

Идентификатор ОУ

Абонент

USER

N_USER_ID

Идентификатор абонента (абонент также является субъектом учёта)

Адрес

ADDRESS

ADDR

N_ADDRESS_ID

Идентификатор адреса (обычный адрес, IP-адрес, телефонный номер и т.д.)

Счёт

ACCOUNT

ACC

N_ACCOUNT_ID

Идентификатор счёта

Валюта

CURRENCY

CURR

N_CURRENCY_ID

Идентификатор валюты (из справочника валют)

Сетевая служба

SERVICE

SERV

N_SERVICE_ID

Идентификатор сетевой службы (сетевая служба также является объектом учета)

Единица измерения

UNIT

N_UNIT_ID

Идентификатор единицы измерения (из справочника единиц измерения)

Справочная позиция

REF

N_REF_ID

Идентификатор произвольной записи из справочника

Позиция номенклатуры

GOOD

N_GOOD_ID

Идентификатор позиции номенклатуры

Регион

REGION

N_REGION_ID

Идентификатор региона

Доп. параметр

VALUE(S)

N_DOC_VALUE_ID

Идентификатор дополнительного параметра документа

Запись о сеансе связи

CDR

N_CDR_ID

Идентификатор CDR (записи о сеансе связи)

Задание

JOB

N_JOB_ID

Идентификатор задания

...

Пакеты называются по стандартной схеме: <префикс>_<код>_PKG для обычных пакетов (пример: SI_SUBJECTS_PKG) и <префикс>_<код>_PKG_S — для сервисных (пример: SI_SUBJECTS_PKG_S).

...

Вызов хранимой процедуры состоит из двух частей — <наименование пакета>.<наименование процедуры>.

Аргументы процедуры в АСР "Гидра"

ais_name
, так же, как и поля в представлениях, именуются в венгерской нотации — префикс наименования аргумента обозначает его тип данных. Таблица соответствия:

Префикс

Тип данных

Пример

Примечание

num

NUMBER

num_N_SUBJECT_ID

Тип NUMBER используется в АСР для всех внутренних идентификаторов

vch

VARCHAR2

vch_VC_CODE

Для текстовых полей с максимальной длиной 4000 байт

dt

DATE

dt_D_BEGIN

Дата (с точностью до секунды)

b

MAIN.BOOL

b_DisableTriggers

MAIN.BOOL — собственный тип данных АСР

ais_name
. Фактически — NUMBER со значениями 0 или 1

clb

CLOB

clb_CL_PRICE_ORDER

Для текстовых полей неограниченной длины

blb

BLOB

blb_BL_FILE

Для бинарных полей неограниченной длины

rc

RECORD

rc_SUBJECT

Структура. Как правило, поля соответствуют строке таблицы БД.

tbl

Nested table

tbl_USER_SERVS

Массив данных (PL/SQL collection)

Язык PL/SQL позволяет вызывать процедуры с именованными аргументами (см. примеры ниже). Этим можно и нужно пользоваться. Разработчики

ais_name
стараются, по возможности, сохранять обратную совместимость, но при добавлении новых аргументов в объявление процедуры порядок их следования не сохраняется. Вызов процедуры с именованными аргументами позволяет сохранить обратную совместимость, так как в этом случае порядок их передачи не имеет значения.

...

Помимо встроенного механизма исключений Oracle, АСР "Гидра"  

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

...

Code Block
sql
sql
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;

...

Приложения, постоянно взаимодействующие с АСР «Гидра»

ais_name
, в целях ускорения работы и сокращения нагрузки на БД могут загружать (кэшировать) сразу все константы при инициализации. Для этого нужно сделать следующий запрос:

...

Начало работы

Для корректной работы в АСР «Гидра» в 

ais_name
после установления соединения с Oracle приложение должно вызвать процедуру MAIN.INIT. Пример:

...