CookBook

IM-BloomMaker ストレージ上のファイルをダウンロードする方法

投稿日:

この CookBook ではストレージ上のファイルをダウンロードする方法を紹介します。
ダウンロードするファイルの設置、必要なロジックの作成、画面からのロジックの呼び出し方法について順序立てて説明していきます。

完成イメージ

以下のアクション・エレメントを使用しています。

  • アクション
    • IM-LogicDesigner フロールーティングにリクエストを送信する(intra-mart Accel Platform 2021 Summer からファイルダウンロード可能)
    • URLにリクエストを送信する(intra-mart Accel Platform 2021 Summer からファイルダウンロード可能)
    • URLに遷移する
  • エレメント
    • ハイパーリンク
    • フォーム

完成サンプル

IM-BloomMaker インポートファイル: cookbook_192473_im_bloommaker-data
IM-LogicDesigner インポートファイル: cookbook_192473_im_logicdesigner-data

IM-BloomMaker インポートファイルには、以下の定義が含まれています。

コンテンツ定義 im_cookbook_192473
ルーティング定義 im_cookbook_192473

IM-BloomMaker のインポート機能を利用してインポートしてください。
インポート後、インポートしたルーティング定義の認可 URI の設定を行ってください。

IM-LogicDesigner インポートファイルには、以下の定義が含まれています。

フロー定義 im_cookbook_192473
ルーティング定義 im_cookbook/192473

IM-LogicDesigner のインポート機能を利用してインポートしてください。
インポート後、インポートしたルーティング定義の認可 URI の設定を行ってください。

ローカル環境で表示させる場合は、以下の URL にアクセスしてください。
http://localhost:8080/imart/im_cookbook/192473
なおベース URL である以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart

レシピ

  1. ダウンロード対象の pdf ファイルをパブリックストレージに配置
  2. IM-LogicDesigner でパブリックストレージの pdf をダウンロードするサーバロジックを作成
  3. IM-BloomMaker で pdf ファイルをダウンロードする画面を作成

1. ダウンロード対象の pdf ファイルをパブリックストレージに配置

以下のリンクから pdf ファイルをダウンロードし、ご自身の環境のパブリックストレージに配置してください。
サンプル pdf ファイル: im_cookbook_192473

ダウンロード対象のファイルは動的に作成する場合が多いと思いますが、この Cookbook では簡単に機能を実装するため固定のファイルを利用します。

2. IM-LogicDesigner でパブリックストレージの pdf をダウンロードするサーバロジックを作成

CookBook IM-BloomMaker 「外部リソース埋め込みコンテナ」エレメントを使用してパブリックストレージ上のファイルを閲覧する画面を作成する方法 の「1. IM-LogicDesigner でパブリックストレージの pdf を読み取るサーバロジックを作成」を参考にサーバロジックを作成してください。

上記リンクの手順で以下の部分を変更してください。

ロジックフロー定義編集

定数ID 定数値
PDF im_cookbook_192473.pdf

ロジックフロールーティング定義編集

フロー定義ID im_cookbook_192473
ルーティング /imart/logic/api/im_cookbook/192473
認可URI im-logic-rest://im_cookbook/192473
レスポンス種別 ファイルダウンロード

パブリックストレージに配置する pdf 名
im_cookbook_192473.pdf

3. IM-BloomMaker で pdf をダウンロードする画面を作成

「サイトマップ」→「BloomMaker」→「コンテンツ一覧」をクリックして、「IM-BloomMaker コンテンツ一覧」画面を開きます。
「コンテンツ新規作成」をクリックして、以下の情報を入力し「登録」ボタンをクリックします。

カテゴリID im_cookbook
コンテンツID im_cookbook_192473
コンテンツ種別 Bulma
コンテンツ名 im_cookbook_192473
以下の定数を作成してください。
キー名
LD_FLOW_ROUTING logic/api/im_cookbook/192473

以下のアクションを作成し、ボタンに設定します。

IM-LogicDesigner フロールーティングにリクエストを送信する
intra-mart Accel Platform 2021 Summer からファイルのダウンロードが可能になりました。
サーバからのレスポンスが以下のいずれかであると、ファイルをダウンロードできます。

  • Content-Type が octet-stream である
  • Content-Disposition が attachment である

今回の CookBook では「2. IM-LogicDesigner でパブリックストレージの pdf を読み取るサーバロジックを作成」の「ロジックフロールーティング定義編集」で、レスポンス種別に ファイルダウンロード を指定しています。
そのためサーバから返却される Content-Dispositionattachment になり、ファイルのダウンロードができるようになっています。

ルーティングim_cookbook/192473 を指定してください。

ボタンを配置し、クリック時のイベントに作成したアクションを指定してください。

動作確認

作成した画面の動作確認を行います。
ツールバーの「プレビュー」アイコンをクリックし、プレビュー画面を開いてください。

IM-LogicDesigner フロールーティングにリクエストを送信する」を設定したボタンを押してパブリックストレージ上の pdf がダウンロードできることを確認してください。
うまく動作しない場合は、レシピの手順を確認してください。

IM-LogicDesigner フロールーティングにリクエストを送信する」以外を使用する方法

以下のアクション・エレメントでもファイルのダウンロードができます。

アクション

URLにリクエストを送信する
intra-mart Accel Platform 2021 Summer からファイルのダウンロードが可能になりました。

URL$constant.LD_FLOW_ROUTING を指定してください。
ファイルに保存 にはデフォルトの 自動判別 を指定してください。

ファイルに保存自動判別 を指定した場合、「IM-LogicDesigner フロールーティングにリクエストを送信する」と同様にサーバからのレスポンスが以下のいずれかであると、ファイルをダウンロードできます。

  • Content-Type が octet-stream である
  • Content-Disposition が attachment である

強制的に保存する を指定した場合、常にファイルをダウンロードできます。
強制的に保存しない を指定した場合、常にファイルがダウンロードできません。

ボタンを配置し、クリック時のイベントに作成したアクションを指定してください。

URLに遷移する

URL$constant.LD_FLOW_ROUTING を指定してください。

ボタンを配置し、クリック時のイベントに作成したアクションを指定してください。

エレメント

ハイパーリンク

ハイパーリンクを配置し、href に変数値で $constant.LD_FLOW_ROUTING を指定してください。

フォーム

フォームを配置し、action に変数値で $constant.LD_FLOW_ROUTING を指定してください。

-CookBook
-

執筆者:


comment

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

関連記事

案件一覧「My検索条件」の活用例

このCookbookでは、intra-mart Accel Platform 2019 Springから利用可能な、案件一覧画面にある「My検索条件」機能を活用し、任意の条件別にブックマークを作成する …

SQLビルダを利用したクエリ作成例

この CookBook では、 intra-mart Accel Platform 2020 Spring から利用可能になった、ViewCreator の「SQLビルダ」機能を活用し、既存のクエリ編 …

no image

Payara blog のご紹介

この CookBook では Payara のブログについて紹介したいと思います。 以下の URL で Payara に関する様々な記事が投稿されています。 https://blog.payara.f …

no image

Forma標準アプリとIM-LogicDesignerを利用してBISワークフローを一括申請する方法

このCookBookでは、Forma標準アプリとLogicDesignerを利用して、BISワークフローを一括申請する方法を説明します。 完成イメージ ① グリッドテーブルの各行を、それぞれ案件として …

no image

グリッドテーブルのイメージからワークフローの案件内容を表示するには

このCookbookでは、グリッドテーブルの「イメージ」から申請済みの案件の詳細画面を呼び出す方法を紹介します。 この方法を利用すると別の案件を参照しながら新しく申請を行うことができます。 BISで作 …