...
Плагин 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 возвращает структуру (хэш, словарь) следущего содержания:
Code Block |
---|
{
'RecordsNumber' => RecordsNumber,
'PagesNumber' => PagesNumber,
'SelectResult' => SelectResult,
}
|
...
Получение списка физических лиц
Code Block |
---|
SELECT("SELECT * FROM SI_V_PERSONS_JR")
|
Получение информации о физическом лице
Code Block |
---|
SELECT("SELECT * FROM SI_V_PERSONS_JR WHERE N_PERSON_ID = <num_N_PERSON_ID>")
|
...
Редактирование (создание) физического лица
Code Block |
---|
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,
})
|
...
Удаление физического лица
Code Block |
---|
SI_PERSONS_PKG.SI_PERSONS_DEL({
'num_N_PERSON_ID' => num_N_PERSON_ID,
})
|
...
Получение списка юридических лиц
Code Block |
---|
SELECT("SELECT * FROM SI_V_COMPANIES_JR")
|
Получение информации о юридическом лице
Code Block |
---|
SELECT("SELECT * FROM SI_V_COMPANIES_JR WHERE N_COMPANY_ID = <num_N_COMPANY_ID>")
|
...
Редактирование (создание) юридического лица
Code Block |
---|
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,
})
|
...
Удаление юридического лица
Code Block |
---|
SI_COMPANIES_PKG.SI_COMPANIES_DEL({
'num_N_COMPANY_ID' => num_N_COMPANY_ID,
})
|
...
Получение списка абонентов
Code Block |
---|
SELECT("SELECT * FROM SI_V_USERS_JR")
|
Получение информации об абоненте
Code Block |
---|
SELECT("SELECT * FROM SI_V_USERS_JR WHERE N_SUBJECT_ID = <num_N_SUBJECT_ID>")
|
...
Редактирование (создание) абонента
Code Block |
---|
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,
})
|
...
Удаление абонента
Code Block |
---|
SI_USERS_PKG.SI_USERS_DEL({
'num_N_USER_ID' => num_N_USER_ID,
})
|
...
Получение информации о договорах
Code Block |
---|
SELECT("SELECT * FROM SI_V_USER_CONTRACTS")
|
Получение информации о договоре
Code Block |
---|
SELECT("SELECT * FROM SI_V_USER_CONTRACTS WHERE N_DOC_ID = <num_N_DOC_ID>")
|
...
Добавление договора с абонентом
Code Block |
---|
SI_USERS_PKG.CREATE_CONTRACT({
'num_N_USER_ID' => 49979801,
'num_N_BASE_CONTRACT_ID' => 40174101,
'num_N_CONTRACT_ID' => NULL,
})
|
...
Редактирование договора
Code Block |
---|
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,
})
|
...
Удаление договора
Code Block |
---|
SD_DOCUMENTS_PKG.SD_DOCUMENTS_DEL({
'num_N_DOC_ID' => num_N_DOC_ID,
})
|
...
Редактирование (создание) подписки на услуги
Code Block |
---|
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,
})
|
...
Удаление подписки на услуги
Code Block |
---|
SI_USERS_PKG.SI_USER_GOODS_DEL({
'num_N_SUBJ_GOOD_ID' => num_N_SUBJ_GOOD_ID,
})
|
...
Получение информации о счетах
Code Block |
---|
SELECT("SELECT * FROM SI_V_SUBJ_ACCOUNTS WHERE N_ACCOUNT_TYPE_ID = 2042")
|
...
Получение информации о счете
Code Block |
---|
SELECT("SELECT * FROM SI_V_SUBJ_ACCOUNTS WHERE N_ACCOUNT_ID = <num_N_ACCOUNT_ID>")
|
...
Добавление лицевого счета для абонента
Code Block |
---|
SI_USERS_PKG.CREATE_ACCOUNT({
'num_N_USER_ID' => 49979801,
'num_N_ACCOUNT_ID' => NULL,
})
|
...
Редактирование (добавление) счета
Code Block |
---|
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
— дата окончания срока действия кредитного лимита
Удаление счета
Code Block |
---|
SI_SUBJECTS_PKG.SI_SUBJ_ACCOUNTS_DEL({
'num_N_ACCOUNT_ID' => num_N_ACCOUNT_ID,
})
|
...
Пополнение баланса лицевого счета
Code Block |
---|
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,
})
|
...
Получение списка платежей абонента
Code Block |
---|
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))")
|
...
Получение информации об оборудовании абонентов
Code Block |
---|
SELECT("SELECT * FROM SI_V_USER_DEVICES")
|
Получение информации об оборудовании абонента
Code Block |
---|
SELECT("SELECT * FROM SI_V_USER_DEVICES WHERE N_USER_ID = <num_N_USER_ID>")
|
...
Редактирование оборудования абонента
Code Block |
---|
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,
})
|
...
Удаление оборудования абонента
Code Block |
---|
SI_OBJECTS_PKG.SI_OBJECTS_DEL({
num_N_OBJECT_ID => num_N_OBJECT_ID,
})
|
...
Список текущих услуг
Code Block |
---|
SELECT("SELECT * FROM TABLE(SI_USERS_PKG_S.USERS_CURRENT_SERVS_LIST(<num_N_USER_ID>, 1))")
|
...
Список оказанных услуг
Code Block |
---|
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))")
|
...
Получение информации о текущей услуге
Code Block |
---|
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>")
|
...
Изменение состояния услуги доступа
Code Block |
---|
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,
})
|
...
Получение детализации по доп. услугам
Code Block |
---|
SELECT("SELECT * FROM SI_V_USER_ADDSERVS WHERE N_DOC_ID = <num_N_DOC_ID> AND N_PARENT_GOOD_ID = <num_N_GOOD_ID>")
|
...
Список инвойсов абонента
Code Block |
---|
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>")
|
...
Получение заголовка инвойса
Code Block |
---|
SELECT("SELECT * FROM SD_V_INVOICES_T WHERE N_DOC_ID = <num_N_DOC_ID>")
|
...
Получение состава инвойса
Code Block |
---|
SELECT("SELECT * FROM SD_V_INVOICES_C WHERE N_DOC_ID = <num_N_DOC_ID>")
|
...
Изменение состояния инвойса
Code Block |
---|
SD_DOCUMENTS_CHANGE_STATE(
'num_N_DOC_ID' => 52485101,
'num_N_New_DOC_STATE_ID' => 4003,
})
|
...
Досрочное закрытие инвойса
Code Block |
---|
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')
})
|
...
Получение информации о подписках на службы
Code Block |
---|
SELECT("SELECT * FROM SI_V_SUBJ_SERVICES WHERE N_SUBJ_SERV_TYPE_ID = SYS_CONTEXT('CONST','SUBJ_SERV_ServiceUse')")
|
Получение информации о подписках на службы абонента
Code Block |
---|
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>")
|
...
Получение информации о подписке на службу
Code Block |
---|
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>")
|
...
Редактирование (добавление) подписки на службу
Code Block |
---|
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',
})
|
...
Удаление подписки на службу
Code Block |
---|
SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_DEL({
'num_N_SUBJ_SERV_ID' => num_N_SUBJ_SERV_ID,
})
|
...
Изменение пароля на подписку к службе
Code Block |
---|
SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_CHG_PASS({
'num_N_SUBJ_SERV_ID' => 42231101,
'vch_VC_OLD_PASS' => NULL,
'vch_VC_NEW_PASS' => 'q123',
})
|
...
Получение информации о доступе к приложениям
Code Block |
---|
SELECT("SELECT * FROM SS_V_USERS_APP_BINDS")
|
Получение информации о доступе к приложениям по абоненту
Code Block |
---|
SELECT("SELECT * FROM SS_V_USERS_APP_BINDS WHERE N_USER_ID = <num_N_USER_ID>")
|
...
Получение информации о доступе к приложению
Code Block |
---|
SELECT("SELECT * FROM SS_V_USERS_APP_BINDS WHERE N_SUBJ_SERV_ID = <num_N_SUBJ_SERV_ID>")
|
...
Редактирование (добавление) доступа в приложение
Code Block |
---|
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',
})
|
...
Удаление доступа к приложению
Code Block |
---|
SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_DEL({
'num_N_SUBJ_SERV_ID' => num_N_SUBJ_SERV_ID,
})
|
...
Изменение пароля на доступ к приложению
Code Block |
---|
SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_CHG_PASS({
'num_N_SUBJ_SERV_ID' => 42231101,
'vch_VC_OLD_PASS' => NULL,
'vch_VC_NEW_PASS' => 'q123',
})
|
...