Claris FileMaker

ファイルメーカーのスクリプト起動時に、引数を1つ設定するのは簡単です。

これを複数設定するときに、よく使うパターンを2つ記事にしておきます。

 

引数を改行区切りで渡す

引数のイメージは下記のコードのようになります。

"引数1"  & "¶"  & 
"引数2"  & "¶"  & 
"引数3"  & "¶"  & 
"引数4"

 

受け取り側のコードは下記のようなコードになります。

変数を設定 [$引数1; 値:GetValue(Get(スクリプト引数);1)]
変数を設定 [$引数2; 値:GetValue(Get(スクリプト引数);2)]
変数を設定 [$引数3; 値:GetValue(Get(スクリプト引数);3)]
変数を設定 [$引数4; 値:GetValue(Get(スクリプト引数);4)]

改行区切りで引数を渡すときの注意点

引数として設定した値の中に、改行が含まれる場合、受け取り側でGetValueの値番号がズレてしまいます。

また引数1~4までの値のうち、空白の引数が存在する場合も同様にズレが発生します。

かならず値が存在する、かつ改行が含まれない場合のみ利用できます。

 

引数をJSONで渡す

引数としてJSONを作成して渡します。

改行区切りで引数を渡すより値内容に左右されないため、最近はこちらの方法を多用しています。

 

Param1~Param4がキーとして、引数値1~引数値4を設定します。

変数を設定 [$引数; 値:

JSONSetElement("";
 ["Param1";"引数値1";JSONString];
 ["Param2";"引数値2";JSONString];
 ["Param3";"引数値3";JSONString];
 ["Param4";"引数値4";JSONString]
)

]

受け取り側のコードは下記のようなコードになります。

変数を設定 [$引数1; 値:JSONGetElement(GET(スクリプト引数);"Param1")]
変数を設定 [$引数2; 値:JSONGetElement(GET(スクリプト引数);"Param2")]
変数を設定 [$引数3; 値:JSONGetElement(GET(スクリプト引数);"Param3")]
変数を設定 [$引数4; 値:JSONGetElement(GET(スクリプト引数);"Param4")]

 

まとめ

引数を複数設定する例として記載しましたが、処理結果を受け取る場合にも同様に利用することができます。

 

もっと良い方法があれば、だれかコメントで教えてください(-_-;)

 

By にど寝

もともと名古屋でシステムエンジニアをしてましたが、現在は地元に帰省してネットショップの社内システムエンジニアをしてます。  

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です