Professional Documents
Culture Documents
User Exit Examples: 1. Extending Business Content - EXIT - SAPLRSAP - 001
User Exit Examples: 1. Extending Business Content - EXIT - SAPLRSAP - 001
" Request-Data
" Selection for current Request
" Request posted to which InfoCube
DATA:
DATA:
DATA:
DATA:
DATA:
= RSSELDONE-SOURCE.
L_LOGSYS = RSSELDONE-LOGSYS.
L_SELDATE = RSSELDONE-SELDATE.
L_SELTIME = RSSELDONE-SELTIME.
SELECT * FROM RSSELDONE INTO TABLE L_T_SELDONE WHERE
SOURCE = L_SOURCE AND
LOGSYS = L_LOGSYS.
DELETE L_T_SELDONE WHERE
RNR = I_RNR.
DELETE L_T_SELDONE
SELDATE >
( SELTIME >
SELDATE =
WHERE
L_SELDATE
L_SELTIME
L_SELDATE
*Sort
SORT L_T_SELDONE BY SELDATE DESCENDING SELTIME DESCENDING.
REFRESH L_T_RNR_DEL.
LOOP AT L_T_SELDONE.
" Requests to be deleted
LOOP AT L_T_ICUBE.
" Request existing in InfoCubes
SELECT SINGLE * FROM RSICCONT WHERE
ICUBE = L_T_ICUBE-ICUBE AND
RNR
= L_T_SELDONE-RNR.
"check if posted to IC's
IF SY-SUBRC = 0.
L_T_RNR_DEL-ICUBE = L_T_ICUBE-ICUBE.
L_T_RNR_DEL-RNR
= L_T_SELDONE-RNR.
APPEND L_T_RNR_DEL.
ENDIF.
ENDLOOP.
IF NOT L_T_RNR_DEL[] IS INITIAL. " something found for rnr
EXIT.
ENDIF.
ENDLOOP.
LOOP AT L_T_RNR_DEL.
CALL FUNCTION 'RSSM_DELETE_REQUEST'
EXPORTING
REQUEST
INFOCUBE
EXCEPTIONS
REQUEST_NOT_IN_CUBE
INFOCUBE_NOT_FOUND
REQUEST_ALREADY_AGGREGATED
REQUEST_ALREADY_COMDENSED
OTHERS
IF SY-SUBRC <> 0.
* open for error-handling
ENDIF.
ENDLOOP.
= L_T_RNR_DEL-RNR
= L_T_RNR_DEL-ICUBE
=
=
=
=
=
1
2
3
4
5.
sodocchgi1,
append object_content.
concatenate
LIKE
T009B-BDATJ,
LOC_POPER
LOC_DATE
LIKE
LIKE
T009B-POPER,
SY-DATUM.
CASE I_VNAM.
*-- SINGVAR - Variables: Variable SalesOrg, User-Exit, SingleValue
WHEN 'SINGVAR'.
CLEAR L_S_RANGE.
L_S_RANGE-LOW
= '4000'.
L_S_RANGE-SIGN
= 'I'.
L_S_RANGE-OPT
= 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
*-- INTVAR - Variables: Variable SalesOrg, User-Exit, Interval
WHEN 'INTVAR'.
L_S_RANGE-LOW
= '1000'.
L_S_RANGE-HIGH
= '4000'.
L_S_RANGE-SIGN
= 'I'.
L_S_RANGE-OPT
= 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
*-- HIERVAR - Variables: Variable SalesOrg, User-Exit, Hierarchy
WHEN 'HIERVAR'.
L_S_RANGE-LOW
= 'SD_DEMO5_SAL_HIER'.
L_S_RANGE-SIGN
= 'I'.
L_S_RANGE-OPT
= 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
*-- HNODEVAR - Variables: Variable SalesOrg, User-Exit, Hierarchy
WHEN 'HNODEVAR'.
L_S_RANGE-LOW
= 'EUROPE'.
L_S_RANGE-HIGH
= '0HIER_NODE'.
L_S_RANGE-SIGN
= 'I'.
L_S_RANGE-OPT
= 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
*-- DMDATEFR - Variables: User-ExitExample, I_T_VAR_RANGE,
*-- determine the end of the period for a day
WHEN 'DMDATETO'.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'DMDATEIN'.
CLEAR L_S_RANGE.
LOC_YEAR = LOC_VAR_RANGE-LOW(4).
CONCATENATE '0' LOC_VAR_RANGE-LOW+4(2) INTO LOC_POPER.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR
= LOC_YEAR
I_PERIV
= '01'
I_POPER
= LOC_POPER
IMPORTING
E_DATE
= LOC_DATE
EXCEPTIONS
INPUT_FALSE
= 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS
= 4.
L_S_RANGE-LOW
= LOC_DATE.
L_S_RANGE-SIGN
= 'I'.
L_S_RANGE-OPT
= 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
G_POS_DEMOCUBE_PRODUCT
G_POS_DEMOCUBE_PRICE_TP
G_POS_DEMOCUBE_ACT_PRICE
G_POS_DEMOCUBE_QUANTITY
TYPE
TYPE
TYPE
TYPE
I.
I.
I.
I.
***INCLUDE ZXRSRZZZ .
FORM USER_DEMOCUBE USING
I_S_RKB1D TYPE RSR_S_RKB1D
CHANGING C_S_DATA TYPE ANY.
FIELD-SYMBOLS
FIELD-SYMBOLS
FIELD-SYMBOLS
FIELD-SYMBOLS
<L_PRODUCT>.
<L_PRICE_TP>.
<L_ACT_PRICE>.
<L_QUANTITY>.
ENDFORM.