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

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

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

Примеры

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

...

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

Code Block

SELECT("SELECT * FROM SI_V_PERSONSCOMPANIES_JR WHERE N_COMPANY_ID = <num_N_COMPANY_ID>")

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

...

  • num_N_COMPANY_ID — идентификатор юр. лица

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

Code Block
SI_PERSONS_PKG.SI_PERSONS_DEL({
  'num_N_PERSON_ID' => <numnum_N_PERSON_ID>"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,
})
  • 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 — идентификатор региона гражданства

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

Code Block

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

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

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

Code Block

SELECT("SELECT * FROM SI_V_COMPANIES_JR")

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

...

Ознакомиться со многими другими примерами работы с БД вы можете в разделе  «Примеры работы с БД (Офис оператора связи)». Для использования этих примеров в работе с плагином db агента hid вам достаточно привести код PL/SQL к формату, описанному в примерах выше.

XML-запросы

Можно выполнять запросы к HID, используя XML-RPC:

Code Block
titleGET-запрос
curl -d '<?xml version="1.0"?><methodCall><methodName>SELECT</methodName><params><param><value><string>SELECT * FROM SI_V_COMPANIES_JRUSERS WHERE N_COMPANYSUBJECT_ID = <num_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'302</string></value></param></params></methodCall>' 'http://hydra:pass@127.0.0.1:10080/xml-rpc/db'


Code Block
languageyml
titleрезультат
collapsetrue
<?xml version='1.0'?>
<methodResponse>
    <params>
        <param>
            <value>
            => 'Вектор',   'vch_VC_INN'<struct>
         => '1234567891',   'vch_VC_OGRN'       <member>
 => '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)

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

Code Block
 SI_COMPANIES_PKG.SI_COMPANIES_DEL({   'num_N_COMPANY_ID' => 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>")
  • num_N_SUBJECT_ID — идентификатор абонента

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

Code Block

SI_USERS_PKG.SI_USERS_PUT({
  'num_N_USER_ID' <name>RecordsNumber</name>
                        => num_N_USER_ID,<value>
   'num_N_BASE_SUBJECT_ID' => 712282701,   'num_N_SUBJ_GROUP_ID'   => 255664501,   'vch_VC_CODE'           => 'uralsky',
  'num_N_SUBJ_STATE_ID' <string>1</string>
    => 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)

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

Code Block
 SI_USERS_PKG.SI_USERS_DEL({   'num_N_USER_ID' => 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>")
  • num_N_DOC_ID — идентификатор договора

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

Code Block

SI_USERS_PKG.CREATE_CONTRACT({
  'num_N_USER_ID' </value>
                  => 49979801, </member>
 '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 — идентификатор созданного договора

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

Code Block
 SD_CONTRACTS_PKG.SD_CONTRACTS_PUT({   'num_N_DOC_ID'  <member>
    => 52481301,   'num_N_DOC_TYPE_ID' => 1002,   'dt_D_DOC'          => DATE('11.06.2010', 'DD.MM.YYYY'),
  'vch_VC_DOC_NO' <name>PagesNumber</name>
        => 'T0100001',   'vch_VC_REM'        => 'Тестовый',   'dt_D_BEGIN'<value>
       => 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)

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

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

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

Code Block

SI_USERS_PKG.SI_USER_GOODS_PUT({
  'num_N_SUBJ_GOOD_ID'<string>1</string>
              => num_N_SUBJ_GOOD_ID,   'num_N_GOOD_ID'      </value>
    => 22165301,   'num_N_SUBJ_GOOD_TYPE_ID' => 1031,   'num_N_SUBJECT_ID'       </member>
=> 712282901,   'num_N_ACCOUNT_ID'        => 712283801,   'num_N_OBJECT_ID'    <member>
    => 712284401,   'num_N_PAY_DAY'           => 1,   'num_N_LINE_NO'  <name>SelectResult</name>
         => 1000000,   'num_N_QUANT'           <value>
 => 1,   'num_N_UNIT_ID'           => 1009,   'num_N_DOC_ID'        <array>
   => 712283101,   'num_N_PAR_SUBJ_GOOD_ID'  => NULL,   'dt_D_BEGIN'              => DATE('11.06.2010', 'DD.MM.YYYY'),
  'dt_D_END'     <data>
                                    <value>
                                        <array>
                                            <data>
                                                <value>
                                                    <string>1</string>
                                                </value>
                                                <value>
                                                    <string>302</string>
                                                </value>
                                                <value>
                                                    <string>302</string>
                                                </value>
                                                <value>
                                                    <string>2001</string>
                                                </value>
                                                <value>
                                                    <string>301</string>
                                                </value>
                                                <value>
                                                    <string>Миграторов Мигратор1 Миграторович1</string>
                                                </value>
                                                <value>
                                                    <string>18001</string>
                                                </value>
                                                <value>
                                                    <nil/>
                    => 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 — идентификатор родительской подписки (указывается в случае, если добавляется дочерняя строка)

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

Code Block

SI_USERS_PKG.SI_USER_GOODS_DEL({
  'num_N_SUBJ_GOOD_ID' => 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")
  • N_ACCOUNT_TYPE_ID — идентификатор типа счета (справочник REF_TYPE_Account_Type, лицевой счет — SYS_CONTEXT('CONST', 'ACC_TYPE_Personal') == 2042)

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

Code Block

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

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

Code Block

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

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

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'                            </value>
                                                <value>
                                                    <string>5011</string>
                                                </value>
                                                <value>
                                                    <nil/>
                                                </value>
                                                <value>
                                                    <string>Миграторов М. М.</string>
                                                </value>
                             => 100,   'num_N_CURRENCY_ID'     => 1044,   'vch_VC_ACCOUNT'      <value>
 => '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,
})
  • num_N_ACCOUNT_ID — идентификатор счета

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

Code Block

SD_PAYMENTS_PKG.SD_PAYMENTS_CHARGE({
  'num_N_DOC_ID'                                <string>Migrator</string>
                                                </value>
                                                <value>
                                                    <string>Миграторов М. М.</string>
                                                </value>
                                                <value>
                                                    <string>Migrator</string>
                                                </value>
                                                <value>
                                                    <string>MIGRATOR</string>
                                                </value>
                                                <value>
                                                    <string>МИГРАТОРОВ М. М.</string>
                        => NULL,   'num_N_DOC_TYPE_ID'         => 4002,   'num_N_PAY_TYPE_ID'       </value>
 => 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'<value>
        => 99,   'num_N_ACCOUNT_ID_Receiver' => 40140101,   'num_N_SUM'                 => 100,   'num_N_TAX_RATE_ID'         =     <nil/>
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, оплата наличным в офисе — 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 — платеж виртуальный)

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

Code Block

SELECT("SELECT * FROM TABLE(SI_USERS_PKG_S.USERS_ACC_DETALIZATION(               </value>
                                                <value>
                                                    <nil/>
                                                </value>
                                                <value>
                                                    <dateTime.iso8601>20090617T17:18:39</dateTime.iso8601>
                                TO_DATE('<dt_D_BEGIN>', 'DD.MM.YYYY HH24:MI:SS'),              </value>
              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 — идентификатор лицевого счета.

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

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

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>")
  • num_N_USER_ID — идентификатор абонента

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

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

Code Block

SI_OBJECTS_PKG.SI_OBJECTS_PUT({
  'num_N_OBJECT_ID'    => 52508301,
  'num_N_GOOD_ID' <value>
                               => 40376601,   'vch_VC_NAME'        =         <nil/>
'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 — идентификатор абонента

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

Code Block
 SI_OBJECTS_PKG.SI_OBJECTS_DEL({   num_N_OBJECT_ID => 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))")
  • num_N_USER_ID — идентификатор абонента

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

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))")
  • num_N_USER_ID — идентификатор абонента
  • dt_D_BEGIN — дата начала периода, за который получается список оказанных услуг
  • dt_D_END — дата окончания периода, за который получается список оказанных услуг

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

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>")
  • num_N_USER_ID — идентификатор абонента
  • num_N_GOOD_ID — идентификатор услуги из номенклатуры

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

Code Block

SI_USERS_PKG.ACCESS_SERV_CHG_STATE({
  'num_N_GOOD_ID' </value>
                                     => 40216501,   'num_N_PARENT_GOOD_ID' => 40161101,   'num_N_ACCOUNT_ID'  <value>
  => 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) услуги

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

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

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>")
  • num_N_DOC_ID — идентификатор абонента
  • num_N_GOOD_ID — идентификатор услуги (тарифного плана) из номенклатуры

Инвойсы

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

Code Block

SELECT("SELECT D.* <array>
            FROM   SD_V_INVOICES_JR D, SI_V_DOC_SUBJECTS_SIMPLE S         WHERE  S.N_DOC_ID = D.N_DOC_ID                          <data>
                                                            <value>
                                                                <string>системный_пользователь</string>
        AND    S.N_DOC_ROLE_ID = SYS_CONTEXT('CONST', 'SUBJ_ROLE_Receiver')                                                </value>
                                                            <value>
                                                                <string>не_выгружать_пл</string>
                                                            </value>
                                                        </data>
                                                    </array>
                                                </value>
                                                <value>
                                                    <string>системный_пользователь, не_выгружать_пл</string>
        AND    S.N_SUBJECT_ID = <num_N_USER_ID>") 
  • num_N_USER_ID — идентификатор абонента

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

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

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

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

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

Code Block
 SD_DOCUMENTS_CHANGE_STATE(   'num_N_DOC_ID'           => 52485101,</value>
   '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)

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

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')
})
  • num_N_DOC_ID — идентификатор инвойса
  • dt_D_OPER — время закрытия. Если не передано, используется текущее время системы

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

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

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>")
  • 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>")
  • 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'                                             <value>
                                                    <string>Создан при инсталляции</string>
                                                </value>
                                                <value>
                                                    <string>100</string>
                                                </value>
                                                <value>
                                                    <nil/>
                                                </value>
                                                <value>
                                                    <nil/>
                                                </value>
                                                <value>
                                                    <nil/>
                                                </value>
                                                <value>
                                                    <string>50853901</string>
                                                </value>
                                                <value>
                                                    <array>
                                                        <data>
                                                            <value>
                                                                <int>50853901</int>
                                                            </value>
                                                        </data>
                                                    </array>
                                                </value>
                                                <value>
                                                    <string>Системные пользователи</string>
                                                </value>
                                                <value>
                                                    <string>51845401</string>
                                                </value>
                                                <value>
                                                    <dateTime.iso8601>20250521T11:12:34</dateTime.iso8601>
                                                </value>
                                       => 54154801,   'num_N_AUTH_TYPE_ID'     <value>
=> 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)

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

Code Block
 SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_DEL({   'num_N_SUBJ_SERV_ID'      => 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'   <string>4624499330801</string>
=> 'q123', }) 
  • num_N_SUBJ_SERV_ID — идентификатор подписки на службе
  • vch_VC_OLD_PASS — старый пароль. Для новой подписки — NULL
  • vch_VC_NEW_PASS — новый пароль

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

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

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>") 
  • num_N_USER_ID — идентификатор абонента

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

Code Block
 SELECT("SELECT * FROM SS_V_USERS_APP_BINDS WHERE N_SUBJ_SERV_ID = <num_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'   </value>
    => 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)

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

Code Block

SI_SUBJECTS_PKG.SI_SUBJ_SERVICES_DEL({
  'num_N_SUBJ_SERV_ID' </data>
          => 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', })
  • num_N_SUBJ_SERV_ID — идентификатор подписки на приложение
  • vch_VC_OLD_PASS — старый пароль. Для новой подписки — NULL
  • vch_VC_NEW_PASS — новый пароль

Проверка авторизационных данных абонента по приложению

    </array>
                                    </value>
                                </data>
                            </array>
                        </value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodResponse>