AD_Watcher

AD_Watcherは、フォルダを監視し、ファイルを検知したらClaris FileMaker上のスクリプトを実行するプログラムです。
FileMaker Serverにへの通知にはスクリプト実行リクエストが含まれており、通知と連動したサーバ上での様々なアクションを実装できます。
AD_connector と組合わせる事で、Claris FileMakerプラットホームでのDXが加速します

AD_Appsを入手

AD_Appsは製品をお申込みの後、ダウンロードページから入手できます。 (製品のお申込み・ダウンロードべージを開くには会員登録(無料)が必要です。)

動作シナリオ例

  1. 指定したフォルダにCSVデータが書き込まれます。
  2. AD_WatacherはフォルダにCSVデータが配置されたのを感知しますが、このCSVファイルが 完全に書き終えるまで待機します。
  3. 書込みが完了したら、AD_WatacherはFileMakerServerに対し通知します。この時、該当CSVファイル名と実行スクリプト名を引数としてDataAPI※に対しCurlします。k
  4. 実行スクリプトは、当該CSVデータをFileMaker内に取込ます。
  5. 実行スクリプトによって、取込が完了した当該CSVデータは削除されます。
  6. 実行スクリプトは受け取ったCSVデータを処理します。
※DataAPIに対してはGetメソッドによるCURLのみなのでDataAPIのデータ消費量はBearer認証用のToken取得のみですのでごくわずかです。

インストール手順

ファイルの配置場所

ダウンロードしたファイルは" Cドライブ直下"に置きます。(※他の場所に置く場合は各設定ファイルを修正してください。)
ファイル配置イメージ
  C:\AD_Apps\
       └─windows\
          ├─ad_watcher
          │      AD_Watcher.exe                 Windowsサービスに登録するプログラム
          │      AD_Watcher.xml      【要確認1】サービス開始時コマンド設定ファイル
          │      DB_COM.fmp12                   FileMakerサンプルファイル(FileMaker Serverでホストして下さい。)
          │      fWatch2DataAPI.exe             実行ファイル本体
          │      fWatch2DataAPI.json 【要確認2】実行設定ファイル(フォルダ、FMSアドレス、スクリプト、TLS)
          │      install_service.bat            インストールバッチ
          │      uninstall_service.bat          アンインストールバッチ
          

【要確認1】AD_Watcher.xml

AD_Watcher.xmlをテキストエディタで開き、実際の配置場所とパス設定が正しいか確認してください。
  <service>
    <id>AD_Watcher.service</id><!-- Windows ID 一意なものを指定すればOK -->
    <name>AD_Watcher</name><!-- Windowsサービス名 -->
    <description>AD_Watcher APサーバー用のサービスです</description><!-- Windowsサービス説明 -->
    <workingdirectory>C:\AD_Apps\windows\ad_watcher</workingdirectory><!--実行ディレクトリ -->
    <executable>C:\AD_Apps\windows\ad_watcher\fWatch2DataAPI.exe</executable><!-- fWatch2DataAPI.exeのパス -->
    <arguments>C:\AD_Apps\windows\ad_watcher\fWatch2DataAPI.json</arguments><!-- fWatch2DataAPI.jsonのパス -->
    <logmode>rotate</logmode>
  </service>
        

【要確認2】fWatch2DataAPI.json

fWatch2DataAPI.jsonをテキストエディタで開き、実際の配置場所とパス設定が正しいか確認してください。
※以下は添付のサンプル「DB_COM.fmp12」を対象とした場合の設定です。スクリプトやアカウントは「DB_COM.fmp12」を参照してください。
  {
    "FMSpath" : "C:/Program Files/FileMaker/FileMaker Server/Data/Documents/", FileMaker ServerのDocuments/
    "Watchpath": "TESTDIR/",FileMaker ServerのDocuments/以下に配置した監視フォルダ名
    "fm_host" : "https://127.0.0.1",FileMaker Serverのアドレス、localの場合は127.0.0.1
    "fm_ssl" : "False",アクセスにSSL認証設定がある場合
    "fm_script" : "apiDataSet",実行するスクリプト名
    "fm_database" : "db_com",FMSでホストされているファイル名
    "fm_layout" : "r_dataTx",対象テーブル名
    "fm_user" : "dataapi",DataAPI用アクセスアカウント
    "fm_password" : "dataapi@pass",DataAPI用アクセスパスワード
    "fm_pkcs12" : "",アクセスにSSL認証設定がある認証ファイルパス
    "fm_pkcs12_password" : ""アクセスにSSL認証設定がある場合認証ファイルのパスワード
  }
        
fWatch2DataAPI.jsonをテキストエディタで開き、実際の配置場所とパス設定が正しいか確認してください。

インストール

install_service.batをWクリックで実行するか、C:\AD_Apps\windows\ad_watcherまで移動して「>AD_Watcher.exe install」コマンドを実行します。

サービスを起動/再起動

サービスの一覧から「AD_Watcher」を探しサービスを開始します。 何らかの原因でサービスが動作していない場合もここで再起動すれば正常に戻ります。 もし、サービスが正常に起動しない場合は設定ファイルを見直し、最初からやり直してください。

アンインストール

uninstall_service.batをWクリックで実行するか、C:\AD_Apps\windows\ad_watcherまで移動して「>AD_Watcher.exe uninstall」コマンドを実行します。

動作確認

指定したフォルダにCSVデータファイルなどを置いてみて正しく動作するか確認してみます。
EX:C:/FileMaker/FileMaker Server/Data/Documents/TESTDIR/

トラブルシューティング1

【その1】起動しないとき
「AD_Watcher.err.log」を確認すると下記のようにエラー内容が判明します。
  Traceback (most recent call last):
  File "fWatch2DataAPI.py", line 234, in 
  File "watchdog\observers\api.py", line 262, in start
  File "watchdog\utils\__init__.py", line 93, in start
  File "watchdog\observers\polling.py", line 76, in on_thread_start
  File "watchdog\observers\polling.py", line 72, in 
  File "watchdog\utils\dirsnapshot.py", line 247, in __init__
  FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。: 'C:/FileMaker/FileMaker Server/Data/Documents/TESTDIR/'
        

トラブルシューティング2

【その2】DataAPIなどのリクエスト設定が間違っている
「AD_Watcher.err.log」を確認すると下記のようにエラー内容が判明します。
以下の場合、fWatch2DataAPI.jsonファイルのfm_layut設定に問題があるようです。
INFO:fWatch2DataAPI:[Created]C:/Program Files/FileMaker/FileMaker Server/Data/Documents/DWHTMP/ADMADMISSION_IP_20231104101344.csv
INFO:fWatch2DataAPI:[DataAPI:start]C:/Program Files/FileMaker/FileMaker Server/Data/Documents/DWHTMP/ADMADMISSION_IP_20231104101344.csv
INFO:fWatch2DataAPI:[DataAPI:param]{"path":"DWHTMP/","filename":"ADMADMISSION_IP_20231104101344.csv","script":"apiDemo"}
urllib3\connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host '127.0.0.1'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
INFO:fWatch2DataAPI:[DataAPI:token]a23d8bedf0920481e48b8a8caa171756bde6bac197432c9e04
urllib3\connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host '127.0.0.1'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
INFO:fWatch2DataAPI:[DataAPI:request]{"messages":[{"code":"105","message":"Layout is missing"}],"response":{}}
urllib3\connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host '127.0.0.1'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
fWatch2DataAPI:[DataAPI:result]{"response":{},"messages":[{"code":"0","message":"OK"}]}