2008 Apr 02 9:34 AM
Hi
Anyone pls guide me how write a code inside this.
Will reward points
Sincerely
jaya
2008 Apr 02 10:36 AM
Hi,
See the sample code inside the inclide.
----
INCLUDE ZXRSAU01 *
----
TABLES: KNVV, MARA.
DATA: L_S_ICCTRCST LIKE S001BIWS,
L_COUNTER,
L_S_ICCTRACT LIKE ICCTRACT,
L_S_ICCTRSTA LIKE ICCTRSTA,
L_TABIX LIKE SY-TABIX.
...local data for generic datasource ZFI_AR_4.........................
TABLES: KNB4.
DATA: L_S_ZOXID30047 LIKE ZOXID30047,
JAH LIKE KNB4-JAH01,
MON LIKE KNB4-MON01,
AGS LIKE KNB4-AGS01,
VZS LIKE KNB4-VZS01,
AGN LIKE KNB4-AGN01,
VZN LIKE KNB4-VZN01,
ANZ LIKE KNB4-ANZ01.
DATA: BEGIN OF TEMP_DATA OCCURS 0,
BUKRS LIKE L_S_ZOXID30047-BUKRS,
KUNNR LIKE L_S_ZOXID30047-KUNNR,
FISCPER LIKE L_S_ZOXID30047-FISCPER,
AGSXX LIKE L_S_ZOXID30047-AGSXX,
VZSXX LIKE L_S_ZOXID30047-VZSXX,
AGNXX LIKE L_S_ZOXID30047-AGNXX,
VZNXX LIKE L_S_ZOXID30047-VZNXX,
ANZXX LIKE L_S_ZOXID30047-ANZXX,
END OF TEMP_DATA.
CASE I_DATASOURCE.
WHEN '2LIS_01_S001'.
Endless loop for debugging *
l_counter = 7.
while l_counter = 7.
endwhile.
find corresponding master data record in KNVV
loop at c_t_data into l_s_icctrcst.
l_tabix = sy-tabix.
select single * from knvv where kunnr = l_s_icctrcst-kunnr
and vkorg = l_s_icctrcst-vkorg
and vtweg = l_s_icctrcst-vtweg
and spart = l_s_icctrcst-spart.
fill additional fields with master data
if sy-subrc = 0.
l_s_icctrcst-zzkdgrp = knvv-kdgrp.
l_s_icctrcst-zzbzirk = knvv-bzirk.
modify c_t_data from l_s_icctrcst index l_tabix.
endif.
endloop.
WHEN '2LIS_02_S850' OR '2LIS_02_S851' OR '2LIS_02_S852' OR
'2LIS_02_S853' OR '2LIS_02_S854' OR '2LIS_02_S855' OR
'2LIS_02_S856' OR '2LIS_02_S857' OR '2LIS_02_S858' OR
'2LIS_02_S859' OR '2LIS_02_S860' OR '2LIS_02_S861' OR
'2LIS_02_S862' OR '2LIS_02_S863' OR '2LIS_02_S864' OR
'2LIS_02_S865' OR '2LIS_02_S866' OR '2LIS_02_S867' OR
'2LIS_02_S868' OR '2LIS_02_S869' OR '2LIS_02_S870' OR
'2LIS_02_S930' OR '2LIS_02_S931' OR '2LIS_02_S932' OR
'2LIS_02_S933' OR '2LIS_02_S934' OR '2LIS_02_S935' OR
'2LIS_02_S936' OR '2LIS_02_S937' OR '2LIS_02_S938' OR
'2LIS_02_S939' OR '2LIS_02_S940' OR '2LIS_02_S941' OR
'2LIS_02_S942' OR '2LIS_02_S943' OR '2LIS_02_S944' OR
'2LIS_02_S945' OR '2LIS_02_S946' OR '2LIS_02_S947' OR
'2LIS_02_S948' OR '2LIS_02_S949'.
Endless loop for debugging *
l_counter = 7.
while l_counter = 7.
endwhile.
+!!!BW220: 'do NOT activate' lines with '+' for use in BW220!!!
*+=========>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DATA: L_SBW220 LIKE S870BIWS. "BW220: s870biws should exist!!!
*+ find corresponding master data record in MARA
LOOP AT C_T_DATA INTO L_SBW220.
L_TABIX = SY-TABIX.
SELECT SINGLE * FROM MARA WHERE MATNR = L_SBW220-MATNR.
*+ fill additional fields with master data
IF SY-SUBRC = 0.
L_SBW220-ZZBISMT = MARA-BISMT.
MODIFY C_T_DATA FROM L_SBW220 INDEX L_TABIX.
ENDIF.
ENDLOOP.
...generic datasource ZFI_AR_4........................................
WHEN 'ZFI_AR_4'.
CLEAR TEMP_DATA. REFRESH TEMP_DATA.
LOOP AT C_T_DATA INTO L_S_ZOXID30047.
DO 16 TIMES
VARYING JAH FROM L_S_ZOXID30047-JAH01 NEXT L_S_ZOXID30047-JAH02
VARYING MON FROM L_S_ZOXID30047-MON01 NEXT L_S_ZOXID30047-MON02
VARYING AGS FROM L_S_ZOXID30047-AGS01 NEXT L_S_ZOXID30047-AGS02
VARYING VZS FROM L_S_ZOXID30047-VZS01 NEXT L_S_ZOXID30047-VZS02
VARYING AGN FROM L_S_ZOXID30047-AGN01 NEXT L_S_ZOXID30047-AGN02
VARYING VZN FROM L_S_ZOXID30047-VZN01 NEXT L_S_ZOXID30047-VZN02
VARYING ANZ FROM L_S_ZOXID30047-ANZ01 NEXT L_S_ZOXID30047-ANZ02.
...fill comp. code, fiscal variant, debitor...........................
MOVE: L_S_ZOXID30047-BUKRS TO TEMP_DATA-BUKRS,
L_S_ZOXID30047-KUNNR TO TEMP_DATA-KUNNR.
...fill fiscal period.................................................
MOVE: JAH TO TEMP_DATA-FISCPER(4),
'0' TO TEMP_DATA-FISCPER+4(1),
MON TO TEMP_DATA-FISCPER+5(2).
CHECK NOT TEMP_DATA-FISCPER IS INITIAL.
...fill value fields..................................................
MOVE: AGS TO TEMP_DATA-AGSXX,
VZS TO TEMP_DATA-VZSXX,
AGN TO TEMP_DATA-AGNXX,
VZN TO TEMP_DATA-VZNXX,
ANZ TO TEMP_DATA-ANZXX.
APPEND TEMP_DATA.
ENDDO.
ENDLOOP.
CLEAR C_T_DATA. REFRESH C_T_DATA.
LOOP AT TEMP_DATA.
MOVE-CORRESPONDING TEMP_DATA TO L_S_ZOXID30047.
COLLECT L_S_ZOXID30047 INTO C_T_DATA.
ENDLOOP.
*{ INSERT PDGK900560 1
My enhancement fields - Hari
WHEN '2LIS_01_S628'.
DATA: L_S628BIWS LIKE S628BIWS.
LOOP AT C_T_DATA INTO L_S628BIWS.
L_S628BIWS-ZFLAG_ = 1.
MODIFY C_T_DATA FROM L_S628BIWS.
ENDLOOP.
*} INSERT
WHEN OTHERS.
EXIT.
ENDCASE.
Regards
Kiran Sure
2008 Apr 02 9:49 AM
Use TXN CMOD,
create an project
assign the enhancement RSAP0001 to this project
navigate to the components of your project
doubleclick on the green LED, sou want to implement
attention:
do not forget to activate
2008 Apr 02 10:29 AM
Hi,
Thanks a lot for your response.
Can u tell me what can i write inside the Include module if I am suppose to code for this..
Thnks a lot
Will Reward u with points
J
2008 Apr 02 9:59 AM
Hi
goto CMOD transaction--give a project name->click on create....
now u wil get a screen where in u need to give short text---and in ENHANCEMENT ASSIGNMENTS--give the exit name and click enter.
then goto COMPONENTS tab there u wil find exit ..double click on taht ..then u wil goto a function module in that there is a include...if u double click on taht include u can get the program where u can write the code.....goto change mode and write u r code save and activate.
and after u do the cahnges in include ..after activating..that do not forget to activate the screen where u have all the exit names....u wil get a green color if it is activated and red if not activated.
Edited by: Jyothsna M on Apr 2, 2008 10:59 AM
2008 Apr 02 10:14 AM
HI Jyotsna,
Thanks a lot for your response.
Can u tell me what shud i include insise the code.
Really stuck with that.
Rered many placeS.I find it very difficult to understand.
Can u help me Jyothsna.
Thanks a lot
2008 Apr 02 10:04 AM
Look at [Enhancing DataSources|http://help.sap.com/saphelp_nw70/helpdata/en/6e/fe6e420f00d242e10000000a1550b0/frameset.htm]
Use :
- EXIT_SAPLRSAP_001 for transaction data, e.g.: 0FI_GL_4
- EXIT_SAPLRSAP_002 for master data, e.g.: 0COORDER_ATTR
- EXIT_SAPLRSAP_003 for texts (in older versions only, now use 002)
- EXIT_SAPLRSAP_004 for hierarchy
In the source, map C_T_DATA to the structure of the DataSource (look at RSA6, e.g. map data to DTFIAR_3 for 0FI_AR_4) and perform the access to database needed to find your fields and update the internal table.
Sample
In include ZXRSAU01 of EXIT_SAPLRSAP_001 : check the value of the datasource being processed
CASE i_datasource.
WHEN '0FI_AR_3' OR '0FI_AR_4'.
PERFORM 0fi_ar_3 TABLES c_t_data.
WHEN '0FI_GL_4'.
PERFORM 0fi_gl_4 TABLES c_t_data.
* etc.
ENDCASE.
Then include some forms in the ZXRSAZZZ common include for each datasource to process
FORM 0fi_ar_3 TABLES work.
* Tables and Structures
DATA: bsid LIKE bsid,
bsad LIKE bsad,
dtfiar_3 LIKE dtfiar_3.
* Local data
DATA: t_work LIKE dtfiar_3 OCCURS 0,
t_bsid LIKE bsid OCCURS 0,
t_bsad LIKE bsad OCCURS 0.
DATA w_gjahr LIKE bsid-gjahr.
* Receive data
REFRESH t_work.
INSERT LINES OF work INTO TABLE t_work.
IF t_work[] IS INITIAL. EXIT. ENDIF.
* Load other tables needed to enrich records
REFRESH t_bsid.
SELECT * INTO TABLE t_bsid
FROM bsid
FOR ALL ENTRIES IN t_work
WHERE kunnr = t_work-kunnr
AND bukrs = t_work-bukrs
AND belnr = t_work-belnr
AND buzei = t_work-buzei.
SORT t_bsid BY kunnr bukrs gjahr belnr buzei.
REFRESH t_bsad.
SELECT * INTO TABLE t_bsad
FROM bsad
FOR ALL ENTRIES IN t_work
WHERE kunnr = t_work-kunnr
AND bukrs = t_work-bukrs
AND belnr = t_work-belnr
AND buzei = t_work-buzei.
SORT t_bsad BY kunnr bukrs gjahr belnr buzei.
* Update internal table using data loaded
LOOP AT t_work INTO dtfiar_3.
w_gjahr = dtfiar_3-fiscper(4).
IF dtfiar_3-augdt IS INITIAL.
READ TABLE t_bsid INTO bsid
WITH KEY kunnr = dtfiar_3-kunnr
bukrs = dtfiar_3-bukrs
gjahr = w_gjahr
belnr = dtfiar_3-belnr
buzei = dtfiar_3-buzei
BINARY SEARCH.
IF sy-subrc = 0.
dtfiar_3-zzgsber = bsid-gsber.
dtfiar_3-zzuonr = bsid-zuonr..
dtfiar_3-zzxzahl = bsid-xzahl.
ENDIF.
ELSE.
READ TABLE t_bsad INTO bsad
WITH KEY kunnr = dtfiar_3-kunnr
bukrs = dtfiar_3-bukrs
gjahr = w_gjahr
belnr = dtfiar_3-belnr
buzei = dtfiar_3-buzei
BINARY SEARCH.
IF sy-subrc = 0.
dtfiar_3-zzgsber = bsad-gsber.
dtfiar_3-zzuonr = bsad-zuonr..
dtfiar_3-zzxzahl = bsad-xzahl.
ENDIF.
ENDIF.
MODIFY t_work FROM dtfiar_3.
ENDLOOP.
* Send back data
REFRESH work.
INSERT LINES OF t_work INTO TABLE work.
ENDFORM. " 0fi_ar_3
Regards
2008 Apr 07 8:34 AM
Hi Raymond Giuseppi ,
Thanks a lot for your help.
I need to work with user exit.
I dnt have any practical knowledge about it.
I havent given any requirement as if now.
But the will be giving me shortly.
Kindly help me.
Thanks a lot
2008 Apr 02 10:36 AM
Hi,
See the sample code inside the inclide.
----
INCLUDE ZXRSAU01 *
----
TABLES: KNVV, MARA.
DATA: L_S_ICCTRCST LIKE S001BIWS,
L_COUNTER,
L_S_ICCTRACT LIKE ICCTRACT,
L_S_ICCTRSTA LIKE ICCTRSTA,
L_TABIX LIKE SY-TABIX.
...local data for generic datasource ZFI_AR_4.........................
TABLES: KNB4.
DATA: L_S_ZOXID30047 LIKE ZOXID30047,
JAH LIKE KNB4-JAH01,
MON LIKE KNB4-MON01,
AGS LIKE KNB4-AGS01,
VZS LIKE KNB4-VZS01,
AGN LIKE KNB4-AGN01,
VZN LIKE KNB4-VZN01,
ANZ LIKE KNB4-ANZ01.
DATA: BEGIN OF TEMP_DATA OCCURS 0,
BUKRS LIKE L_S_ZOXID30047-BUKRS,
KUNNR LIKE L_S_ZOXID30047-KUNNR,
FISCPER LIKE L_S_ZOXID30047-FISCPER,
AGSXX LIKE L_S_ZOXID30047-AGSXX,
VZSXX LIKE L_S_ZOXID30047-VZSXX,
AGNXX LIKE L_S_ZOXID30047-AGNXX,
VZNXX LIKE L_S_ZOXID30047-VZNXX,
ANZXX LIKE L_S_ZOXID30047-ANZXX,
END OF TEMP_DATA.
CASE I_DATASOURCE.
WHEN '2LIS_01_S001'.
Endless loop for debugging *
l_counter = 7.
while l_counter = 7.
endwhile.
find corresponding master data record in KNVV
loop at c_t_data into l_s_icctrcst.
l_tabix = sy-tabix.
select single * from knvv where kunnr = l_s_icctrcst-kunnr
and vkorg = l_s_icctrcst-vkorg
and vtweg = l_s_icctrcst-vtweg
and spart = l_s_icctrcst-spart.
fill additional fields with master data
if sy-subrc = 0.
l_s_icctrcst-zzkdgrp = knvv-kdgrp.
l_s_icctrcst-zzbzirk = knvv-bzirk.
modify c_t_data from l_s_icctrcst index l_tabix.
endif.
endloop.
WHEN '2LIS_02_S850' OR '2LIS_02_S851' OR '2LIS_02_S852' OR
'2LIS_02_S853' OR '2LIS_02_S854' OR '2LIS_02_S855' OR
'2LIS_02_S856' OR '2LIS_02_S857' OR '2LIS_02_S858' OR
'2LIS_02_S859' OR '2LIS_02_S860' OR '2LIS_02_S861' OR
'2LIS_02_S862' OR '2LIS_02_S863' OR '2LIS_02_S864' OR
'2LIS_02_S865' OR '2LIS_02_S866' OR '2LIS_02_S867' OR
'2LIS_02_S868' OR '2LIS_02_S869' OR '2LIS_02_S870' OR
'2LIS_02_S930' OR '2LIS_02_S931' OR '2LIS_02_S932' OR
'2LIS_02_S933' OR '2LIS_02_S934' OR '2LIS_02_S935' OR
'2LIS_02_S936' OR '2LIS_02_S937' OR '2LIS_02_S938' OR
'2LIS_02_S939' OR '2LIS_02_S940' OR '2LIS_02_S941' OR
'2LIS_02_S942' OR '2LIS_02_S943' OR '2LIS_02_S944' OR
'2LIS_02_S945' OR '2LIS_02_S946' OR '2LIS_02_S947' OR
'2LIS_02_S948' OR '2LIS_02_S949'.
Endless loop for debugging *
l_counter = 7.
while l_counter = 7.
endwhile.
+!!!BW220: 'do NOT activate' lines with '+' for use in BW220!!!
*+=========>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DATA: L_SBW220 LIKE S870BIWS. "BW220: s870biws should exist!!!
*+ find corresponding master data record in MARA
LOOP AT C_T_DATA INTO L_SBW220.
L_TABIX = SY-TABIX.
SELECT SINGLE * FROM MARA WHERE MATNR = L_SBW220-MATNR.
*+ fill additional fields with master data
IF SY-SUBRC = 0.
L_SBW220-ZZBISMT = MARA-BISMT.
MODIFY C_T_DATA FROM L_SBW220 INDEX L_TABIX.
ENDIF.
ENDLOOP.
...generic datasource ZFI_AR_4........................................
WHEN 'ZFI_AR_4'.
CLEAR TEMP_DATA. REFRESH TEMP_DATA.
LOOP AT C_T_DATA INTO L_S_ZOXID30047.
DO 16 TIMES
VARYING JAH FROM L_S_ZOXID30047-JAH01 NEXT L_S_ZOXID30047-JAH02
VARYING MON FROM L_S_ZOXID30047-MON01 NEXT L_S_ZOXID30047-MON02
VARYING AGS FROM L_S_ZOXID30047-AGS01 NEXT L_S_ZOXID30047-AGS02
VARYING VZS FROM L_S_ZOXID30047-VZS01 NEXT L_S_ZOXID30047-VZS02
VARYING AGN FROM L_S_ZOXID30047-AGN01 NEXT L_S_ZOXID30047-AGN02
VARYING VZN FROM L_S_ZOXID30047-VZN01 NEXT L_S_ZOXID30047-VZN02
VARYING ANZ FROM L_S_ZOXID30047-ANZ01 NEXT L_S_ZOXID30047-ANZ02.
...fill comp. code, fiscal variant, debitor...........................
MOVE: L_S_ZOXID30047-BUKRS TO TEMP_DATA-BUKRS,
L_S_ZOXID30047-KUNNR TO TEMP_DATA-KUNNR.
...fill fiscal period.................................................
MOVE: JAH TO TEMP_DATA-FISCPER(4),
'0' TO TEMP_DATA-FISCPER+4(1),
MON TO TEMP_DATA-FISCPER+5(2).
CHECK NOT TEMP_DATA-FISCPER IS INITIAL.
...fill value fields..................................................
MOVE: AGS TO TEMP_DATA-AGSXX,
VZS TO TEMP_DATA-VZSXX,
AGN TO TEMP_DATA-AGNXX,
VZN TO TEMP_DATA-VZNXX,
ANZ TO TEMP_DATA-ANZXX.
APPEND TEMP_DATA.
ENDDO.
ENDLOOP.
CLEAR C_T_DATA. REFRESH C_T_DATA.
LOOP AT TEMP_DATA.
MOVE-CORRESPONDING TEMP_DATA TO L_S_ZOXID30047.
COLLECT L_S_ZOXID30047 INTO C_T_DATA.
ENDLOOP.
*{ INSERT PDGK900560 1
My enhancement fields - Hari
WHEN '2LIS_01_S628'.
DATA: L_S628BIWS LIKE S628BIWS.
LOOP AT C_T_DATA INTO L_S628BIWS.
L_S628BIWS-ZFLAG_ = 1.
MODIFY C_T_DATA FROM L_S628BIWS.
ENDLOOP.
*} INSERT
WHEN OTHERS.
EXIT.
ENDCASE.
Regards
Kiran Sure
2008 Apr 02 11:04 AM
Hi Kiran,
Can u be clear with the code ....I am not able to understand..
Pls pls explain me.. if u have time...
Will reward points.
Sincerely
Jaya