ККМ Сервер и FM 16

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
Ответить
Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

ККМ Сервер и FM 16

Сообщение Vadim » 09 фев 2018, 15:11

На старом форуме уже поднимал вопрос о интеграции FM и ККМ Сервер. http://fmpug.ru/viewtopic.php?t=11480&p ... sc&start=0,
Вопрос решился через запуск javascript внутри webviever
Но это решение не стабильно возвращает результат в FM
У 16 FM появилась возможность использовать CURL,
Наверно теперь можно взаимодействовать c помощью Insert from URL.
Вот только мне никак не удается оформить вызов команды.
Буду благодарен за тычёк носом.

khalex
Сообщения: 13
Зарегистрирован: 12 сен 2017, 03:31
Откуда: Краснодар

Re: ККМ Сервер и FM 16

Сообщение khalex » 09 фев 2018, 15:44

Я сделал через BaseElements, но думаю можно и через curl...
Функция на замену функции ExecuteCammand из примера сервера

KKM_ExecuteCommand

URL - адрес сервера
Async - синхронный или асинхронный обмен
Data - посылаемые данные
user - пользователь сервера
pass - пароль



Let ( [
header = BE_Curl_Set_Option ( "CURLOPT_HTTPAUTH" ;1 );
header = BE_HTTP_Set_Custom_Header ( "dataType" ; "json" );
header = BE_HTTP_Set_Custom_Header ( "Content-type" ; "application/json" );
URL=URL & If ( Async ; "/Execute/async"; "/Execute/sync" )
];
BE_HTTP_POST ( URL ; data; user ; pass ) )

Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

Re: ККМ Сервер и FM 16

Сообщение Vadim » 12 фев 2018, 10:20

khalex, Спасибо!
Пытаюсь пробиться штатными средствами.
Пока безуспешно :cry:
Текущее состояние

Код: Выделить всё

$data = 
{"Command":"OpenCashDrawer","IdCommand":"E5C57FF9-FB2C-4BB8-8A2C-3324FBFCC94B","NumDevice":3}

$options = 
"-X POST ¶ 
--user " & $user & ":" & $password   & "¶
--header \"Content-Type:application/json; charset=UTF-8\"  ¶
--data @$data ¶  & 
--trace-ascii  $$cUrl_traceDump"

$url =
"http://xxx.xxx.xxx.xxx:5893"

Insert from URL [$$result; $url; cURL options: $options]
Получаю ошибку от сервера [10] Requested data is missing
В переменной $$cUrl_traceDump:

Код: Выделить всё

== Info: Rebuilt URL to: http://xxx.xxx.xxx.xxx:5893/
== Info:   Trying xxx.xxx.xxx.xxx...
== Info: Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) port 5893 (#0)
== Info: Server auth using Basic with user 'User'
=> Send header, 215 bytes (0xd7)
0000: POST / HTTP/1.1
0011: Host: xxx.xxx.xxx.xxx:5893
002b: Authorization: Basic VXNlcjo=
004a: User-Agent: FileMaker/16.0
0066: Accept: */*
0073: Accept-Encoding: deflate, gzip
0093: Content-Type:application/json; charset=UTF-8
00c1: Content-Length: 93
00d5: 
=> Send data, 93 bytes (0x5d)
0000: {"Command":"OpenCashDrawer","IdCommand":"40FEFB54-780E-4C98-ABFE
0040: -7FF10365FAB3","NumDevice":3}
== Info: upload completely sent off: 93 out of 93 bytes
<= Recv header, 20 bytes (0x14)
0000: HTTP/1.1 302 Found
<= Recv header, 32 bytes (0x20)
0000: Access-Control-Allow-Origin: *
<= Recv header, 40 bytes (0x28)
0000: content-type: text/html; charset=utf-8
<= Recv header, 52 bytes (0x34)
0000: Cache-Control: no-store, no-cache, must-revalidate
<= Recv header, 43 bytes (0x2b)
0000: Location: http://xxx.xxx.xxx.xxx:5893/About
<= Recv header, 19 bytes (0x13)
0000: content-length: 0
<= Recv header, 2 bytes (0x2)
0000: 
== Info: Curl_http_done: called premature == 0
== Info: Connection #0 to host xxx.xxx.xxx.xxx left intact
Последний раз редактировалось Vadim 13 фев 2018, 12:55, всего редактировалось 2 раза.

Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

Re: ККМ Сервер и FM 16

Сообщение Vadim » 12 фев 2018, 11:43

Разобрался: в URL после порта нужно добавить путь:/Execute/sync :D :D :D

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: ККМ Сервер и FM 16

Сообщение andrey volkov » 13 фев 2018, 15:03

отличный кейс. спасибо, что поделились.

Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

Re: ККМ Сервер и FM 16

Сообщение Vadim » 14 фев 2018, 09:45

andrey volkov писал(а):
13 фев 2018, 15:03
отличный кейс. спасибо, что поделились.
Спасибо Андрей!
cUrl options в 16 FM - отличная возможность интеграции!
Жаль FM пока отстает от моих потребностей примерно на год :(

Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

Re: ККМ Сервер и FM 16

Сообщение Vadim » 14 фев 2018, 13:08

Вот только стандартный таймаут Insert from URL в минуту изменить пока не удалось.
--connect-timeout 30 в опциях не помогает...
Может знаете как?

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: ККМ Сервер и FM 16

Сообщение andrey volkov » 14 фев 2018, 14:28

я сам только учусь.
попробуйте выставить в ноль настройку (по логике это означает без таймаута)

Ответить