Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

rsap0001 user exit and code

Former Member
0 Kudos

Hi

Anyone pls guide me how write a code inside this.

Will reward points

Sincerely

jaya

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

8 REPLIES 8

Former Member
0 Kudos

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

0 Kudos

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

Former Member
0 Kudos

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

0 Kudos

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

raymond_giuseppi
Active Contributor
0 Kudos

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

0 Kudos

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

Former Member
0 Kudos

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

0 Kudos

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