30
Использование Lua в Рабочем месте
QUIK
4.
Отправка транзакций из
Lua
скрипта
Для отправки транзакций на сервер
QUIK
из скрипта
Lua
плагин
QLua
предоставляет функцию
sendTransaction()
, а для получения результата выполнения транзакции на сервере
QUIK
функцию обратного вызова
OnTransReply()
. Рассмотрим структуру данных функций и способы
их использования.
Функция
sendTransaction()
Функция
sendTransaction()
принимает в качестве аргумента таблицу
Lua c
параметрами
транзакции. Если транзакция не прошла проверку на
стороне РМ
QUIK,
то функция
возвращает
описание ошибки, иначе –
транзакция отправляется на сервер
QUIK.
Рассмотрим
следующий
пример
:
transaction
= {TRANS_ID=
'400001'
,
ACTION=
'NEW_ORDER'
,
CLASSCODE=
'TQBR'
,
ACCOUNT=
'L01-00XXXXXX'
,
CLIENT_CODE=
'QX'
,
SECCODE=
'LKOH'
,
OPERATION=
'B'
,
PRICE=
'2650.5'
,
QUANTITY=
'300'
,
TYPE=
'L'
}
result
=
sendTransaction
(
transaction
)
if
result
~=
""
then
message
(
string
.format(
"
Транзакция
%s
не
прошла
проверку
на
стороне
терминала
QUIK [%s]"
,
transaction
.TRANS_ID,
result
))
else
message
(
string
.format(
"
Транзакция
%s
отправлена
"
,
transaction
.TRANS_ID))
end
В данном примере поля
Lua
таблицы
transaction
аналогичны полям .
tri-
файла с параметрами
транзакций (подробное описание формата .
tri-
файла и примеры транзакций см.
в Руководстве
пользователя QUIK, раздел 6 «Совместная работа с другими приложениями», меню
Импорт
транзакций / Формат .tr
i-
файла с параметрами транзакций). При этом для корректной обработки
данных числовые значения (цена, количество и т.д.)
должны передаваться в виде строковых
значений.