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

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

関連記事

no image

IM-BloomMaker 複数のプルダウンを連携させる方法

この CookBook では、IM-BloomMaker を使用して、複数のプルダウンを連携させる方法を紹介します。例として都道府県を選択後に、その中に含まれる市区町村がプルダウンから選べるようにしま …

画面アイテム「グリッドテーブル」で全行クリアする方法

このCookBookでは、IM-BISの画面アイテムであるグリッドテーブルで、入力データを全行クリアする方法について紹介します。 「グリッドテーブル」は、jqGridを利用しており、入力されたデータを …

no image

IM-BloomMaker 設計書出力機能の使用方法

この CookBook では intra-mart Accel Platform 2021 Spring から利用可能になった設計書出力機能について紹介します。 なお設計書出力機能を利用するには wa …

no image

IFTTT と連携して LogcDesigner のフローを呼び出す方法

この CookBook では、IFTTT と連携して LogcDesigner のフローを呼び出す方法について紹介しています。 Twitter から「intra-mart」を含むつぶやきを検索し、IM …

IM-LogicDesignerでBoxにファイルをアップロードし、メタデータや共有リンクを作成する方法

このCookBookでは、IM-LogicDesigner での以下のBox連携LDタスクの使い方について紹介しています。 ユーザ切り替えタスク Boxストレージ取得タスク メタデータ作成タスク 共有 …