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: 

SUBMIT statement

Former Member
0 Kudos

Dear all,

I have developed the Report that creates one BDC Session using FM 'BDC_INSERT'; but for this user have to create Log mannually after processing that Session in SM35.

I want that, this Session should be processed and log will be created automatically, through the Report; so that user can directly go to SM35 and see the Log. For that I want to execute Program 'RSBDCSUB' by SUBMIT and return back again to my code for next processings.

Could anyone pls give me the sample code/ syntax for this?

Thanks in Advance,

Prasad

3 REPLIES 3

Former Member
0 Kudos

Actually I also want to pass some variables to fulfil the selection screen parameters of the Report 'RSBDCSUB'. So could u please explain how to pass that to Report?

Thanks in advance,

Prasad

Former Member
0 Kudos

Hi

By default when you run the BDC using the Session method the Error Log will be created which you can see from SM35.

Why you need a separate program to see that log in SM35.

If you wants to see the log as a report from your program execution without going to SM35 then you need to SUBMIT that Program in your BDC report program by passing some selection screen parameters like

(all parameters are not required)

SUBMIT YBDCREP

WITH s_kunnr IN s_kunnr

WITH p_land1 EQ p_land1

AND RETURN

USER sy-uname

VIA JOB jobname

NUMBER jobcount

TO SAP-SPOOL

SPOOL PARAMETERS print_params

ARCHIVE PARAMETERS arc_params

WITHOUT SPOOL DYNPRO.

Rward if useful

Regards

Anji

Former Member
0 Kudos

Hi Prasad,

Please refer to the code below:

REPORT ZZPSREP02_1 MESSAGE-ID zOK .

TABLES : AUFK,EKPO,EKET,EKBE,EKKO,CSKS.

*tables: proj, prps_r, t001w,

  • aufk, act01, onr00,

  • ekkn, ekpo, lfa1, ekbe,

  • eket, ekko, rseg,

  • eban, ebkn, t161n,

  • t163c, t16fb, bkpf,

  • essr, elm_ps, nast.

*----


  • Data Declaration

*----


DATA : ITAB2 LIKE TABLE OF PROJ WITH HEADER LINE.

DATA : LIN TYPE I,

VAR TYPE I,

VAR1(20) TYPE c,

VAR2(20) TYPE c,

exc(20) type c.

  • VAR3 TYPE DATS.

DATA : BEGIN OF WA,

KOSTL TYPE CSKS-KOSTL,

END OF WA.

DATA : BEGIN OF WA1,

PRCTR TYPE CSKS-PRCTR,

END OF WA1.

DATA : ITAB LIKE TABLE OF WA,

ITAB1 LIKE TABLE OF wa1.

DATA: RSPAR TYPE TABLE OF RSPARAMS,

RSPAR_WA LIKE LINE OF RSPAR.

DATA: V_DISVARIANT TYPE disvariant.

DATA : VAR4(15) TYPE C.

DATA : BEGIN OF WA2,

VARIANT TYPE LTDX-VARIANT,

END OF WA2.

*DATA : ITAB3 LIKE TABLE OF WA2.

*----


  • Selection Screen

*----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-T02.

SELECT-OPTIONS : lv_kostl FOR CSKS-kostl . "Cost Center

SELECTION-SCREEN: END OF BLOCK b1.

selection-screen: begin of block b2 with frame title text-t01.

select-options: s_aedat1 for ekpo-aedat, "PO Creation Date

s_eindt1 for eket-eindt, "Posting Date

s_budat1 for ekbe-budat, "Delivery Date

s_lifnr1 for ekko-lifnr. "Vendor Number

PARAMETERS : P_DSVAR1 LIKE DISVARIANT-VARIANT.

selection-screen: end of block b2.

*----


  • End of selection screen

*----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dsvar1. "CHLK9A0886

DATA: ls_display_variant TYPE disvariant. "CHLK9A0886

  • Get the display variant

v_disvariant-report = 'ZPSREP02'. "CHLK9A0886

v_disvariant-variant = p_dsvar1. "CHLK9A0886

CALL FUNCTION 'REUSE_ALV_VARIANT_F4' "CHLK9A0886

EXPORTING "CHLK9A0886

is_variant = v_disvariant "CHLK9A0886

i_save = 'A' "CHLK9A0886

IMPORTING "CHLK9A0886

es_variant = ls_display_variant "CHLK9A0886

EXCEPTIONS "CHLK9A0886

OTHERS = 3. "CHLK9A0886

  • Load results to parameter

IF sy-subrc = 0 AND NOT ls_display_variant IS INITIAL. "CHLK9A0886

p_dsvar1 = ls_display_variant-variant.

"CHLK9A0886

ENDIF.

AT SELECTION-SCREEN.

IF LV_KOSTL IS INITIAL.

MESSAGE i003.

leave to screen 1000.

ENDIF.

*----


  • Selecting the Cost Center

*----


SELECT KOSTL FROM CSKS INTO TABLE ITAB WHERE KOSTL IN LV_KOSTL.

IF ITAB[] IS INITIAL.

MESSAGE I004.

LEAVE TO SCREEN 1000.

ENDIF.

*----


  • Selecting the corresponding Profit center

*----


SELECT PRCTR FROM CSKS INTO TABLE ITAB1 FOR ALL ENTRIES IN ITAB WHERE

KOSTL = ITAB-KOSTL.

*----


  • Selecting the corresponding Project Definitions

*----


SELECT * FROM PROJ INTO TABLE ITAB2 FOR ALL ENTRIES IN ITAB1 WHERE

PRCTR = ITAB1-PRCTR.

*----


  • Capturing the first and the last values of the Project Definitions

*----


*SELECT VARIANT FROM LTDX INTO TABLE ITAB3.

LOOP AT ITAB2.

VAR = SY-TFILL.

CASE SY-TABIX.

WHEN 1.

VAR1 = ITAB2-PSPID.

WHEN VAR.

VAR2 = ITAB2-PSPID.

ENDCASE.

ENDLOOP.

IF S_AEDAT1 IS NOT INITIAL.

rspar_WA-selname = 'S_AEDAT'.

rspar_WA-kind = 'S'.

rspar_WA-sign = 'I'.

rspar_WA-option = 'BT'.

rspar_WA-low = S_AEDAT1-LOW.

rspar_WA-high = S_AEDAT1-HIGH.

append rspar_WA TO RSPAR.

clear rspar_wa.

ENDIF.

IF S_EINDT1 IS NOT INITIAL.

rspar_WA-selname = 'S_EINDT'.

rspar_WA-kind = 'S'.

rspar_WA-sign = 'I'.

rspar_WA-option = 'BT'.

rspar_WA-low = S_EINDT1-LOW.

rspar_WA-high = S_EINDT1-HIGH.

append rspar_WA TO RSPAR.

clear rspar_wa.

ENDIF.

IF S_BUDAT1 IS NOT INITIAL.

rspar_WA-selname = 'S_BUDAT'.

rspar_WA-kind = 'S'.

rspar_WA-sign = 'I'.

rspar_WA-option = 'BT'.

rspar_WA-low = S_BUDAT1-LOW.

rspar_WA-high = S_BUDAT1-HIGH.

append rspar_WA TO RSPAR.

clear rspar_wa.

ENDIF.

IF S_LIFNR1 IS NOT INITIAL.

rspar_WA-selname = 'S_LIFNR'.

rspar_WA-kind = 'S'.

rspar_WA-sign = 'I'.

rspar_WA-option = 'BT'.

rspar_WA-low = S_LIFNR1-LOW.

rspar_WA-high = S_LIFNR1-HIGH.

append rspar_WA TO RSPAR.

clear rspar_wa.

ENDIF.

*IF P_DSVAR1 IS NOT INITIAL.

**VAR4 = P_DSVAR1.

*RSPAR_WA-SELNAME = 'P_DSVAR'.

*RSPAR_WA-KIND = 'P'.

*RSPAR_WA-SIGN = 'I'.

*RSPAR_WA-OPTION = 'EQ'.

*RSPAR_WA-LOW = P_DSVAR1.

*APPEND RSPAR_WA TO RSPAR.

*clear rspar_wa.

*ENDIF.

*

*----


  • If no data is selected for the Project Definitions

*----


IF VAR1 EQ ' ' and VAR2 EQ ' '.

MESSAGE i001.

ELSEIF VAR2 EQ ' '.

submit ZZPSREP02

with selection-table rspar

WITH CN_PROJN EQ VAR1

  • WITH P_DSVAR EQ VAR4.

  • with p_dsvar eq '/S7_COMMIT' sign 'I'

AND RETURN.

*----


  • Checking if the lower limit is less than the upper limit of *

  • Projects

*----


ELSEIF VAR1 LT VAR2.

*----


  • Calling the ZZPSREP02 Report with the values defined

*----


*SUBMIT ZZPSREP02 WITH CN_PROJN BETWEEN var1 and var2

  • WITH S_AEDAT between var3 and var7

  • WITH S_EINDT between var4 and var8

  • WITH S_BUDAT between var5 and var9

  • WITH S_LIFNR between var6 and var10

*AND RETURN.

submit ZZPSREP02

with selection-table rspar

WITH CN_PROJN BETWEEN VAR1 AND VAR2

  • WITH P_DSVAR EQ VAR4.

  • with p_dsvar eq '/S7_COMMIT' sign 'I'

AND RETURN.

*----


  • Checking if the lower limit is greater than the upper limit of

  • Projects

*----


ELSEIF VAR1 GT VAR2.

exc = var1.

var1 = var2.

var2 = exc.

*MESSAGE i002.

*LEAVE TO SCREEN 1000.

submit ZZPSREP02

with selection-table rspar

WITH CN_PROJN BETWEEN VAR1 AND VAR2

  • WITH P_DSVAR EQ VAR4.

  • with p_dsvar eq '/S7_COMMIT' sign 'I'

AND RETURN.

ENDIF.

In case you have any further clarifications,do let me know.

Regards,

Puneet Jhari.