【Hinemos 5.0】特定のジョブの実行結果をコマンドで取得する(その2・後編)

この記事は5年以上前に書かれたものです。 情報が古い可能性があります。

前回に引き続き、ジョブ自体の終了値等をコマンドで取得する方法の研究です。WebサービスAPIのgetJobDetailListメソッドで取得したジョブ詳細情報のオブジェクトを上から下に探索していき、目的のジョブの終了状態と終了値を取得する、というロジックを、例によってPerlで実装してみます。

まず、リファレンス構造の骨格部分と、その特徴を再掲します。

  • 最上層に”children”というキーのみを持つHashRefである。
  • “children”は、直下のジョブ等を表す子要素のキーである。
  • “children”の子要素が複数ある場合、値は配列のリファレンスとなる。
  • “data”は、そのジョブのマスタ情報(のHashRef)を内包するキーである。
  • ジョブIDは、”data”配下のハッシュキー”id”に格納されている。
  • “detail”は、そのジョブの実行結果等(のHashRef)を内包するキーである。
  • ジョブの終了状態は、”detail”配下のハッシュキー”endStatus”に格納されている。
  • ジョブの終了値は、”detail”配下のハッシュキー”endValue”に格納されている。

ということで、目的を達成するためには、プログラマーの大好きな 再帰 をロジックに組み込む必要があります。サンプルコードは以下のとおりです(例によって、エラー処理はほとんど入れておりませんので、あらかじめご了承ください)。

それでは、もう少し階層の深いジョブ定義を作成し、実行結果を取得してみましょう。まず、ジョブの実行結果は以下のとおりです。

ジョブの実行結果

ジョブの実行結果

また、サンプルコードの実行結果は以下のとおりです。なお、最後の3つは、オプションにわざとおかしな文字列を渡して、どういう出力が返るかを確認するためのものです。

 

ご覧のとおり、サンプルコードの実行結果は、ジョブの実行結果(の画像)と一致していますので、無事、必要な値が取得できることが確認できました。あとは、このコードを必要に応じて改変し、ジョブに組み込めば、先行ジョブの終了値等に応じてジョブの動作を変えることができるようになります(詳しい方法はこちらと同じですので、今回は割愛します)。

以上、4回に分けて、特定のジョブの実行結果をコマンドで取得する方法についてご紹介しました。今後も、関連する話題があればご紹介したいと思います。


ご意見やお問い合わせについて

この記事へのご意見やお問い合わせについては、こちら(お問い合わせフォーム)もしくは
Hinemos営業担当【hsd-sales@atomitech.jp】までご連絡ください。

※お問い合わせフォームからご連絡の場合には、お問い合わせ内容で「Hinemosについて」を選択し、
 本文の冒頭に「Hinemos研究日記_【タイトル名】」とご記載ください。
※メールアドレスへご連絡の場合には、件名を「Hinemos研究日記_【タイトル名】」でご連絡ください。