0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Integration Cloudでzipファイルを作成する

Last updated at Posted at 2024-08-27

はじめに

この記事ではOracle Integration Cloud(以下略OIC)でZIPファイルを作成する方法について説明します。

Oracle Integration Cloudについてはこちら
https://www.oracle.com/jp/integration/application-integration/

OIC3についてはこちら
https://docs.oracle.com/ja-jp/iaas/application-integration/index.html

今回作成する統合フローのイメージは以下の通りです。
image.png

事前準備

OICフローの作成

最初にOICフローを作成します。

OICのコンソールから「Create」を押します。
image.png

「Schedule」を押します。
image.png

任意の名前を入力し、「Create」を押します。
image.png

FTP Adapterでファイルサーバからファイル一覧情報を取得

最初にファイルサーバーからファイル一覧のパスなどの情報を取得します。

統合フローの作成画面に遷移したら事前に作成したFTP Adapterを選択します。
image.png

任意の名前を入力し、「Continue」を押します。
image.png

Operationは「List Files」、Input deirectoryは事前にファイルサーバーに用意したディレクトリ、File name patternは用意した圧縮対象のファイルパターン(すべての場合は*)を入力し、「Continue」を押します。
image.png

Summaryではそのまま「Finish」を押します。
image.png

一覧情報をループ

ファイル一覧情報をループして対象のファイルをOICインスタンス内にダウンロードします。

先ほど配置したFTPの定義の下に「For each」のアクションを配置します。
image.png

Repeating elementでは何を繰り返し処理するかを選択します。今回はファイル一覧で取得した情報がFTPで実行したレスポンスに格納されているのでその中のFileをドラッグアンドドロップで配置します。※ここで指定できるのはこのアイコン「image.png」がついているものだけです。
Current element nameは初期値のままにします。ちなみにCurrent element nameはループ中の配列内の一要素が格納されています。拡張for文の要素名のようなものです。

image.png

ファイルをダウンロード

次にループの中で一つ一つのファイルをOICインスタンス内にダウンロードします。

配置した「For each」のなかで、FTPの接続を選択(配置)します。
image.png

Operationは「Download file」を選択、Input directory, File nameはマッピングするので空、※Download directoryは任意の名前を入力します。

※このDownload directoryはFile Serverのディレクトリではなくダウンロードしたファイルを置く場所を指定します。ここで入力した名前でOICに認識されているステージングされた場所にディレクトリが作成され、ファイルがダウンロードされます。ここに置かれたファイルはFTPアダプタではなく、Stage File Actionというアクションで処理することができます。

image.png

「Finish」を押します。
image.png

Input directory, File nameをマッピングします。
配置したFTPアダプタの上にあるMapを「Edit」で編集します。
image.png

以下のようにマッピングします。左側のf0_FileはFor eachの中の一要素が格納されています。要素の中にDirectoryとFilenameがあるのでそれぞれ右側のDownload Requestにマッピングします。「Validate」を押した後、左上の「<」を押して前の画面に戻ります。
image.png

Stage File Actionを使ってダウンロードしたファイルをZIP

次にStageされた場所にダウンロードされたファイルをStage File Actionを使ってZIPします。
Stage File Actionについてはこちらをご確認ください。

フローの一番下に「Stage File」を配置します。
image.png

配置したStage Fileに任意の名前を入力します。
image.png

Select Operationに「Download File」を選択し、以下のように入力します。

シングルクォートで囲ってください。

入力項目 説明
Specify the File Name 'test.zip' zipファイルの名前(任意の名前)
Specify the Directory to zip '/temp' zip対象のディレクトリ(ここで入力したDownload directoryの値)
Specify the Output Directory '/tempzip'     zipファイルの配置先ディレクトリ(任意の名前)

image.png

「Finish」を押します。
image.png

ZIPファイルをファイルサーバに出力

FTP Adapterで作成したZIPファイルをファイルサーバに出力します。

フローの一番下にFTPを配置します。
image.png

配置したFTPに名前を付けます。任意の名前を入力します。
image.png

Select Operationに「Write File」を選択し、以下のように入力します。

入力項目 説明
Transfer Mode Binary 変換モード、今回はZIPファイルなのでBinary
Output directory 任意のパス ファイル出力するファイルサーバーのディレクトリ
File name pattern test-%SEQ%.zip 出力ファイル名

image.png

スキーマの定義は不要なので「No」
image.png

「Finish」を押します。
image.png

先ほど配置したFTPの上にマッピングがあるのでクリックして「Edit」を押します。出力するZIPファイルのディレクトリをマッピングで指定します。
image.png

左側のStage File Actionのレスポンスの中にFile Referenceという項目があるので、右側のFTPのICS Fileの中のFile Referenceにマッピングします。「Validate」→「<」を押して前の画面に戻ります。
image.png

以上でフローの作成が完了しました。出来上がったフローの全体図は以下のようになります。
image.png

ビジネス識別子の設定

スケジュールの統合のお決まり事ですが、右上の(I)マークからBusiness identifierを指定します。startTimeをドラッグアンドドロップでビジネス識別子として指定します。
image.png

右上の「Save」を押して、保存したら一覧画面に戻ります。

アクティベート

それでは作成したアプリケーションをアクティベートして実行してみます。

一覧からActivateのボタンを押します。
image.png

本番ではなくただの検証なのでDebugをチェックして「Activate」を押します。
image.png

Activateが完了するのを待ちます。

実行

Activateができたら実行します。

一覧のメニューから「Run」を押します。
image.png

そのまま「Run」を押します。
image.png

Activity Streamで正常に完了したか確認します。「Processing completed Successfully」と表示されたら正常に処理が終わっています。
image.png

動作確認

最後に出力されたファイルを確認します。FTPサーバーにZIPファイルが出力されていることを確認します。
image.png

FTPクライアントソフトなどを使ってファイルの中身を確認します。
image.png

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?