1.
Only implementing Custom logic in BADI
Implementation logic
DATA: ls_message LIKE LINE OF messages.
DATA: ls_acct LIKE LINE OF purchaserequisitionitemaccchng .
FIELD-SYMBOLS: <ls_acct> LIKE LINE OF purchaserequisitionitemaccchng .
DATA ls_msg LIKE LINE OF messages.
CONSTANTS: c_10 TYPE n LENGTH 5 VALUE '00010',
c_blk TYPE c VALUE 'L'.
purchaserequisitionitemchange-yy1_yy1_ext_field1_pri = 'From Badi'.
Only Custom fields scenario as reported by customer
DATA: ls_message LIKE LINE OF messages.
DATA: ls_acct LIKE LINE OF purchaserequisitionitemaccchng .
FIELD-SYMBOLS: <ls_acct> LIKE LINE OF purchaserequisitionitemaccchng .
DATA ls_msg LIKE LINE OF messages.
CONSTANTS: c_10 TYPE n LENGTH 5 VALUE '00010',
c_blk TYPE c VALUE 'L'.
IF purchaserequisitionitem-purchaserequisitionitem NE c_10 AND
purchaserequisitionitem-isdeleted EQ space.
SELECT SINGLE * INTO @data(ls_pr) FROM i_purchaserequisitionitemapi01
WHERE purchaserequisition EQ @purchaserequisition-purchaserequisition
AND purchaserequisitionitem EQ @c_10.
IF sy-subrc EQ 0.
IF purchaserequisitionitemchange-yy1_yy1_ext_field1_pri IS INITIAL.
purchaserequisitionitemchange-yy1_yy1_ext_field1_pri = ls_pr-yy1_yy1_ext_field1_pri.
ENDIF.
else.
IF purchaserequisitionitem-purchaserequisitionitem NE c_10.
CLEAR: purchaserequisitionitemchange-yy1_yy1_ext_field1_pri.
ENDIF.
ENDIF.
2. Combination of Business fields and Custom Fields
via BADI
DATA: ls_message LIKE LINE OF messages.
DATA: ls_acct LIKE LINE OF purchaserequisitionitemaccchng .
FIELD-SYMBOLS: <ls_acct> LIKE LINE OF purchaserequisitionitemaccchng .
DATA ls_msg LIKE LINE OF messages.
CONSTANTS: c_10 TYPE n LENGTH 5 VALUE '00010',
c_blk TYPE c VALUE 'L'.
purchaserequisitionitemchange-purchaserequisitionitemtext = 'ITEMBADI'.
purchaserequisitionitemchange-DELIVERYDATE = '20201205'.
IF purchaserequisitionitem-purchaserequisitionitem NE c_10 AND
purchaserequisitionitem-isdeleted EQ space.
SELECT SINGLE * INTO @data(ls_pr) FROM i_purchaserequisitionitemapi01
WHERE purchaserequisition EQ @purchaserequisition-purchaserequisition
AND purchaserequisitionitem EQ @c_10.
IF sy-subrc EQ 0.
IF purchaserequisitionitemchange-yy1_yy1_ext_field1_pri IS INITIAL.
purchaserequisitionitemchange-yy1_yy1_ext_field1_pri = ls_pr-yy1_yy1_ext_field1_pri.
ENDIF.
else.
IF purchaserequisitionitem-purchaserequisitionitem NE c_10.
CLEAR: purchaserequisitionitemchange-yy1_yy1_ext_field1_pri.
ENDIF.
ENDIF.
ENDIF.
3. Only Business Field modify via BADI
DATA: ls_message LIKE LINE OF messages.
DATA: ls_acct LIKE LINE OF purchaserequisitionitemaccchng .
FIELD-SYMBOLS: <ls_acct> LIKE LINE OF purchaserequisitionitemaccchng .
DATA ls_msg LIKE LINE OF messages.
CONSTANTS: c_10 TYPE n LENGTH 5 VALUE '00010',
c_blk TYPE c VALUE 'L'.
purchaserequisitionitemchange-purchaserequisitionitemtext = 'ITEMBADI'.
purchaserequisitionitemchange-DELIVERYDATE = '20211205'.
4. BADI implemented but no Logic
DATA: ls_message LIKE LINE OF messages.
DATA: ls_acct LIKE LINE OF purchaserequisitionitemaccchng .
FIELD-SYMBOLS: <ls_acct> LIKE LINE OF purchaserequisitionitemaccchng .
DATA ls_msg LIKE LINE OF messages.
CONSTANTS: c_10 TYPE n LENGTH 5 VALUE '00010',
c_blk TYPE c VALUE 'L'.
* purchaserequisitionitemchange-purchaserequisitionitemtext = 'ITEMBADI'.
* purchaserequisitionitemchange-DELIVERYDATE = '20211205'.