2018年2月17日土曜日

FileMaker Go や FileMaker Server 上のスクリプトのデバッグ。|Debugging scripts on FileMaker Go and FileMaker Server.

FileMaker Go や FileMaker Server 上のスクリプトのデバッグって中々困難です。
以下の方法を使えば、FileMaker Go や FileMaker Server 上で動作しているスクリプトを一時停止し、その時のフィールドや変数の値をPC上で確認することが出来ます。


動作検証
FileMaker Go 16
Windows 10

スクリプト 例:
変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
/*何らかの処理*/
変数を設定 [$n; 値:$n+1]
End Loop


上記例の「/*何らかの処理*/」の所で一時停止し、変数 $n の値をPCで確認する事ができます。


スクリプトを実行すると、FileMaker Go のスクリプトが一時停止状態となり、


PC上で、変数 $n の値が確認出来ます。

[はい(Y)]をクリックすると、FileMaker Go のスクリプトが再開されます。

それでは、デバッグするための準備をしていきましょう。
この処理を行うには、

ダウンロードし、展開した「ProcessMakerTL.exe 」を任意の場所に保存。
例では、C:ドライブとします。
Windowsの「ファイル名を指定して実行」(Windowsキー + R)で以下のようにして「ProcessMakerTL.exe」を起動します。
"C:\ProcessMakerTL.exe" "address=*" "port=8081"

「ProcessMakerTL.exe」が起動します。

「ProcessMakerTL.exe」が起動しない場合は、ProcessMakerTL.exe のファイルプロパティーを確認し、ブロックされている場合は、[ブロックの解除]をおこなって下さい。

「Windowsファイヤーウォールを介したアプリまたは機能を許可」に「ProcessMakerTL.exe」を追加して下さい。
※その他、セキュリティーソフトで通信を止められる場合があります。
 セキュリティーソフトで「ProcessMakerTL.exe」の通信を許可して下さい。

デバッグ用ファイル。
FMDebugger.fmp12 : https://sites.google.com/site/processmakertl/example/debugging-scripts-on-filemaker-go-and-filemaker-server

デバッグしたいスクリプト
スクリプト 例:

変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
/*何らかの処理*/
変数を設定 [$n; 値:$n+1]
End Loop


太字部分を追加。

変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
フィールド設定 [FMDebuggerTEST::Value; $n]
ウインドウ内容の再表示 []
スクリプト実行 [「fmDebugger(arg)」 , ファイル: 「FMDebugger」; 引数: 
"$CAPTION=" & Quote ( Get ( スクリプト名 ) ) & 
";$TEXT=" & Quote ( "$n=" & $n & ¶ & Get ( アプリケーションバージョン ) )
]
変数を設定 [$Result; 値:Get(スクリプトの結果)]
If [ not IsEmpty ( FilterValues ( $Result ; "No" ) )]
全スクリプト終了
End If
変数を設定 [$n; 値:$n+1]
End Loop

ファイル:FMDebugger.fmp12 のフィールド:URi を「ProcessMakerTL.exe」を起動したPCのIPアドレスに変更。

FileMaker Go のローカルでデバッグする場合は、ファイル:FMDebugger.fmp12 をFileMaker Go に保存すればOK。

0 件のコメント:

コメントを投稿