Совместное использование InterBank-a и ВПС(Палаты)
0 (0)
Совместное использование InterBank-a и ВПС(Палаты) ( Zaur 06.10.2003 15:27 )
5(1)Добрый день.
В нашем банке параллельно используются обе системы. И каждый раз при переходе к новым сборкам и версиям мы испытываем трудности с совместным использованием этих систем. Вернее в БОУРМЕ до сих пор не появилось никаких механизмов или средств для передачи документов поступивших от клиентов в ВПС. Почему такая несправедливость? 8)
>> ОтветитьОт Вас нужны некоторые уточнения (+) ( Иванов Виктор 07.10.2003 13:29 )
5(1)Здравствуйте!
Вы подняли довольно интересную для нас тему. Мы не против реализовать такие средства, но нам нужно более точно представить себе, что требуется, а значит и въехать в технологический процесс обработки таких документов. Если у Вас есть хоть набросок описания того, что Вам необходимо, то вышлите мне, пожалуйста.
vivanov@softlab.ru
Спасибо!
>> ОтветитьОтвет (+) ( <B>Alex</B> 08.10.2003 18:39 )
5(1)Попытаюсь ответить в форуме на прошедшую мимо переписку:
> ... Прямой связи БОУРМ - ВПС не нужно, т.к. платежи попадают в РС-Банк, в список отложенных, для дальнейшего контроля операционистом (или еще для чего 8) ), т.е. на начальном этапе формирования документов для ВПС. Достаточно чтобы в момент заброски в отложенные к документу приставлялся SWIFT-хвост. Операционисты соответственно будут видить документы в списке введенных документов ВПС (дополнительное меню в Многовалютном ОДБ).
До версии БОУРМ-а 5.20 , т.е до применения ДЛМ модулей все было проще в реализации. В конец файла CLTXTDOC.MAC добавлялось что-то вроде:
If (Отложенный.MFO_Receiver != "") Отложенный.ApplicationKey = GetApplicationKey(); Отложенный.iApplicationKind = 8; MakeSWIFT_Tail_MT103(Отложенный); End;
Функция создания "хвоста" наше "детище" собранное по кускам из макросов ВПС.
С переходом на последнюю сборку БОУРМ-а 5.20.12 пришлось решать проблему "приделывания хвостов" обходным путём. Теперь когда операционист видит в отложенных документ от клиента, он за пускает макрос в котором для таких записей из postdoc.dbt запускается наш "создательхвостов"...
В БОУРМ версии 5.2 все тоже самое можно сделать либо в макрофайле arSpec.mac, либо в iabsdwIm.mac. Первый вызывается непосредственно перед вставкой записей в БД банка, последний непосредственно в момент вставки, в нем можно преопределить метод insert().
В любом из этих макросов, через метод _GetImplementation() объекта документа можно получить доступ к структуре postdoc.dbt (т.е. Отложенный из CLTXTDOC.MAC), соответственно возможно как угодно поправить или заполнить любые поля в ней. Так же можно добавить вставку любых других записей в любые таблицы банка. Для этого достаточно в список, возвращаемый _GetImplementation(), добавить заполненные TRecHandler'ы этих записей. Если для Вас критично, чтобы ApplicationKey/iApplicationKind имел определенное значение, можно переопределить и его, только при этом так же надо будет присвоить значение вида string(iApplicationKind) + " " + ApplicationKey свойству id объекта документа, и поправить во всех связанных записях списка (если таковые есть) поля ApplicationKey/iApplicationKind.
>> ОтветитьА как обращатся к таблицам РС-Банка из этих макросов? (+) ( Zaur 20.10.2003 14:31 )
5(1)Для использования "любых таблиц банка" достаточно только создать объект типа TRecHandler и поместить его в IABSObjectVariableList, используя метод add?
Если таблица описана в bank.def, то TRecHandler("xxxxx.dbt", ABSGetInterface()._GetDefFile())
Кроме этого нужны файлы описанные не только в bank.def.
К таким файлам нужно обращатся как в режиме чтения, так и записи.
Если путь к этим файлам прописан в bank.ini, тогда как?
>> ОтветитьНебанковские таблицы (+) ( <B>Alex</B> 20.10.2003 16:12 )
5(1)С помощью ABSGetInterface()._GetDataBaseDir() можно получить путь до каталога БД банка, соответственно доступ к таблицам описанным не в bank.def можно получить так:
TRecHandler("xxxxx.dbt", ABSGetInterface()._GetDataBaseDir() + "небанк.def") TBFile("xxxxx.dbt", "атрибуты_доступа", номер_ключа, ABSGetInterface()._GetDataBaseDir() + "имя_файла", ABSGetInterface()._GetDataBaseDir() + "небанк.def")
Одно НО, такие записи сейчас нельзя добавлять в список _GetImplementation(), их надо ручками вставлять в БД. В будущих сборках, возможно это ограничение снимем.
>> ОтветитьРезонный вопрос (+) ( Zaur 20.10.2003 16:59 )
5(1)Почти всё понятно кроме:
1. В чем преимущество добавления дополнительных таблиц описанных в bank.def в список _GetImplementation
если можно напрямую с ними работать?
2. Есть ли в интерфейсе к АБС методы позволяющие обращатся к bank.ini?
Спасибо.
>> ОтветитьОтвет (+) ( <B>Alex</B> 20.10.2003 20:28 )
5(2)> 1. В чем преимущество добавления дополнительных таблиц описанных в bank.def в список _GetImplementation
если можно напрямую с ними работать?
Здесь преимущество в системности решения. В настоящее время длмы грузятся локально (т.е. в основной процесс на том же компьютере) и работать с БД банка действительно можно напрямую. Но так будет не всегда. Через какое-то время длмы можно будет грузить удаленно (другой компьютер, другой процесс), при таком раскладе БД банка может быть просто недоступна. Соответственно решение основанное на _GetImplementation будет работать всегда, решение "напрямую" - не всегда.
> 2. Есть ли в интерфейсе к АБС методы позволяющие обращатся к bank.ini?
Нет. Для работы с инишниками помнится были спец. длмы. В генераторе клиентских дистрибутивов БОУРМа используется profile.d32. Набор ф-ций сейчас не вспомню, но можно посмотреть в genDistr.mac.
>> Ответить
А щас как дело обсоит? Воды уже много утекло, может что поменялось? (-) ( Zaur 12.07.2004 15:49 )
5(1)Not specified
>> ОтветитьДело обстоит также, без изменений. (-) ( Данилин Александр 14.07.2004 11:33 )
5(1)Not specified
>> Ответить