アプリケーション開発の流れを以下の順序で説明します。
帳票出力アプリケーションの開発
イベント監視アプリケーションの開発
帳票出力アプリケーションは、帳票を出力するユーザアプリケーションです。
帳票出力アプリケーションの開発手順を以下に示します。
アプリ識別子を取得する
アプリ識別子を取得します。
イベントの通知先(イベント監視アプリケーション)を識別するための一意の任意の文字列を指定して、OaJgAsyncGetAplKind関数を呼び出してください。
アプリ識別子については、以下を参照してください。
ドキュメント識別子を割り当てる
同一アプリ識別子内で帳票の出力要求を一意に識別するためのドキュメント識別子を割り当てます。
ドキュメント識別子については、以下を参照してください。
帳票を出力する
1.で取得したアプリ識別子と、2.で割り当てたドキュメント識別子を指定して、帳票を出力します。
prputprtコマンドを使用する場合は、-zオプション以降で-jobkindオプションにアプリ識別子とドキュメント識別子を指定してください。
イベント監視アプリケーションは、List Creatorのコマンドを使用して帳票を出力したときに発生したイベントを取得するユーザアプリケーションです。
イベント監視アプリケーションの開発手順を以下に示します。
アプリ識別子を取得する
アプリ識別子を取得します。
イベントの通知先(イベント監視アプリケーション)を識別するための一意の任意の文字列を指定して、OaJgAsyncGetAplKind関数を呼び出してください。
アプリ識別子については、以下を参照してください。
イベントを待ち合わせる
帳票の出力要求に対する状態が変化したイベントを待ち合わせます。
1.で取得したアプリ識別子と帳票出力サーバ名と待ち合わせモードを指定して、OaJgAsyncWaitEvent関数を呼び出してください。
指定した帳票出力サーバに対する出力要求のうち、指定したアプリ識別子と同一の出力要求のイベントが通知されます。
イベントの待ち合わせモードは、以下の2種類から選択できます。
モード1
出力完了や、保留、削除、エラー発生(紙詰まり、用紙なし)など、帳票の出力要求の状態が変わったときのみ知りたい場合に指定するモードです。
次の状態になったときに、イベントを通知します。
帳票の出力処理が完了したとき
帳票の出力要求が削除されたとき
帳票の出力要求が保留されたとき
帳票の出力要求の保留が解除されたとき
帳票の出力処理でエラーが発生したとき
帳票の出力処理で発生したエラーが解除されたとき
モード2
出力完了や、保留、削除、エラー発生(紙詰まり、用紙なし)など、帳票の出力要求の状態が変わったときに加え、用紙交換通知など、帳票出力業務の運用中にユーザに通知するメッセージの状態が変わったときも知りたい場合に指定するモードです。
次の状態になったときに、イベントを通知します。
帳票の出力処理が完了したとき
帳票の出力要求が削除されたとき
帳票の出力要求が保留されたとき
帳票の出力要求の保留が解除されたとき
帳票の出力処理でエラーが発生したとき
帳票の出力処理で発生したエラーが解除されたとき
ユーザに対処を求めるメッセージを通知したとき
ユーザに対処を求めるメッセージに応答されたとき
なお、OaJgAsyncWaitEvent関数で通知されるイベント情報通知構造体のメモリは、関数内部で獲得されるため、不要になったときに、OaJgAsyncFreeEvent関数を呼び出して解放してください。
イベントに応じた処理をする
イベント情報通知構造体を参照し、イベントに応じて必要な処理を行ってください。
2.でOaJgAsyncWaitEvent関数に通知されるイベント情報通知構造体のメンバ「dwExtKind」に設定されているドキュメント識別子から、どの帳票の出力要求に対するイベントかを識別することができます。
ドキュメント識別子については、以下を参照してください。
イベント情報通知構造体のメモリを解放する
2.のOaJgAsyncWaitEvent関数内部で獲得されたイベント情報通知構造体のメモリを解放します。
2.のOaJgAsyncWaitEvent関数で通知されたイベント情報通知構造体へのアドレスを指定して、OaJgAsyncFreeEvent関数を呼び出してください。
繰り返しイベントを取得する
未取得のイベントや、イベント取得後に発生したイベントを取得したい場合は、2.に戻って、再度イベントを待ち合わせてください。