こんにちは。
リーデックス小川です。
さて、今回は以前ご紹介した「拡張性UP!プリザンターのサーバスクリプトでサーバ上のディレクトリやファイルにアクセスする方法」でご紹介しましたが、その実践編として、ParametersフォルダやExtendedScriptsフォルダのファイルの中身をプリザンターで表示する方法について紹介します。
Linux側でもひと手間かかりますが、いろいろと応用が考えられますので、ぜひご参照ください。
サーバスクリプトでサーバ上のディレクトリやファイルの操作を行うには?
サーバスクリプトで、サーバ上のディレクトリやファイルの操作を行うためには、$ps.fileオブジェクトを利用します。
詳細は以前ご紹介した記事をご参照ください。
また、パラメータファイルには下記の設定を行っていることを想定しています。
ServerScriptFilePathは適宜読み替えてください。
"DisableServerScriptFile":false, "ServerScriptFilePath":"/web/files"
なお、パラメータファイルについては過去のブログ記事「プリザンターのパラメータを設定するには?」でご紹介しています。
シンボリックリンクを設定する
それでは、ParametersファイルやExtendedScriptsの中身をプリザンターで表示する設定を行っていきましょう。
プリザンターを公式マニュアル通りに「/web/pleasanter/」にインストールした環境で設定しましたので、別の環境にインストールした場合は適宜読み替えてください。
まずは、$ps.fileオブジェクト/web/filesにセクションとしてアクセスできるよう、シンボリックリンクを設定します。
# cd /web/files
# sudo ln -s /web/pleasanter/Implem.Pleasanter/App_Data/Parameters # sudo ln -s /web/pleasanter/Implem.Pleasanter/App_Data/Parameters/ExtendedScripts/ # ls -l lrwxrwxrwx 1 XXXX XXXX 70 Jan 19 17:23 ExtendedScripts -> /web/pleasanter/Implem.Pleasanter/App_Data/Parameters/ExtendedScripts/ lrwxrwxrwx 1 XXXX XXXX 53 Jan 19 15:50 Parameters -> /web/pleasanter/Implem.Pleasanter/App_Data/Parameters
テーブルとレコードを作成する
次に、表示用テーブル作成を作成します。任意の場所にテーブルを作成し、ParametersフォルダとExtendedScriptsフォルダのファイル表示用のレコードを2行作成してください。レコードのIDは後ほどサーバスクリプトで設定します。

サーバスクリプトを設定する
最後に、サーバスクリプトを設定します。
下記の18282はParameters用のレコードID、18296はExtendedScripts用のレコードIDに置き換えてください。定数として設定できるように修正すると利便性が向上しますので、余裕のある方は修正してみてください。
if (context.Action == "edit"){ if (context.Id==18282 || context.Id==18296) { let selector; let extension; if (context.Id==18282) { selector = "Parameters"; extension = ".json"; } if (context.Id==18296) { selector = "ExtendedScripts"; extension = ".js"; } let lists = $ps.file.getFileList(selector, ''); let list="" for (const element of lists) { if (typeof element === 'string' && element.endsWith(extension)){ list += "-------------------------\n"; list += element + "\n"; list += "-------------------------\n"; let text = $ps.file.readAllText(selector, element, encode=null); list += text + "\n\n"; } } model.Body = list; } }
編集画面で確認する
設定した内容が表示されるかを確認してみます。先ほどのテーブルの編集画面を開くと、内容にParametersファイルやExtendedScriptsファイルの中身が表示されています。

設定時の注意
表示内容がサーバの設定にかかわる内容のため、セキュリティーには十分注意してください。
本番環境で設定することはおすすめしませんので、開発環境での確認やファイルにアクセスするサンプルとしての設定に留めることをおすすめしますが、本番環境で使いたい場合はプリザンターの権限の設定には十分に配慮するようお願いします。
まとめ
今回は、ParametersファイルやExtendedScriptsファイルの中身をプリザンターで表示するスクリプトについて紹介しました。
今回の応用として、ほかのフォルダの中身やファイルの書き換えなど、さまざまな利用方法が考えられますので、セキュリティーなどを十分考慮した上で、いろいろと設定を試してみてください。
弊社では、プリザンターの認定トレーナーとしてトレーニングを実施しています。プリザンターの基礎から応用まで幅広いラインナップを取り揃えていますので、プリザンター初心者はもちろんのこと、効率よくスキルアップしたい方にもオススメです!詳しくはこちらにありますので、気になった方はぜひご覧ください。
また、スクリプトやスタイルを利用したカスタマイズについてご支援させていただいております。スクリプトについて相談したい、業務を改善のために実現したい機能がある、や、本記事や過去の記事のスクリプトを応用したい、などありましたら、お気軽にお問合せください。
それでは、今回はこの辺で。
最後までご覧いただき、ありがとうございました。