ОСОБЕННОСТИ ОДНОФИЛИАЛЬНОЙ И МНОГОФИЛИАЛЬНОЙ БАЗЫ АБС БИСКВИТ
АБС Бисквит предоставляет два варианта режима работы: однофилиальный и многофилиальный. Однофилиальный режим предполагает создание независимых отдельных баз для каждого отдельно взятого филиала. Такие базы хранят в себе информацию относящуюся исключительно к одному конкретному филиалу и как правило размещаются на отдельных серверах. Многофилиальный режим, или же централизованные режим работы АБС предполагает размещение всех филиалов банка в единой централизованной базе данных. При входе в многофилиальную АБС Бисквит пользователю предоставляется возможно выбора филиала с объектами которого он хочет работать.
Размещение объектов всех филиалов в единой базе данных сопровождается некоторыми особенностями в представлении данных для осуществления разделения их по филиалам к которым они относятся. Исходя из этого, появляются различия в подходах разработки процедур для однофилиальной и многофилиальной АБС, которые необходимо знать и учитывать.
ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
Глобальные переменные определяющие однофилиальный или многофилиальный режимы работы АБС определены в filial.def, который в свою очередь подключен в globals.i.
- shMode - переменная LOGICAL типа, определяющая режим работы базы АБС Бисквит (YES - многофилиальная база; NO - однофилиальная). Значение данной переменной, а следовательно и режим работы базы, определяется подпараметром Mode, настроечного параметра Filial;
- shMultyMode - переменная LOGICAL типа, определяющая мульти-режим работы АБС Бисквит;
- shFilial - переменная CHAR типа, значение которой определяет код филиала в котором производится работа;
- shFilHead - переменная CHAR типа, содержащая значение кода филиала - весь банк.
НОМЕРА СЧЕТОВ И ДОГОВОРОВ
При разработке процедур для многофилиальной АБС необходимо учитывать особенности хранения данных в ней. Такими особенностями являются хранение номеров счетов и номера договоров. В отличие от однофилиальной базы к ним дописаны @<код филиала>.
Если в однофилиальной базе счет хранится в виде:
40702810100010000001
то в многофилиальной базе этот же счет будет храниться в виде:
40702810100010000001 @0001
Для учета этих особенностей работы со счетами существуют следующие функции:
addFilToAcct(acct, filial-id) - осуществляет добавление @<код филиала> к номеру счету.
delFilFromAcct(acct) - удаляет @<код филиала> из номера счета.
- acct - номер счета, тип CHAR;
- filial-id - код филиала, тип CHAR.
Выше указанные функции описаны в base-pp и для их использования в собственных процедурах необходимо подключение globals.i
Для договоров существуют аналогичные функции определенные в mf-loan.i.
addFilToLoan(cont-code, filial-id) - осуществляет добавление @<код филиала> к номеру договора.
delFilFromLoan(cont-code) - удаляет @<код филиала> у номера договора.
- cont-code - номер договора, тип CHAR;
- filial-id - код филиала, тип CHAR.
Все вышеописанные функции в однофилиальной базе возвращают номер счета и номер договора без каких-либо преобразований. Другими словами, применение данных функций в процедурах работающих в однофилиальной базе никаким образом не сказывается на корректности их работы. Следовательно, процедуры адаптированные под многофилиальную базу АБС Бисквит, без каких либо преобразований будут корректно работать и в однофилиальной, чего нельзя сказать об обратном.
НАСТРОЕЧНЫЕ ПАРАМЕТРЫ
Настроечные параметры в многофилиальной базе делятся на общие и индивидуальные для каждого отдельного филиала. Значения общих настроечных параметров являются едиными для всех филиалов банка, а значения индивидуальных параметров различаются для каждого филиала. К индивидуальным настроечным параметрам, например, относится параметр БанкМФО (БИК банка), значение которого индивидуально для каждого отдельного филиала.
Стоит быть внимательным при определении значения индивидуального настроечного параметра филиала отличного от того, в котором будет выполняться процедура. В этом случае стоит применять функцию FGetSettingMF, в которой в качестве одного из входных параметров указывается код филиала, для которого необходимо определить значение настроечного параметра. Функция FGetSetting вернет значение параметра для филиала определенного в глобальной переменной shFilial, т.е. того филиала, в котором выполняется процедура.