Page tree

Versions Compared

Key

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

...

Плагин 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',
})

...