SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

Attributes of ABAP Messaging Channels

ABAPメッセージングチャネル(AMC)には、通信チャネルとして機能し、ABAPプログラムがメッセージを送受信できるようにするための属性が含まれています。

設計時の属性

ABAPメッセージングチャネルは常に、同じエリアに属するさまざまなメッセージングチャネルを指定するためのコンテナを構築するために使用されるAMCアプリケーションに属します。トランザクションSAMCを使用するか、オブジェクトナビゲータ(SE80 )でAMCアプリケーションを登録しますまたは、ABAP開発ツール(ADT)を使用することもできます。AMCアプリケーションはABAPワークベンチで一元的に更新されるため、移送機能を備えた開発オブジェクト(リポジトリオブジェクト)として実現されます。メッセージングチャネルの次の機能は、 SAMCの設計時に作成され、開発オブジェクトの一部として実現されます。

属性

説明

AMCアプリケーションID

名前空間として機能し、開発ランドスケープ全体で一意のAMCアプリケーションの名前。

チャンネルID

同じAMCアプリケーションIDに属する単一のメッセージングチャネルの識別子。これは、プロデューサーエンティティとコンシューマーエンティティの間でメッセージを交換するために使用されます。

チャネル名は常にスラッシュ文字で始まる必要があります(例: / demo_channel)。

メッセージタイプID

専用のメッセージタイプ(現在TEXTBINARYまたはPCP)が各チャネルに割り当てられています。つまり、割り当てられたメッセージタイプのメッセージのみがチャネルを介して転送できます。したがって、アクセスAPIはタイプセーフです。また、ABAPコンパイラとランタイムにより、一貫したメッセージ転送が保証されます。

活動範囲

各メッセージングチャネルには、特定のアクティビティスコープがあります。維持されているスコープ、つまり、、に応じてSystemClientチャネルUserで転送されたメッセージはスコープ領域を離れません。

  • システム:メッセージは、同じABAPシステム内のすべてのユーザーセッションおよびクライアントで実行されているすべてのプログラムによって受信されます。

  • クライアント:メッセージは、システムの送信者プログラムと同じクライアントIDでログオンしているユーザーセッションで実行されているすべてのプログラムによって受信されます。

  • ユーザー:メッセージは、送信者プログラムと同じユーザー名とクライアントIDで実行されているプログラムによってのみ受信されます。

ウイルススキャンID(オプション)

このチャネルを介して転送されたメッセージをスキャンするために使用されるウイルススキャンプロファイル。この属性は、APC WebSocketをバインドし、APCWebSocketをコンシューマーとして使用してメッセージを受信するときに使用されます。

ランタイム属性

アクティビティスコープに加えて、AMCメッセージの生成と消費を特定のプログラムのみに制限するために、チャネル拡張IDAMCフィルターなどの2つのAMC属性を指定できます。これらの属性は、システムクラスCL_AMC_CHANNEL_MANAGERのファクトリメソッドを使用して送信者または受信者オブジェクトを作成するときに指定しますこれらの属性は、AMCアプリケーションの実行時に生成および適用されるため、開発オブジェクトとは見なされません。

チャネル拡張ID

チャネルの識別には、AMCアプリケーションIDおよびチャネルIDを使用する以外に、送信者および/または受信者オブジェクトのパラメーターI_CHANNEL_EXTENSION_IDを設定することにより、オプションのチャネル拡張IDを指定することもできます。チャネル拡張IDを提供する場合、メッセージの送受信を適格なプログラムのみに制限します。

メッセージ交換は、チャネル属性の正確な指定に基づいています。チャネル拡張IDを指定すると、チャネル全体の一部として解釈されます。これは、チャネル<application_id> <channel_id>に送信されたメッセージは、チャネル<application_id><channel_id><channel_extension_id>サブスクライブされているAMCコンシューマーによって受信されないことを意味します

AMCフィルター

AMCフィルターを使用すると、AMCプロデューサーによって発行され、同じメッセージングチャネルを使用してAMCコンシューマーによって受信されるメッセージをフィルター処理できます。

AMCフィルターを使用するには、送信側オブジェクトと受信側オブジェクトの両方にパラメーターI_CHANNEL_FILTERを設定する必要があります。このパラメーターは、名前と値のペアを表すフィルター要素を含む内部テーブルにアクセスします。各テーブルごとに最大10個のフィルター要素を定義できます。テーブルでは、エントリごとに最大1つの名前を使用できます。

名前と値のペアは、次の情報を提供します。

  • フィルタ要素の名前(カテゴリ)。

  • AMCプロデューサーまたはAMCコンシューマーのフィルター要素の値:

    • AMCプロデューサー(送信者オブジェクト)の場合、値は文字列として解釈されます。メッセージは、コンシューマーのフィルター基準が同じカテゴリーの値と一致する場合にのみ配信されます。

    • AMCコンシューマー(レシーバーオブジェクト)の場合、値は正規表現として解釈されます。正規表現は、単純な文字列、選択肢のリスト、または空の文字列にすることができます。受信するメッセージを定義します。

プロデューサーのフィルター値がコンシューマーのフィルター基準に一致する場合にのみ、メッセージが配信されます。

AMCコンシューマーのフィルター値として正規表現を使用する場合は、注意しなければならない特別なルールがいくつかあります。
  • 選択肢のリストを使用する場合は、値のエントリを縦棒で区切る必要があります(例: name = ab | bc)。

  • 選択肢のリストでは、値に空のエントリを含めることはできません(例:name =|bcまたはname=ab |)。

  • AMCコンシューマーにフィルター要素を指定したが、メッセージを受信するプロデューサーがそれぞれのカテゴリーに値を持たないか、フィルターをまったく使用しない場合、プロデューサーが空を指定したかのように処理されます。文字列値。^$したがって、値の先頭でAMCコンシューマーの空の文字列として設定する必要があります(例: name = ^ $ | ab | bc ) 。

    name=ab | ^ $|bcは無効です。

  • 正規表現で使用される一部の文字(。^ $ * +-?()[] {} \ | )には特別な意味があります。したがって、エスケープされている場合にのみ許可されます。つまり、前に円記号(\)を付ける必要があります。文字の前に円記号が付いている場合、通常の意味が失われることに注意してください。たとえば、\ | もう分離の意味はありません。

    次のABAPステートメントを使用して、ABAP文字列lv_strで特殊文字を簡単にエスケープすることができます。

タイトルとURLをコピーしました