Application Development and Automation 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: 
Read only

hello friends

Former Member
0 Likes
567

1)Difference between Simple Report, Interactive Report and Alv report.

2)What is dialog programming.

3)Difference between bapi,Call transaction and session

4)When updating vendor details there are five rows visible in Tcode xk01 and the flat file contains 100s of records.How to do this what is the logic behind this.

1)Difference between Simple Report, Interactive Report and Alv report.

2)What is dialog programming.

3)Difference between bapi,Call transaction and session

4)When updating vendor details there are five rows visible in Tcode xk01 and the flat file contains 100s of records.How to do this what is the logic behind this.

1 REPLY 1
Read only

Former Member
0 Likes
528

HI,

1)Difference between Simple Report, Interactive Report and Alv report.

Simple report is one level report that is displayed on the screen

Interactive report is a report. which consist of various levels of reporting.

ex let us say when you execute a progrma you are display all the sales order header details. upon clicking on a specific sales order number on the report ..the program should show another report with the line items of that particular sales order.

reporting (simple/interactive) can be done using write statments or using ALV.. when we use ALV reporting we have to use function modules to diplay the output.

2)What is dialog programming.

Dialog programming/screen programming/module program all mean one and the same.. desinging the screens is what we do using dialog programming....

3)Difference between bapi,Call transaction and session

Any of these is used to upload data into sap..

for bapi you need not think about the screens.. just populate the tables and send it through bapi..

call transaction is used to upload data online.. it does not have error handling facility

session method is used to upload data ofline and has error handling facility

4)When updating vendor details there are five rows visible in Tcode xk01 and the flat file contains 100s of records.How to do this what is the logic behind this.

find tha code

report zfi_vendor_master_load

line-size 150

line-count 65

message-id zhr.

************************************************************************

  • Program name :ZFI_VENDOR_MASTER_LOAD

  • Author :Shounak Mukherjee

  • Date :July 29, 2003

  • Description :Vendor Master Load [FK01]

  • DEV ID :ITIGABAP

************************************************************************

  • Modification Log (Latest Changes First)

************************************************************************

  • Programmer :

  • Change Date :

  • Description :

  • Dev ID :

************************************************************************

************************************************************************

  • Declaration For Internal Tables

***********************************************************************

data: begin of it_itab occurs 0,

line(1000),

end of it_itab.

data: begin of it_bdc occurs 0.

include structure bdcdata.

data: end of it_bdc.

data: it_messg like bdcmsgcoll occurs 0 with header line.

data: begin of it_vendor occurs 0,

bukrs(4),

accgrp(4),

*Address DATA

name1(35),

street(35),

post_code(10),

city1(35),

country(3),

pobox(10),

region(3),

street2(40),

tel_num(16),

name_co(40),

*Account Information

akont(10),

altkn(10),

*Payment Terms

zterm(4),

zwels(10),

*Correspondence Accounting

zsabe(15),

tlfns(30),

kverm(30),

tlfxs(31),

intad(130),

end of it_vendor.

*IT to Hold Error Records

data: begin of it_err occurs 0,

accgrp like rf02k-ktokk,

name1 like adrc-name1,

country like adrc-country,

altkn like lfb1-altkn,

akont like lfb1-akont,

zterm like lfb1-zterm,

remarks like bdcmsgcoll-msgv1,

end of it_err.

*IT to Hold Success Records

data: begin of it_success occurs 0,

accgrp like rf02k-ktokk,

name1 like adrc-name1,

country like adrc-country,

altkn like lfb1-altkn,

akont like lfb1-akont,

zterm like lfb1-zterm,

remarks like bdcmsgcoll-msgv1,

end of it_success.

************************************************************************

  • Declaration For Global data

***********************************************************************

data: flag_bdc_open.

data: v_tcode like sy-tcode value 'FK01'.

data: v_rep.

data: tot_vendor like sy-index,

tot_suc like sy-index,

tot_err like sy-index.

data: v_no_lines type i,

v_wrk_tabix like sy-tabix.

data: delimiter(1) type x value '09'.

************************************************************************

  • Selection Screen

************************************************************************

selection-screen begin of block bel with frame title text-001.

parameter p_flnam like rlgrap-filename obligatory.

selection-screen: skip.

parameter: p_pc radiobutton group abc default 'X'.

parameter: p_unix radiobutton group abc.

selection-screen end of block bel.

parameter: p_grpid like apqi-groupid default 'VENDOR_LOAD'.

*parameter: p_mode(1) default 'A'.

************************************************************************

  • AT SELECTION SCREEN

************************************************************************

at selection-screen on value-request for p_flnam.

perform f4_help using 'P_FILE'.

************************************************************************

  • Initialization.

************************************************************************

************************************************************************

  • AT SELECTION SCREEN *

************************************************************************

**********************************************************************

  • Top-Of-Page

**********************************************************************

top-of-page.

perform top_of_page.

**********************************************************************

  • Start-of-selection.

**********************************************************************

start-of-selection.

  • READ FILE AND LOAD INTERNAL TABLE

if p_pc = 'X'.

perform load_pc_file.

elseif p_unix = 'X'.

perform load_unix_file.

endif.

perform load_into_structure.

perform build_bdc_tab.

**********************************************************************

  • End of Selection

**********************************************************************

end-of-selection.

perform write_report.

&----


*& Form LOAD_PC_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form load_pc_file.

call function 'WS_UPLOAD'

exporting

filename = p_flnam

filetype = 'DAT'

tables

data_tab = it_vendor

exceptions

conversion_error = 1

invalid_table_width = 2

invalid_type = 3

no_batch = 4

unknown_error = 5

gui_refuse_filetransfer = 6

others = 7.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform. " LOAD_PC_FILE

&----


*& Form LOAD_UNIX_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form load_unix_file.

open dataset p_flnam for input in text mode.

if sy-subrc <> 0.

else.

do.

read dataset p_flnam into it_itab-line.

if sy-subrc <> 0.

exit.

endif.

append it_itab.

clear it_itab.

enddo.

endif.

close dataset p_flnam.

endform. " LOAD_UNIX_FILE

&----


*& Form LOAD_INTO_STRUCTURE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form load_into_structure.

describe table it_vendor lines tot_vendor.

endform. " LOAD_INTO_STRUCTURE

&----


*& Form BUILD_BDC_TAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build_bdc_tab.

clear flag_bdc_open.

if not it_vendor[] is initial.

describe table it_vendor lines v_no_lines.

if flag_bdc_open <> 'X'.

perform bdc_open_group.

flag_bdc_open = 'X'.

endif.

loop at it_vendor.

v_wrk_tabix = sy-tabix.

perform progress_indicator.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0105'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'USE_ZAV'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '/00'.

perform fill_bdc_tab using:

'' 'RF02K-BUKRS' it_vendor-bukrs.

perform fill_bdc_tab using:

'' 'RF02K-KTOKK' it_vendor-accgrp.

perform fill_bdc_tab using:

'' 'USE_ZAV' 'X'.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0111'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '=$AOC'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'ADDR1_DATA-COUNTRY'.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-NAME1' it_vendor-name1.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-STREET' it_vendor-street.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-POST_CODE1' it_vendor-post_code.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-CITY1' it_vendor-city1.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-COUNTRY' it_vendor-country.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-REGION' it_vendor-region.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-PO_BOX' it_vendor-pobox.

perform fill_bdc_tab using:

'' 'SZA1_D0100-TEL_NUMBER' it_vendor-tel_num.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-LANGU' 'EN'.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0111'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '/00'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'ADDR1_DATA-NAME_CO'.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-NAME1' it_vendor-name1.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-STREET' it_vendor-street.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-NAME_CO' it_vendor-name_co.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-STR_SUPPL1' it_vendor-street2.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-POST_CODE1' it_vendor-post_code.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-CITY1' it_vendor-city1.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-COUNTRY' it_vendor-country.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-REGION' it_vendor-region.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-PO_BOX' it_vendor-pobox.

perform fill_bdc_tab using:

'' 'SZA1_D0100-TEL_NUMBER' it_vendor-tel_num.

perform fill_bdc_tab using:

'' 'ADDR1_DATA-LANGU' 'EN'.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0120'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'LFA1-KUNNR'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '/00'.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0130'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'LFBK-BANKS(01)'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '=ENTR'.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0210'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'LFB1-ALTKN'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '/00'.

perform fill_bdc_tab using:

'' 'LFB1-AKONT' it_vendor-akont.

perform fill_bdc_tab using:

'' 'LFB1-ALTKN' it_vendor-altkn.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0215'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'LFB1-ZWELS'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '/00'.

perform fill_bdc_tab using:

'' 'LFB1-ZTERM' it_vendor-zterm.

perform fill_bdc_tab using:

'' 'LFB1-REPRF' 'X'.

perform fill_bdc_tab using:

'' 'LFB1-ZWELS' it_vendor-zwels.

perform fill_bdc_tab_scr using:

'X' 'SAPMF02K' '0220'.

perform fill_bdc_tab using:

'' 'BDC_CURSOR' 'LFB1-KVERM'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '/00'.

perform fill_bdc_tab using:

'' 'LFB1-ZSABE' it_vendor-zsabe.

perform fill_bdc_tab using:

'' 'LFB1-TLFNS' it_vendor-tlfns.

perform fill_bdc_tab using:

'' 'LFB1-TLFXS' it_vendor-tlfxs.

perform fill_bdc_tab using:

'' 'LFB1-INTAD' it_vendor-intad.

perform fill_bdc_tab using:

'' 'LFB1-KVERM' it_vendor-kverm.

perform fill_bdc_tab_scr using:

'X' 'SAPLSPO1' '0300'.

perform fill_bdc_tab using:

'' 'BDC_OKCODE' '=YES'.

  • call transaction v_tcode

  • using it_bdc

  • mode p_mode

  • update 'S'

  • messages into it_messg.

perform bdc_insert.

clear: it_bdc, it_messg.

refresh: it_bdc, it_messg.

endloop.

if flag_bdc_open = 'X'.

perform bdc_close_group.

endif.

endif.

endform. " BUILD_BDC_TAB

&----


*& Form FILL_BDC_TAB_SCR

&----


  • text

----


  • -->P_0178 text

  • -->P_0179 text

  • -->P_0180 text

----


form fill_bdc_tab_scr using new_scr

program

screen_num.

move program to it_bdc-program.

move screen_num to it_bdc-dynpro.

move new_scr to it_bdc-dynbegin.

append it_bdc.

clear it_bdc.

endform. " FILL_BDC_TAB_SCR

&----


*& Form FILL_BDC_TAB

&----


  • text

----


  • -->P_0178 text

  • -->P_0179 text

  • -->P_0180 text

----


form fill_bdc_tab using new_scr

fieldname

fieldvalue.

move fieldname to it_bdc-fnam.

move fieldvalue to it_bdc-fval.

append it_bdc.

clear it_bdc.

endform. " FILL_BDC_TAB

&----


*& Form BDC_OPEN_GROUP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form bdc_open_group.

call function 'BDC_OPEN_GROUP'

exporting

client = sy-mandt

  • DEST = FILLER8

group = p_grpid

  • HOLDDATE = FILLER8

keep = 'X'

user = sy-uname

exceptions

client_invalid = 1

destination_invalid = 2

group_invalid = 3

group_is_locked = 4

holddate_invalid = 5

internal_error = 6

queue_error = 7

running = 8

system_lock_error = 9

user_invalid = 10

others = 11

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

flag_bdc_open = 'X'.

endform. " BDC_OPEN_GROUP

&----


*& Form BDC_INSERT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form bdc_insert.

call function 'BDC_INSERT'

exporting

tcode = v_tcode

tables

dynprotab = it_bdc

exceptions

internal_error = 1

not_open = 2

queue_error = 3

tcode_invalid = 4

printing_invalid = 5

posting_invalid = 6

others = 7.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform. " BDC_INSERT

&----


*& Form BDC_CLOSE_GROUP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form bdc_close_group.

call function 'BDC_CLOSE_GROUP'

exceptions

not_open = 1

queue_error = 2

others = 3.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform. " BDC_CLOSE_GROUP

&----


*& Form WRITE_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form write_report.

perform summary_report.

  • perform error_report.

  • perform success_report.

endform. " WRITE_REPORT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form top_of_page.

if v_rep = '1'. "SUMMARY

write:/ sy-datum,

45 text-hd1, "VENDOR MASTER LOAD - SUMMARY REPORT

101 text-hd4,

109 sy-pagno.

uline.

elseif v_rep = '2'. " SUCCESS

write:/ sy-datum,

45 text-hd2, "VENDOR MASTER LOAD - SUCCESS REPORT

101 text-hd4, "Page:

109 sy-pagno.

uline.

write: / text-101,

10 text-102,

60 text-103,

65 text-104,

80 text-105,

100 text-106,

110 text-107.

uline.

elseif v_rep = '3'. "ERROR.

write:/ sy-datum,

45 text-hd3, "VENDOR MASTER LOAD - ERROR REPORT

101 text-hd4,

109 sy-pagno.

uline.

write: / text-101,

10 text-102,

60 text-103,

65 text-104,

80 text-105,

100 text-106,

110 text-107.

uline.

endif.

endform. " TOP_OF_PAGE

&----


*& Form SUMMARY_REPORT

&----


  • Summary Report

----


form summary_report.

v_rep = '1'.

write: / 'NUMBER OF RECORDS:',65 tot_vendor.

uline.

skip.

  • write: / 'NUMBER OF VENDORS CREATED:',65 tot_suc.

*

  • uline.

  • skip.

  • write: / 'NUMBER OF VENDORS IN ERROR:',65 tot_err.

*

  • uline.

endform. " SUMMARY_REPORT

&----


*& Form ERROR_REPORT

&----


  • Error Report

----


form error_report.

new-page.

v_rep = '3'.

if not it_err[] is initial.

write:/ 'ERROR CREATING THE FOLLOWING VENDORS '.

uline.

loop at it_err .

write: / it_err-accgrp under text-101,

it_err-name1 under text-102,

it_err-country under text-103,

it_err-altkn under text-104,

it_err-akont under text-105,

it_err-zterm under text-106,

it_err-remarks under text-107.

endloop.

else.

write:/ 'NO ERROR RECORDS '.

uline.

endif.

endform. " ERROR_REPORT

&----


*& Form SUCCESS_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form success_report.

new-page.

v_rep = '2'.

if not it_success[] is initial.

write:/ 'THE FOLLOWING VENDORS WERE CREATED SUCCESSFULLY'.

uline.

loop at it_success .

write: / it_success-accgrp under text-101,

it_success-name1 under text-102,

it_success-country under text-103,

it_success-altkn under text-104,

it_success-akont under text-105,

it_success-zterm under text-106,

it_success-remarks under text-107.

endloop.

else.

write:/ 'NO VENDORS WERE CREATED SUCCESSFULLY'.

uline.

endif.

endform. " SUCCESS_REPORT

*&----


*

*& Form F4_HELP

*&----


*

  • To get the file path and name

*----


form f4_help using p_f4name like rlgrap-filename.

data: dl_file like rlgrap-filename. " File Path

call function 'F4_FILENAME'

exporting

program_name = syst-cprog

dynpro_number = syst-dynnr

importing

file_name = dl_file.

if p_f4name = 'P_FILE'.

p_flnam = dl_file.

endif.

endform. " F4_HELP

&----


*& Form progress_indicator

&----


  • Progress Indicator

----


form progress_indicator.

data: v_wrk_text(100).

data: v_wrk_percent(3) type n.

if not v_no_lines is initial.

v_wrk_percent = v_wrk_tabix * 100 / v_no_lines .

endif.

write: v_wrk_percent to v_wrk_percent using edit mask '==ALPHA'.

concatenate '...' v_wrk_percent text-hd5

into v_wrk_text separated by space. "#EC NOTEXT

call function 'SAPGUI_PROGRESS_INDICATOR'

exporting

percentage = v_wrk_percent

text = v_wrk_text.

endform. " progress_indicator

Thanks

Mahesh