Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

Назначение

Плагин db в hid предназначен для удаленной работы с ядром АСР "Гидра". Он позволяет выполнять хранимые процедуры и делать SQL-выборки из БД без установки непосредственного соединения с ней.

Принцип работы

Для работы с hid используется протокол XML-RPC или SOAP.

Все хранимые процедуры СУБД отображаются в названия методов напрямую (например, для процедуры SI_USERS_PKG.SI_USERS_PUT используется соответствующий метод плагина SI_USERS_PKG.SI_USERS_PUT). В качестве аргумента методов хранимых процедур следует передавать структуру (хэш, словарь) с параметрами ее вызова. Методы хранимых процедур возвращают структуры переданных параметров, но с измененными во время выполнения значениями (например, если передавать в процедуру SI_USERS_PKG.SI_USERS_PUT в качестве значения num_N_USER_ID NULL, то на "выходе" процедуры в качестве значения num_N_USER_ID будет идентификатор созданного абонента).

Для получения выборок из БД следует использовать специальный метод SELECT(query, page_num), где query — SQL-запрос данных из БД, page_num — номер страницы результата (по умолчанию — 1). Для снижения нагрузки на БД выборки делаются постранично, т.е. весь результат запроса разбивается на страницы определенного размера (размер задается в конфиге hid). Если в качестве page_num передан 0, делается выборка без разбиения на страницы (при условии, что это разрешено в конфиге hid).

Метод SELECT возвращает структуру (хэш, словарь) следущего содержания:

{
  'RecordsNumber' => RecordsNumber,
  'PagesNumber'   => PagesNumber,
  'SelectResult'  => SelectResult,
}
  • RecordsNumber — количество записей результата выборки;
  • PagesNumber — количество страниц результата выборки;
  • SelectResult — список (массив) записей. Каждая запись представляется еще одним списком, элементы которого соответствуют выбираемым полям таблицы. Все числовые поля таблиц из БД представляются в виде строк.

Параметры конфига hid

  • db select page size — размер страницы выборки. По умолчанию — 20.
  • db allow unlimited select — флаг разрешения выборок без ограничения (on или off). По умолчанию — off.

Примеры

Физические лица

Получение списка физических лиц

SELECT("SELECT * FROM SI_V_PERSONS_JR")

Получение информации о физическом лице

SELECT("SELECT * FROM SI_V_PERSONS_JR WHERE N_PERSON_ID = <num_N_PERSON_ID>")
  • num_N_PERSON_ID — идентификатор физ. лица.

Редактирование (создание) физического лица

SI_PERSONS_PKG.SI_PERSONS_PUT({
  'num_N_PERSON_ID'        => num_N_PERSON_ID,
  'vch_VC_SURNAME'         => 'Шварценгольд',
  'vch_VC_SECOND_NAME'     => 'Викторович',
  'ch_C_SEX'               => 'M',
  'num_N_SUBJ_GROUP_ID'    => 49001,
  'vch_VC_INN'             => '1234567891',
  'num_N_DOC_AUTH_TYPE_ID' => 2015,
  'vch_VC_DOC_SERIAL'      => '01 06',
  'vch_VC_DOC_NO'          => '489635',
  'dt_D_DOC'               => DATE('24.01.2009', 'DD.MM.YYYY'),
  'vch_VC_DOCUMENT'        => 'Отделением по району Царицыно ОУФМС России по г. Москве в ЮАО',
  'dt_D_BIRTH'             => DATE('20.03.1955', 'DD.MM.YYYY'),
  'vch_VC_BIRTH_PLACE'     => 'г. Москва',
  'num_N_SUBJ_STATE_ID'    => 2011,
  'num_N_CITIZENSHIP_ID'   => 21101,
})
  • num_N_PERSON_ID — идентификатор физ. лица. Если равен NULL — производится создание, иначе — редактирование
  • num_N_SUBJ_GROUP_ID — идентификатор группы физ. лиц (представление SI_V_SUBJ_GROUPS)
  • num_N_DOC_AUTH_TYPE_ID — идентификатор типа документа, удостоверяющего личность (справочник REF_TYPE_Document)
  • num_N_SUBJ_STATE_ID — идентификатор состояния СУ (справочник REF_TYPE_Subject_State, SYS_CONTEXT('CONST', 'SUBJ_STATE_On') == 2011)
  • num_N_CITIZENSHIP_ID — идентификатор региона гражданства

Удаление физического лица

SI_PERSONS_PKG.SI_PERSONS_DEL({
  'num_N_PERSON_ID' => num_N_PERSON_ID,
})
  • num_N_PERSON_ID — идентификатор физ. лица.

Юридические лица

Получение списка юридических лиц

SELECT("SELECT * FROM SI_V_COMPANIES_JR")

Получение информации о юридическом лице

SELECT("SELECT * FROM SI_V_COMPANIES_JR WHERE N_COMPANY_ID = <num_N_COMPANY_ID>")
  • num_N_COMPANY_ID — идентификатор юр. лица.

Редактирование (создание) юридического лица

SI_COMPANIES_PKG.SI_COMPANIES_PUT({
  'num_N_COMPANY_ID'    => num_N_COMPANY_ID,
  'num_N_OPF_ID'        => 1041,
  'num_N_REGION_ID'     => 21301,
  'vch_VC_CODE'         => 'Вектор',
  'vch_VC_INN'          => '1234567891',
  'vch_VC_OGRN'         => '12345',
  'num_N_SUBJ_STATE_ID' => 2011,
  'num_N_SUBJ_GROUP_ID' => 196401,
})
  • num_N_COMPANY_ID — идентификатор юр. лица. Если равен NULL — производится создание, иначе — редактирование
  • num_N_OPF_ID — идентификатор ОПФ (справочник REF_TYPE_OPF)
  • num_N_REGION_ID — идентификатор региона
  • num_N_SUBJ_STATE_ID — идентификатор состояния СУ (справочник REF_TYPE_Subject_State, SYS_CONTEXT('CONST', 'SUBJ_STATE_On') == 2011)
  • num_N_SUBJ_GROUP_ID — идентификатор группы юр. лиц (представление SI_V_SUBJ_GROUPS)

Удаление юридического лица

SI_COMPANIES_PKG.SI_COMPANIES_DEL({
  'num_N_COMPANY_ID' => num_N_COMPANY_ID,
})
  • num_N_COMPANY_ID — идентификатор юр. лица.

Абоненты

Получение списка абонентов

SELECT("SELECT * FROM SI_V_USERS_JR")

Получение информации об абоненте

SELECT("SELECT * FROM SI_V_USERS_JR WHERE N_SUBJECT_ID = <num_N_SUBJECT_ID>")
  • num_N_SUBJECT_ID — идентификатор абонента

Редактирование (создание) абонента

SI_USERS_PKG.SI_USERS_PUT({
  'num_N_USER_ID'         => num_N_USER_ID,
  'num_N_BASE_SUBJECT_ID' => 712282701,
  'num_N_SUBJ_GROUP_ID'   => 255664501,
  'vch_VC_CODE'           => 'uralsky',
  'num_N_SUBJ_STATE_ID'   => 2011,
})
  • num_N_USER_ID — идентификатор абонента. Если равен NULL — производится создание, иначе — редактирование
  • num_N_BASE_SUBJECT_ID — идентификатор физ. или юр. лица, к которому добавляется абонент
  • num_N_SUBJ_GROUP_ID — идентификатор группы абонентов (представление SI_V_SUBJ_GROUPS)
  • num_N_SUBJ_STATE_ID — идентификатор состояния СУ (справочник REF_TYPE_Subject_State, SYS_CONTEXT('CONST', 'SUBJ_STATE_On') == 2011)

Удаление абонента

SI_USERS_PKG.SI_USERS_DEL({
  'num_N_USER_ID' => num_N_USER_ID,
})
  • num_N_USER_ID — идентификатор абонента

Договоры

Получение информации о договорах

SELECT("SELECT * FROM SI_V_USER_CONTRACTS")

Получение информации о договоре

SELECT("SELECT * FROM SI_V_USER_CONTRACTS WHERE N_DOC_ID = <num_N_DOC_ID>")
  • num_N_DOC_ID — идентификатор договора

Добавление договора с абонентом

SI_USERS_PKG.CREATE_CONTRACT({
  'num_N_USER_ID'          => 49979801,
  'num_N_BASE_CONTRACT_ID' => 40174101,
  'num_N_CONTRACT_ID'      => NULL,
})
  • num_N_USER_ID — идентификатор абонента
  • num_N_BASE_CONTRACT_ID — идентификатор базового договора (представление SD_V_DOCUMENTS_JR)
  • num_N_CONTRACT_ID — идентификатор созданного договора

Редактирование договора

SD_CONTRACTS_PKG.SD_CONTRACTS_PUT({
  'num_N_DOC_ID'      => 52481301,
  'num_N_DOC_TYPE_ID' => 1002,
  'dt_D_DOC'          => DATE('11.06.2010', 'DD.MM.YYYY'),
  'vch_VC_DOC_NO'     => 'T0100001',
  'vch_VC_REM'        => 'Тестовый',
  'dt_D_BEGIN'        => DATE('11.06.2010', 'DD.MM.YYYY'),
  'dt_D_END'          => NULL,
})
  • num_N_DOC_TYPE_ID — идентификатор типа договора (справочник REF_TYPE_Document_Type, договор на оказание услуг — SYS_CONTEXT('CONST', 'DOC_TYPE_SubscriberContract') == 1002)

Удаление договора

SD_DOCUMENTS_PKG.SD_DOCUMENTS_DEL({
  'num_N_DOC_ID' => num_N_DOC_ID,
})
  • num_N_DOC_ID — идентификатор договора с абонентом

Редактирование (создание) подписки на услуги

SI_USERS_PKG.SI_USER_GOODS_PUT({
  'num_N_SUBJ_GOOD_ID'      => num_N_SUBJ_GOOD_ID,
  'num_N_GOOD_ID'           => 22165301,
  'num_N_SUBJ_GOOD_TYPE_ID' => 1031,
  'num_N_SUBJECT_ID'        => 712282901,
  'num_N_ACCOUNT_ID'        => 712283801,
  'num_N_OBJECT_ID'         => 712284401,
  'num_N_PAY_DAY'           => 1,
  'num_N_LINE_NO'           => 1000000,
  'num_N_QUANT'             => 1,
  'num_N_UNIT_ID'           => 1009,
  'num_N_DOC_ID'            => 712283101,
  'num_N_PAR_SUBJ_GOOD_ID'  => NULL,
  'dt_D_BEGIN'              => DATE('11.06.2010', 'DD.MM.YYYY'),
  'dt_D_END'                => NULL,
})
  • num_N_SUBJ_GOOD_ID — идентификатор подписки на услуги. Если равен NULL — производится создание, иначе — редактирование
  • num_N_GOOD_ID — идентификатор тарифного плана или услуги из номенклатуры (представление SR_V_GOODS)
  • num_N_SUBJ_GOOD_TYPE_ID — идентификатор типа подписки (справочник REF_TYPE_Subj_Good_Type, тарифный план — SYS_CONTEXT('CONST', 'GOOD_SUBJ_Tariff') == 1031, услуга — SYS_CONTEXT('CONST', 'GOOD_SUBJ_Periodic') == 2031)
  • num_N_SUBJECT_ID — идентификатор абонента
  • num_N_ACCOUNT_ID — идентификатор лицевого счета
  • num_N_OBJECT_ID — идентификатор оборудования
  • num_N_PAY_DAY — расчетный день месяца
  • num_N_LINE_NO — номер строки по порядку при отображении таблицы. Для первой родительской записи — 1000000, для второй родительской — 2000000 и т.д. Для первой дочерней записи первой родительской записи — 1000001, для второй дочерней записи третьей родительской строки — 3000002.
  • num_N_QUANT — количество
  • num_N_UNIT_ID — идентификатор единицы измерения (представление SI_V_UNITS, неопределенно — SYS_CONTEXT('CONST', 'UNIT_Piece') == 2009)
  • num_N_DOC_ID — идентификатор договора
  • num_N_PAR_SUBJ_GOOD_ID — идентификатор родительской подписки (указывается в случае, если добавляется дочерняя строка)

Удаление подписки на услуги

SI_USERS_PKG.SI_USER_GOODS_DEL({
  'num_N_SUBJ_GOOD_ID' => num_N_SUBJ_GOOD_ID,
})
  • num_N_SUBJ_GOOD_ID — идентификатор подписки на услуги

Лицевые счета

Получение информации о счетах

SELECT("SELECT * FROM SI_V_SUBJ_ACCOUNTS WHERE N_ACCOUNT_TYPE_ID = 2042")
  • N_ACCOUNT_TYPE_ID — идентификатор типа счета (справочник REF_TYPE_Account_Type, лицевой счет — SYS_CONTEXT('CONST', 'ACC_TYPE_Personal') == 2042)

Получение информации о счете

SELECT("SELECT * FROM SI_V_SUBJ_ACCOUNTS WHERE N_ACCOUNT_ID = <num_N_ACCOUNT_ID>")
  • num_N_ACCOUNT_ID — идентификатор счета

Добавление лицевого счета для абонента

SI_USERS_PKG.CREATE_ACCOUNT({
  'num_N_USER_ID'    => 49979801,
  'num_N_ACCOUNT_ID' => NULL,
})
  • num_N_USER_ID — идентификатор абонента
  • num_N_ACCOUNT_ID — идентификатор созданного лицевого счета

Редактирование (добавление) счета

SI_SUBJECTS_PKG.SI_SUBJ_ACCOUNTS_PUT({
  'num_N_ACCOUNT_ID'      => num_N_ACCOUNT_ID,
  'num_N_SUBJECT_ID'      => 52480701,
  'num_N_ACCOUNT_TYPE_ID' => 2042,
  'num_N_BANK_ID'         => 100,
  'num_N_CURRENCY_ID'     => 1044,
  'vch_VC_ACCOUNT'        => 'T0100001',
  'num_N_OVERDRAFT'       => 100,
  'dt_D_OVERDRAFT_END'    => DATE('15.06.2010', 'DD.MM.YYYY'),
})
  • num_N_ACCOUNT_ID — идентификатор счета. Если равен NULL — производится создание, иначе — редактирование
  • num_N_SUBJECT_ID — идентификатор СУ (абонента)
  • num_N_ACCOUNT_TYPE_ID — идентификатор типа счета (справочник REF_TYPE_Account_Type, лицевой счет — SYS_CONTEXT('CONST', 'ACC_TYPE_Personal') == 2042)
  • num_N_BANK_ID — идентификатор банка (для реальных счетов) или оператора связи (для лицевых)
  • num_N_CURRENCY_ID — идентификатор валюты (справочник REF_TYPE_Currency, лицевой счет — SYS_CONTEXT('CONST', 'CURR_Ruble') == 1044)
  • vch_VC_ACCOUNT — номер счета
  • num_N_OVERDRAFT — кредитный лимит
  • dt_D_OVERDRAFT_END — дата окончания срока действия кредитного лимита

Удаление счета

SI_SUBJECTS_PKG.SI_SUBJ_ACCOUNTS_DEL({
  'num_N_ACCOUNT_ID' => num_N_ACCOUNT_ID,
})
  • num_N_ACCOUNT_ID — идентификатор счета

Пополнение баланса лицевого счета

SD_PAYMENTS_PKG.SD_PAYMENTS_CHARGE({
  'num_N_DOC_ID'              => NULL,
  'num_N_DOC_TYPE_ID'         => 4002,
  'num_N_PAY_TYPE_ID'         => 40492401,
  'num_N_MOVE_TYPE_ID'        => 1007,
  'num_N_ACCOUNT_ID_ForWho'   => 52481101,
  'num_N_PAYER_ID'            => 52480501,
  'num_N_ACCOUNT_ID_Payer'    => NULL,
  'num_N_RECEIVER_ID'         => 99,
  'num_N_ACCOUNT_ID_Receiver' => 40140101,
  'num_N_SUM'                 => 100,
  'num_N_TAX_RATE_ID'         => 3005,
  'num_N_CURRENCY_ID'         => 1044,
  'b_Virtual'                 => 0,
})
  • num_N_DOC_ID — идентификатор созданного платежного документа
  • num_N_DOC_TYPE_ID — идентификатор типа платежного документа (справочник REF_TYPE_Document_Type, кассовый ордер — SYS_CONTEXT('CONST', 'DOC_TYPE_CashWarrant') == 4002)
  • num_N_PAY_TYPE_ID — идентификатор типа платежа (справочник REF_TYPE_Real_MM_Kind — для реального платежа, справочник REF_TYPE_Virtual_MM_Kind — для виртуального, оплата наличным в офисе — SYS_CONTEXT('CONST', 'RMM_KIND_Office') == 40492401)
  • num_N_MOVE_TYPE_ID — идентификатор вида движения средств (справочник REF_TYPE_Money_Move_Type, поступление — SYS_CONTEXT('CONST', 'MM_TYPE_Intake') == 1007)
  • num_N_ACCOUNT_ID_ForWho — идентификатор лицевого счета абонента-получателя
  • num_N_PAYER_ID — идентификатор СУ плательщика (физ. или юр. лица)
  • num_N_ACCOUNT_ID_Payer — идентификатор счета плательщика
  • num_N_RECEIVER_ID — идентификатор СУ получателя (юр. лица оператора)
  • num_N_ACCOUNT_ID_Receiver — идентификатор счета получателя (расчетный счет юр. лица оператора)
  • num_N_TAX_RATE_ID — идентификатор ставки налога (справочник REF_TYPE_TAX_Rates, 18 % — SYS_CONTEXT('CONST', 'Tax_18') == 3005)
  • num_N_CURRENCY_ID — идентификатор валюты (справочник REF_TYPE_Currency, руб. — SYS_CONTEXT('CONST', 'CURR_Ruble') == 1044)
  • b_Virtual — флаг виртуального платежа (0 — платеж реальный, 1 — платеж виртуальный)

Получение списка платежей абонента

SELECT("SELECT * FROM TABLE(SI_USERS_PKG_S.USERS_ACC_DETALIZATION(
                            TO_DATE('<dt_D_BEGIN>', 'DD.MM.YYYY HH24:MI:SS'),
                            TO_DATE('<dt_D_END>', 'DD.MM.YYYY HH24:MI:SS'),
                            <num_N_ACCOUNT_ID>, 1, 0))")
  • dt_D_BEGIN — дата начала периода, за который получается список платежей
  • dt_D_END — дата окончания периода, за который получается список платежей
  • num_N_ACCOUNT_ID — идентификатор лицевого счета.

Оборудование абонента

Получение информации об оборудовании абонентов

SELECT("SELECT * FROM SI_V_USER_DEVICES")

Получение информации об оборудовании абонента

SELECT("SELECT * FROM SI_V_USER_DEVICES WHERE N_USER_ID = <num_N_USER_ID>")
  • num_N_USER_ID — идентификатор абонента

Добавление оборудования абонента

Редактирование оборудования абонента

SI_OBJECTS_PKG.SI_OBJECTS_PUT({
  'num_N_OBJECT_ID'    => 52508301,
  'num_N_GOOD_ID'      => 40376601,
  'vch_VC_NAME'        => 'AV1-T0100002',
  'vch_VC_CODE'        => 'AV1-T0100002',
  'num_N_FIRM_ID'      => 100,
  'num_N_OBJ_STATE_ID' => 1040,
  'num_N_OWNER_ID'     => 52499001,
})
  • num_N_OBJECT_ID — идентификатор оборудования
  • num_N_FIRM_ID — идентификатор фирмы, которой принадлежит оборудование
  • num_N_OBJ_STATE_ID — идентификатор состояния (справочник REF_TYPE_Object_State, лицевой счет — SYS_CONTEXT('CONST', 'OBJ_STATE_Active') == 1040)
  • num_N_OWNER_ID — идентификатор абонента

Удаление оборудования абонента

SI_OBJECTS_PKG.SI_OBJECTS_DEL({
  num_N_OBJECT_ID => num_N_OBJECT_ID,
})
  • num_N_OBJECT_ID — идентификатор оборудования

Услуги абонента

Список текущих услуг

SELECT("SELECT * FROM TABLE(SI_USERS_PKG_S.USERS_CURRENT_SERVS_LIST(<num_N_USER_ID>, 1))")
  • num_N_USER_ID — идентификатор абонента

Список оказанных услуг

SELECT("SELECT * FROM TABLE(SI_USERS_PKG_S.USERS_BILLED_SERVS_LIST(<num_N_USER_ID>, TO_DATE('<dt_D_BEGIN>', 'DD.MM.YYYY HH24:MI:SS'), TO_DATE('<dt_D_END>', 'DD.MM.YYYY HH24:MI:SS'), 1))")
  • num_N_USER_ID — идентификатор абонента
  • dt_D_BEGIN — дата начала периода, за который получается список оказанных услуг
  • dt_D_END — дата окончания периода, за который получается список оказанных услуг

Получение информации о текущей услуге

SELECT("SELECT * FROM TABLE(SI_USERS_PKG_S.USERS_CURRENT_SERVS_LIST(<num_N_USER_ID>, 1)) WHERE N_GOOD_ID = <num_N_GOOD_ID>")
  • num_N_USER_ID — идентификатор абонента
  • num_N_GOOD_ID — идентификатор услуги из номенклатуры

Изменение состояния услуги доступа

SI_USERS_PKG.ACCESS_SERV_CHG_STATE({
  'num_N_GOOD_ID'        => 40216501,
  'num_N_PARENT_GOOD_ID' => 40161101,
  'num_N_ACCOUNT_ID'     => 52481101,
  'num_N_OBJECT_ID'      => 52482001,
  'num_N_INVOICE_ID'     => 52485101,
  'b_Enable'             => 1,
})
  • num_N_GOOD_ID — идентификатор услуги доступа из номенклатуры
  • num_N_PARENT_GOOD_ID — идентификатор основной услуги (тарифного плана) из номенклатуры
  • num_N_ACCOUNT_ID — идентификатор лицевого счета абонента
  • num_N_OBJECT_ID — идентификатор оборудования
  • num_N_INVOICE_ID — идентификатор инвойса
  • b_Enable — флаг включения (значение 1) или выключения (значение 0) услуги

Получение детализации по трафику

Получение детализации по доп. услугам

SELECT("SELECT * FROM SI_V_USER_ADDSERVS WHERE N_DOC_ID = <num_N_DOC_ID> AND N_PARENT_GOOD_ID = <num_N_GOOD_ID>")
  • num_N_DOC_ID — идентификатор абонента
  • num_N_GOOD_ID — идентификатор услуги (тарифного плана) из номенклатуры

Инвойсы

Список инвойсов абонента

SELECT("SELECT D.*
        FROM   SD_V_INVOICES_JR D, SI_V_DOC_SUBJECTS_SIMPLE S
        WHERE  S.N_DOC_ID = D.N_DOC_ID
        AND    S.N_DOC_ROLE_ID = SYS_CONTEXT('CONST', 'SUBJ_ROLE_Receiver')
        AND    S.N_SUBJECT_ID = <num_N_USER_ID>")
  • num_N_USER_ID — идентификатор абонента

Получение заголовка инвойса

SELECT("SELECT * FROM SD_V_INVOICES_T WHERE N_DOC_ID = <num_N_DOC_ID>")
  • num_N_DOC_ID — идентификатор инвойса

Получение состава инвойса

SELECT("SELECT * FROM SD_V_INVOICES_C WHERE N_DOC_ID = <num_N_DOC_ID>")
  • num_N_DOC_ID — идентификатор инвойса

Изменение состояния инвойса

SD_DOCUMENTS_CHANGE_STATE(
  'num_N_DOC_ID'           => 52485101,
  'num_N_New_DOC_STATE_ID' => 4003,
})
  • num_N_DOC_ID — идентификатор инвойса
  • dt_D_OPER — идентификатор состояния документа (справочник REF_TYPE_Document_State, лицевой счет — SYS_CONTEXT('CONST', 'DOC_STATE_Actual') == 4003)

Досрочное закрытие инвойса

SI_USERS_PKG.CHANGE_INVOICE_PERIOD({
  'num_N_DOC_ID' => 52485101,
  'dt_D_OPER'    => DATE('11.06.2010 23:11:02', 'DD.MM.YYYY HH24:MI:SS')
})
  • num_N_DOC_ID — идентификатор инвойса
  • dt_D_OPER — время закрытия. Если не передано, используется текущее время системы

Подписки на службы

Получение информации о подписках на службы

SELECT("SELECT * FROM SI_V_SUBJ_SERVICES WHERE N_SUBJ_SERV_TYPE_ID = SYS_CONTEXT('CONST','SUBJ_SERV_ServiceUse')")

Получение информации о подписках на службы абонента

SELECT("SELECT * FROM SI_V_SUBJ_SERVICES WHERE N_SUBJ_SERV_TYPE_ID = SYS_CONTEXT('CONST','SUBJ_SERV_ServiceUse') AND N_SUBJECT_ID = <num_N_USER_ID>")
  • num_N_USER_ID — идентификатор абонента

Получение информации о подписке на службу

SELECT("SELECT * FROM SI_V_SUBJ_SERVICES WHERE N_SUBJ_SERV_TYPE_ID = SYS_CONTEXT('CONST','SUBJ_SERV_ServiceUse') AND N_SUBJ_SERV_ID = <num_N_SUBJ_SERV_ID>")
  • num_N_SUBJ_SERV_ID — идентификатор подписки на службу

Редактирование (добавление) подписки на службу

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_PUT({
  'num_N_SUBJ_SERV_ID'      => num_N_SUBJ_SERV_ID,
  'num_N_SUBJ_SERV_TYPE_ID' => 3066,
  'num_N_SUBJECT_ID'        => 52480701,
  'num_N_SERVICE_ID'        => 40176501,
  'num_N_OBJECT_ID'         => 54154801,
  'num_N_AUTH_TYPE_ID'      => 1019,
  'vch_VC_LOGIN'            => 'T0100001',
})
  • num_N_SUBJ_SERV_ID — идентификатор подписки на службы. Если равен NULL — производится создание, иначе — редактирование
  • num_N_SUBJ_SERV_TYPE_ID — идентификатор типа привязки к службе (SYS_CONTEXT('CONST', 'SUBJ_SERV_ServiceUse') == 3066)
  • num_N_SUBJECT_ID — идентификатор абонента
  • num_N_SERVICE_ID — идентификатор сетевой службы
  • num_N_OBJECT_ID — идентификатор компонента сетевой службы
  • num_N_AUTH_TYPE_ID — идентификатор типа авторизации (SYS_CONTEXT('CONST', 'AUTH_TYPE_LoginPass') == 1019)

Удаление подписки на службу

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_DEL({
  'num_N_SUBJ_SERV_ID'      => num_N_SUBJ_SERV_ID,
})
  • num_N_SUBJ_SERV_ID — идентификатор подписки на службы

Изменение пароля на подписку к службе

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_CHG_PASS({
  'num_N_SUBJ_SERV_ID' => 42231101,
  'vch_VC_OLD_PASS'    => NULL,
  'vch_VC_NEW_PASS'    => 'q123',
})
  • num_N_SUBJ_SERV_ID — идентификатор подписки на службе
  • vch_VC_OLD_PASS — старый пароль. Для новой подписки — NULL
  • vch_VC_NEW_PASS — новый пароль

Доступ к приложениям

Получение информации о доступе к приложениям

SELECT("SELECT * FROM SS_V_USERS_APP_BINDS")

Получение информации о доступе к приложениям по абоненту

SELECT("SELECT * FROM SS_V_USERS_APP_BINDS WHERE N_USER_ID = <num_N_USER_ID>")
  • num_N_USER_ID — идентификатор абонента

Получение информации о доступе к приложению

SELECT("SELECT * FROM SS_V_USERS_APP_BINDS WHERE N_SUBJ_SERV_ID = <num_N_SUBJ_SERV_ID>")
  • num_N_SUBJ_SERV_ID — идентификатор подписки на приложение

Редактирование (добавление) доступа в приложение

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_PUT({
  'num_N_SUBJ_SERV_ID'      => num_N_SUBJ_SERV_ID,
  'num_N_SUBJ_SERV_TYPE_ID' => 3066,
  'num_N_SUBJECT_ID'        => 52480701,
  'num_N_SERVICE_ID'        => 1005,
  'num_N_AUTH_TYPE_ID'      => 1019,
  'vch_VC_LOGIN'            => 'uralsky',
})
  • num_N_SUBJ_SERV_ID — идентификатор подписки на приложение. Если равен NULL — производится создание, иначе — редактирование
  • num_N_SUBJ_SERV_TYPE_ID — идентификатор типа привязки к приложению (SYS_CONTEXT('CONST', 'SUBJ_SERV_AppAccess') == 1066)
  • num_N_SUBJECT_ID — идентификатор абонента
  • num_N_SERVICE_ID — идентификатор приложения (выборка из SS_V_AVAILABLE_SERV_APPS, АРМ Личный кабинет пользователя — 1005)
  • num_N_AUTH_TYPE_ID — идентификатор типа авторизации (SYS_CONTEXT('CONST', 'AUTH_TYPE_LoginPass') == 1019)

Удаление доступа к приложению

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_DEL({
  'num_N_SUBJ_SERV_ID'      => num_N_SUBJ_SERV_ID,
})
  • num_N_SUBJ_SERV_ID — идентификатор подписки на приложение

Изменение пароля на доступ к приложению

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_CHG_PASS({
  'num_N_SUBJ_SERV_ID' => 42231101,
  'vch_VC_OLD_PASS'    => NULL,
  'vch_VC_NEW_PASS'    => 'q123',
})
  • num_N_SUBJ_SERV_ID — идентификатор подписки на приложение
  • vch_VC_OLD_PASS — старый пароль. Для новой подписки — NULL
  • vch_VC_NEW_PASS — новый пароль
  • No labels