ジョブフローの引数がうまく渡されない
ジョブフローからopenurlメソッドを用いてKompira APIを呼び出し、ジョブフローを起動したが、ジョブフローの引数がうまく渡されない、原因をご教示いただきたい。
以下サンプルです
【サンプルソース】
|fqdn = (サーバ名)|
|uri = (ジョブフローパス)|
|headers = {Accept='application/json', Authorization='Token (トークン)'}|
|parameters={ arg1='"aaaa"', arg2='"bbb"' }|
# ジョブフローの実行
[url = 'https://' + string(fqdn) + string(uri) + '.execute'] ->
[data = { step_mode=false, checkpoint_mode=false, monitoring_mode='NOTHING', parameters=parameters }] ->
[urlopen: url, headers=headers, data=data] =>
[status=$STATUS, result=$RESULT, error=$ERROR] ->
print('status: ' + string(status)) ->
print('result: ' + string(result)) ->
print('error : ' + string(error)) ->
{ if status != 0 |
print('urlopenに失敗しました。' + string(error)) ->
return(status=1)
} ->
{ if result['code'] != 200 |
print('ジョブフローの起動に失敗しました。' + result['text']) ->
return(status=1)
} ->
# プロセスの状態確認
[pid = string(result['text']).strip('"')] ->
[url = "https://" + string(fqdn) + pid] ->
print('url: ' + url) ->
[urlopen: url, headers=headers] =>
[status=$STATUS, result=$RESULT, error=$ERROR] ->
print('status: ' + string(status)) ->
print('result: ' + string(result)) ->
print('error : ' + string(error))-
正式なコメント
urlopen の data パラメータがデフォルトの application/x-www-form-urlencoded 形式でエンコードされていることが原因かと思います。
以下のように encode パラメータで 'json' を指定して、試していただけますでしょうか。
[urlopen: url, headers=headers, data=data, encode='json'] =>コメントアクション
サインインしてコメントを残してください。
コメント
1件のコメント