【増席しました】プリザンター・マニアックス #1【拡張機能を使ってみよう】のご参加枠を増席しました

先日の公開直後に大好評によりすぐに満席となった「プリザンター・マニアックス #1【拡張機能を使ってみよう】」ですが、会場の調整をして増席をいたしました。

席数を4席増やし、12名→16名となっております。

満席なので...と登録を控えていた方、ぜひこの機会にご登録ください。
またイベントサイトのconnpassは満席になっていてもキャンセル待ちでの登録も可能です。参加できるかはまだわからないけれど興味のあるという皆様も、ぜひひとまずご登録ください。

Xamarinハンズオンイベントで当社エンジニアが講師として登壇しました

IISの石崎です。
先日開催されたJapan Xamarin Users Group (JXUG)のイベント「JXUG Xamarin.iOS & Xamarin.Androidハンズオン!」でIISの石崎がAndroidの講師として登壇しました。

JXUG Xamarin.iOS & Xamarin.Androidハンズオン!」とは?
Androidハンズオンの説明部分 Xamarin で実際に Android アプリを作ってみることで、Xamarin に触れてもらうハンズオンを行います。
本ハンズオンを通じて AndroidAPI が Xamarin ではどのようになっているかを確認し、Xamarin への置き換えのコツを学びましょう!

引用元: https://jxug.connpass.com/event/100367/

イベント受付デスクの様子(一部)
f:id:imageinformationsystem:20181105092814j:plain

当日は多くの方が参加され、Xamarinの注目度の高さを実感しました。

IISではXamarinによるモバイルアプリ開発に力を入れています。Xamarinに関心のある方、ぜひ一度IISへ遊びに来てください。
また、IISでは社員の登壇など技術コミュニティへの貢献を推奨しています。IIS主催のイベントも多数行っていますので是非遊びに来てください。

IIS金曜もくもく会 #1 を開催します。

再来週の金曜日、2018年11月16日(金)に勉強会「IIS金曜もくもく会 #1」を開催します。

IIS金曜もくもく会

IISを会場にしたフリーテーマのプログラミングもくもく勉強会です。

主催メンバーは主に.NETやモバイルアプリを勉強する予定ですが、そのようなテーマをお持ちいただいてもOKです。

  • これからプログラムを学びたい未経験者。
  • プログラミングに関心がある/勉強したい方。
  • プログラミング関連の作業場所を求めている方。

ぜひご参加をご検討ください。

プリザンター・マニアックス #1【拡張機能を使ってみよう】を開催します。

再来週の金曜日、2018年11月16日(金)に勉強会「プリザンター・マニアックス #1【拡張機能を使ってみよう】」を開催します。

プリザンター・マニアックス

プリザンターをお使いの方に、もう一歩深く使い方を学ぶ勉強会です!

  • 色々使っている中で標準機能ではうまくいかず、壁に当たっている方。
  • プリザンターについて分からないところがある方。

を対象としたこれまでにない勉強会シリーズになります。
当社のプリザンター印刷ソリューション「Report Create for プリザンター」の話もします。

ぜひご参加をご検討ください。

定員について

現時点で参加枠が満席となっていますが、もう少し枠の拡大を予定しています。補欠でも登録を検討してみてください。

プリザンター新機能紹介:スクリプト編その2

こんにちは。IISの田口です。
プリザンターに新機能が続々追加!で紹介したプリザンターの新機能について詳しく紹介します。
今回は「Javascriptによるイベントハンドラ追加」について紹介します。

Javascriptによるイベントハンドラ追加

画面上の「分類Aのプルダウンを変更したら○○の処理をしたい」のような変更後イベントは

$(docment).on('change', '#Results_ClassA', function(){
  // 処理
});

のように記述することで実現出来ます。
ですが、「更新後に別テーブルのフラグを更新したい」「新規登録前に独自のバリデーションを追加したい」など、プリザンターの基本機能についてさらにイベント追加したいケースはどうやって追加すれば良いでしょうか?
ボタンクリックイベントは製品側で設定済みですので、うまく実装しないと設定済み処理が消えてしまうかもしれません。
実は私、JavascriptJQuery)に詳しくないので、上記の要件に対応できずにとても困っていました・・・

でも、今回の新機能で一気に解決できます!

イベントハンドラのメソッドが追加!

新規等として以下6つのメソッドが追加されています。
各ボタンや処理内で定義している「data_action」に対してそれぞれのタイミングで動きます。

  1. 検証前     :$p.events.before_validate_XXXXXX
  2. 検証後     :$p.events.after_validate_XXXXXX
  3. 送信前     :$p.events.before_send_XXXXXX
  4. 送信後     :$p.events.after_send_XXXXXX
  5. レスポンス適用前:$p.events.before_set_XXXXXX
  6. レスポンス適用後:$p.events.after_set_XXXXXX

XXXXXXのところにdata-action属性の値(またはid属性の値)を記述します。

サンプルソースになります。
編集画面の「更新」ボタンクリック時の各タイミングでダイアログを表示する処理を追加することが出来ます。

// 検証前
$p.events.before_validate_Update = function (args) {
    alert('before_validate');
}

// 検証後
$p.events.after_validate_Update = function (args) {
    alert('after_validate');
}

// 送信前
$p.events.before_send_Update = function (args) {
    alert('before_send');
}

// 送信後
$p.events.after_send_Update = function (args) {
    alert('after_send');
}

// レスポンス適用前
$p.events.before_set_Update = function (args) {
    alert('before_set');
}

// レスポンス適用後
$p.events.after_set_Update = function (args) {
    alert('after_set');
}

少し解説

検証前、検証後とは、登録更新時に必須入力チェックなどのバリデーションを行っていますが、その前後のタイミングとなります。
送信前、送信後とは、バリデーションOKでサーバに登録更新内容を送信する前後のタイミングとなります。
レスポンス適用前、レスポンス適用後とは、サーバ送信に内容送信後、正常終了の戻り値で画面内容を更新する前後のタイミングとなります。

これらのメソッドを用いることで

  • 独自バリデーションの追加
  • 更新後に別テーブルの項目の更新や新規レコード追加

などの処理が追加できます。

注意点

送信後およびレスポンス適用後の2つのイベントは、サーバ送信が非同期通信であること、また更新後に別画面に遷移するケースもあるため、場合によっては処理順序が不定になり、処理されない可能性がありますので、実装する際はテストや実環境でのトライアルを重点的に行ってください。

めちゃめちゃ汎用的です!

1番のポイントになりますが、今回の新機能は「data-action」に対してイベントを追加するメソッドになります。
これのどこが汎用的かというと、「data-action」であればどの要素であっても有効であることです。
実はdata-action属性はボタンにだけでなく、他の画面要素にも設定されているケースがあります。
例えば

  • カレンダーやカンバンの表示画面
  • レコードの変更履歴画面

あたりにもdata-action属性がセットされていますので、カンバンやカレンダーでドラッグ&ドロップでレコードを移動した後や、変更履歴画面を表示した後などにも処理を追加することが出来ます。

最後に  

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

IT勉強会の会場としてミーティングルームを提供しています

IISではIT勉強会の会場としてミーティングルームを提供しています。

f:id:imageinformationsystem:20181005200217j:plain

  • 人数
    標準スタイルで16名、最大20名
    テーブルを置かず椅子だけの場合は最大36名
  • アクセス
    御茶ノ水徒歩7分, 水道橋駅 徒歩7分, 神保町駅 徒歩9分
  • 飲食
    飲食可。ごみはお持ち帰りください。懇親会開催可(要相談)。
  • 時間
    IISの業務時間外
  • 機材
    電源、Wi-Fi、プロジェクタ

connpassのIIS主催のイベントへのお問い合わせからご連絡ください

社内の有志での対応となります。興味のある社内メンバーがいて参加可能な場合とさせていただきます。
勉強会、ハッカソン、交流会などにご利用ください。

プリザンター新機能紹介:スクリプト編その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はプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。