АРМ «КЛИЕНТ». Описание интерфейса DLLимпорта / экспорта

29.03.11 | Раздел публикации: Сбербанк России

АРМ «КЛИЕНТ»

Описание интерфейса DLLимпорта / экспорта

DLL содержит три группы функций. Первая группа состоит из двух функций и служит для инициализации и закрытия библиотеки (функции InitExtLib, CloseExtLib). Ко второй группе относятся функции, предназначенные для получения информации о данном варианте библиотеки: имени библиотеки, которое отражает ее назначение, совместимости для обработки требуемого вида документов, по умолчанию заданном имени входных и выходных файлов, возможности дописывания в файл для экспорта данных, а так же функция возвращающая код последней произошедшей ошибки (функции CheckIsCompatible, GetExtLibName, GetInOutFileName, GetTegAddingInFileExp, GetLastErrorDll, GetTegTransferLowOper). К третей группе относятся функции, предназначенные для обработки документа (функции TuneExtLib, ProcDocument, ProcAllDocuments), первая из которых служит для настройки библиотеки и установки параметров необходимых для импорта или экспорта данных, вторая служит для обработки каждого документа в отдельности и последняя функция служит для предварительной, в случае импорта или окончательной в случае экспорта обработки всех документов.

Далее приводится краткое описание функций библиотеки:

Функция, вызываемая при инициализации библиотеки:

function InitExtLib (RegName : PChar): boolean;

RegName— регистрационное имя программы, которая вызывает DLL.

Функция, вызываемая при закрытии библиотеки:

function CloseExtLib (): boolean;

Функция для проверки совместимости библиотеки указанному типу документа и совершаемой операции (экспорт / импорт):

function CheckIsCompatible (dwDocType: DWORD; bDirectionImport: boolean): boolean;

dwDocType— указатель на переменную, содержащую значение типа документа (1- для платежных поручений);

bDirectionImport— принимает значение Trueв случае импорта документа, и Falseв случае экспорта документа;

функция возвращает Trueв случае, если библиотека совместима с указанным типом документа и операцией.

Функция для получения названия библиотеки:

function GetExtLibName (szLibName: pChar; pdwNameLen: pDWORD): boolean;

szLibName— указатель на строковую переменную;

pdwNameLen— указатель на переменную, в которой содержится длина строковой переменной;

в случае успешной работы функция возвращает значение True.

Функция возвращающая имя файла экспорта/импорта, используемого по умолчанию:

function GetInOutFileName (szFileName: pChar; pdwNameLen: pDWORD; bDirectionImport: boolean): boolean;

szFileName— указатель на строковую переменную;

pdwNameLen— указатель на переменную, в которой содержится длина строковой переменной;

bDirectionImport— принимает значение Trueв случае импорта документа, и Falseв случае экспорта документа;

в случае успешной работы функция возвращает значение True.

Функция, возвращающая признак, указывающий на поддержку возможности дописывания данных в файл экспорта (используется только при экспортировании документа):

function GetTegAddingInFileExp() : boolean;

функция должна возвращать True, если возможность дописывания данных в файл экспорта поддерживается.

Функция, возвращающая признак, указывающий на необходимость запроса операций, начиная с нижнего предела заданного временного интервала, и заканчивая текущей датой (необходимо при расчете оборотов по дебету и/или кредиту)

function GetTegTransferLowOper() : boolean;

функция должна возвращать True, для запроса операций, начиная с нижнего предела заданного временного интервала, и заканчивая текущей датой.

Функция возвращающая код последней ошибки:

function GetLastErrorDll (): integer;

в настоящее время клиент реагирует на два кода ошибки, возвращаемых функцией:

DOCNONEXPORT— документ не экспортирован;

EXPORTBREAKUSER— экспорт документов прерван пользователем;

функция GetLastErrorDllвызывается клиентом после вызова функции ProcDocument

Функция для задания первоначальных настроек библиотеки:

function TuneExtLib (szFileName: pChar; bOverwrite: boolean; dwDocType: DWORD; bDirectionImport: boolean; pDocCount : pDWORD = nil): boolean;

szFileName— передается имя файла;

bOverwrite— параметр определяющий возможность перезаписывания файла в случае экспорта документов, принимает значение True, если файл необходимо перезаписывать;

dwDocType— тип экспортируемого документа (1 – для платежного поручения);

bDirectionImport— принимает значение Trueв случае импорта документа, и Falseв случае экспорта документа;

pDocCount— количество документов, которое как предполагается может быть передано для обработки;

в случае успешной работы функция возвращает значение True.

Функция, обрабатывающая документ:

function ProcDocument (recDocument: PRurDocument): boolean;

recDocument— указатель на структуру, содержащую поля документа

подробное описание структуры приводится  в приложении 1.   

Функция, производящая окончательную в случае экспорта или предварительную в случае импорта обработку документа:

functionProcAllDocuments(pDocCount : pDWORD = nil) : boolean;

pDocCount— количество документов, передаваемое клиенту в случае импорта документов.


Приложение 1.Структура, содержащая поля документа.

TRurDocument= record

   NDoc: integer; //банковский номер операции по счету

   DocNum: integer; //номер платежного поручения

   Date: TDateTime; //дата составления платежного поручения

   SendType : String[50]; //вид платежа

   Summa : Currency; //сумма

   PayerINN : string[12]; //ИНН плательщика

   PayerName : string[255]; //имя плательщика

   PayerAccount : string[25]; //номер счета плательщика

   PayerBank : string[255]; //банк плательщика

   PayerBankAdr: string[255]; //адрес банка плательщика

   PayerBIC: integer; //БИК банка плательщика

   PayerCorrAcc: string[25]; //номер счета банка плательщика

   ReceiverBank : string[255]; //банк получателя

   ReceiverBankAdr: string[255]; //адрес банка получателя

   ReceiverBIC: integer; //БИК банка получателя

   ReceiverCorrAcc: string[25]; //номер счета банка получателя

   ReceiverINN : string[12]; //ИНН получателя

   ReceiverName : string[255]; //имя получателя

   ReceiverAccount: string[25]; //номер счета получателя

   DatePay: TDateTime; //срок платежа (не заполняется до указания ЦБ)

   TypePay: integer; //назначение платежа кодовое (не заполняется до указания ЦБ)

   OrderType: integer; //очередность платежа

   Kod: array[0..10] ofchar; //(не заполняется до указания ЦБ)

   Rezerv: array[0..10] ofchar; //резервное поле (заполняется в случаях, установленных нормативными актами ЦБ)

   PayDest:  string[210]; //назначение платежа

   SendDate: TDateTime; //поступило в банк плательщика

   Sign1 : integer; //подпись директора

   Sign2 : integer; //подпись бухгалтера

   SignName1 : string[64]; //директор

   SignName2 : string[64]; //бухгалтер

   AccountSumma : Currency; //базовая сумма

   AccountType: integer; //тип счета (активный / не активный) 

   StartDate: TDateTime; //дата начала периода для выписки

   FinishDate: TDateTime; //дата конца периода для выписки

   CodOper: integer; //код  операции

   DateOper: TDateTime; //дата операции

   DocType : integer; //тип документа

   ConditionPay : string[170]; //условие оплаты

   TimePay : integer; //срок для акцепта

   DateFact : TDateTime; //дата

   AccFact : integer; //№ счета фактуры

   SummaTreb: Currency; //полная сумма платежного требования

   ViewDoc: string[170]; //платеж по представлению (для аккредитива)

   Condition: string[170]; //наименование товаров, работ, услуг и т.д. (для аккредитива)

   AcredType : string[170]; //вид аккредитива

   SystemName: string[170]; //название системы и версия

   PokStat: string[2]; //Статус составителя расчетного документа

   KPPPlat: string[9]; //КПП плательщика

   KPPPol: string[9]; //КПП получателя

   CodKBK: string[19]; //Показатель кода бюджетной классификации

   CodOKATO: string[11]; //ОКАТО

   PokOsnPl: string[2]; //Показатель основания налогового платежа

   PokNalPer: string[10]; //Показатель налогового периода

   PokNDoc: string[15]; //Показатель номера налогового документа

   DtDoc: string[10]; //Показатель даты налогового документа

   TypePlat: string[2]; //Показатель типа налогового платежа

   VibCodVal : integer; //Кодвалюты

   VibPayer: string[160]; //Отправитель(кредит)/Получатель(дебет)

   VibDateMfs : TDateTime; //ДатаМФС

   RpStatus: integer; //Статус документа

   RpReceiver: string[160]; //Получатель платежа

   RpCodUch: string[10]; //Код участника

   RpPost: integer; //Тип отправки

   RpSubBank: string[60]; //Филиал(банк-корреспондент)

   RpRealAcc: string[25]; //Реальный счет получателя

   RpDatePay: TDateTime; //Дата платежа

   RpPayer: string[160]; //Плательщик (отправитель платежа)

   RpInnPayer : string[12]; //ИНН плательщика

   RpSumPost: currency; //Оплата телеграфных расходов

   RpBicRkc : integer; //БИК РКЦ

   RpNumTreb : integer; //Ун. № треб

   RpSumItog : currency; //Сумма итого

   RpUchPayer: integer; //Код участника платежа

   RpNumAb: integer; //Регистрационный №

   UnNum: string[25]; //Уникальный номер

   Firma : string[160]; //Фирма

   AccFirma : string[25]; //Реальный счет

   Ground1 : string[70]; //Назначение платежа 1

   Ground2 : string[70]; //Назначение платежа 2

   Ground3 : string[70]; //Назначение платежа 3

end;

 

info В обработку принимаются вопросы только по Корпоративному ПО и компьютерной технике для использования в организациях. Отправить запрос
info Техподдержка для Домашних пользователей (персональные версии программ, компьютер, ноутбук, принтер, сканер, монитор) производится Службами поддержки Производителей