ブログ

2019/11/11
【プリザンター】 第20回)独自の管理番号を採番する方法

テーブルごとのID採番

こんにちは、CCS田中です。

 プリザンターに使い慣れてくるとテーブルごとに番号管理をしたくなると思います。ただ、プリザンターではIDがプリザンター全体で採番されているため、IDを管理番号などに使おうとした場合には番号が飛び飛びになってしまい管理しづらくなってしまいます。
 やはり、テーブル内で通し番号的に採番したいと思うでしょう。その場合はスクリプトを使うことで解決ができます。次に紹介する方法で実装できますので、ぜひ試してみてください。

IDをテーブルごとに採番するスクリプト

テーブルごとにIDや管理番号を採番するには、スクリプトを書く必要があります。「スクリプトなんてわからない」という人でも「人の書いたスクリプトを写す、または少し書き換えることくらいならできる」という人であれば以下は対応できると思います。
「スクリプトは敷居が高くて対応できない」という方は、当社にご相談ください。

今回単に番号だけの採番ではなく、管理番号の頭に”CS”(←カスタマサービスの略)として、その後に数字6桁となる管理番号を運用するものとして進めます。
新規作成した場合に、1ずつ数字部分が増えていく管理番号にします。(CS000001、CS000002、・・・・という感じです)
この管理番号は重複禁止とします。新規作成で開いた時に取得してくるため、新規作成から作成までの間に別の人が新規作成を行った場合は、番号が重複する可能性があるため、重複しないような制御をプリザンター側にも入れています。重複した場合はエラーになるので、「再取得」ボタンで再度取得できるようにしています。
それと、管理番号はプリザンターのテーブルの項目としては「タイトル」を使っており、それを前提としたスクリプトになっていますので、他の項目を使う場合は注意ください。

サンプルスクリプトは以下になります。

 



$p.ex.execRecreate = function(){
	var siteId = '11127';// サンプルサイトのサイトID
	var apiKey = '';
	$p.apiGet({
		'id': siteId,
		'data': {
			'ApiKey': apiKey,
			'Offset': 0,
			'View': {
				'ColumnSorterHash': {
					'Title': 'desc'
				}
			}
		},
		'done': function(data) {
//			alert(JSON.stringify(data));
			var latestOrderNumber = data.Response.Data[0].Title;
			var latestNumberList = latestOrderNumber.match(/^CS(\d{6})$/);
			if(latestNumberList != null){
				var latestNumber = Number(latestNumberList[1]);// 数字部分だけを抽出
				latestNumber++;// インクリメント
				var newOrderNumber = 'CS' + ('000000' + latestNumber).slice(-6);// 新しい管理番号の作成
				$p.set($('#Results_Title'), newOrderNumber);
			} else {
				alert('管理番号[' + latestOrderNumber + ']が不正のため自動採番できませんでした。');
			}
		},
		'fail': function() {
			alert('管理番号自動採番処理に失敗しました');
		},
		'always': function() {
		}
	});
}

$p.events.on_editor_load = function(){
	$p.ex.execRecreate();

	// 管理番号を取りなおすボタンの追加
	$('#Results_Title').parent().css('display','inline-flex')
	$('#Results_Title').after($('<button onclick="$p.ex.execRecreate();" style="float: left; white-space: nowrap;">再取得</button>').button({icon: 'ui-icon-arrowrefresh-1-w'}));

}


2行目の siteIdの’11127’部分は、実際に使用されているプリザンターで、管理番号を採番するテーブルのIDを記載してください。テーブルの管理から、サイトIDは確認できると思います。
17行目の「data.Response.Data[0].Title」のTitleのところが、「タイトル」を使用している設定です。ここが他の項目を設定した場合は変わります。
39行目以降は、上記で説明した「再取得」のボタンの配置と、動作の記載です。

まとめ

さて、いかがでしたか?

今回はテーブルごとに管理番号を採番するスクリプトの作成方法を説明しました。スクリプトは少し敷居が高いと思いますが、今回ご紹介した内容などは少しでもプログラミングの経験がある方であれば、ゼロから作るのは難しくても、サンプルをベースに改修はできると思いますので、ぜひチャレンジしてみてはいかがでしょうか?もっと便利にプリザンターを使えるようになるかもしれません。

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

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

お問い合わせ
PAGE TOP