ブログ

2020/07/08
【プリザンター】 第52回)ユーザ選択時にプリザンターに登録された組織名を連動させる方法

前回のお客様からの要望

こんにちは、CCSの徐です。
プリザンターのスクリプトの開発を担当しており、今回初の投稿になります。

本日は、以前お客様より問い合わせのあった内容に対しての回答という形で説明いたします。前回のブログ( 第49回)従業員を選択したら自動で部署を表示するスクリプト)で説明していますが、実際の要望は従業員(ユーザ)を選択したときにプリザンターに登録されている組織名を連動させたいということでした。

プリザンターでは、ログインしているユーザIDは「分類」を使い既定値に[Self]を指定することで、スクリプトを使わずに自動で設定が可能ですが、ログインしているユーザの組織(プリザンターの「ユーザ管理」で登録している組織)は、連動していません。そのため、これをスクリプトで作成します。
このスクリプトにより、プリザンター上で設定されたユーザの組織名を連動させることができます。

→2021/3/9更新
上記で組織はSelfが連動するようになりましたので、スクリプトは書かずに既定値を[[Self]]に指定することで、自分に設定された組織情報を自動で設定することができます。

詳細は次で説明します。

ユーザ選択時に組織名を連動させるスクリプト

今回、記録テーブルに以下のような情報を事前に設定しておくものとします。
・ユーザ(分類A)に既定値を[[Self]]、選択肢に[[Users**]]を設定
・組織名(分類B)の選択肢に[[Depts]]を設定


  1. 対象のテーブルを開きます。
  2. メニューから、「管理」→「テーブルの管理」を開きます。
  3. 「スクリプト」タブを開きます。
  4. 「新規作成」をクリックし、[タイトル]に「組織名連動」などと入力し、以下のスクリプトを記載します。
  5. 「出力先」は、「全て」のチェックを外し、「新規作成」と「編集」にチェックをして、「追加」をクリックします。
  6. 「更新」をクリック後に、新規作成をクリックして動きを確認します。

  ログイン時のユーザで組織が選択され、ユーザを変更すると、それに伴って組織名が変わることを確認できると思います。
<スクリプト>

$p.events.on_editor_load = function () {
getDepName();
}

$(document).on('change', '#Results_ClassA', function () {

getDepName();
});


function getDepName(){

const userId = $("#Results_ClassA").val();

if (userId) {
$p.apiUsersGet({
'data': {
"View": {
"ColumnFilterHash": {
"UserId": JSON.stringify([userId]),
}
}
},
'done': function (data) {
const deptId = data.Response.Data[0].DeptId;
if (deptId !== 0) {
$p.set($('#Results_ClassB'), data.Response.Data[0].DeptId);
} else {
$("#Results_ClassB").val("");
if($("#Message")){
$p.clearMessage();
}
$p.setMessage('#Message', JSON.stringify({
Css: 'alert-warning',
Text: "部署登録されていない"
}));

setTimeout(function () {
$p.clearMessage();
}, 3000)
}
},
'fail': function (err) {
console.log(err);
}
})
}
}

まとめ

さて、いかがでしたか?

今回は、ユーザと組織名の連動方法について説明をしました。
別途組織名のマスタを使用することなく、プリザンターに登録された情報を使えるので便利ですね。

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP