メッセージ表示、または、自動で画面を再読み込み
今回ご紹介する、サーバスクリプト終了後に追加する処理は次の2つです。
1:画面下部に任意のメッセージを表示
2:自動で画面の再読み込みを実施
それでは実装方法についてご紹介します。
使用するサイトは、一覧画面にボタンを設置し、設置したボタンをクリックするとサーバスクリプトが実行される設定とします。
ボタンの設置方法、サーバスクリプトにて指定する条件については、【 こちらの記事 】をご確認ください。
使用するサーバスクリプトのコードは以下となります。
const SiteId = 12345;
// 関数:フィルタしたレコードを対象に更新
function updateItems(results, data) {
for (let item of results) {
items.Update(item.ResultId, JSON.stringify(data));
}
}
try {
// 一覧画面に設置した「実行」ボタンが押された時の処理
if (context.ControlId === 'button-exe') {
// フィルタ条件:状況が「未着手」
const data1 = {
View: {
ColumnFilterHash: {
Status: 100
}
}
};
// 設定内容:分類Aに任意の文字
const data2 = {
ClassHash: {
ClassA: '任意の文字'
}
};
// フィルタ条件に一致するレコードを取得
let results = items.Get(SiteId, JSON.stringify(data1));
// 関数を実行
updateItems(results, data2);
// 1:処理終了後、メッセージを表示
context.AddResponse('Message','#Message',JSON.stringify({
Css: 'alert-success',
Text: '処理が正常に終了しました。画面を再読み込みしてください。'
}));
// 2:処理終了後、ページをリダイレクト
//context.AddResponse('Href', '', `/items/${SiteId}/index`);
}
} catch (e) {
context.Log(e.stack);
}
スクリプトにて、一覧画面に設置した「実行」ボタンをクリックすると分類Aの表示は変わりませんが、画面下部に設定したメッセージが表示されます。
手動にて画面を再読み込みすることで、対象データの分類Aが更新されていることが確認できます。
2つ目の「自動再読み込み」を確認します。
35~38行目をコメントアウトし、41行目のコメント記号を削除します。
メッセージ表示と同じように一覧画面の「実行」ボタンクリックすると、処理完了後に自動で画面が再読み込みされ、対象データの分類Aが更新されていることが確認できます。
用途に応じてお使いください!
まとめ
いかがでしたか?
今回ご紹介した方法をお使いいただく事で、サーバスクリプトの処理終了が明確になります。
ただし、条件の指定によっては「自動再読み込み」を延々と繰り返してしまう恐れがありますので、ご注意ください。
弊社ではプリザンターをご使用中、または、これからご使用になられる方向けに、運用ノウハウ集、プリザンター逆引き辞典、スタイル・スクリプトサンプル集の販売を行っております。
また、 プリザンターからのExcel帳票出力・PDF帳票出力の支援パック販売 も行っております。
プリザンター導入の支援や、スクリプト開発などの支援も行っておりますので、まずは気軽にご相談ください。
※ご相談の内容によっては有料となる場合がございます。予めご了承ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆
サーバスクリプトの処理が終わったら
こんにちは、シーイーシーカスタマサービスの森山です。
プリザンターのサーバスクリプトを使うと、一覧画面でデータの書き換えを行うことができます。
しかし、処理が終了しても画面を再読み込みするまで書き換えられたデータは反映されません。
そこで今回は、「context.AddResponse」を使ってサーバスクリプト終了後に処理を追加する、2つの方法をご紹介したいと思います。