ABAPデーモンプログラミングモデルはイベント駆動型であり、ステートフルABAPプッシュチャネル(APC)のプログラミングモデルに類似しています。イベントドリブンとは、ABAPデーモンクラスのインスタンスが、ON_START、ON_MESSAGE、 ON_ERRORなどのさまざまなメソッドを実装することを意味します。
メソッドは、関連するイベントが受信または作成されるとすぐに、ABAPデーモンランタイムによってトリガーされます。以下のメソッドは、イベント処理のためにABAPデーモンによって呼び出されます。
デーモンにメッセージを送信すると、メソッドON_MESSAGEが実行されます。ON_ERRORメソッドは、デーモンメソッドの実行中にエラー(E / A / Xメッセージ)が発生した場合に呼び出されます。これに加えて、ABAPデーモンはデータ交換インタフェースとしてプッシュチャネルプロトコル(PCP)を使用します。
イベント処理の詳細については、ABAPデーモンクラスの実装を参照してください。
一部のABAPステートメントにより、デーモンは到着したイベントの処理をブロックするため、ABAPデーモンは適応された非ブロックプログラミングモードを使用します。このプログラミングモデルでは、これらのブロッキングABAPステートメントのほとんど(SUBMIT、CALL TRANSACTION、WAIT、CALL SCREENなど)はサポートされなくなり、ABAPランタイムエラーABAP_DAEMON_ILLEGAL_STATEMENTが発生します。ABAPキーワード文書ADF-ノンブロッキングモードも参照してください。例外は、同期リモートファンクションコール(sRFC)です。ABAPデーモンは同期RFC (CALL FUNCTION <func> DESTINATION <dest>)の使用が許可されています。