ВЫЗОВ УНИВЕРСАЛЬНЫХ ТРАНЗАКЦИЙ АБС БИСКВИТ ИЗ ПРОЦЕДУР ABL

Для вызова универсальных транзакций из собственной процедуры используется процедура ex-trans.p. Данная процедура осуществляет вызов транзакции с предустановленными параметрами, указанных во временной таблице tOpKindParam. Инклюд файл topkind.def содержит описание этой временной таблицы, а так же ряд функций по работе с ней.

Объявим необходимые переменные и определим их значения:

{topkind.def}

DEF VAR vCurr     AS  CHAR NO-UNDO. /* Валюта операции                 */
DEF VAR vAcctDb   AS  CHAR NO-UNDO. /* Счет дебета                     */
DEF VAR vAcctCr   AS  CHAR NO-UNDO. /* Счет кредита                    */
DEF VAR vSumm     AS  DEC   NO-UNDO. /* Сумма операции                  */
DEF VAR vNumber   AS  INT   NO-UNDO. /* Номер документа                 */
DEF VAR vSendName AS  CHAR NO-UNDO. /* Наименование получателя         */
DEF VAR vRecName  AS  CHAR NO-UNDO. /* Наименование плательщика        */
DEF VAR vParamOk  AS  LOG   NO-UNDO. /* Результат заполнения таблицы    */
DEF VAR vTransOK  AS  LOG  NO-UNDO. /* Результат выполнения транзакции */
DEF VAR iOpKind   AS CHAR  NO-UNDO. /* Код вызываемой транзакции       */
DEF VAR iOpDate   AS DATE  NO-UNDO.  /* Дата опер. дня                  */

ASSIGN
    vCurr = ""
    vAcctDb = "40817810012340000001"
    vAcctCr = "40817810112340000002"
    vSumm = 1024.50
vNumber = 1
    vSendName = "Иванов Иван Иванович"
  vRecName = 'ООО "Энергия"'
NO-ERROR.

Заполнение таблицы параметров передаваемых в универсальную транзакцию:

{empty tOPKindParams}  /* очистить таблицу параметров транзакции */

vParamOk = TDAddParam("mCurr", vCurr)          AND

           TDAddParam("mAcctDb", vAcctDb) AND
          TDAddParam("mAcctCr", vAcctCr) AND
TDAddParam("mAmt", STRING(vSumm)) AND
TDAddParam("mSendName", vSendName) AND
TDAddParam("mRecName", vRecName) AND
TDAddParam("mDocNum", STRING(vNumber)).

Функция TDAddParam осуществляет заполнения временной таблицы tOpKindParam контекста универсальной транзакции, описанной так же как и сама функция в инклюд-файле topkind.def. Первым параметром данной функции является идентификатор переменной используемой в универсальной транзакции, второй - присваиваемое ей значение типа CHAR.

Вызов транзакции:

iOpKind = "TR0001".
iOpDate = TODAY.

RUN ex-trans.p (iOpKind,
                iOpDate,
                TABLE tOpKindParams,
                OUTPUT vTransOk,
                UTPUT vMessErr).

Успешность, или неуспешность выполнения универсальной транзакции будет отражено в значение логического выходного параметра vTransOk:

  • TRUE - транзакция выполнена успешно;
  • FALSE - транзакция завершилась с ошибкой.

В случае завершения транзакции с ошибкой выходной параметр vMessErr будет содержать сообщение ошибки.

Таким образом при создании универсальной транзакции для определения значений реквизитов доступны следующие переданные значения переменных:

@mCurr 
@mAcctDb
@mAcctCr
@mAmt
@mDocNum
@mSendName
@mRecName

 

Вы здесь: Главная ИБС Бисквит СТАНДАРТНЫЕ И УНИВЕРСАЛЬНЫЕ ТРАНЗАКЦИИ ВЫЗОВ УНИВЕРСАЛЬНЫХ ТРАНЗАКЦИЙ ИЗ ПРОЦЕДУР ABL