2014-08-18

FileMaker Go による iPad/iPhone 向けソリューションの開発ヒント集

 FileMaker Pro で開発したソリューションは、ほぼそのまま FileMaker Go ソリューションとして iPhone や iPad で使用できます。
 今回は、今後 FileMaker Go 向けのデータベース開発を検討している方向けに、FileMaker Go の特徴と効率のよい開発方法のまとめ的なものを作成してみました。

 FileMaker Go 自体は App Store から無料でダウンロードして iOS デバイスにインストールできます。


FileMaker Go 12/13/14 機能比較

 最新リリースから順にご紹介します。

FileMaker Go 14

無料ダウンロード: FileMaker Go 13


重要:接続について

 FileMaker Server 14 でホストされるデータベースに FileMaker Go からアクセスする場合、デフォルトでは 1 接続、FileMaker Pro 14 Advanced に FileMaker Go からアクセスする場合は、デフォルトでは 5 接続までがサポートされています。

 接続人数を増やす場合は、"同時接続"の購入が必要となります。

 同時接続とは(PDF)


FileMaker Go 14 で利用できるようになった機能

FileMaker Go 14 の公式紹介ビデオを見ながら確認するとわかりやすいです。
 以下、タイムスタンプのあるものは、この動画のタイムスタンプを表しています。



1. 0:09 新しいユーザインタフェース

 iOS8 スタイルにデザインを一新。
 ソリューションのフルスクリーンで表示、FileMaker Go のメニューバーなども非表示にすることもできる。
 頻繁に利用する操作は左右のアイコンに整理されるのでスクリーンを有効活用できる。


2. 起動センター

 ソリューションを視覚的に整理。
 ソリューションのアイコンを割り当てることができ、カスタムアイコンも追加できる。
 起動スクリーンに固定することもできる。




3. 8:50 バーコードの挿入

 スクリプト不要でバーコード読み取りを行える。
 

4. リッチテキストの編集

 テキストのサイズ、色、フォントを選択したり、太字、下線、イタリックが指定可能。


5. 2:41 画面方向の設定

 デバイスの縦置き、横置きのときにスクリーンの動作をスクリプトで定義できる。

 
6. 2:52 署名キャプチャの機能強化

 レイアウトのボタン指定時、単一ステップで署名取り込みができるようになっている。
 ボタン操作時にプロンプトメッセージを表示させることもできる。


7. 3:09 ビデオとオーディオの再生コントロール

 ビデオをオブジェクトフィールドでもフルスクリーンでも再生可能。
 ビデオの再生中でもレイアウトを操作可能。
 新しいスクリプトで、ビデオまたはオーディオの再生を開始および停止するポイントを自動化できる。


8. 7:32 タッチキーボードの有効化

 オンスクリーンキーボードの表示/非表示をスクリプトで制御。
 
9. 垂直スクロールバー

 スクロールバーはフィールドでスクロールするときにだけ表示される。


FileMaker Server 14 と FileMaker Go13/14 のハイブリット運用時の注意点

 FileMaker Go 13/14、および FileMaker Server 14 のハイブリッド環境でデータベースを運用したい場合は、接続制限や機能制限に十分お気をつけください。
こちらの資料が参考になります。

FileMaker Server 14 ホストとクライアントの互換性チャート(英語)


重要: FileMaker Go 12 を使って FileMaker Server 14 でホストされているデータベースにアクセスすることはできません。




FileMaker Go 13

無料ダウンロード: FileMaker Go 13

※ 2015 年 5 月 13 日に FileMaker 14 が発売されたことにより、FileMaker Go 13 の提供は近いうちに終了する予定です。
Filemaker Go 13 が必要な方はお急ぎください。


重要:接続について

 FileMaker Pro 12/13 をホストにして、FileMaker Go からアクセスする場合、最大 5 接続までをサポートしています。
 FileMaker Server 13 でホストされるデータベースに FileMaker Go からアクセスする場合、デフォルトでは 1 接続、FileMaker Server 13 に FileMaker Go からアクセスする場合は、デフォルトでは 5 接続までがサポートされています。

 接続人数を増やす場合は、"同時接続"の購入が必要となります。

 同時接続とは(PDF)


 後述の、「FileMaker Server 13 と FileMaker Go12/13 のハイブリット運用時の注意点」のセクションも併せてご覧ください。


FileMaker Go 13 で利用できるようになった機能

1. スワイプによるレコード移動(スワイプジェスチャー)

 指1本のスワイプジェスチャー --- スライドコントロールでパネルを変更
 指2本のスワイプジェスチャー --- レコードを変更

 ジェスチャー動作中はアニメーションが表示されます。

 FileMaker 社のサンプル動画(英語)



2. 7つのタッチキーボードタイプ

 フィールド別に適したキーボードが表示されます。

電話
電子メール
URL
数字10キー
数字キーパッド
数字と句読点
ASCII

 FileMaker Go に適したキーボードレイアウトの特定方法は、以下のページが参考になります。

 FileMaker Go での特定のデータ型に対応したキーボードの使い方(英語)
 How to use specific data type keyboards with FileMaker Go


3. バーコードの読み取り

 スクリプトステップ「デバイスから挿入」を使い、iPad や iPhone のカメラ機能からバーコードスキャンできます。

FileMaker 社のサンプル動画(英語)
より正確な動作コントロールを FileMaker Go の iOS ソリューションに導入する方法
How-to Include Precise Controls in your iOS Solution for FileMaker Go




4. スライドコントロール

 フォームに複数のスライドパネルを追加でき、変更可能なコンテンツ領域を作成可能。

 FileMaker 社のサンプルビデオ - スライドコントロール




5. ポップオーバー/タッチテーマ

 フィールドのグループ化や、リンクの追加、その他詳細の表示
 テーマデザインは 5 種類から選択可能

 [テーマの変更]ダイアログボックスで、デバイス用に設計されたタッチテーマのいずれかを選択。
 タッチテーマではMS Pゴシックとヒラギノ角ゴProN W3のフォントが使用される。

 
FileMaker Server 13 と FileMaker Go12/13 のハイブリット運用時の注意点

FileMaker Go 12/13、および FileMaker Server 13/FileMaker Server 13 のハイブリッド環境でデータベースを運用したい場合は、接続制限や機能制限に十分お気をつけください。
こちらの資料が参考になります。

FileMaker Server 13 ホストとクライアントの互換性チャート




 FileMaker Go 向けのデータベースを開発する際は、あらかじめレイアウトの操作性やパフォーマンスなどを考慮する必要がでてきます。

 ここでは、できるだけ手間をかけずに開発するヒントと開発に役立ちそうなリソースをご紹介します。


効率のよい開発方法 ― Starter Solution


 FileMaker Pro 12/13 の「ファイル(F)」メニューに用意されている「Starter Solution から新規作成」コマンドを使うと、汎用的なソリューションのテンプレートを作成できます。



 試しに FileMaker Pro 12 の Starter Solution でタスクデータベースを作成してみます。


 すぐにタスク.fmp12 というデータベースができあがります。


 このデータベースには、すでに iOS 向けに最適化されたレイアウトがいくつか登録されています。


 既存の iOS 向けレイアウトを修正したり、複製したりしてデータベース設計を行うことにより、開発を効率化することができます。

 以下は、iPad 向けに最適化されたタスクフォームです。
 iPad の表示領域に合わせ、フィールドの幅を伸縮できるようにするには、インスペクタの自動調整機能でアンカーを設定します。


 FileMaker Pro 12 の Starter Solution に用意されている iOS 向けのレイアウトは、縦置き向けのみが用意されています。
 よって、横置き向けのレイアウトが必要な場合は、別途作成する必要があります。

 FileMaker 社のサンプルビデオ - FileMaker Go 12 iPad 用レイアウトの作成




FileMaker Pro 13 の場合

 FileMaker Pro 13 では、デバイス別に最適化されたレイアウトを簡単に作成できます。
 新規レイアウトを作成する際に、以下のような選択ダイアログが表示されます。


 「タッチデバイス」を選択すると、各種モバイルデバイスに最適化されたレイアウトサイズの一覧が表示されますので、その中から作成したいサイズのデバイスを選択します。

 また、画面左下のアイコンを切り替えることにより、縦置き、または横置きレイアウトを選択できるようになっています。

注意:
 横置き向けに最適化されたサイズのレイアウトは、実際に FileMaker Go で縦置きにブラウズした場合、レイアウトに情報が入りきらない可能性があります。

 あらかじめ縦置き向けにレイアウトを作成するのが手間のかからない方法ですが、横置きで情報を見せる必要がある場合は、縦置き用レイアウト、横置き用レイアウトの両方を用意して対応する必要があるかもしれません。



FileMaker Go 12

ダウンロード版配布終了。
これから使用をご検討中の方は、FileMaker Go 14 をご検討ください。

FileMaker Go 12 で利用できるようになった機能

1. 以下のグラフタイプをサポート
  縦棒グラフ
  積み重ね縦棒グラフ
  正負縦棒グラフ
  横棒グラフ
  積み重ね横棒グラフ
  円グラフ
  線グラフ
  面グラフ
  散布図
  バブルグラフ

2. リモートコンテナのサポート
 オブジェクトフィールドで外部参照を行うことで、オブジェクトフィールドの中にデータ埋め込みができます。
  カメラ
  オーディオ(録音)
  署名
  写真
  音楽(ミュージックイブラリ)
  ファイル

 実際の操作方法は、後述の「より正確な動作コントロールを FileMaker Go の iOS ソリューションに導入する方法」の動画をご覧ください。

3. タブパネルで条件式書式を設定できる

4. レコードのエクスポート
 ほぼすべてのエクスポート機能をサポート(ファイルフォーマット制限あり)


参考:FileMaker 社の FileMaker Go 12 新機能紹介ビデオ(英語)
What's New in FileMaker Go 12?



FileMaker 社が提供しているリソースを使ってじっくり開発

 FileMaker Go (iPad/iPhone 用 FileMaker アプリ)向けにデータベースを設計する際に参考になるリンク集

a) FileMaker Go リソースセンター

FileMaker 社が提供する FileMaker Go リソースセンターから、FileMaker Go 向けのソリューションの開発方法を学べます。

FileMaker Go リソースセンター



b) FileMaker Go テクニカルブリーフ(FileMaker Pro 12 向け。13 は見つからず)

 FileMaker Go 向けのソリューションを開発する際の OS 条件、から機能的な制約、特徴などが簡潔にまとめられた PDF ファイルです。


FileMaker Go テクニカルブリーフ


c) FileMaker ® Go 13 デベロップメントガイド


1) データベースの定義
2) インポート
3) .fmp12、XML、または Excel .xls 形式へのエクスポート
4) スペルチェック
5) プラグイン
6) レイアウトモードとプレビューモード

 あたりは、FileMaker Go では使えませんので、開発時に特に気を付ける必要がありますね。

FileMaker® Go 13 デベロップメントガイド




参考になりそうなサードパーティ製の無料ツール

a) FileMaker Go Cheat Sheets

 Kcunning Consulting 社で配布されている FileMaker Go 開発早見シートです。
 2 ページ構成の PDF ファイルですぐに要点を抑えられるように工夫されています。



 FileMaker Go Cheat Sheet (iPad Edition) (英語)


b) FileMaker Go ToolKit

 Soliant Consulting 社で配布されている、無料の FileMaker Go 用ツールキット。
 FileMaker Pro 11 版向けに作られたものですので、FileMaker Pro 12/13 で使用する際はファイル変換が必要となります。

 モバイルデバイスの要件に合わせたデータベース設計時のヒントも示されていますので、大変参考になります。

 日本語版も配布されていますね。



FileMaker Go Toolkit


c) FileMaker Go Training Tool

 Richard Carlton Consulting 社で配布されている FileMaker ファイル形式のトレーニングツールです。
FileMaker Go 向けの開発ヒントが画像りで解説されています。
英語版です。



 FileMaker Go Training Tool (英語)






参考になりそうなビデオ:
FileMaker プラットフォームでビジネスソリューションを手早く作る
Create business solutions quickly with the FileMaker platform (英語)


参考記事:
iPad のバーコードスキャンで入庫伝票を作成 ― FMEasy在庫のカスタマイズ



2014-07-27

受注・受注残管理モジュールを作る(2)テーブル、リレーション、レイアウトの設計 ― FMEasy在庫のカスタマイズ

 受注残は面倒なので脇に置いておき、まず受注モジュールを作ります。
 作業にあたり、カスタマイズする『FMEasy在庫 R1.0/R1.5』は分離モデル(注)を採用しているため、作業するファイルが2つ ― EasyApp15.fmp12とEasyData15.fmp12 ― あることに注意してください。

 EasyData15.fmp12 は業務データ用のファイルで、原則として業務用テーブルに加え、業務用テーブルの計算フィールドに使用する最小限のリレーションを含みます。
 EasyApp15.fmp12 はアプリケーション/システム用のファイルで業務用テーブルは含まず、アプリ用のテーブルとリレーション、レイアウト(画面や帳票)、さらに業務ロジックを組み込んだスクリプトを含んでいます。

 作業に際しては、このことを念頭に混乱のないよう作業を進めてください。

注:『FMEasy在庫 R1.0/R1.5』は テンプレートですので、データファイルとアプリファイルの分離度は高くなっていません。
 分離度を高めるためには、データファイル(EasyData.fmp12)では計算フィールドやフィールド制御は極力行わないように設計します。

受注モジュールのテーブル、リレーション、レイアウト、スクリプトを作る

 受注モジュールは出庫モジュールと類似していますので、出庫関連のテーブル、リレーション、レイアウト、 スクリプトをある時はコピー・変更し、あるときは直接変更し、またあるときは変更することなく共用します。

 『FMEasy在庫 R1.0/R1.5』は、最小限の労力で他の類似モジュールを追加できるよう設計しています。

EasyData15でテーブル/フィールドを作成・定義する

 まずはテーブルから作成します。EasyData12.fmp12の出庫/入出明細テーブルを下図のように選択し、コピペし、それぞれの名称を「受注」と「受発注明細」に変更します。

 入出明細テーブルは、出庫明細と入庫明細の共用テーブルであるため、今後発注モジュールに対応することを想定して「受発注明細」という名称にしておきます。

※本稿では原則として発注には触れませんが、発注関連モジュールも開発する場合、発注関連のテーブル/リレーション/スクリプトも作成しておく方が効率的です。

図1.出庫、および入出明細テーブルをコピー&ペーストして、受注、および受注明細テーブルを作る

 2テーブルの名称を変更したら、その中のフィールド名を変更(図3/4)。

注:
  • フィールド名は後述の図3と図4に準じること(変に変更すると、スクリプトの変更が大変になる)
  • フィールドの変更・削除は極力しない→動作しなくなる
  • 入庫関係のフィールド名は、発注モジュールを作成する場合に備えそれらしく変更しておく(入庫No→発注No)
なお、受注用のリレーションが無いと設定できない計算フィールドは、下記のリレーションシップを設定後に定義します。

EasyData15でリレーションシップを作成する

 EasyData15.fmp12 のリレーションシップは出庫TOG(Table Occurence Group)をコピペし、出庫TOGに準じて下図のオレンジのTOG のように設定します。
なお、、リレーションシップも複数選択してペーストができます。

図2.出庫レイアウトTOG をコピー&ペーストして受注レイアウトTOGをつくる

 リレーションシップを正しく設定すると、<不明>あるいは<フィールドが見つかりません>と表示されていた計算フィールドを定義できるようになりますので、これも出庫/入出明細の計算フィールドに準じて定義していきます。

図3.リレーションシップを設定後、受発注明細テーブルのフィールドを再定義

図4.リレーションシップを設定後、受注テーブルのフィールドを再定義

EasyApp15でリレーションシップを作成する

 EasyApp15.fmp12 のリレーションシップも出庫TOG(Table Occurence Group)をコピペし、出庫TOGに準じて下図のように受注レイアウトTOGを設定します。

 赤枠の部分の「得意先List」と「出庫商品List」はUIテーブルとのリレーションシップであるため各レイアウトから共用できるので、受注側での作成は不要となります。
 また、濃い青の3つのTO(Table Occurence)はIWP(インスタント)専用であるため今回は作成しませんが、受注モジュールをIWPに対応させる方は作成する必要があります。

 なお、TOの名称は下図に準じるようにしてください(変な名称を付けると、スクリプトの変更が大変になってしまいます)。


レイアウト/値一覧を作成する

 受注用レイアウトは EasyApp15 側でのみ作成します。出庫レイアウトをレイアウトモードで表示し、[レイアウト]―[レイアウト複製]を選択します(一種のコピペ)。
図の赤枠内のように、レイアウト名を「出庫のコピー」から「受注」に、レイアウトテーブルを「出庫」から「受注」に変更します。


 この段階ではフィールド/ポータルは出庫または入出明細のものが貼られているので、フィールドをダブルクリックしながら、受注/受注明細関連のものになるように変更していきます。
 また、出庫No/出庫日、出庫などのレーベル名も適当なものに変更しましょう。また、変更漏れがないように注意するようにしてください。

 値一覧は、伝票区分、担当ID、得意先ID、商品ID、請求部署ID、数量、単位の各フィールドで使用されているが、変更する必要があるのは、伝票区分と請求部署IDに割り当てられているもののみ。

 ここまで、慣れている人であれば1~2時間でできると思われますが、次のスクリプトからがかなり作業が複雑になってきます。

注:
 受注一覧、受注伝票の各レイアウトも実務では必要になると思われるので、前者については出庫一覧レイアウトを、後者については入庫伝票レイアウトを上記の要領でコピーして作成してください。

スクリプトを変更する

 さて、出庫レイアウトをコピーして作った受注レイアウトは以下のようになります。
 ボタンに割り振られたスクリプトだけではなく、フィールド/レイアウト等に割り振られたスクリプト(赤枠部)もひとひとつ変更が必要かどうか吟味し、必要があれば変更を加えていきます。

 スクリプト変更はかなり骨が折れる作業で、下手に変更を加えると他のモジュールに障害を与えることがあるので慎重に作業してください。 変更後のテストも十分に行う必要があります。



 下表はスクリプトが割り振られたオブジェクトの一覧です。
 チェックマークが付いてるものは変更が必要になります。
*1 『FMEasy在庫 IWP/WD R1.5』でのみ利用可。変更難度高し。“選”ボタンを受注対応させない場合、レイアウトから削除すること。


以上

 
(土屋)

2014-07-18

受注・受注残管理モジュールを作る(1)概要と開発方針― FMEasy在庫のカスタマイズ

 弊社に寄せられる各種問い合わせで多いのがモジュールの追加 ― 「売上入金残管理モジュールを作りたい」、「受注残管理をしたい」といったものです。
 これらの質問はあまりにカバーする範囲が広く、また漠然としているので、回答も漠然としたものになります。

 そこで今回から数回にわたり、『FMEasy在庫 R1.0/R1.5』をカスタマイズし、受注・受注残管理モジュールを付加する方法の概要ご説明したいと思います。 

機能概要

  • 受注管理
  • 入力支援機能(FMEasy在庫 IWP/WD R1.5 のみ)
  • 受注伝票毎及び得意先毎の受注残管理 
  • 受注明細レベルで分納に対応する


用語

  • 在庫 ― 商品の入庫数計-出庫数計
  • 受注残 ― 商品の受注数計-出庫数計
  • 可用在庫 ― 在庫-受注残


注:
 弊社では商品の[在庫]から[受注残]を差し引いた値を[可用在庫]と呼んでいます。意味としては、倉庫に物理的に存在するだけではなく、買い手が決まっておらず(受注残となっていない)、得意先から注文があればすぐに出庫できる状態にある在庫です。
 逆に、倉庫に物理的に存在していても、買い手が決まっていて何らかの事情により倉庫に留め置かれている在庫は、出庫不能な在庫(非可用在庫)となります。


画面イメージと移植する機能

 弊社が2004年6月にリリースした「FlexManager R1.5」という製品の受注・受注残モジュールの一部を『FMEasy在庫』に移植します。下図はそのオールド製品の画面です。


【受注】

受注画面
 受注情報を入れる画面。この画面から必要最低限の機能を『FMEasy在庫』に移植します。


【受注残管理】
受注残管理画面

 受注残管理画面。受注残管理だけではなく、受注情報を利用した発注処理、その発注に対する入荷情報の表示(画面の[発注数(内入荷)])にも対応していますが、今回は発注・発注残管理機能には触れません。この画面から、受注残管理の必要最低限の機能を『FMEasy在庫』に移植していきます。


【分納管理】

分納管理画面

 受注商品データを売上に移行するための画面。新規に売上伝票を作成して(“新”ボタンを使用)そこへ受注データを移行することも、既存の売上伝票([売上No]をプルダウンメニューから指定)の売上明細に受注データを付加することもできます。なお、『FMEasy在庫』では売上モジュールはなく、代わりに出庫モジュールへ移行することになります。

開発方針

 「FlexManager 1.5」は結構機能がテンコ盛なので、複雑になりすぎないよう、受注残管理に焦点をあてて、必要最低限の機能を移植したいと思います。 (次回へ続く)



(土屋)