CookBook

No.5 外部サイトの定期監視

投稿日:

この記事は、EWS 2017で行われたLogicDesignerの講演内容に関する記事です。

こちらの例では、LogicDesignerからIM-FormaDesigner / IM-BIS / IMBoxを連携し、外部サイトの更新情報の通知を管理する仕組みを実現しています。
intra-mart 社内では、職場近隣の弁当配達業者のメニュー通知やAccel Platform等で利用しているサードパーティライブラリのバージョンアップ監視に利用しています。
以下に掲載するサンプルでは、サードパーティライブラリの監視の仕組みを実現するロジックフローをインポートして利用できます。

前提条件

このサンプルの利用には以下の前提条件があります。

  • IM-LogicDesigner 2017 Summer以降のバージョンであること
  • サンプルデータのインポートが行われていること
  • 対象の環境に以下の製品・機能が導入済みであること
  • IMBox
  • IM-FormaDesigner for Accel Platform
  • IM-BIS for Accel Platform

サンプル

以下のサンプルをダウンロードしてご利用ください。

この実用例では以下に示す多くのユーザ定義・ロジックフローを組み合わせてバージョン管理の仕組みを実現しています。

サンプルに含まれる定義情報は以下の表のとおりです。

種類 定義名 補足説明
ユーザ定義(JavaScript) サードパーティライブラリ監視 定数の定義 サードパーティライブラリを監視する仕組みで定数として保持している情報をまとめたユーザ定義です。
ユーザ定義(JavaScript) 監視失敗エラー通知メッセージの組み立て サードパーティライブラリの監視のロジックフロー実行時にエラーが発生した場合のエラーメッセージを編集するためのユーザ定義です。
ユーザ定義(sql) サードパーティライブラリ情報 DELETE サードパーティライブラリの監視対象テーブルから対象を削除するユーザ定義です。
ユーザ定義(rest) HTML取得 RESTを利用してサードパーティライブラリのバージョン情報を取得するユーザ定義です。
ユーザ定義(sql) サードパーティライブラリ情報 INSERT サードパーティライブラリの監視対象テーブルに対象を追加するユーザ定義です。
ユーザ定義(JavaScript) 文字列抜き出し 「HTML取得」で取得した情報からバージョン番号を抽出するユーザ定義です。
ユーザ定義(sql) サードパーティライブラリ情報 SELECT サードパーティライブラリの監視対象テーブルから対象を取得するユーザ定義です。
ユーザ定義(sql) サードパーティライブラリ情報 UPDATE サードパーティライブラリのバージョンアップ時に、監視対象テーブルの情報を更新するユーザ定義です。
ロジックフロー 監視対象ライブラリの新規追加 サードパーティライブラリの監視対象を登録するためのロジックフローです。
ロジックフロー ライブラリ1件のアップデート監視 サードパーティライブラリの監視対象の1つに対してバージョン監視処理を実行するためのロジックフローです。
ロジックフロー 全ライブラリのアップデート監視 サードパーティライブラリの監視対象すべてに対してバージョン監視処理を実行するためのロジックフローです。
ロジックフロー サードパーティライブラリ情報 DELETE サードパーティライブラリの監視対象の情報を削除するためのロジックフローです。
ロジックフロー ライブラリのバージョン取得 監視対象のサードパーティライブラリのバージョンを取得するためのロジックフローです。
ロジックフロー サードパーティライブラリ情報 SELECT サードパーティライブラリの監視対象の情報を取得するためのロジックフローです。
ロジックフロー サードパーティライブラリ情報 UPDATE サードパーティライブラリの監視対象の情報を更新するためのロジックフローです。

サンプルに含まれる定義情報は以下の表のとおりです。

種類 定義名 補足説明
アプリケーション定義 【tplc】サードパーティライブラリ情報編集 サードパーティライブラリの監視対象の情報を登録する画面(アプリケーション)です。
アプリケーション定義 【tplc】監視対象サードパーティライブラリ一覧 サードパーティライブラリの監視対象を一覧で確認するための画面(アプリケーション)です。

サンプルに含まれる定義情報は以下の表のとおりです。

種類 定義名 補足説明
データソース定義(LogicDesigner) 【tplc】サードパーティライブラリ情報 DELETE 「【tplc】サードパーティライブラリ情報編集」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
データソース定義(LogicDesigner) 【tplc】サードパーティライブラリ情報 SELECT 「【tplc】サードパーティライブラリ情報編集」・「【tplc】監視対象サードパーティライブラリ一覧」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
データソース定義(LogicDesigner) 【tplc】サードパーティライブラリ情報 UPDATE 「【tplc】サードパーティライブラリ情報編集」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
データソース定義(LogicDesigner) 【tplc】ライブラリ1件のアップデート監視 「【tplc】監視対象サードパーティライブラリ一覧」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
データソース定義(LogicDesigner) 【tplc】ライブラリのバージョン取得 「【tplc】サードパーティライブラリ情報編集」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
データソース定義(LogicDesigner) 【tplc】監視対象サードパーティライブラリ新規登録 「【tplc】サードパーティライブラリ情報編集」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
データソース定義(LogicDesigner) 【tplc】全ライブラリのアップデート監視 「【tplc】監視対象サードパーティライブラリ一覧」からロジックフロー「サードパーティライブラリ情報 DELETE」を実行するためのデータソース定義です。
  • データベース操作によるテーブルの作成・データ投入 : [file-ews_2017_3.zip]
  • システム管理者、またはテナント管理者によるデータベース操作のSQLファイルのインポートにより実行してください。監視対象のデータ管理テーブル、サンプルとしてResin Proの監視対象データが登録されます。
  • 手順の詳細は以下のドキュメントをご覧ください。
    [システム管理者操作ガイド] - [データベース操作]

サンプルに含まれるSQLファイルは以下の表のとおりです。

種類 定義名 補足説明
SQL(DDL) DDL_postgres.sql サードパーティライブラリの監視対象を管理するテーブルです。PostgreSQL向けに設定されているため、他のデータベースサーバの場合には適宜必要な変更を実施してください。
SQL(DML) DML_postgres.sql サードパーティライブラリの監視対象を管理するテーブルにサンプルデータを投入します。PostgreSQL向けに設定されているため、他のデータベースサーバの場合には適宜必要な変更を実施してください。

サンプルは、intra-mart Accel Platform(Advanced) 2017 Summer(8.0.17), IM-FormaDesigner 2017 Summer(8.0.16),IM-BIS 2017 Summer(8.0.14)で動作確認を行っています。

実行時の事前準備

  1. IMBoxでロジックフロー「ライブラリ1件のアップデート監視」・「全ライブラリのアップデート監視」で取得したバージョンアップ情報の投稿先グループを作成し、IMBoxグループIDを確認してください。
    該当のグループにロジックフローによるサードパーティライブラリの監視処理にエラーが発生した場合のメッセージの投稿先の記事(スレッド)を作成し、スレッドIDを確認してください。
    ※スレッドIDは、スレッドを単独で表示した際のURL( http://127.0.0.1:8080/imart/imbox/unitbox/%BOX_CODE%/%THREAD_ID% ) で最後の部分が該当します。
    スレッドIDについては[IMBox 仕様書]-[スレッドIDの設定]を参照してください。
  2. ユーザ定義「サードパーティライブラリ監視 定数の定義」のスクリプト内の値を上の手順で確認した情報に変更してください。
    iap_info配下のURLについても実行しているサーバに合わせて適宜修正してください。
  3. 以下のアプリケーションの権限設定・メニュー設定を行い、各アプリケーションの登録画面をメニューから表示できるようにしてください。
    手順の詳細は[IM-FormaDesigner 作成者 操作ガイド]を参照してください。
    後の実行方法では、ユーザ「青柳辰巳」に権限「登録可能」を付与し、メニューグループ「Formaアプリ」に対して「登録画面メニュー設定」を行っています。

* 【tplc】サードパーティライブラリ情報編集
* 【tplc】監視対象サードパーティライブラリ一覧

実行方法

サードパーティライブラリの監視対象の追加
  1. 青柳辰巳でログイン後、メニューに登録した「【tplc】サードパーティライブラリ情報編集」を表示してください。
  2. 各項目の横の説明を参考にして必要事項を入力してください。
  3. 「テスト実行」をクリックすると、入力したライブラリのバージョン情報が取得され、「テスト実行結果」に最新バージョンが表示されることが確認できます。
  4. 「新規登録」をクリックすると入力内容を監視対象のサードパーティライブラリとして登録できます。
サードパーティライブラリの監視の実行
  1. 青柳辰巳でログイン後、メニューに登録した「【tplc】監視対象サードパーティライブラリ一覧」を表示してください。
  2. 画面下部の「全監視対象の監視フロー実行」をクリックすると、登録したサードパーティライブラリのバージョン情報を取得します。
  3. 処理終了のメッセージ表示後に、画面を更新すると、バージョンアップが発生したサードパーティライブラリについてはバージョンが更新されていることが確認できます。

    監視対象のうちバージョン情報が取得できなかったサードパーティライブラリについては、IMBoxの指定したスレッドに通知メッセージが出力されています。

-CookBook
-, , ,

執筆者:


comment

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

関連記事

no image

スクリプト開発でのCSRF対策(formタグ編)

Cross Site Request Forgery(CSRF)とは、閲覧者に不正にHTTPリクエストを送信させ、攻撃者の意図した処理を実行させる攻撃手法です。 このCookBookでは、スクリプト開 …

no image

Accel-Mart Plus on AWSにて複数のベースURLを利用する方法

製品標準の設定では、テナント一つにつき、一つの BaseURL のみが設定可能ですが、BaseUrlProvider インタフェースを実装することで、複数の BaseURL を持たせることができます。 …

no image

画面UI部品(imuiValidate)のバリデーションメッセージを任意の場所に表示する方法

このCookBookでは、画面UI部品のバリデーションメッセージを任意の場所に表示する方法について紹介しています。 intra-mart Accel Platform では、画面上に配置したUI部品の …

no image

ページ読み込み時にアクションを実行する方法

このCookBookでは、ページ読み込み時にアクションを実行する方法について紹介しています。 BloomMakerでは、アクションが実行されるタイミングが設定できます。クリック時やダブルクリック時だけ …

no image

IM-BloomMaker Bulma を使用した入力系画面の作成

intra-mart Accel Platform 2020 Summer から、コンテンツ種別「Bulma」が提供されました。 このCookBookでは、スクリプト開発モデルのサンプル登録画面をもと …