ユーザー出口とカスタマー出口の違い SAP

⚡ スマートサマリー

ユーザー出口と顧客出口 SAP ABAPは、標準プログラムを変更せずにカスタム機能を追加する拡張フックです。 SAP コード。このページでは、カスタマー出口の種類、具体的な例、SMOD および CMOD トランザクション、ユーザー出口、そしてこれら 2 つの手法の違いについて説明します。

  • 🪝 コア定義: 顧客出口は、 SAP 顧客が独自のロジックを組み込む、標準プログラム、画面、またはメニューの内部。
  • 🧩 3種類の出口タイプ: 関数モジュールの終了処理はコードを追加し、画面の終了処理はサブスクリーンを介してフィールドを追加し、メニューの終了処理はプルダウンメニューに項目を追加します。
  • 🔍 出口の位置を確認する: トランザクションSMODは利用可能な出口の一覧を表示し、SE81はアプリケーション領域ごとにそれらを参照します。
  • 🛠️ 実装: CMODでプロジェクトを作成し、出口ルーチンを割り当て、コードを記述し、プロジェクトをアクティブ化する。
  • 📦 ユーザー出口: ユーザー出口も同様の目的を果たすが、SDモジュールにのみ存在し、MV45AFZZが最もよく知られた例である。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ 技法の選択: ユーザー出口はSDサブルーチンであり、カスタマー出口はモジュール間互換性とアップグレード安全性を備えており、BAdIは両者の後継となるオブジェクト指向のものです。

ユーザー出口と顧客出口 SAP

顧客離脱とは何ですか?

顧客の出口は、 「フック」 により提供さ SAP 多くの標準的なプログラム、画面、メニューの中で、顧客は "下がる" ビジネス要件を満たすためのカスタム機能。これについては後ほど詳しく説明します…

主な利点は、標準が SAP オブジェクトは変更されません。カスタムコードは予約済みのインクルードまたはサブスクリーン内にあります。 SAP 適切なタイミングで呼び出しを行うため、機能強化はシステムアップグレード後も上書きされずに残ります。このため、出口は、 SAP 機能強化技術と最新のビジネスアドインを組み合わせたもの。

顧客出口の種類

顧客の離脱には主に XNUMX つのタイプがあります。

  1. 汎用モジュール出口
  2. 画面終了
  3. メニュー終了

機能モジュールの終了:これにより、顧客は関数モジュールを介して特定の場所にコードを追加できます。 SAP アプリケーションプログラム

Syntax: CALL CUSTOMER-FUNCTION '004'

画面終了: 顧客が画面にフィールドを追加できるようにします SAP プログラム サブ画面経由で。 サブ画面は、標準画面のフロー ロジック内で呼び出されます。

Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2

メニュー終了: 顧客が標準的なプルダウンメニューにアイテムを追加できるようにする SAP プログラム。これらの項目は、アドオン プログラムまたはカスタム スクリーンを呼び出すために使用できます。

Format: +CUS ( additional item in GUI status )

顧客離脱の例

画面終了の例:

トランザクション CAT2 - タイムシート入力では、HR は、故意に不正確なデータを送信すると解雇の理由になるという対話型の確認を含めることを希望しています。

顧客離脱の例

メニュー終了の例:

開発チームは、トランザクション SE38 – ABAP エディタに、使いやすさを考慮してトランザクション SE80 – オブジェクト ナビゲータへのメニュー リンクを含めたいと考えています。

BEFORE

顧客離脱の例

AFTER

顧客離脱の例

汎用モジュール出口の例:

会社は、ベンダー作成時にベンダーの銀行口座情報を必須イベントにしたいと考えています。そのため、「銀行口座情報を入力してください」というエラーメッセージを表示する必要があります。

BEFORE

顧客離脱の例

AFTER

顧客離脱の例

顧客出口の特定

トランザクション中 SMOD 詳細を見てみましょう

顧客出口の特定

または取引中 SE81 適切なアプリケーション領域を使用できます

顧客出口の特定

顧客出口の作成

顧客Exitを作成するには、まずトランザクションでプロジェクトを作成する必要があります CMOD

顧客出口の作成

Later Customer Exit をプロジェクトに割り当てます。

出口を見つけてから暗証番号を有効化するまでの手順は短く、常に同じ6つのステップに従います。

  1. 機能強化を見つける: SMODで拡張機能名を探します。たとえば、コンポーネントEXIT_SAP仕入先マスタのMF02K_001。
  2. プロジェクトを作成する: CMODで、ZまたはYで始まるプロジェクト名を入力し、「作成」を選択します。
  3. 機能強化を割り当てる: 拡張機能割り当て画面で、出口を含む拡張機能名を追加します。
  4. コードを書きます: 関数モジュール exit を開き、ZX で始まる予約済みの include の中にコードを記述します。
  5. 画面とメニューの各部分を処理する: 画面終了の場合は、CUSTSCR サブスクリーンを作成し、メニュー終了の場合は、GUI ステータスに +CUS 機能コードを入力します。
  6. プロジェクトを有効化する: CMODでプロジェクトをアクティブ化して、実行時に終了処理が呼び出されるようにしてください。アクティブ化されていない場合、コードは無視されます。

💡ヒント: 関数モジュール出口のインクルードは ZX で始まるため、プロジェクトとともに転送されます。カスタムロジックを直接配置しないでください。 SAP 関数モジュールを使うべきではない。なぜなら、それは機能強化ではなく、変更にあたるからだ。

ユーザー出口とは何ですか?

ユーザー出口は顧客出口と同じ目的を果たしますが、これらは次の目的でのみ使用できます。 SD モジュール。 この出口は、汎用モジュールへの呼び出しとして実装されます。 コードは開発者によって書かれます。

SD の User Exit はよく知られています。 MV45AFZZ

  • USEREXIT_FIELD_MODIFICATION – 画面属性を変更するには
  • USEREXIT_SAVE_DOCUMENT – ユーザーが保存をクリックしたときに操作を実行します
  • USEREXIT_SAVE_DOCUMENT_PREPARE
  • USEREXIT_MOVE_FIELD_TO_VBAK – ユーザー ヘッダーの変更がヘッダー作業領域に移動されるとき。
  • USEREXIT_MOVE_FIELD_TO_VBAP – ユーザーアイテムの変更がVBAPに移動されると、 SAP アイテム作業領域

ユーザー出口は技術的にはサブルーチン(FORM)であり、 SAP インクルード形式なので、直接編集でき、アクセスキーが必要です。これがカスタマーイグジットとの主な実務上の違いであり、次のセクションで詳しく説明します。

ユーザー出口と顧客出口

どちらの手法も標準にカスタム動作を追加します SAPしかし、それらは適用範囲、技術、およびアップグレード時の安全性において異なります。以下の表でそれらを比較します。

基準 ユーザー出口 顧客退出
利用状況 SDモジュールのみ 全体的に SAP モジュール
技術 サブルーチン (FORM) 内の SAP MV45AFZZなどを含む SMODおよびCMODで管理される機能モジュール、画面、またはメニューの終了
アクセスキー 変更アクセスキーが必要です アクセスキーは不要です
Upgrade 行動 SPAUを使用したアップグレード時に確認する必要があります Upgrade 安全、予約済みから呼び出し
によって管理されます インクルード内で直接編集 CMODプロジェクトを通じて有効化されました

顧客出口は、2つのうちより安全で一般的なものです。どちらの出口でも到達できない機能強化については、 SAP その後、ビジネスアドインが導入されました。

顧客出口とBAdIの比較

A ビジネスアドイン(BADI) BAdIは、顧客出口のオブジェクト指向版です。予約済みのインクルードの代わりに、BAdIはインターフェースを定義し、カスタムロジックはそのインターフェースを実装するクラスに記述されます。これにより、顧客出口にはない2つの利点が得られます。

  • 複数の実装例: 複数用途のBAdIは、同じ拡張機能の複数の独立した実装を可能にする一方、カスタマーイグジットは1つの実装しか可能にしない。
  • オブジェクトの向き: BAdIはメソッドとクラスを扱うため、最新のABAPオブジェクト開発に適しており、国やビジネスシナリオによるフィルタリングが容易です。

実用的なルールはシンプルです。拡張ポイントが既に存在する場合は、既存のカスタマーイグジットまたはユーザーイグジットを使用し、再利用可能な新しい拡張ポイントが必要な場合は、BAdIを使用します。

よくあるご質問

SMODは SAP 拡張機能とその中のコンポーネント。CMODは、1つ以上の拡張機能を顧客プロジェクトにグループ化し、コードを割り当てて有効化します。SMODは表示用、CMODは実装用です。

いいえ。カスタマーイグジットは機能拡張であり、変更ではないため、アクセスキーは必要ありません。ユーザーイグジットは直接編集され、 SAP 含まれているため、変更アクセスキーが必要です。

トランザクションを実行し、システムを開いてステータスを確認するとプログラム名が表示されます。次に、SMODまたはSE81でそのプログラムの拡張機能を検索します。一般的なショートカットは、テーブルMODを検索することです。SAP プログラムの機能グループ向け。

ABAP開発ツールのAIアシスタントは、プログラム名を読み取り、関連する拡張機能、出口ルーチン、またはBAdIを提案し、それぞれがどのような変更を加えるかを説明します。開発者は選択内容を確認し、予約済みインクルード内にロジックを記述します。

AI アドバイザーは、拡張ポイントが既に存在するかどうか、実装がいくつ必要かを検討し、通常は新しい作業のために BAdI または拡張スポットを推奨します。ping 出口としてのみ存在する地点のための、典型的な出口。