Loading

Enhancement

1代目拡張

拡張スポットを探すメソッド1

1 VA02:伝票番号を入力し―システム:ステータス-PGM:SAPMV45A

 

2 一般的に、この形、INCLUDE:??????Z?―>ENHANCEMENT
キーワード検索:USEREXIT*;
今回の例:USEREXIT_SAVE_DOCUMENT

 

 拡張を改修できるところ:

 拡張スポットを探すメソッド2

1 SPRO

 2SE38:MV45AFZZ―KEYWORD:SAVEで探す。

 

2代目拡張

二代目拡張:SMOD&COMDにより管理。FUNCTIONに基づく拡張で、トランザクションコードを実行すると、TRIGGERされたFUNCTION。

(SAP事前予定されたINCLUDE:XXXXX)。
これらのFUNCTION:CALL FUNCTION-CUSTOMER。

二代目は、全部INCLUDEという形??

 

基本的な流れ:
拡張したい画面で → SYS-STATUS:PGMをクリックし
→  検索(ボタン) →  INPUT 「CALL CUSTOMER-FUNCTION*」
→  ‘CALL CUSTOMER-FUNCTION’ 末の 3桁数のNumber をコピーし

→ SE37 「EXIT_‘DYN NAME’ _ 3桁数のNumber」。

 

メゾット1:

1 VA01 → SYS-STATUS-PGM ID-FIND:「CALL CUSTOMER-FUNCTION*」

 2SE37:SAP予定のINCLUDE拡張

 

メゾット2:

1ME22N → SYS:STATUS-PGMID

 2GOTO:属性 Package:ME 

→ SMOD:検索ヘルプに情報システム:「パッケージ:ME」

→ 「購買」をキーワードをして、検索。

 

 3該当拡張IDを照会、コンポーネントをクリック。

 CALL CUSTOMERーFUNCTION: 

名称の特徴: EXITーPGMIDー3位桁数

 

 特定業務により、ロジックを書く。

 4SMODで活性化

他:INCLUDEでBREAK-POINTを設定し、チェックできる。

他の方法:

1. DYNP_VALUES_READ
2. MODX_ALL_ACTIVE_MENUENTRIES(メニュー拡張)
3. MODX_FUNCTION_ACTIVE_CHECK(イグジット拡張)
4. MODX_MENUENTRY_ACTIVE_CHECK(メニュー拡張)
5. MODX_SUBSCREEN_ACTIVE_CHECK(スクリーン拡張)

BREAK-POINTを設定し、チェックできる。

 

3代目拡張

SAP社が提供されたBAdIにより、関連するメソッドを、インスタントする。

BAdI(BUSINESS ADD-IN):OO技術に基づく拡張ということ。
SE18で管理、SE19で実装。

基本的な流れ:

BAdIの実現、すべてのトランザクションコードは唯一のCLASS:「CL_EXITHANDLER」を利用し、SE24でメソッドにBREAKPOINTを設定;

その後、拡張に関連するトランザクションコードを実行する。そのBAdIを見つけることが可能です。

例えば:

1一つずつのBAdI名称をメモし、一つずつその内容を確認する。

 2SE19にて、BAdIの実装登録 → 有効化

 

 3新規作成

 

 

 この時、BAdIが有効化されました。

IFにて、各メソッドの調査が可能です。

クリックして、ロジックを書ける。

実戦1

トランザクションコード:VA01にて、新しいタブを作成し、データ入力が可能。

1Breakpointを設定、GET BAdI.

 

1「ME21N」購買発注

まず、伝票作成:4500001818

次に、「MIGO」にて、入庫処理

MB_MIGO_BADI

MB_MIGO_ITEM_BADI

/SAPMP/SPLIT_POPUP

WORKORDER_EXEC_STEPS

BADI_LAYER

BADI_SD_SALES

BADI_SD_SALES_ITEM

GOS_SRV_SELECT

BADI_MATN1

2伝票4500001818を入力すると

WB2_ADDITIONAL_DATA
WB2_ADD_DATA_INT
GOS_SRV_SELECT
/SAPSLL/CTRL_MM0A_R3
WVKU_DETERMINE_SP

BADI_SERIAL_IN_STO

3保存する

入出庫伝票 5000001447 が転記されました

その他:MIGOーA03で、取り消しが可能。

新規依頼:ME23N画面の「明細」にて、タブを新規作成し、データ入力と保存が可能。

 分析:

BAdIスポットの可能なところ:

增强点也就两个位置,位置1:トランザクションコードの入力後; 2または伝票の入力後、タブを表示する時に;


MIGO –
1 执行MIGO代码
MB_MIGO_BADI BAdI: 外部詳細従属画面 (MIGO)
MB_MIGO_ITEM_BADI 明細データ変更用 MIGO の BAdI
/SAPMP/SPLIT_POPUP SAPMP: GR 時の MIGO の数量分配画面
WORKORDER_EXEC_STEPS ビジネスアドイン: 実行ステップの指図への接続
BADI_LAYER BADI 用レイヤ値管理
COST_ESTIMATE PCP: 現在使用不可能
BADI_SD_SALES 受注処理の一般拡張
BADI_SD_SALES_ITEM 受注処理の拡張 (明細)
GOS_SRV_SELECT GOS: ジェネリックサービスの制限選択
BADI_MATN1

操作2:输入采购订单,显示分页签
WB2_ADDITIONAL_DATA
WB2_ADD_DATA_INT
GOS_SRV_SELECT
/SAPSLL/CTRL_MM0A_R3
WVKU_DETERMINE_SP

 

最有可能实现:
MB_MIGO_BADI BAdI: 外部詳細従属画面 (MIGO)
MB_MIGO_ITEM_BADI 明細データ変更用 MIGO の BAdI

增强有三代,也可说4代:ENHANCEMENT SPOT(基于BAdI)
发现是移植到增强点的BAdI,且存在SAMPLE BAdI

 

BAdI 実装

SE18

 

 又は、SE19

 

 有効化

 SE18で

 

クラスの有効化

 

 MIGOにて確認

 

INIT:自动生成的代码,为什么生成以及代码用途。也是EXAMPLE的好处。
注册BAdI,你注册001,我注册002,才没有冲突。一个增强一个注册:Regristration

方法中APPEND参数TOCT_INIT:注册对应表 

 

 

 

 

 

 

 

 

 

 まとめ

 

posted @ 2023-08-07 15:48  awsaslife  阅读(170)  评论(0)    收藏  举报