Claris FileMaker でスマレジ の会員登録まで出来る顧客アプリを作成してみた

はじめに

こんにちは。CData技術ディレクターの桑島です。本日は、Claris FileMaker(以下、FileMaker)でスマレジ の会員登録できる顧客Appを作成する方法をご紹介します。

実現イメージ

FileMaker側の顧客Appのフォーム・リスト形式の画面に「スマレジ連携」ボタンを配置して、ボタンをポチッと押したタイミングで、該当顧客データをスマレジ側の会員データとして会員IDをキーに新規登録・更新します。

用意するもの

  • Claris FileMaker Pro : 45日間の無償評価版あり
  • CData Smaregi ODBC Driver : 30日間の無償評価版あり
  • スマレジ : スマレジAPIが利用できるプラン(プレミアム以上)
  • Windowsマシン(Claris FileMaker Pro、および、CData Smaregi ODBC Driverをインストール):MacOSで試したい方は弊社サポートまでお気軽にお問い合わせください!

手順

スマレジ APIを使うための設定

スマレジの会員データへのアクセスには、スマレジ APIを利用します。以下の記事を参考に、契約IDの確認とアクセストークンの取得を行ってください。

https://jp.cdata.com/blog/2020-01-08-113018

CData Smaregi ODBC Driverのインストール

FileMakerがインストールされているマシンに、CData Smaregi ODBC Driver をインストールします。以下のページからODBCドライバをダウンロードします。

https://jp.cdata.com/drivers/smaregi/odbc/:

ダウンロードしたODBCドライバのインストーラ(SmaregiODBCDriver.exe)を実行してインストールします。

インストールが完了すると、製品ヘルプと下記のODBC DSN設定画面が起動します。

接続タブ > Authenticationグループ内の以下の項目をセットします。

  • AccessToken:スマレジ APIのアクセストークン
  • ContractId:契約ID

接続テストを実行して「接続に成功しました。」ダイアログが表示されれば、CData Smaregi ODBC Driverからスマレジ APIへの接続は成功です。失敗する場合は、弊社サポート窓口までお問い合わせください。社内ネットワークからスマレジ APIに接続する際にプロキシサーバやファイアウォールが設置されている場合は別途設定が必要となります。

FileMaker での顧客アプリの作成

Customersデータベースを作成して、以下の項目を追加します。

項目 タイプ スマレジ会員データの該当項目 備考
Customer ID テキスト 会員ID(PK)
Customer Code テキスト 会員コード
Last Name テキスト 姓
First Name テキスト 名
Last Kana テキスト 姓カナ
First Kana テキスト 名カナ
Sex テキスト 性別 0:不明、1:男、2:女
PhoneNumber テキスト 電話番号
BirthDate 日付 成年月日

作成したレイアウトを確認します。

次にクリックするとスマレジ に登録するボタンを配置します。必要に応じてアイコンやボタンの色を変更して、ボタンをクリックした処理として「スクリプト実行」、「開始:現在のファイル」を指定します。

スクリプトの編集を開きます。ODBC経由でスマレジ にSQLでUpsertする処理を記述していきます。

行番号 ステップ 備考
1 SQLを実行 [ダイアログあり:オフ; ODBC データソース: CData Smaregi Source; 計算済みのSQLテキスト ]
"UPSERT INTO Customers (CustomerId, CustomerCode, LastName, FirstName, LastKana, FirstKana, PhoneNumber, Sex, BirthDate) VALUES (" & Customers::CusotmerID & ", '" & Customers::CustomerCode& "', '" & Customers::LastName & "', '" & Customers::FirstName & "', '" & Customers::LastKana & "', '" & Customers::FirstKana & "', '" & Customers::PhoneNumber & "', '" & Customers::Sex & "', '" & Customers::BirthDate & "')"
2 変数を設定 [$Err; 値:Get (最終エラー)]
3 IF [$Err = 0]
4 カスタムダイアログを表示 ["スマレジ に送信されました"]
5 End If
  • 1行目の説明

「SQLを実行」ステップを選択します。歯車アイコンを開き、「SQLの指定」ダイアログにて、「ODBCデータソース」に、CData Smaregi ODBC Driverインストール時に作成したDSN(デフォルトでは、CData Smaregi Source)を指定します。「SQLステートメントの指定」には計算済みのSQLテキストの「指定」ボタンをクリックして以下のUpsert SQLをセットします。ポイントとしては「Customers::CusotmerID」のようにFileMaker側のフォームのデータを動的にセットすることができます。

"UPSERT INTO Customers (CustomerId, CustomerCode, LastName, FirstName, LastKana, FirstKana, PhoneNumber, Sex, BirthDate) VALUES (" & Customers::CusotmerID & ", '" & Customers::CustomerCode& "', '" & Customers::LastName & "', '" & Customers::FirstName & "', '" &  Customers::LastKana & "', '" & Customers::FirstKana & "', '" & Customers::PhoneNumber & "', '" & Customers::Sex & "', '" & Customers::BirthDate & "')"

FileMakerヘルプ(リファレンス > スクリプトステップリファレンス > その他のスクリプトステップ > SQL を実行) https://fmhelp.filemaker.com/help/17/fmp/ja/#page/FMP_Help%2Fexecute-sql.html

  • 2行目の説明

FileMakerには、直前に実行したスクリプトステップでエラーが発生した場合はそのエラー番号を返す「Get ( 最終エラー )」関数というのがありますので、この関数で行1のSQLを実行が成功(0)したかどうかのコードを変数($Err)にセットします。

FileMakerヘルプ(リファレンス > 関数リファレンス > 取得関数 > Get (最終エラー)) https://fmhelp.filemaker.com/help/17/fmp/ja/#page/FMP_Help%2Fget-lasterror.html

  • 3〜5行目の説明

2行目の変数($Err)を利用して、SQLの実行が成功(0)した場合は、カスタムダイアログを表示します。

スクリプトを作成したら、保存して「スクリプトを編集」を閉じます。

動作確認

それでは、作成した顧客アプリを動かしてみましょう。FileMakerの顧客アプリから新規の顧客を登録してみます。スマレジ 側に存在しないCustomerCode(会員コード)をセットして「スマレジ登録」ボタンをクリックします。スマレジ 側への登録が成功すると「スマレジ に送信されました」というダイアログが表示されます。スマレジ 側の会員一覧画面をリフレッシュするとFileMakerから登録した会員が登録されていることが確認できます。

次に、既存の顧客を変更してみましょう。CustomerId、CustomerCodeはそのままに、FirstNameを「Japan」から「Japan 合同会社」に変更し、スマレジ 登録ボタンをクリックします。スマレジ 側の会員一覧画面をリフレッシュすると既存顧客の氏名に「合同会社」が付与されました。

スマレジ登録ボタンをクリックした時に、顧客ID(CustomerID)が不正な値であった場合などは、以下のようなダイアログが表示されます。

まとめ

如何でしたでしょうか。FileMakerの顧客アプリからスマレジ の会員情報を同時にメンテナンスできるようになることで、FileMaker側とスマレジ 両方の二重メンテの手間がなくなります。是非お試しください。FileMakerからのSaaS連携についてはこちらの記事もございますのでご紹介させていただきます。手順にご不明な点などがありましたら弊社サポート窓口までお問い合わせください。

https://jp.cdata.com/blog/2018-11-15-084342