【Magic xpa 連載最新号のご案内】 2025年7月14日
Magic xpa 開発者ユーザの皆様へ
【1】 Magic xpa 連載のご案内
------------------------------------------------
本日、Magic xpa の連載、「Magic xpa で作るイベントドリブン型プログラム」の第208回目「コンテキストIDを伝票番号にする」を連載コーナーにアップいたしました。
https://www.tandacomp.com/ホーム/magic-連載コーナー
伝票入力のプログラムにおいて、受注書番号や請求書番号をどのように採番するのが最適かという問題は、Magicに限らず、どのような言語を用いたとしても永遠のテーマとなり得ます。
よく用いられる手法としては、伝票番号管理テーブルを作成し、そこからバッチ処理で伝票ごとに新しい番号を取得するという方法がありますが、複数の端末が同時に採番処理に入ったときの排他制御なり、あるいは入力取り消しで飛び番号が発生したときの処理なりが厄介であるとも言えます。
また、日付・時刻+端末番号といった処理を行うこともありますが、端末番号の管理が必要となり、なかなかこれといった決め手が得られないのが伝票番号の取り扱いでもあります。
そこで今回は、Magicが持つユニークなIDの発行機能を用いた手法でこれを実装する方法を解説いたします。
本来この機能は、MagicのWebアプリにおいてセッション管理用に用意された機能なのですが、その後、オンラインタスクでも使用できるようになった経緯があり、今回はあらためてその使用法を解説してまいりたいと思います。
たとえば、次のような伝票入力画面があったとします。現在、フォーカスは「伝票番号」のコントロールにあります(画面1)。
※「明細入力領域」の部分は、プログラムを簡素化するために省略してあります。

画面1 伝票番号入力画面の例
今回のテーマは、この入力画面を開いたときに、ユニークな伝票番号をMagicの機能だけを用いて一発で取得するという方法です。番号用の制御テーブルも使用しませんし、端末番号やSQLのシーケンシャル番号も使用しません。至って単純に、ユニークな番号を発生させる方法を解説します(以降、本編に続く)。
目次
1. 伝票番号入力画面の一例
2. セッションごとにユニークなID
3. タスクのデータビューとロジック
4. キャンセルと登録ボタンのイベント
5. ユニークな番号の取得
6. ID取得関数のヘルプを参照
7. とりあえずプログラムの実行
8. 果たしてプログラムはこれで完成?
9. キャビネットのメニューから実行
10. 答えはセッション管理にあり
11. クラサバでセッション管理を行う
12. キャビネットから再び実行
13. ただしここで1つ問題が
14. 複数の起動を回避するには
15. F4キーとPageDownキーを無効に
次回は、「トランザクション超入門」をお送りします。
購読期間中は現在掲載中の過去記事をすべて読むことができます。
皆様のお越しをお待ちいたしております。
サインインしてコメントを残してください。
コメント
0件のコメント