レポートファイルの出力時に自動でバックアップを作成する 

250‐01 ファイル操作| 活用編

ここでは、販売明細書をレポートファイルとしてPDF出力を行う際に過去の出力済み販売明細書をバックアップを同時に保管する処理の作成方法を解説します。
レポート出力時にバックアップを自動作成することで、販売明細書は常に所定のフォルダに出力されるとともに過去の販売明細書ファイルも一ヵ所に蓄積されるようになるため、誤って古いファイルを削除してしまったり最新版がどれなのか分からなくなってしまったりという問題を防ぐことが可能になります。
この演習は、下記の前提に基づいて構成されています。

  • 出力用の販売明細データは構成済み
  • 任意のタイミングでボタン押下により販売明細書を出力
  • サーバーサイドコマンドを用いてPDFのエクスポートを実行
  • いつも同じフォルダに販売明細書のPDFファイルが自動出力される
  • 販売明細書が既定のフォルダに存在する場合のみバックアップを作成(存在しない場合は出力処理のみが実行される)
プロジェクトファイルF250-01_report-backup_b.fgcp
F250-01_report-backup_a.fgcp(実装済みプロジェクトファイル)

プラグインをインストールする

ファイル操作コマンドを使用するには、Forguncyにプラグインをインストールする必要があります。プラグインのインストール方法については、オンラインヘルプを参照してください。 

今回ご紹介するファイルの名前変更処理では、「ファイル操作コマンド(OperateFiles)」のインストールが必要となります。 

サーバーサイドコマンドの作成 

プロジェクトを開き、ナビゲーションウィンドウ内のサーバーサイドコマンドから「販売明細書のエクスポート」を開きます。

パラメータータブを開き、定義済みのパラメーターの確認を行います。 
パラメーター「出力フォルダパス」はレポートファイルを出力するフォルダのパスを、「出力ファイル名」には出力されるレポートファイルの名称を格納するのに使用します。
これらは画面上のボタンを押下した際に、画面に入力されているそれぞれの値が格納されます(詳細は結果確認用ページの確認の項で解説します)。

コマンドタブを開きます。
あらかじめ「レポートのエクスポート」コマンドが実装されていますが、エクスポート処理より前に既存のレポートをバックアップとして保管するためのコマンドを追加していきます。 

レポートのエクスポートコマンドより上に「フォルダー上のファイル取得」コマンドを追加します。 
このコマンドを使用すると、指定したフォルダ内に存在するファイルの名称を配列の形で取得できます。 
バックアップファイルの作成は、指定のフォルダに既に同名のレポートファイルが存在する場合のみ実行します。そのため、まずはこのコマンドを使用してレポートファイルの存在チェックを行います。 
走査対象のフォルダ指定と、取得したファイルの名称を保管するためのパラメーターを以下のように設定します。 

  • 「フォルダーのパス」欄に作成済みパラメーター「=出力フォルダパス」と入力 
  • 「結果を保存するパラメーター名」欄に新しいパラメーター「pFile」と入力 

「繰り返し」コマンドを追加します。
バックアップの必要性の有無は「指定のフォルダ内にあるファイルのフルパス」と「エクスポートされるレポートファイルのフルパス」が一致するかを調べることで判定します。
そのためまずは先のコマンドの「pFile」内に保管されている値の個数の分だけ繰り返し処理が行われるよう以下の設定を行います。 

  • 「繰り返し回数、または繰り返し配列」欄に前のコマンドで作成したパラメーター「=pFile」と入力 

「条件分岐」コマンドを配置します。
取得したファイルのフルパスがエクスポートするレポートファイルのフルパスと一致した時のみバックアップ処理を行うよう、以下の条件指定を行います。 

  • 「変数」欄に繰り返しコマンドで繰り返し配列オブジェクト名に指定されている「=Item」と入力 
  • 「条件」に「=(等しい)」を選択 
  • 「値」欄にクスポートするレポートファイルのフルパスとなる「=出力フォルダパス&”\”&出力ファイル名&”.pdf”」と入力 

バックアップ処理の定義を行います。
既存のレポートファイルの名前を変更するため、「変数の設定」コマンドを追加します。 
ここではバックアップとなるファイルの名称の生成を行います。 

今回、バックアップファイルの名称は「(既定の名称)_yyyymmdd.pdf」の形にして、いつ生成されたバックアップファイルであるかが一目でわかる名前になるように設定します。 

  • バックアップファイルの名称を保持する「変数名」欄に「bkFile」と入力 
  • 「変数値」で「値、または数式」を選択し 「=出力ファイル名&”_”&TEXT(TODAY(),”yyyymmdd”)&”.pdf”」と入力 

発見された既存のレポートファイルの名称を、作成した変数「bkFile」に格納したものに変更するため「ファイル名の変更」コマンドを追加します。 
変更前と変更後のファイル名は以下のように設定します。 

  • 「ファイルのパス」欄に既存ファイルのフルパス「=出力フォルダパス&”\”&出力ファイル名&”.pdf”」と入力 
  • 「新しいファイル名」欄に「=bkFile」と入力 

バックアップのファイルはバックアップ用フォルダ「bk」の中に移動するよう、「ファイルの移動」コマンドを追加します。
フォルダ「bk」はサーバーサイドコマンドのパラメーター「出力フォルダパス」の直下にあることを想定しています。
また、コマンドが作動した段階でこちらに「bk」フォルダが存在しない場合は自動で生成されます。 

  • 「ファイルのパス」欄にバックアップファイルのフルパス「=出力フォルダパス&”\”&bkFile」と入力 
  • 「出力先フォルダーパス」欄に「=出力フォルダパス&”\bk”」と入力 

サーバーサイドコマンドの実装確認 

「レポート出力」ページを開き、「PDF出力」ボタンを選択した状態で画面右側の「コマンド」ハイパーリンクをクリックします。

「販売明細書のエクスポート」コマンドが設定されていること、以下のようにパラメーターが設定されていることを確認します。  

  • 「出力フォルダパス」の値にページ上で「c:\fgc\export」と入力されている「=H2」セルが指定されている 
  • 「出力ファイル名」の値にページ上で「販売明細書」と入力されている「=H3」セルが指定されている  

結果確認用のページの確認

「レポート出力」ページを開きます。
ページにはレポートファイルを出力するフォルダパス「c:\fgc\export」が入力されているテキストボックスと、出力されるレポートのファイル名となる「販売明細書」が入力されているテキストボックス、そしてコマンドが設定済みの「PDF出力」ボタンが配置されています。 

結果を確認

プロジェクトをデバッグ実行し動作を確認します。  
「c:\fgc\export」フォルダの中が空であることを確認後、「PDF出力」ボタンを押下します。一回目にボタンを押下した際は、「販売明細書.pdf」が生成されます。 

この状態でもう一度「PDF出力」ボタンを押下すると、「販売明細書.pdf」の他に「c:\fgc\export\bk」フォルダが生成され、その中に「販売明細書_yyyymmdd(ボタンを押下した年月日).pdf」ファイルが配置されていることを確認できます。 

>ノーコードWebアプリ開発ツール「Forguncy」

ノーコードWebアプリ開発ツール「Forguncy」

Forguncy(フォーガンシー)は複数のシステムと直接接続して参照・更新が行えるデータ管理機能と、Excel感覚でレイアウトができる画面デザイン機能を備えたノーコードWeb開発&運用プラットフォームです。基幹システムでは対応できず、仕方なくExcelやAccessで管理していた業務のサブシステム化を強力に支援します。

CTR IMG