プリザンター新機能紹介:スクリプト編その1(おまけ)

こんにちは。IISの田口です。
プリザンターに新機能が続々追加!で紹介したプリザンターの新機能について詳しく紹介します。
今回は「JavaScriptからAPIを呼ぶためのメソッドを追加」のおまけ記事です。
とくにスクリプトによるカスタマイズで有用な情報だと思います。

おまけ情報その1:APIKey

私の過去の投稿記事であるプリザンターのAPI連携を試してみた!(実践編)には

2.システム内部でAPI連携する場合、POSTするjsonファイルにはAPIキーを設定しない

マニュアルには「ユーザ毎にAPIキーを発行する必要がある」とありますが、ログインしているシステムのWebサイトと利用するAPIのWebサイトが同一の場合、APIキーを設定しなくても(空文字を設定することで)APIは動作します。 また、設定する場合は必ずログインユーザのAPIキーを設定してください。他人のAPIキーでAPI操作した場合、操作後に別の画面に遷移するとログインユーザが変わってしまいます。

と記載しましたが、実はこのAPIKey周りにも機能改善が加わっており、

  • ログインユーザのアクセス権限でAPI操作を行う場合はAPIKeyの設定は不要。
  • 別のユーザのアクセス権限でAPI操作したい場合はそのユーザのAPIKeyをセットする。
    そうしてもログインユーザが変更しなくなった。

となりました。
今まではAPI操作するために各ユーザに対して不必要にサイトのアクセス権限を付与しているケースもあったかもしれませんが、今回の機能改善により各サイトへのアクセス権限を付与したAPI専用ユーザを設けることで、通常利用するユーザに対して余計なアクセス権限を付与しなくても良くなりました。

おまけ情報その2:$p.set()

インプリム内田社長の投稿記事(※Facebook)の通りですが、非常に有用な情報なので、私も記事にします。

スクリプトでテキストボックスなどの値を変更する場合は$('#Result_ClassA').val('変更後の値');のように値を変えても更新されません。 これはプリザンターのクライアント側の変数である$p.dataにユーザが変更した値のみ格納され、postする仕様だからです。
私の過去の投稿記事では$('#Result_ClassA').val('変更後の値').change();のように無理矢理変更イベントを発火させることで対応していましたが、これが$p.set()を利用することで画面上の値変更と$p.dataへの格納が同時に行うことが出来ます。
上記例ですと$p.set($('#Result_ClassA'), '変更後の値');のような記述になります。
スクリプトによるカスタマイズをする場合は$p.set()を活用しましょう!

おまけ情報その3:$p.ex

まず$pについて説明します。これはプリザンターのクライアント側で定義されている変数(オブジェクト)で、この配下に$p.send()$p.set()$p.apiGet()などの各メソッドが準備されています。
その$pですが、初期宣言時にexというプロパティが宣言されています。

var $p = {
    data: {},
    events: {},
    ex: {}
};

このexプロパティですが、カスタマイズ拡張用として準備されているものです。
このプロパティに対して変数やファンクションを自由に定義することが出来ます。
例えば次のように使うことが出来ます。

$p.ex.msg = 'テストメッセージです!';
$p.ex.showMsg = function() {
  alert($p.ex.msg);
}

$(function(){
    $p.ex.showMsg();
});

変数・ファンクションをあらかじめ定義しておき、それを各イベントで呼び出すような記述が出来ますし、$p.exで統一できるので、ソースが見やすくなるかと思います。

最後に  

IISはプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。