みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FileMakerよりWEB APIを利用してデータファイル送信のテストをしておりますが、
上手くいきません。
powershellからは正常に実行ができたのですが、FileMakerのURL挿入を利用して送信テストを
行うと「要求されたデータが見つかりません」がエラーとして戻ってきます。
有識者の方で対応方法が分かる方や記載方法がまずい内容はありますでしょうか?
※WEB API側の文字コードは「shift jis」の指定があります。
【powershell 成功】
curl.exe -v
-H "Content-Type:multipart/form-data"
-H "AccessToken:XXXXXX" -F "file=@C:/Users/test/Desktop/99999999_99_99999.DAT;filename=99999999_99_99999.DAT"
https://www.XXXXX.jp/XXXXX/xxxx/xxx/xxxx/99
【Filemaker ver.19 失敗】
URL:https://www.XXXXX.jp/XXXXX/xxxx/xxx/xxxx/99(自動的にエンコード)
cURLオプション:
-H "Content-Type:multipart/form-data"
-H "AccessToken:XXXXXXX"
-F "file=@C:/Users/test/Desktop/99999999_99_99999.DAT;filename=99999999_99_99999.DAT"
結果:要求されたデータが見つかりません
ファイルを指定する場合、FileMakerでは、変数に設定する必要があります。
以下が参考になりそうな...
https://fm-aid.com/bbs2/viewtopic.php?pid=66155#p66155
Last edited by qb_dp (2022-08-16 17:22:38)
Offline
ご返信ありがとうございます。
送信データとして、スクリプト上では以下の様に設定しておりますが、変数の指定に誤りがあるのでしょうか?
ファイルを挿入[$変数A]
テキストを挿入[$変数B; -H ; "Content-Type:multipart/form-data" -H "AccessToken:XXXXXXX" -F "file=@$data;filename=__FILENAME__"]
変数を設定[$fileName ; $変数A ]
変数を設定[$option ; Substitute ( $変数B ; [ "__FILENAME__" ; $fileName ] ) ]
URLから挿入[選択; ダイアログあり:オフ; $結果; $url; SSL証明書の検証; cURLオプション:$option]
修正箇所がありました。
以下になります。
ファイルを挿入[$変数A]
テキストを挿入[$変数B; -H ; "Content-Type:multipart/form-data" -H "AccessToken:XXXXXXX" -F "file=@$変数A;filename=__FILENAME__"]
変数を設定[$fileName ; $変数A ]
変数を設定[$option ; Substitute ( $変数B ; [ "__FILENAME__" ; $fileName ] ) ]
URLから挿入[選択; ダイアログあり:オフ; $結果; $url; SSL証明書の検証; cURLオプション:$option]
ファイルを指定する場合、FileMakerでは、変数に設定する必要があるので、
以下のようにしてみては。
ファイルを挿入[$data]
テキストを挿入[$変数B; -H ; "Content-Type:multipart/form-data" -H "AccessToken:XXXXXXX" -F "file=@$data;filename=__FILENAME__"]
変数を設定[$fileName ; $変数A ]
変数を設定[$option ; Substitute ( $変数B ; [ "__FILENAME__" ; GetContainerAttribute ($data ; "filename") ] ) ]
URLから挿入[選択; ダイアログあり:オフ; $結果; $url; SSL証明書の検証; cURLオプション:$option]
Last edited by qb_dp (2022-08-16 18:30:24)
Offline
書いている間に修正が来てましたね。
エラーになっているのでしょうか?
Offline
以下を追加すれば、サーバーのレスポンスが取得できます。
--dump-header $$responseHeaders
Offline
変数だけでなくオブジェクトフィールドを使用する必要があります。
「ファイルにアクセスする場合は、ファイルを含むオブジェクトフィールドに変数を設定して cURL オプションの引数としてこの変数を使用します。」
https://help.claris.com/ja/pro-help/con … s.html#tn4
試してみました。
ファイルを挿入[$data] を使えば、オブジェクトフィールドを介さなくても大丈夫でした。
Offline
そうでしたか。仕様の変更にヘルプの修正が追い付いてないんですね。
「ファイルを挿入」自体が、「フィールドに関連するスクリプトステップ」になっちゃってますしね...
ご返信ありがとうございます。
WEB APIを利用した連携に関してですが、
--dump-header $変数を送信する事で、正常に送信できている
事が確認できました。
また、方法としてはオブジェクトフィールドを利用する方法およびファイル挿入で
変数でオブジェクトを格納する方法の両方で試してみましたが、両方とも成功しました。
ただし、送信は成功しておりますが、FileMaker側でURLからの挿入結果としては
「要求されたデータが見つかりません」がかえってきておりますが、--dump-header $変数で
送信結果は取得できましたのでそれで対応を行います。
以上、本件を解決とさせて頂きます。
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 564.96 KiB (Peak: 579.35 KiB) ]