Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ОБЗОР ИНТЕГРАЦИОННЫХ РЕШЕНИЙ FILEMAKER.
ОБМЕН ДАННЫМИ И РАСШИРЕНИЕ ФУНКЦИОНАЛЬНОСТИ
ПЕРЛА АРКАДИЙ (КОМПАНИЯ ТРИАПРИНТ)
FMS
CWP
FM
(пользовательская
часть)
Приложение FileMaker
Обмен данными Расширение функциональности
Web-сервисы
Сторонние п...
ОБМЕН ФАЙЛАМИ СОГЛАСОВАННОГО ФОРМАТА
Экспорт данных в файл(ы) с последующей загрузкой, по-прежнему остается актуальным спо...
ПРИМЕР: ЗАГРУЗКА БАНКОВСКОЙ ВЫПИСКИ В ПРИЛОЖЕНИЕ FILEMAKER
Почти все клиент-банк
приложения умеют
экспортировать
выписку в...
ODBC ДОСТУП
FileMaker Server позволяет сторонним
приложениям подключаться к своим базам
данным через ODBC
В принципе, это ...
ODBC ИМПОРТ ДАННЫХ
ПРИМЕР: КОНТРОЛЬ ПРИХОДА/УХОДА СОТРУДНИКОВ ПО ОТПЕЧАТКАМ ПАЛЬЦЕВ
Устройства считывания отпечатков
пальц...
ODBC ИМПОРТ ИМПОРТ ДАННЫХ
ПРИМЕР: ФОРМИРОВАНИЕ ОТЧЕТОВ О РАБОТЕ РЕСТОРАНОВ, НА ОСНОВЕ ДАННЫХ RKEEPER
Данные из
ресторанов
...
ODBC ИМПОРТ ИМПОРТ ДАННЫХ
ПРИМЕР: ФОРМИРОВАНИЕ ОТЧЕТОВ О РАБОТЕ РЕСТОРАНОВ НА ОСНОВЕ ДАННЫХ RKEEPER
MS SQL
Import Records ...
XML-ИМПОРТ
Импортировать XML-данные в
базу FilleMaker можно
несколькими способами:
• Import Records with XML Data
Source. ...
XML-ЭКСПОРТ
XML- один из самых популярных форматов для загрузки данных в
сторонние сервисы и базы данных. Структура XML ча...
XML-ЭКСПОРТ
ПРИМЕР. ФОРМИРОВАНИЕ XML ДЛЯ ЗАГРУЗКИ ДАННЫХ НА САЙТ РИЭЛТЕРСКОГО АГЕНТСТВА
• Калькулируемое поле в таблице об...
XML-ЭКСПОРТ
ПРИМЕР. ФОРМИРОВАНИЕ XML ДЛЯ ЗАГРУЗКИ ДАННЫХ НА САЙТ РИЭЛТЕРСКОГО АГЕНТСТВА
• Итоговый XML собирается в поле с...
РАБОТА С ВЕБ-СЕРВИСАМИ
Большинство популярных сервисов предоставляют API
для работы с ними. Работа с сервисами обычно
осущ...
РАБОТА С ВЕБ-СЕРВИСАМИ
ПРИМЕР. РЕАЛИЗАЦИЯ TELEGRAM-БОТА НА FILLEMAKER SERVER
• Регистрация бота делается средствами самого...
PLUGINS.
ЕСЛИ МЫ ЧТО-ТО НЕ ЗНАЕМ КАК СДЕЛАТЬ, МЫ МОЖЕМ ЭТО СДЕЛАТЬ ЧЕРЕЗ КАКОЙ-НИБУДЬ ПЛАГИН
http://solutions.filemaker.co...
PLUGINS. BASELEMENT
Основные категории функций
• DIALOGS
• CONTAINERS
• CLIPBOARD
• FILE AND FOLDER
• ENCODING AND
ENCRYPT...
PLUGINS. BASELEMENT
ПРИМЕР. ИСПОЛЬЗОВАНИЕ JSON CUSTOM-ФУНКЦИЙ ДЛЯ РЕАЛИЗАЦИИ КНОПКИ «ОТМЕНА»
И ВОССТАНОВАЛЕНИЯ ЗАПИСИ
В мо...
360 WORKS SCRIPTMASTER
ВСЕ ВОЗМОЖНОСТИ JAVA В FILEMAKER
• Бесплатный
• Позволяет запускать java-код из
под FileMaker
• Нап...
360 WORKS SCRIPTMASTER
ПРИМЕР. ДОБАВЛЕНИЕ ЛОГОТИПА АГЕНТСТВА НА ФОТО ПРИ ДОБАВЛЕНИИ ФАЙЛА В БАЗУ
• Запускаемый с заданной
...
360 WORKS SCRIPTMASTER
ПРИМЕР. СОЗДАНИЕ PDF НА СТОРОНЕ FILEMAKER SERVER
Задача. FileMaker умеет запускать скрипты на
серве...
WEB VIEWER.
ЕСЛИ МЫ НЕ ЗНАЕМ КАК ЧТО-ТО СДЕЛАТЬ В ИНТЕРФЕЙСЕ, МЫ МОЖЕМ ЭТО СДЕЛАТЬ В WEB VIEWER
Web Viewer – это не способ...
WEB VIEWER.
ПРОСТОЙ РЕДАКТОР ДЛЯ БЫСТРОГО РИСОВАНИЯ ГЕНОГРАММЫ НА ПРИЕМЕ У ВРАЧА
Web Viewer строится на
калькулируемом пол...
WEB VIEWER.
ПРИМЕР. РАСПИСАНИЕ ВРАЧЕЙ В КЛИНИКЕ И СОБСТВЕННОЕ РАСПИСАНИЕ ВРАЧА
Используется JS-библиотека DHTMLX
Sсheduler...
Спасибо за внимание!
Вопросы?
Upcoming SlideShare
Loading in …5
×

Перла А. Обзор интеграционных решений FileMaker.

304 views

Published on

Доклад Перла Аркадия (Компания "ТриАПринт") на 3-й Конференции разработчиков на платформе FileMaker, FileMaker DevCon Rus 2016 "Обзор интеграционных решений FileMaker. Обмен данными и расширение функциональности"

Published in: Software
  • Be the first to comment

  • Be the first to like this

Перла А. Обзор интеграционных решений FileMaker.

  1. 1. ОБЗОР ИНТЕГРАЦИОННЫХ РЕШЕНИЙ FILEMAKER. ОБМЕН ДАННЫМИ И РАСШИРЕНИЕ ФУНКЦИОНАЛЬНОСТИ ПЕРЛА АРКАДИЙ (КОМПАНИЯ ТРИАПРИНТ)
  2. 2. FMS CWP FM (пользовательская часть) Приложение FileMaker Обмен данными Расширение функциональности Web-сервисы Сторонние приложения и базы данных • Обмен файлами (xls, csv, 1С, xml) • ODBC-подключение • ODBC-импорт • XML/XSLT-импорт/экспорт • XML-запросы • PHP-вызовы • http-запросы (работа со сторонними API) • Плагины • дополнительные функции • использование сторонних языков и библиотек: JAVA, JS, RUBY • Web Viewer • HTML, JS, CSS • Сторонние JS-библиотеки • fmp-вызовы • Создание файлов пользовательских форматов (OFFICE, RTF, PDF…)
  3. 3. ОБМЕН ФАЙЛАМИ СОГЛАСОВАННОГО ФОРМАТА Экспорт данных в файл(ы) с последующей загрузкой, по-прежнему остается актуальным способом обмена данными между базой FileMaker и сторонними системами или базами. Несмотря на «примитивность» решения, использование такого способа может быть вполне эффективно: • Быстрая реализация. Обычно используется стандартные форматы файлов и команды импорта/экспорта. Не требуется «глубокое погружение» в особенности сторонней системы • Надежность. Ответственность за качество реализации распределена между разработчиками «своих» систем. Разработчик FileMaker делает свою часть, разработчик сторонней системы свою. • Возможна реализация как на стороне пользователя, так и на стороне сервера (автоматический запуск по расписанию) Частые примеры использования: • Простой обмен данными с сайтом • Обмен данными с 1С
  4. 4. ПРИМЕР: ЗАГРУЗКА БАНКОВСКОЙ ВЫПИСКИ В ПРИЛОЖЕНИЕ FILEMAKER Почти все клиент-банк приложения умеют экспортировать выписку в формат 1С- документ. Это текстовый формат. Где каждое свойство(поле) располагается на новой строке. Начало и конец документа начинаются с «Секция документ=» и «Конец документа», соответственно. • Кодировка документа Windows 1251. При работе на OS X, нужна предварительная перекодировка файла (например с помощью iconv) • Импорт. Возможно импортировать весь файл в одно текстовое поле (Insert From Url) либо во временную таблицу (Import Records), где каждая строка документа превратится в отдельную запись. • Обработка импорта. Скрипт-обработчик ищет ключевые слова начала и конца документа и создает записи платежей в системе.
  5. 5. ODBC ДОСТУП FileMaker Server позволяет сторонним приложениям подключаться к своим базам данным через ODBC В принципе, это все что нужно знать разработчику FileMaker для ответа на вопрос стороннего разработчика о возможности прямого доступа к данным Для организации доступа необходимо • Включить ODBC-sharing (файле/сервере) • Настроить права доступа • Настроить подключение. Драйвер FileMaker ODBC входит в комплект FMS Получивший доступ сторонний разработчик сможет читать и изменять записи (если есть права) используя SQL-запросы ODBC
  6. 6. ODBC ИМПОРТ ДАННЫХ ПРИМЕР: КОНТРОЛЬ ПРИХОДА/УХОДА СОТРУДНИКОВ ПО ОТПЕЧАТКАМ ПАЛЬЦЕВ Устройства считывания отпечатков пальцев подключены к сети организации и сохраняют время сканирования и ID сотрудника на удаленный центральный сервер в собственное приложение на базе MySQL MySQL Через настроенное ODBC подключение база FileMaker «видит» нужные таблицы ODBC Запускаемый каждые 5 мин скрипт на FileMaker Server, обрабатывает новые данные о сканировании отпечатков и по полученным ID формирует данные о приходе/уходе сотрудников, привязывая к офису. Простое, адаптированное под формат iPhone приложение, позволяет руководителю контролировать сотрудников во всех офисах организации
  7. 7. ODBC ИМПОРТ ИМПОРТ ДАННЫХ ПРИМЕР: ФОРМИРОВАНИЕ ОТЧЕТОВ О РАБОТЕ РЕСТОРАНОВ, НА ОСНОВЕ ДАННЫХ RKEEPER Данные из ресторанов собираются на центральный MS SQL Server ежедневно по окончании смены MS SQL Запускаемый на FileMaker Server скрипт импортирует данные уже виде необходимых отчетов с помощью специальных SQL-запросов Import Records ODBC Data
  8. 8. ODBC ИМПОРТ ИМПОРТ ДАННЫХ ПРИМЕР: ФОРМИРОВАНИЕ ОТЧЕТОВ О РАБОТЕ РЕСТОРАНОВ НА ОСНОВЕ ДАННЫХ RKEEPER MS SQL Import Records ODBC Data Преимущества подхода: • Нет дублирования данных. В FMS хранятся отчеты, а в MS SQL данные о самих продажах • Формирование отчетов происходит на самом MS SQL сервере, импортируется только результат. Это в разы увеличивает быстродействие. При работе с базой напрямую для формирования отчетов нам пришлось бы работать примерно с такой структурой… Вместо этого мы формируем отчет на самом MS SQL Server и импортируем только результат запроса. В самом FileMaker для хранения результата используется только одна таблица
  9. 9. XML-ИМПОРТ Импортировать XML-данные в базу FilleMaker можно несколькими способами: • Import Records with XML Data Source. Стандартная команда FM. Требуется XLST-файл описания структуры данных. • Импорт XML как текста в текстовое поле, с последующим разбором, скриптом или калькуляцией. Можно использовать функции работы с текстом или специализированные функции плагинов. Подходит для небольших и простых по структуре объемов данных. • Обработка XML средствами php. Требуется FMS c включенным CWP. Необходимо знание, как минимум, основ php ПРИМЕР. Загрузка курса валют с сайта ЦБ "http://www.cbr.ru/scripts/XML_daily_eng.asp?date_req= " & $date http://www.cbr.ru/scripts/XML_daily_eng.asp?date_req=31.10.2016
  10. 10. XML-ЭКСПОРТ XML- один из самых популярных форматов для загрузки данных в сторонние сервисы и базы данных. Структура XML часто диктуется сторонним сервисом. От FileMaker обычно требуется предоставить интернет-ссылку или путь к валидному XML-файлу. Получить XML из FileMaker: • «Обычный» экспорт из FileMaker в XML-файл. Формирует структуру данных «понятную» только FM. Чаще нам необходимо сформировать XML в заданной структуре, для загрузки данных на сайт либо сервис. • Использование специального XSLT-файла для формирования заданной структуры при экспорте. • Получить XML как возвращаемый результат xml-запроса к серверу, вида: • Сформировать заданный XML «внутри» FM с помощью калькуляций и скриптов в текстовое поле с последующим экспортом в файл. http://адрес_сервера/fmi/xml/FMPXMLRESULT.xml?-db=имя_базы&-lay=имя_лайоута&-findall&-script=имя_скрипта&-script.param=параметр_скрипта
  11. 11. XML-ЭКСПОРТ ПРИМЕР. ФОРМИРОВАНИЕ XML ДЛЯ ЗАГРУЗКИ ДАННЫХ НА САЙТ РИЭЛТЕРСКОГО АГЕНТСТВА • Калькулируемое поле в таблице объектов недвижимости «собирает» в себя всю необходимую информацию и формирует xml- запись данного объекта. • Аналогично формируются xml-блоки для других участвующих в XML таблицах • Далее…
  12. 12. XML-ЭКСПОРТ ПРИМЕР. ФОРМИРОВАНИЕ XML ДЛЯ ЗАГРУЗКИ ДАННЫХ НА САЙТ РИЭЛТЕРСКОГО АГЕНТСТВА • Итоговый XML собирается в поле системной таблицы с помощью функций List(). Настроенные свойства реляций позволяют собрать только нужные записи. • Скрипт на сервере по расписанию выгружает значение поля (Export Records) как файл .xml • Папка для выгрузки XML доступна через web • Программа загрузчик сайта закачивает полученный XML раз сутки и обновляет данные данные на сайте. • Аналогично формируются XML для сервисов поиска недвижимости. Для каждого сервиса, структура XML отличается. • Для загрузчика на сайт и сервисов путь к выгруженным файлам – это валидная XML-ссылка с всегда актуальными данными
  13. 13. РАБОТА С ВЕБ-СЕРВИСАМИ Большинство популярных сервисов предоставляют API для работы с ними. Работа с сервисами обычно осуществляется с помощью http-запросов. Для отправки HTTP-запроса можно использовать команду Insert from Url. Результат запроса будет сохранен в текстовое поле. Для отправки http-запросов можно использовать также функции плагинов, например, BaseElement (удобно для POST-запросов) Ответ сервиса часто возвращается в формате JSON. Для его обработки также может быть удобно использовать BaseElement . Некоторые сервисы предоставляют возможность отправки некоторых команд через e-mail. ПРИМЕР. Сервис sms.ru Позволяет отправить смс отправкой e-mail на специальный адрес, образованный как уникальный ключ пользователя + номер мобильного телефона. Текст самого письма будет отправлен как смс
  14. 14. РАБОТА С ВЕБ-СЕРВИСАМИ ПРИМЕР. РЕАЛИЗАЦИЯ TELEGRAM-БОТА НА FILLEMAKER SERVER • Регистрация бота делается средствами самого Telegram и подробно описана в документации https://tlgrm.ru/docs#robots • В результате мы получаем значение токена для аутентификации и ID бота, которые сохраним в системной таблице нашего приложения. • Для отправки сообщения нужно знать ID- собеседника. Его можно получить из сообщения, если наш бот «отвечает» на сообщение пользователя. Либо мы можем занести эти данные в карточку пользователя заранее, если реализуем рассылку пользователям FileMaker приложения. • Отправка сообщения происходит через http-запрос, который формируется в момент исполнения скрипта как калькуляция. https://api.telegram.org/bot196160321:AAGNPckJl3УAGdnkb7UouPPeEmmj83vp3cSDpKw/sendMessage?chat_id=3245352&text=Текст%20сообщения Бот Mathenardo исполняется на FileMaker Server и обрабатывает входящие сообщения функцией Evaluate(), тем самым реализуя калькулятор выражений
  15. 15. PLUGINS. ЕСЛИ МЫ ЧТО-ТО НЕ ЗНАЕМ КАК СДЕЛАТЬ, МЫ МОЖЕМ ЭТО СДЕЛАТЬ ЧЕРЕЗ КАКОЙ-НИБУДЬ ПЛАГИН http://solutions.filemaker.com/made-for-filemaker/search.jsp?category=5&task=%&industry=%&sort=a Выдает 70 плагинов, учитывая количество функций в каждом из них, это много. Наиболее известные разработчики: • Monkey Bread Software (MBS FileMaker Plugin). Наверное, самый мощный из всех существующих плагинов по количеству функций и охвату тем. 4191 функция, на все случаи жизни! • 360 Works (ScriptMaster, SuperContainer, Scribe, Email Plugin и др.). Один из самых известных разработчиков, с наиболее востребованными функциями. • Goya Pty (BaseElement). Популярный бесплатный плагин с очень востребованными функциями. • Troi (Troi File Plug-in, Troi Dialog Plug-in и др.) • Beezwax (bBOX)
  16. 16. PLUGINS. BASELEMENT Основные категории функций • DIALOGS • CONTAINERS • CLIPBOARD • FILE AND FOLDER • ENCODING AND ENCRYPTION • HTTP and URLS • XML, XSLT AND JSON • SMTP Email • VALUE LISTS • TIME • ZIP AND GZIP • и др (EvaluateJavaScript, ExecuteScript, RegularExpression…) Набор функций для отправки почты в бесплатном плагине BaseElement закрывает для разработчиков FileMaker вопрос отправки почты в формате HTML с несколькими вложениями: BE_SMTP_Server ( server { ; port ; username ; password } ) Устанавливаем связь с сервером BE_SMTP_AddAttachment ( container ) Добавляет вложение к письму. Вызов функции в цикле позволяет добавить несколько вложений. BE_SMTP_Send ( from ; to ; subject ; text { ; cc ; bcc ; replyTo ; html ; attachments } ) Отправляет письмо через почтовый сервер, с которым ранее была установлена связь через BE_SMTP_Server ПРИМЕР: Отчета о работе ресторана (см. слайд ODBC- импорт) формируется как HTML письмо, которое отправляется руководителям в конце смены FileMaker-сервером, сразу после формирования самого отчета. HTML формируется на основе шаблона, где ключевые слова заменяются на данные или отдельно сформированные «куски» html-кода
  17. 17. PLUGINS. BASELEMENT ПРИМЕР. ИСПОЛЬЗОВАНИЕ JSON CUSTOM-ФУНКЦИЙ ДЛЯ РЕАЛИЗАЦИИ КНОПКИ «ОТМЕНА» И ВОССТАНОВАЛЕНИЯ ЗАПИСИ В момент открытия карточки записи к врачу, скрипт сохраняет текущие значения полей в формате JSON в глобальное поле, добавляя их к существующим данным в этом глобальном поле (если у нас открыто несколько карточек в разных окнах). При нажатии «Cancel» скрипт закрытия «вытаскивает» из JSON структуры по ID карточки значения полей и восстанавливает карточку Преимущества: • Более быстрое и «изящное» решение по сравнению с «ручной» обработкой текста • Удобно работать с несколькими записями
  18. 18. 360 WORKS SCRIPTMASTER ВСЕ ВОЗМОЖНОСТИ JAVA В FILEMAKER • Бесплатный • Позволяет запускать java-код из под FileMaker • Написанные на java функции регистрируются как функции FileMaker • Возможность подключать дополнительные java- библиотеки, что дает разработчику практически неограниченные возможности • Можно запускать как из FileMaker, так и из FileMaker Server • В комплект входит fmp12-файл с большим количеством примеров RegisterGroovy( signature; script{; key1=value1; key2=value2; ...} ) • В функцию RegisterGroovy передается наименование функции с параметрами, как текстовая стока, например: ”IB_Crop (ImageContainerName; Width; Height; StartPoint)” и java-код самой функции. • После вызова RegisterGroovy, новая функция доступна для вызова в FileMaker • RegisterGroovy удобно вызывать при открытии FileMaker-файла в стартовом срипте
  19. 19. 360 WORKS SCRIPTMASTER ПРИМЕР. ДОБАВЛЕНИЕ ЛОГОТИПА АГЕНТСТВА НА ФОТО ПРИ ДОБАВЛЕНИИ ФАЙЛА В БАЗУ • Запускаемый с заданной периодичностью скрипт на FileMaker Server находит новые файлы (без watermark) • Добавляет логотип агентства и сохраняет в отдельное поле-контейнер с настроенным External Storage • Таким образом на сайте показываются изображения с логотипом, а в базе FileMaker для сотрудников без. • В качестве параметров функции передается путь к самому изображению (файлы в контейнере хранятся как External Storage) и путь к файлу- логотипа
  20. 20. 360 WORKS SCRIPTMASTER ПРИМЕР. СОЗДАНИЕ PDF НА СТОРОНЕ FILEMAKER SERVER Задача. FileMaker умеет запускать скрипты на сервере по расписанию, cохранять лайауты как pdf, отправлять e-mail…Но не все это одновременно. Также сохранение в PDF не работает в WebDirect Для создания pdf используется java-библиотека itextpdf 5.5 https://github.com/itext/itextpdf/releases/tag/5.5.10 Функция SMLoadJar( externalJar ) подключает внешнюю библиотеку (файл библиотеки хранится в контейнере системной таблицы) В созданную функцию формирования PDF передаются все необходимые поля. Изображения передаются в кодировке Base 64 Полученный pdf функция сохраняет в tmp-папку по заданному пути. Откуда он в уже вставляется в поле-контейнер. Так как в FileMaker Server не работает Insert File, то для импорта файла также используется небольшая java-функция
  21. 21. WEB VIEWER. ЕСЛИ МЫ НЕ ЗНАЕМ КАК ЧТО-ТО СДЕЛАТЬ В ИНТЕРФЕЙСЕ, МЫ МОЖЕМ ЭТО СДЕЛАТЬ В WEB VIEWER Web Viewer – это не способ добавить карту на лайаут… - это возможность расширить интерфейс пользователя, используя гигантское количество уже разработанных примеров и решений для веб практически до бесконечности. HTML , CSS, JS и много, много, готовых библиотек…
  22. 22. WEB VIEWER. ПРОСТОЙ РЕДАКТОР ДЛЯ БЫСТРОГО РИСОВАНИЯ ГЕНОГРАММЫ НА ПРИЕМЕ У ВРАЧА Web Viewer строится на калькулируемом поле, которое формирует HTML-код из шаблона, заменяя ключевые слова на параметры и данные. Ранее сохраненное изображение передается из контейнера как BASE 64 кодировка Ширина и высота рассчитываются исходя из размера Veb Viewer, используя GetLayoutObjectAttribute() В шаблоне не используется никаких библиотек, только «чистый» HTML, CSS и JS (работа с объектом canvas) Для «обратного» вызова FM используется вызов типа: Для OS X готовое изображение передается через параметр, для Windows - через клипбоард. fmp://$/имя_fm_бызы?script=имя_скрипта&param=параметр
  23. 23. WEB VIEWER. ПРИМЕР. РАСПИСАНИЕ ВРАЧЕЙ В КЛИНИКЕ И СОБСТВЕННОЕ РАСПИСАНИЕ ВРАЧА Используется JS-библиотека DHTMLX Sсheduler Для формирования html-кода используются html-шаблоны Ключевые слова заменяются на данные из базы Данные о встрече формируются в формате JSON, как калькулируемое поле. JSON-массив формируется как List() и заменяет в шаблоне ключевое слово. Реакция на действия пользователя вызывает соответствующий скрипт FileMaker, передавая ему параметры. Названия скриптов прописаны в шаблоне
  24. 24. Спасибо за внимание! Вопросы?

×