こいけるの日記

データサイエンス / データエンジニアリングに興味がある若手SIer社員の日記

【Pega】テーブルの内容をCSV出力するボタン

f:id:zaohgyu:20191110170601p:plain

やりたいこと

画面に表示しているテーブルの内容を、CSV形式で出力するボタンを実装する。

f:id:zaohgyu:20191130155811p:plain

実装方法

Activityの作成

Dev Studio右上の検索窓から、pxConvertResultsToCSVを検索して開く。このActivityは標準で提供されている、PageList のPropertyをCSV形式のファイルに変換するActivityである。

このActivityをこのまま使うことも可能だが、文字コードの違いによりExcelで開くと日本語が文字化けされて表示されるので、下記のようにカスタマイズする。

① pxConvertResultsToCSVをSave asで別名で保存

f:id:zaohgyu:20191201142629p:plain

② Identifierは適当に名前をつけ、Apply Toにボタンを作成するSectionの属するクラスを指定し、Create and openする

f:id:zaohgyu:20191201142832p:plain

③ ステップ5のJavaコード内22行目を以下のように変更

// PRWriter out = new PRWriter(stream, null, false); ←ここを変更
PRWriter out = new PRWriter(stream, "MS932", false); 

④ ActivityをSave

ボタンの作成

① 画面にボタンを配置

f:id:zaohgyu:20191201151958p:plain

② ボタンアクションにOpen URL in Windowを設定

f:id:zaohgyu:20191201152020p:plain

主に設定するのは以下。

  • Use Page : チェックをつける

  • Activity : 先ほど作成したActivityを設定

  • CSVProperties : CSVで各カラムに出力するPropertyをダブルクォーテーションで囲み、カンマ区切りで指定。カンマ前後にスペースは含めない。

  • CSVPropertyTypes : 出力時のカラムフォーマットをダブルクォーテーションで囲み、カンマ区切りで指定。String, Decimal, Double, Date, DateTimeを指定可。カンマ前後にスペースは含めない。

  • PageListProperty : Page ListのPropertyをダブルクォーテーションで囲んで指定。

  • FileName : 出力時のCSVファイル名を指定。空白の場合は”ResultsToCSV”になる。

  • AppendTimeStampToFileName : Trueを指定すると出力時のファイル名にTimeStampが付与される。

  • CSVPropHeaders : 出力時のヘッダーを、カンマ区切りで指定。カンマ前後にスペースは含めない。

③ SubmitしてSave

実装結果

ボタンを押すと、、、 f:id:zaohgyu:20191201154159p:plain

CSVをダウンロードできる。 f:id:zaohgyu:20191201154227p:plain

環境

Pega Platform 8.3.0 Personal Editionで実行。

おわり~