統合
FMチャットを自分のファイルやレコードと関連づける方法は?
データ検知機能を使う
FMチャットを自分のソリューションとともに使う方法として最もシンプルなのは、データ検知機能を使うことです。FMチャットは、ホストまたはサーバ上でホストされているファイルとして、FileMakerのほかのソリューションとともに動作しています。チャットからソリューション中の特定のレコードにジャンプする必要があるときは、データ検知機能を使ってそのレコードへのリンク(またはソリューションのスクリプトをコールするリンク)を作成できます。
データの検知についてさらに詳しく見る
チャットをエンティティ(レコード)とリンクする
前述の通り、FMチャットはFileMakerのホストまたはサーバ上で独立したファイルとして動作しています。リンクを作成する大きなメリットは、 ソリューション中の特定のレコードにそのレコードに関連するチャットのポータルがあり、ファイル中のまさにそのレコード上に表示できるということです。手順は次の通りです。
開始前の注意事項
チャットと統合したいすべてのテーブルに対して、以下の手順をすべて実行する必要があります。まず1つのテーブルに対して実行してから、ほかのテーブルに対しても同じように手順を繰り返しましょう。
YouTubeで統合の手順を解説した動画(英語)をご覧になれます。
ソリューションを開くときにスタートアップスクリプトの一部としてFMチャットを開始するのも便利です。この設定をするのに最適な方法を動画(英語)でご覧ください。
1. ファイルのバックアップ
本当に重要です。
2. ファイルの参照
既存のファイルに、ファイルの参照を新たに2つ追加します。
1つめは「FM Chat」という名前にして、「FMChat.fmp12」のファイルとリンクします。
その後、もう1つ、「FM Chat Go」という名前の参照を作成し、「FMChat Go.fmp12」のファイルとリンクします。
3. フィールド
既存のテーブルに、計算フィールドを新たに1つ追加します(計算結果はテキスト)。
- FMC_Type
このフィールドの計算式は、このテーブルで扱うデータの種類にします。たとえば請求書のテーブルであれば計算式は「invoice」、発注書であれば「Purchase Order」とします。このフィールドに何が入っているかは重要ではありません。データの種類を記述するものだけのものであり、ユニークであればかまいません。このフィールドは、適切なチャットをテーブルに関連づけるために使用します。
「計算結果を保存せず必要時に再計算する」のチェックボックスにチェックを付けてください。すでに作成されているレコードに値を割り当てるために、このオプションが必要です。
4. テーブルオカレンス
「ファイル」メニューの「管理」から「データベース」を選択し、「リレーションシップ」タブをクリックすると、このファイルのリレーションシップグラフが表示されます。左下にある緑色の小さなプラスのボタンをクリックして、新しいテーブルオカレンスを作成します。データソースは「FMChat」ファイルの「System」テーブルを選択します。このテーブルオカレンスの名前を「FMC_SYSTEM」とします(テーブルオカレンスの名前にはスペースを入れないでください)。この名前は後から変更できます。このテーブルは、グローバルデータを保管するためのユーティリティテーブルです。ソリューション中に、テーブルオカレンスが単独で必要になります。
次に、ソリューションにチャットのテーブルを追加する必要があります。左下にある緑色の小さなプラスのボタンをクリックして、新しいテーブルオカレンスを作成します。データソースとして「FMChat」ファイルの「Chats」テーブルを選択します。このテーブルオカレンスの名前を「FMC_CHATS_YourTable」とします(テーブルオカレンスの名前にはスペースを入れないでください。また「YourTable」は変更せず、この通りにしておいてください)。この名前は後から変更できます。
5. リレーションシップ
引き続き「リレーションシップ」タブで、既存のテーブルオカレンスと「FMC_CHATS_YourTable」をリンクします。「FMC_Type」フィールドと「entity_Type」フィールド、既存のテーブルのプライマリキーと「ID_Entity」フィールドが一致するようにリンクします。
6. スクリプト
「FMChat Integration Example」からスクリプトを読み込みます。読み込みの際に、「FMC Scripts 中身をご自分のデータベースに持っていってください」というフォルダの横のチェックボックスにチェックを付けるだけで、このフォルダ内のすべてのスクリプトが読み込まれます。
注意:既存のスクリプトと同じ名前であるために名前が変更されたというメッセージが表示されたら、読み込んだスクリプトのうち名前の最後に「2」が付いているものをすぐに調べ、名前を修正してください。
7. レイアウトのパート
7.1 チャットのポータルをペーストします。「FMChat Integration Example」ファイルを開き、「Chat Portal」レイアウトに移動します。レイアウトの内容をすべて選択し、コピーします。次に、既存のソリューションで作業中のテーブルオカレンスに基づいて対象のレイアウトに移動し、そのレイアウトに内容をペーストします。レイアウトを調整してポータルを入れるスペースを作る必要があるかもしれません。ファイルのレイアウトの調整をするまでは、チャットのポータルを横の方にペーストしておくとよいでしょう。
このドキュメントの執筆時点では、FileMaker 12にバグがあり、条件付き書式が設定されているとペーストしたオブジェクトを扱えなくなります。これを回避するには、レイアウトモードに切り替え、チャットのポータル内の「プライベートチャット」という文字をダブルクリックして、テキストボックス内を選択します(文字の変更はしないでください。選択するだけです)。削除を表すグラフィックの、赤色の「X」にも同じ操作をします(グラフィックの上に小さなテキストボックスがあります)。この2つのテキストボックス内を選択する操作をしてからブラウズモードに戻ると、この問題は解決されます。
7.2 スクリプトパラメータを編集します。レイアウトモードで「新規チャット」ボタンをダブルクリックしてボタンを編集します。「指定」をクリックし、次に「編集」をクリックしてスクリプトパラメータを編集します。パラメータのデータを変更して、このソリューションのテーブルオカレンスに合わせる必要があります。
パラメータは、名前の値のペアです。すなわち、「paramName = paramValue」です。名前はそのままにしておき、値だけを変更することに注意してください。パラメータがどのように設定されているかを注意深く見る必要があります。例を挙げると、 「"entityID = " & Events::EVENT ID MATCH FIELD & " ; " &」で、「Events::EVENT ID MATCH FIELD」をソリューションのプライマリキーのフィールドに置き換えます。「"entityID = "」はこのまま変更しないようにします。また各行の最後の「" ; "」もこの通りに入れておきます。このようにしないと、パラメータが動作しません。
フィールドの値を変更して、テーブルオカレンスに一致させます。次に、先頭の「/*」と最後の「*/」を削除して、計算式をアンコメント(コメント解除)します。ここまでできたら「OK」をクリックして変更を確定します。