ブログ

2025/02/26
【プリザンター】 第287回)データのインポート/エクスポートをスケジュールで自動実行!

データのインポート・エクスポートを自動化!

こんにちは、シーイーシーカスタマサービスの森山です。

プリザンターにはデータのインポート、エクスポート機能があることをご存知の方は多いと思います。
この機能を使って、例えば取引先から送られてくるデータをインポート、または、全店舗のデータをエクスポートといった作業を、毎日手動で実行するような運用をされていませんか?
データのインポート・エクスポート自体は難しい操作ではありませんが、単純な操作なだけに「自動でできたらいいな」と思われている方も多いのではないでしょうか?

2025年2月12日にリリースされた バージョン1.4.13.0 にて、このデータのインポート・エクスポートがサーバスクリプトでできるようになりました。
サーバスクリプトでできるようになったということは、バックグラウンドサーバスクリプトでもできるということ。つまり、設定したスケジュールで自動的に実行することが可能になりました!
そこで今回は、バックグラウンドサーバスクリプトを使って、設定したスケジュールでデータのエクスポートを実行する方法についてご紹介します。
※バックグラウンドサーバスクリプトは、特権ユーザのみ設定可能です。

バックグラウンドサーバスクリプトでの定期実行

サーバスクリプトでWebサーバ内のファイルとディレクトリの操作を行います。
なお、サーバスクリプトでファイル・ディレクトリの操作を行うとサーバ側の処理負荷が増大することがありますのでご注意ください。

今回は以下のように配置したフォルダに、指定したファイル名でデータをエクスポートします。

■エクスポート先:
C:\fileshare\01_FileExport\test

■出力ファイル名:
ExportTest-エクスポート実行日時分.csv

次に、以下の準備を行います。
今回はバックグラウンドサーバスクリプトを使うので、パラメータ「BackgroundServerScript」についてもご確認ください。

■事前準備:
C:\web\pleasanter\Implem.Pleasanter\App_Data\Parameters\Script.json にて、以下のパラメータを設定 ※パラメータの設定変更後は、WEBサーバの再起動が必要です。
- BackgroundServerScript を true に設定
- DisableServerScriptFile を false に設定
- ServerScriptFilePath にインポート・エクスポートファイルを格納する "基準ディレクトリ" を指定
設定例)"ServerScriptFilePath": "C:\\fileshare"

■「基準ディレクトリ」と「セクション」について:
$ps.fileオブジェクトでは「セクション」という単位でファイルやディレクトリを用途ごとにグループ化して操作します。
Webサーバ内の配置としては基準ディレクトリの直下にセクション名のディレクトリが作成され、そのディレクトリ内にファイルやディレクトが構築されます。
セクション配下にはサブディレクトリを設定することができます。(マニュアル より)

また、下記制限事項がありますのでご注意ください。
・ファイル・ディレクトリに対するアクセス権はWebサーバOSに依存します。プリザンターのアクセス権は使用できません。
・セクション名とディレクトリ名とファイル名に使用できる文字の種類は以下の半角文字です。
- アルファベット(A-Z、a-z)
- 数字(0-9)
- アンダーバー(_)
- ハイフン(-)
- ドット(.)
・基準ディレクトリ(Script.json の ServerScriptFilePath)には、ルートディレクトリの指定(Windowsでは"C:\"や"D:\"、Linuxでは"/")や相対パスの指定はできません。

今回のサンプルでは「C:\fileshare」が基準ディレクトリ「01_FileExport」がセクションとなります。

事前準備が完了したら、テナントの管理 > サーバスクリプト タブへ移動します。新規作成ボタンをクリックし、実行ユーザ、任意のタイトルを設定します。
サーバスクリプトには、下記サンプルコードを記述します。

// ファイル名用に日時分を取得
const now = new Date();
const pad = (num) => String(num).padStart(2, '0');
const day = now.getFullYear() +
pad(now.getMonth() + 1) +
pad(now.getDate()) +
pad(now.getHours()) +
pad(now.getMinutes());

// ファイル名を指定
const filename = 'ExportTest-' + day + '.csv';
// セクション名
const section = '01_FileExport';
// ファイル名
const path = 'test/' + filename;
// エクスポートを実行するサイトID
const siteId = 999;
// エクスポート用パラメータ ※今回は標準のエクスポート設定を使用
const param = {};
// エクスポート実行
const result = $ps.file.export(section, path, siteId, $ps.JSON.stringify(param));

設定が完了したら、実行ユーザの横にある「今すぐ実行」ボタンをクリックしてみましょう。


エクスポート先のフォルダを確認すると、指定したファイル名にてCSVファイルが作成されています。


ファイルを開くと、指定したサイトIDのデータがエクスポートされていることが確認できました。


あとは、適宜スケジュールを設定することで、スケジュールに沿ってエクスポートが実行できます。

まとめ

いかがでしたか?

今回は エクスポート についてご紹介しましたが、もちろん同じようにデータの インポート を設定することも可能です。
効率的な日々の作業の第一歩として、ぜひ一度お試しください。

弊社ではプリザンターをご使用中、または、これからご使用になられる方向けに、運用ノウハウ集、プリザンター逆引き辞典、スタイル・スクリプトサンプル集の販売を行っております。
また、 プリザンターからのExcel帳票出力・PDF帳票出力の支援パック販売 も行っております。
プリザンター導入の支援や、スクリプト開発などの支援も行っておりますので、まずは気軽にご相談ください。
※ご相談の内容によっては有料となる場合がございます。予めご了承ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆

お問い合わせ
PAGE TOP