メインコンテンツまでスキップ

外部のシステムから業務ロジックを実行する

Accel-Mart Quick上で作成した業務ロジックを、外部のシステムから実行する方法を解説します。

利用シーン

外部のシステムからREST APIの形式でAccel-Mart Quickの業務ロジックを実行することが可能になります。
これを用いることで、以下のような外部システムとの連携が可能となります。

  • 外部の販売管理システムに案件データが登録された際に、Accel-Mart Quickで見積もりワークフローを起票する

  • 電子契約が完了した際に、関連するAccel-Mart Quickのワークフロー案件を処理し、次の作業者のノードに進める

  • Accel-Mart Quick上のWebデータベースのデータを取得し、外部のシステムの画面に表示する

    連携イメージ

    図:REST APIを利用した連携イメージ

概要

このチュートリアルでは、メッセージを返却する業務ロジックを作成し、その業務ロジックを外部からREST APIとして実行できるように公開URLの作成を行います。
また、外部のシステムからの実行例として、Windows PowerShell、およびcurlを用いた業務ロジックの実行を解説します。

注記

「Accel-Mart Quick アプリケーション管理者」ロールを持つユーザで実施してください。

アプリケーションの作成

このチュートリアルで作成する業務ロジック、および公開URLの管理を行うアプリケーションを作成します。

  1. メニューの「管理」→「ローコード開発」→「アプリケーション作成」から「業務テンプレート一覧」画面を表示します。

  2. 「ベーステンプレート」-「空のアプリケーション」の「次へ」をクリックします。 空のアプリケーション

  3. フォームに以下の通り入力し、「アプリケーション作成」をクリックします。

    • アプリケーションID:tutorial-rest-api
    • アプリケーション名:【チュートリアル】REST API作成

    アプリケーション作成

  4. 「確認」ダイアログで「ビルド」ボタンをクリックします。

  5. 「テンプレートビルドジョブ - 詳細」が表示され、ステータスが「COMPLETE」となればアプリケーションの作成は完了です。 アプリケーション作成

業務ロジックの作成

REST APIとして実行される、メッセージを返却する業務ロジックを作成します。
作成する業務ロジックでは、以下の処理を行います。

  • 入力値と定数を結合した文字列を出力します。
作成する業務ロジック

作成する業務ロジック

業務ロジックを新規作成する

  1. メニューの「管理」→「ローコード開発」→「アプリケーション一覧」から「アプリケーション一覧」画面を表示します。
  2. 「自動生成されたアプリケーション」カテゴリをクリックした後、「【チュートリアル】REST API作成」をクリックし、「【チュートリアル】REST API作成 - 詳細」画面を表示します。 アプリケーション一覧画面
  3. 「ロジック」タブをクリックし、「ロジックリソースを追加」→「ロジックを新規作成」→「ロジックフロー」をクリックします。 アプリケーション詳細画面
  4. 「ロジックフロー定義編集」画面が表示されます。 ロジックフロー定義編集画面

入出力設定を行う

REST APIとして実行される際にリクエストボディとして受け取るデータ、およびレスポンスボディとして返却するデータの設定を行います。

  1. ツールバーの「入出力設定」をクリックし、「入出力設定」ダイアログを表示します。 入出力設定
  2. 入力の「string」ボタンをクリックし、inputを入力します。
  3. 出力の「string」ボタンをクリックし、bodyを入力します。 入出力を設定する
  4. 「決定」ボタンをクリックします。

定数設定を行う

業務ロジックの出力値として利用する文字列を定数として登録します。

  1. ツールバーの「定数設定」をクリックし、「定数設定」ダイアログを表示します。

    定数設定

  2. 「定数を追加」をクリックし、下記の定数を追加します。

    定数ID定数値説明
    messageREST APIを実行しました。入力値:返却する文字列に利用します。

    定数を追加する

  3. 「決定」ボタンをクリックします。

タスクをつなぐ

以下の図のように、「開始」タスクと「終了」タスクをつなぎ合わせてください。

タスクの配置

タスクのマッピング設定をする

「終了(im_end1)」タスクのマッピング設定を行います。

備考

マッピング設定の詳しい操作方法は「マッピング設定を行う」を参照してください。

  1. 以下の通りマッピングを行ってください。

    始点終点
    定数 - message<string>concat - a
    入力 - input<string>concat - b
    concat - out出力 - body<string>

    終了(im_end1)のマッピング設定

    文字列の結合

    文字列の結合には、マッピング関数「文字列操作 - concat」を利用します。

    • マッピング関数concatの詳細は「concat」を参照してください。
    • マッピング関数の使い方については「マッピング関数の利用」を参照してください。
  2. 「決定」ボタンをクリックします。

業務ロジックを保存する

  1. ツールバーの「保存」をクリックし、「保存」ダイアログを表示します。 保存

  2. フォームに以下の通り入力し、「アプリケーション作成」をクリックします。

    • フロー定義ID:tutorial_rest_api_flow
    • フロー定義名:【チュートリアル】REST APIフロー
    • フローカテゴリ:任意のカテゴリ

    業務ロジックを保存する

  3. 「決定」ボタンをクリックします。

  4. 「確認」ダイアログで「決定」ボタンをクリックします。

公開URLの作成

業務ロジックをREST APIとして実行するための設定を行います。

  1. 「【チュートリアル】REST API作成 - 詳細」画面で「公開URL」タブをクリックし、「公開URLリソースを追加」→「公開URLを新規作成」→「APIのURL」をクリックします。

    APIのURL

  2. 「ロジックフロールーティング定義編集」画面が表示されます。

  3. 以下の情報をフォームに入力します。

    • 対象フロー:tutorial_rest_api_flow(【チュートリアル】REST APIフロー)
    • ルーティング:tutorial/rest_api
    • メソッド:POST
    • 認証方法:Basic
    • 認可URI:tutorial/rest_api
    • レスポンス種別:テキストとして返却

    公開URLを設定する

    各項目の説明
    項目説明
    対象フローREST APIとして利用したい業務ロジックを設定します。
    バージョン番号「対象フロー」で設定した業務ロジックについて、実行する際に参照するバージョン番号を設定します。 バージョン番号指定の詳細は以下の通りです。
    ・ 最新バージョンを利用する
    「対象フロー」で設定した業務ロジックが持つバージョンの中から、最も新しいバージョンを利用します。利用するバージョンは、業務ロジックが呼び出されるタイミングで都度検証が行われます。

    ・利用するバージョンを指定する
    「対象フロー」で設定した業務ロジックが持つバージョンの中から、利用するバージョンを指定します。
    ルーティング業務ロジックをREST APIとして呼び出す際のURLを設定します。
    メソッド業務ロジックをREST APIとして呼び出す際に指定するHTTPメソッドを設定します。
    認証方法認証方式を設定します。
    各認証方式の詳細は「認証方式による認証」を参照してください。
    認可URI認可判断を行うための認可URIを設定します。
    全ての公開URL設定間で一意となる値を設定してください。
    セキュアトークンを利用する(チェックボックス)業務ロジックを実行する際にセキュアトークンを用いたトークンチェックを行うかを設定します。
    Accel-Mart Quick上の画面から、更新処理等を行う業務ロジックをREST APIとして呼び出す場合に利用を検討してください。
    レスポンス種別REST APIを実行した際に得られる出力データの形式を設定します。
    各出力データの形式の詳細は「ロジックフローの出力データの返却 」を参照してください。
    レスポンスヘッダREST APIを実行した際に得られるレスポンスへ付加するヘッダ情報を設定します。
  4. 「登録」ボタンをクリックします。

  5. 確認ダイアログで「決定」ボタンをクリックします。

認可を設定する

「Accel-Mart Quick アプリケーション管理者」ロールを持つユーザのみがREST APIを実行可能となるように認可設定を行います。

  1. 「【チュートリアル】REST API作成 - 詳細」画面で アイコンをクリックし、「【チュートリアル】REST API作成 - 認可設定」画面を表示します。 認可設定
  2. 「POST tutorial/rest_api」の行と「Accel-Mart Quick アプリケーション管理者」列の交点の をクリックして に変更します。 認可を設定する
  3. 「更新」ボタンをクリックします。
  4. 「アプリケーション認可変更確認」ダイアログで「更新」ボタンをクリックします。

アプリケーションを公開する

作成したREST APIを公開し、外部のシステムから実行可能な状態にします。

  1. 「【チュートリアル】REST API作成 - 詳細」画面で アイコンをクリックし、「アプリケーション情報編集」ダイアログを表示します。 設定
  2. 「アプリケーション公開設定」の「アプリケーションを公開する」ボタンをクリックし、「アプリケーション公開設定」ダイアログを表示します。 アプリケーションを公開する
  3. 「アプリケーションを公開する」ボタンをクリックします。

作成したREST APIを実行する

作成したREST APIを実行してみましょう。
このチュートリアルで作成したREST APIを実行するための情報は以下の通りです。

  • URL:https://{個社環境ホスト名}.accel-mart.com/imart/logic/api/tutorial/rest_api
  • HTTPメソッド:POST
  • 認証:アプリケーション管理者ロールを持つアカウントでのBasic認証
  • リクエストボディ
    • input:任意の文字列
      • この文字列がREST APIの実行結果として返却されるメッセージに含まれます。

このチュートリアルではWindows PowerShell、およびcurlを利用してREST APIを実行する手順を紹介します。

Windows PowerShellで作成したREST APIを実行する

Windows PowerShell を利用してREST APIを実行します。

  1. Windows PowerShellで以下のコマンドを実行します。

    $auth = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("{ユーザコード}:{パスワード}"))
    備考

    {ユーザコード}{パスワード}はAccel-Mart Quick上のアプリケーション管理者ロールを持つアカウントの情報にそれぞれ置換してください。
    例えば、ユーザコードがtutorial_user、パスワードがPasswordの場合、コマンドは以下となります。

    $auth = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("tutorial_user:Password"))
  2. 続けて以下のコマンドを実行します。

    Invoke-RestMethod -Method Post -Uri https://{個社環境ホスト名}.accel-mart.com/imart/logic/api/tutorial/rest_api -Headers @{ Authorization = "Basic $auth"} -Body @{input = "入力値テスト"}
    備考

    {個社環境ホスト名}はREST APIを作成したAccel-Mart Quick個社環境のホスト名に置換してください。

  3. 業務ロジックが実行され、実行結果として返却されてきたメッセージが画面に出力されます。
    今回はinput入力値テストという文字列を指定して実行したので、REST APIを実行しました。入力値:入力値テストというメッセージが実行結果として出力されます。

    PowerShell実行結果

curlで作成したREST APIを実行する

curl を利用してREST APIを実行します。

  1. 以下のコマンドを実行します。

    curl -u '{ユーザコード}:{パスワード}' -X POST -H 'Content-Type: application/json' -d '{"input":"入力値テスト"}' -w '\n' https://{個社環境ホスト名}.accel-mart.com/imart/logic/api/tutorial/rest_api
    備考
    • {ユーザコード}{パスワード}はAccel-Mart Quick上のアプリケーション管理者ロールを持つアカウントの情報にそれぞれ置換してください。
      例えば、ユーザコードがtutorial_user、パスワードがPasswordの場合、コマンドは以下となります。
      curl -u 'tutorial_user:Password' -X POST -H 'Content-Type: application/json' -d '{"input":"入力値テスト"}' -w '\n' https://{個社環境ホスト名}.accel-mart.com/imart/logic/api/tutorial/rest_api
    • {個社環境ホスト名}はREST APIを作成したAccel-Mart Quick個社環境のホスト名に置換してください。
  2. 業務ロジックが実行され、実行結果として返却されてきたメッセージが画面に出力されます。
    今回はinput入力値テストという文字列を指定して実行したので、REST APIを実行しました。入力値:入力値テストというメッセージが実行結果として出力されます。

    curl実行結果

注意

上記はLinuxでcurlを利用した場合の実行例です。Windowsで実行する場合など、実行環境によってコマンドの記述形式が変わる場合があります。
curlの詳細についてはcurlの公式サイトをご確認ください。