FileMaker

FileMakerのWebビューアでMarkdownビューア的なものを作ってみた

markdown

※この記事は「FileMaker Advent Calendar 2014」の21日目です。

先日、こちらの記事で FileMaker の Web ビューアの基本的な使い方を紹介させて頂きました。

今回は Web ビューアを活用して、 Markdown ビューアのようなものを作ってみようと思います。

続きを読む

ショートカットアイコンでFileMakerの共有ファイルを開く方法

※この記事は「FileMaker Advent Calendar 2014」の20日目です。

いざ、できあがったシステムをお客様に導入する時、「このシステムを起動するには、まず FileMaker を起動して、[ファイル]から[共有ファイルを開く]を選択して、ホストを選んで、ファイルを選んで・・・」なんて説明をしていたら、使う前から「え?面倒くさい!」となりかねませんよね。

そんなときに便利な、ショートカットから FileMaker の共有ファイルを開く方法をご紹介します。

続きを読む

FileMaker の Web ビューアに色々なアドレスを表示させてみる

FileMaker

※この記事は「FileMaker Advent Calendar 2014」の14日目です。

FileMaker には Web ビューアというコントロールがあります。

簡単に言うと Web ページをレイアウト上に表示させることができる機能なのですが、ちょっと FileMaker では実現が難しいかな・・・と思える要件も Web ビューアで解決できることがあったりして、使い方によってとても便利な機能です。

では、実際に Web ビューアでどんなことができるかご紹介してみましょう。

続きを読む

FileMakerからGmailのSMTPサーバ経由でメール送信する設定手順

こんにちは、スタッフの高木です。ちょっと油断するとブログの更新が滞ってしまっていけませんね・・・。

今回は、FileMaker の開発で役に立つかもしれない小ネタのご紹介です。

FileMaker には [メールを送信] というスクリプトが用意されているので、アプリケーションに簡単にメール送信機能を組み込むことができます。

メールの送信方式には(1)メーラーを起動する、(2)SMTP サーバ経由で直接送信する、の2通りが選べますが、利便性を考えると SMTP サーバ方式が使われる場面の方がおそらく多いでしょう。

さて SMTP サーバ方式で行うには、もちろんそのメールサーバが必要になるわけですが、利用できるメールサーバがまだ準備中だとか、動作確認用に暫定のメールサーバをすぐ用意したい、といったケースもあるかと思います。

そんなときに便利な、サクッと Gmail の SMTP サーバ経由でメール送信が行えるようにする設定をまとめておきます。

※事前に Gmail アカウントは取得してあるものとします。

スクリプト設定

スクリプトの編集画面にて [メールを送信] スクリプトを追加し、「指定」ボタンからオプション画面を開きます。

SMTPサーバ

「[メールを送信] のオプション」画面で、送信経由に「SMTP サーバ」を選択し、「指定」ボタンから SMTP オプション画面を開きます。

SMTPサーバ

「SMTP オプション画面」で、設定情報を入力します。

SMTPサーバ

各項目の設定内容は下記の通りです。

  • 名前:メールの送信者名を指定
  • メールアドレス:From メールアドレスを指定
  • 返信先メールアドレス:Reply-to メールアドレスを指定
  • 送信 SMTP サーバー:”smtp.gmail.com”
  • サーバーポート:”465″
  • 接続の暗号化:”SSL”
  • 認証:”標準パスワード”
  • ユーザー名:Gmailメールアドレスを指定
  • パスワード:Gmailパスワードを指定

これで設定は以上です。

スクリプトを実行してみて、メール送信ができることを確認してみてください。

注意点

Gmail には、1日最大500件までしか送信できない、1通のメールで99人までしか宛先を指定できない、といったスパム対策向けの制限事項が設けられています。

Gmail を使う方法はすごく便利ではありますが、あくまでも動作確認用・暫定対応といった用途に留めておいて、本格的な業務にでは専用メールサーバをちゃんと用意されることをお勧めしておきます!

FileMakerで外部システムとデータ連携する方式をまとめてみました

FileMaker

こんにちは、スタッフの高木です。ふと気が付けば、前回投稿した記事はもう半年も前。時間が経つのは早いというか、ずいぶん更新をサボってしまったというか・・・。

さて、今回は久しぶりに FileMaker に関する記事となります。

ありとあらゆる業務が IT システムされている昨今、アプリケーション開発に伴って、異なるシステム間でのデータ連携が求められることは、もはや当たり前のようにあることです。

比較的小規模な案件での単体アプリケーションとして使われるイメージがある FileMaker ですが、やはり外部とのデータ連携が要件として挙がることは多々あります。

例えば、弊社で手がけることが多い医療分野などを例に出しますと、ある病院でメインシステムとして電子カルテが動いている環境がある場合、それをマスタデータとして患者情報を取り出し、そのデータを FileMaker で作ったサブシステムに同期して別機能を運用する、といった使い方がよくあるパターンです。

電子カルテのように手軽にカスタマイズができないシステムと、小回りが効く FileMaker を組み合わせて使うことにより、機能拡張に柔軟に対応できるようにする良い例ですね。

そのような、FileMaker で外部システムとのデータ連携を実現する場合どういう方式があるのか、代表的なものをいくつかまとめてみたいと思います。

インポート・エクスポート 方式

FileMaker

FileMaker 標準のインポート・エクスポート機能を使って、CSV(カンマ区切り)や XML 形式のファイル経由でデータをやり取りする方法です。

メリット

  • FileMaker 標準機能で対応が可能。
  • CSV、XML 形式は対応プラットホームが多い。

デメリット

2014年6月11日訂正

  • インポート・エクスポート作業を手動で行う必要がある。
  • データ連携が頻繁に発生するようだと手間がかかる。
  • テーブル単位の処理なので複雑なデータ構成の出し入れになると難しい。

インポート、エクスポート処理はスクリプトで実行することができますので訂正いたします。また FileMaker Pro 13 Advanced の場合、複数テーブルのインポートも行えるようです。

感想

2014年6月11日訂正

コストや環境面でのメリットはとても大きい反面、インポート・エクスポート処理は手動で操作する必要があるので、ヒューマンエラーのリスクや作業コストが高くなるというのがネックでもある方法です。

利用者がシステム担当者である、データの連携頻度が低いといった条件付きでの導入を検討したい方式でしょうか。

汎用的なファイル形式を扱えること、またスクリプトからもインポート・エクスポート処理は実行できるので、かなり使えるケースが多い方式かと思います。

ただし、ビジネスロジックを考慮してデータ加工する必要がある場合は、スクリプトの処理が大きくなりそうなので注意です。

カスタムWeb公開 with PHP 方式

FileMaker

「FileMaker API for PHP」という FileMaker から提供されている API を使って、PHP プログラムから FileMaker のデータを操作する方法です。

なお、「カスタムWeb公開 with PHP」を利用するには、FileMaker Server を利用することが前提となります。

メリット

  • Web ブラウザベースのアプリを開発しやすい。
  • 開発者が多い PHP で作成できる。

デメリット

  • FileMaker Server が必要になる。
  • データ連携プログラムを別途作成する必要がある。

感想

PHP が得意な方がさっと簡単な処理を作るには向いていそうです。ただし、少し規模が大きくなるような場合は、後述の「カスタムWeb公開 with XML」の方が多機能なライブラリが揃っていて良いかもしれません。

カスタムWeb公開 with XML 方式

FileMaker

FileMaker Server に XML 形式の HTTP リクエストを送信してデータの操作を行う方法です。プログラムから利用する場合、基本的には独自の文法(fmresultset、FMPXMLRESULT、FMPXMLLAYOUT)を使う必要がありますが、実はその部分の処理を抽象化してくれるオープンソースのライブラリも多く出ていたりするので、うまく活用できれば開発効率が上げられることでしょう。

なお、「カスタムWeb公開 with XML」を利用するには、FileMaker Server を利用することが前提となります。

メリット

  • Web ブラウザベースのアプリを開発しやすい。
  • オープンソースのライブラリが色々公開されている。
    • デメリット

      • FileMaker Server が必須である。
      • 素で使う場合は、独自の文法を覚える必要がある。
      • データ連携プログラムを別途作成する必要がある。

      感想

      PHP、Ruby、Python といった言語に対応するライブラリも出ているので、Web 系開発に慣れた方なら入りやすい環境が整っています。例えば、FMCakeMix だと PHP フレームワーク CakePHP のドライバとしてできていますので、中規模で多機能な開発にも対応しやすそうです。

      ODBC 方式

      FileMaker

      ODBC ドライバを介してデータの操作を行う方法です。大まかに、下記二通りのパターンでの利用が考えられます。

      FileMaker から外部 DB を操作するパターン

      FileMaker から、外部DBの ODBC クライアント経由で 外部 DB のデータを操作する方法です。

      これを使うと、FileMaker 内で FileMaker のテーブルと同様に外部 DB のテーブルを扱えるようになります。FileMaker だけで、全ての機能を実装することができるようになります。

      外部アプリケーションから FileMaker を操作するパターン

      外部アプリケーションから、FileMaker ODBC(JDBC) クライアント経由で FileMaker のデータを操作する方法です。

      独自にプログラムを組む方法はもちろん、ODBC に対応した DB 管理ツールなど既存のソフトウェアも沢山存在しており、様々なやり方で FileMaker のデータを操作することができるようになります。

      メリット

      • FileMaker → 外部 DB のパターンだと FileMaker だけで処理を完結できる。
      • 既存の ODBC 対応ソフトウェアを利用できる。

      デメリット

      • FileMaker から扱える外部データソースには制限がある(FileMaker13 の場合、Oracle 11g、SQL Server 2008 R2、SQL Server 2012、MySQL 5.5 のみ)
      • データ連携プログラムを別途作成する必要がある。(外部→FileMakerの場合)

      感想

      ODBC(JDBC)が使えることで、フリーソフトウェアの DB 管理ツールを使ってデータメンテナンスするといったことが簡単に行えます。また、.NET や Java での開発がしやすいため、業務系システムでよく求められる印刷や外部接続機器との連携といった機能にも容易に対応できるようになります。そういったケースでとても有力な選択肢となるでしょう。

      まとめ

      以上、ざっとまとめてみましたがいかがでしたでしょうか。

      あくまで概要を説明した程度に過ぎませんが、こういった仕組みが使えるのであれば色々な要件に対応できることが、イメージして頂けるのではないかと思います。

      弊社では、FileMaker のアプリケーション開発はもちろん、お客様のシステム要件に応じた最適なシステム設計もご提案いたしております。

      ご興味のある方は、ぜひお気軽にお問い合わせください!

FileMaker Serverをfmsadminコマンドでメンテナンスする

FileMaker

FileMaker Server のメンテナンスには通常Webインターフェースの Admin Console を使っていますが、ある日突然エラーを発して起動しなくなる状況に見舞われました。

ところが、翌日お客様に見せるシステムのメンテナンスを急いでする必要があったにもかかわらず、なかなか原因が分からず解決しない!(忙しい時に限ってトラブルが起きるのがシステム開発ですが・・・。)

何か解決策を探っていたところ、fmsadmin というコマンドラインベースの管理ツールがあることを知りました。

例えば、Mac であれば Terminal アプリなどでコンソールを開き、fmsadmin コマンドを実行すれば Admin Console と同様の操作が実行できるというものです。

fmsadmin の使い方

今回は FileMaker Server で動作しているデータベースの差し替えをしたかったので、次のような手順でメンテナンスをしてみました。(動作環境は FileMaker Server 12 です。)

現在開いている FileMaker ファイルの一覧を詳細表示する。

$ fmsadmin -s list files

差し替えする対象の FileMaker ファイルを閉じる。

$ fmsadmin close <ファイルID>

<ファイルID>は先の一覧詳細で取得したもの。

FileMaker ファイルを差し替える。

$ cp /path/to/new_file.fmp12 /Library/FileMaker Server/Data/Databases/target_file.fmp12

※ FileMaker ファイルを Finder から差し替えたときには、ファイルの権限が変わっていないか注意してください。(他のファイルと同じか見ると良いです。)権限によっては、次の open コマンドでエラーが出てしまいます。

差し替え後の FileMaker ファイルを開く。

$ fmsadmin open <ファイルID>

これでファイルの差し替えができました。これは Admin Console 上で、データベースを閉じる→開く操作をしたのと同じことになります。

Admin Console でできることは fmsadmin でもできるので、他にも沢山コマンドは用意されています。詳しくは FileMaker のヘルプをご覧になってみてください。

FileMaker Server をメンテナンスする立場の方であれば、Linuxをコンソールで操作する機会も多かったりして、こういうコマンドラインツールの方が使いやすいという方もいるんじゃないでしょうか。

とにかく、覚えておくと何かのときに役立つ便利なツールだと思います。

photo credit: Malabooboo via photopin cc

FileMakerでQRコード作成やQRコード読み取りをするいくつかの方法

QRコード

FileMaker でQRコードを作成したり、読み取りをしたりといった機能を作る機会があったので、そのときに試した方法をいくつかご紹介してみたいと思います。

QRコード生成について

テキストフィールドに入力された文字列から QR コードを表示させます。

FileMaker には商用ソフトで QR コード作成プラグインもあったりしますが、今回はお金のかからない方式で考えてみました。

なお、開発環境は下記の通りです。

  • Mac OSX
  • FileMaker Pro 12

1. Google Chart API を使う方法

Google Chart API を利用する方法です。既存の公開 API を利用するだけなので、一番手っ取り早い方法かと思います。

レイアウトにテキストフィールドとWebビューアを配置して、下記のようなURLを指定します。

"http://chart.apis.google.com/chart?cht=qr&chs=200x200&chl=" & テーブル名::フィールド名

これで、テキストフィールドを変更するたびに、Web ビューアに QR コードが表示されます。

当たり前ではありますが、Google Chart API を使うにはインターネットに接続された環境であることが前提となります。

この方式は HTTP リクエストを実行するだけなので、例えば QR コードを返す Web アプリを作ってしまえば、閉じられたネットワーク環境でも同様のことはできます。

PHP であれば、この辺りのライブラリを利用して QR コードが結構簡単に作れてしまいます。

2. libqrencode を使う方法

オープンソースの QR コード生成ライブラリ libqrencode を使う方法です。

まず、 qrencode という実行コマンドをインストールしておきます。

# wget http://fukuchi.org/works/qrencode/qrencode-3.4.2.tar.gz
# ./configure
# make
# make install

FileMaker では、下記のように AppleScript から qrencode を実行するスクリプトを指定して、QR コード画像ファイルを生成します。

"do shell script \"cd " & $apppath & ";/usr/local/bin/qrencode -o output.png " & テーブル名::フィールド名 & "\""

あとは、「ピクチャを挿入する」スクリプトで画像ファイルをオブジェクトフィールドに表示させます。

ちなみに、 Windows 環境であれば、同サイトから qrencode-win32 というライブラリをインストールすると qrcode.exe という実行ファイルができるので、それを実行する形で同様な仕組みができます。

2014/8/27追記

Windows 環境での qrencode-win32 の使い方について、お問い合わせを頂きましたので追記しておきます。

※ qrencode-win32 はこちらからダウンロードして「C:\Program Files\QRCodeGui\qrcode.exe」にインストール済みとします。

スクリプトの「Event を送信」でオプションの計算式に、以下のような文字列を指定します。

"\"C:\Program Files\QRCodeGui\qrcode.exe\" -o \"C:\path\to\output.png\" "
& テーブル名::フィールド名

あとは、上のスクリプトを実行すれば C:\path\to\output.png に画像ファイルが作成されます。

QRコード読み取りについて

FileMaker Go から QR コードリーダーアプリを起動して、 QR コードを読み取る処理を試してみました。

ネットで評判の良かった幾つかのアプリを試してみたうち QRdeCODE、pic2shop で確認が取れたやり方となります。

開発環境は下記の通りです。

  • Mac OSX
  • FileMaker Pro 12
  • ( QR コード読み取り時)FileMaker Go 12

1. QRdeCODE を使う方法

QR コードの開発元であるデンソーから提供されている QR コードリーダーアプリです。読み取り能力は高いし、高速だし、¥170円で十分元が取れるアプリだと思います。

まずFileMaker で、任意のスクリプトを作成し、次のような URL を開く処理を指定します。

"QRdeCODE://fmp://$/" & Get ( ファイル名 ) & "?script=scan_qrdecode&param="
  • 「QRdeCODE」は QRdeCODE の URL スキーム名です
  • 「fmp」は FileMaker Go 12 の URL スキーム名です
  • 「scan_qrdecode」は コールバックスクリプト名を指定します

このスクリプトを実行すると、QRdeCODE アプリが起動します。

また、scan_qrdecode という名前でスクリプトを作成します。 scan_qrdecode の中で「Get ( スクリプト引数 )」を指定すれば、 QRdeCODE の読み取り結果を取得することができます。

2. pic2shop を使う方法

ネット上でも FileMaker との連携実績をよく見かけるアプリです。こちらは無料アプリです。読み取る位置にバーが表示されるのが、なかなか使いやすいリーダーです。

QRdeCODE と同様に次のような URL を開くスクリプトを作成します。このスクリプトを実行すると pic2shop が起動します。

"pic2shop://scan?callback=fmp%3A//%24/" & Get ( ファイル名 ) & "%3Fscript%3Dscan_pic2shop%26param%3DQR"

あとは、 scan_pic2shop という名前のスクリプトを作成し、「Get ( スクリプト引数 )」で QRdeCODE の読み取り結果を取得できるのは一緒です。

サンプルアプリ

上記の処理が動作するサンプルアプリは、githubに公開してますのでご自由にお試しください。

他にも色々方法があると思いますが、皆さんのオススメの方法などありましたらぜひ教えてください!

photo credit: Fabrice de Nola via photopin cc

急がば回れ。FileMakerのチュートリアルをやってみた。

FileMaker

こんにちは、フェアマインドの高木です。

社内の観葉植物が最近元気が無いようです。暑さのせいとかあるんでしょうか。メンテナンスのコツをご存知の方、アドバイスをお願いします!

さて、社長から機能追加の案件を一件振られて、久しぶりにFileMakerをさわることになりました。

Access VBAでガリガリアプリを組んだ経験は結構あるので、その延長線でこなせるかと思いきや、意外とどの操作でどう動きが変わるかという機能の概念的な部分が引っかかり、なかなか作業が進みません。。

思えば、自分が1度だけFileMakerを扱ったのは、前々社にいた頃でもう6年程前のことです。記憶もかなり薄れてますし、FileMakerもバージョンが上がり機能もだいぶ変わってるはず。

弊社はFileMakerの案件も多く持っており、今後も継続して関わることになるはずなので、まずは基本から学ぶことにしました。

今回使うのは FileMaker Pro 12で、この場合「インストール先/日本語エキストラ/マニュアル(PDF)/fmp12_チュートリアル.pdf」にチュートリアルが格納されているのでこれをやってみます。

なお、チュートリアルの構成はこのような感じ。基本的な機能が網羅されている内容です。

  • レッスン1 FileMaker Pro の基本事項
  • レッスン2 ブラウズモードでの情報表示
  • レッスン3 レコードの検索とソート
  • レッスン4 データベースの作成とレコード入力
  • レッスン5 表示方法のカスタマイズ
  • レッスン6 表レイアウト、ラベルレイアウト、手紙テンプレートの作成
  • レッスン7 データ入力の効率化
  • レッスン8 ボタンとスクリプトによる処理の自動化
  • レッスン9 レポートの作成と実行
  • レッスン10 データのグラフ化
  • レッスン11 リレーショナルデータベースの設定
  • レッスン12 データの共有と交換
  • レッスン13 FileMaker Pro でのデータの保護
  • レッスン14 データベースのバックアップ

一通りこれに沿ってざっくり手を動かしてみたところ、FileMakerでできる機能が俯瞰でき、またスクリプトの使い方、ポータルという概念、フィールドの計算・集計タイプやら、初めによく理解していなかったことが随分とクリアになりました。急がば回れとはこのことですね。

このチュートリアルはサンプルも付いていてすぐ動かせるし、複雑な内容も特に無く、システムに携わっているような方なら2、3時間あればこなせる分量です。

社内でいきなりFileMakerを振られてどうしよう、と困っている方がもしいましたら、こちらを試してみてはいかがでしょうか?

photo credit: Malabooboo via photopin cc