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: 

uploading excel sheet data

Former Member
0 Kudos

hello

plz let me know the procedure of uploading a data from excel sheet into SAP system using BDC.

plz mention the function modules invloved.

thanks

aafaq

5 REPLIES 5

former_member223537
Active Contributor
0 Kudos

Hi,

FM ALSM_EXCEL_TO_INTERNAL_TABLE can be used to upload data from Excel file to Internal table.

Best regards,

Prashant

Former Member
0 Kudos

Hi aafaqhusain,

1. GUI_UPLOAD

2. this is the FM

3. but it won't directly upload from excel file.

4. The excel file data has to be first

save as .TXT file

(TAB Delimited file)

regards,

amit m.

Former Member
0 Kudos
*&---------------------------------------------------------------------*
*& Report  ZFI_EXCEL_UPLOAD                                            *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

report  zfi_ar_oi_upload                        .
tables: scustom.
parameters: filename like rlgrap-filename memory id m01,
            begcol type i default 1 no-display,
            begrow type i default 2 no-display,
            endcol type i default 100 no-display,
            endrow type i default 32000 no-display.
* Tick don't append header
parameters: kzheader as checkbox.

data: begin of intern occurs 0.
        include structure  alsmex_tabline.
data: end of intern.

data: begin of intern1 occurs 0.
        include structure  alsmex_tabline.
data: end of intern1.

data: begin of t_col occurs 0,
       col like alsmex_tabline-col,
       size type i.
data: end of t_col.

data: zwlen type i,
      zwlines type i,
      v_file       type filetable,
      v_fileline   type file_table,
      v_rc         type i.


****************************************************************
*                DECLARATION OF BDC_DATA                       *
*                                                              *
****************************************************************

data : bdc_data like bdcdata occurs 0 with header line.
data: msgtab like bdcmsgcoll occurs 0 with header line.

data: begin of fieldnames occurs 3,
        title(60),
        table(6),
        field(10),
        kz(1),
      end of fieldnames.
* No of columns
data: begin of data_tab occurs 0,
       value_0001(50),
       value_0002(50),
       value_0003(50),
       value_0004(50),
       value_0005(50),
       value_0006(50),
       value_0007(50),
       value_0008(50),
       value_0009(50),
       value_0010(50),
       value_0011(50),
       value_0012(50),
       value_0013(50),
       value_0014(50),
       value_0015(50),
       value_0016(50),
       value_0017(50),
       value_0018(50),
       value_0019(50),
       value_0020(50),
       value_0021(50),
       value_0022(50),
       value_0023(50),
       value_0024(50),
       value_0025(50),

       value_0026(50),
       value_0027(50),
       value_0028(50),
       value_0029(50),
       value_0030(50),
       value_0031(50),
       value_0032(50),
       value_0033(50),
       value_0034(50),
       value_0035(50),
       value_0036(50),
       value_0037(50),
       value_0038(50),
       value_0039(50),
       value_0040(50),
       value_0041(50),
       value_0042(50),
       value_0043(50),
       value_0044(50),
       value_0045(50),
       value_0046(50),
       value_0047(50),
       value_0048(50),
       value_0049(50),
       value_0050(50),
       value_0051(50),
       value_0052(50),
       value_0053(50),
       value_0054(50),
       value_0055(50),
       value_0056(50),
       value_0057(50),
       value_0058(50),
       value_0059(50),
       value_0060(50),
       value_0061(50),
       value_0062(50).
data: end of data_tab.

data: begin of it_lifnr occurs 0,
        lifnr type lfa1-lifnr,
      end of it_lifnr.

data : bldate(10).
data : budate(10).
data : zfbdte(10),
       v_ddate(10).
data:  year(4),
       month(2),
       date(2),
       v_lifnr like lfa1-lifnr.

*       value_0062(50),
*       value_0063(50),
*       value_0064(50),
*       value_0065(50),
*       value_0066(50),
*       value_0067(50),
*       value_0068(50),
*       value_0069(50),
*       value_0070(50),
*       value_0071(50),
*       value_0072(50),
*       value_0073(50),
*       value_0074(50),
*       value_0075(50),
*       value_0076(50),
*       value_0077(50),
*       value_0078(50),
*       value_0079(50),
*       value_0080(50),
*       value_0081(50),
*       value_0082(50),
*       value_0083(50),
*       value_0084(50),
*       value_0085(50),
*       value_0086(50),
*       value_0087(50),
*       value_0088(50),
*       value_0089(50),
*       value_0090(50),
*       value_0091(50),
*       value_0092(50),
*       value_0093(50),
*       value_0094(50),
*       value_0095(50),
*       value_0096(50),
*       value_0097(50),
*       value_0098(50),
*       value_0099(50),
*       value_0100(50).
data: tind(4) type n.
data: zwfeld(19).

data : msg1(60).
types : begin of ttab,
         sys_id(8),
         sys_rec_id(16),
         bldat  type d, " type bkpf-bldat,
         blart(2), " type bkpf-blart,
         bukrs(4), " type bkpf-bukrs,
         budat type d,
         monat(2),
         waers(5), " type bkpf-waers,
         kursf(9), " type bkpf-kursf,
         belnr(10), "doc no.
         wwert type d, "translation date
         xblnr(16), " type bkpf-xblnr,
         inter_no(10) , "inter comp. no.
         bktxt    type bkpf-bktxt,
         pargb(4) , "trading partner BA
         newbs type rf05a-newbs,
         newko type rf05a-newko,
         newum  type rf05a-newum,
         bewar(30) , "transaction type
         wrbtr(13), "   type bseg-wrbtr,
         WMWST(13),
         ctax(1),
         mwskz(2),
         gsber    type bseg-gsber , "
         zterm   type bseg-zterm,
         zbd1t(3),
         zbd1p(5),
         zbd2t(3),
         zbd2p(5),
         abper(6), "settlemt period
         zfbdt type d, "  type bseg-zfbdt,
         sknto(13) , "dis amount
         skfbt(13) , "DISCOUNT BASE
         kidno(30), " invoice ref
         zlspr,
         zlsch,
         uzawe(2),
         zuonr   type bseg-zuonr,
         sgtxt  type bseg-sgtxt,
         newbs_01 type rf05a-newbs,
         newko_01 type rf05a-newko,
         newum_01  type rf05a-newum,
         bewar_01(30) , "transaction type
         bukrs_01(4), " type bkpf-bukrs,
         bvtyp(4),
         rstgr(3),
         hbkid(5),
         anfbn(10),
         anfbu(4),
         anfbj(4),
         hzuon(18),
         wrbtr_01(13), "  type bseg-wrbtr,
         prctr type cobl-prctr,
         pprct(10), " type bseg-pprct
*         pargb_01(4) , "trading partner BA
         zuonr_01 type bseg-zuonr,
         sgtxt_01    type bseg-sgtxt,
         newbs_02 type rf05a-newbs,
         newko_02 type rf05a-newko,
         newum_02  type rf05a-newum,
         bewar_02(30) , "transaction type
         bukrs_02(4), " type bkpf-bukrs,
         duedate type d, " Due date
        end of ttab.

data itab type ttab occurs 0 with header line.

field-symbols: <fs1>.

include zbdcrecx1.

at selection-screen on value-request for filename.
  perform get_pc_file using 1 changing filename.

*  call function 'KD_GET_FILENAME_ON_F4'
*    exporting
*      mask      = '*.xls'
*      static    = 'X'
*    changing
*      file_name = filename.

start-of-selection.

  call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    exporting
      filename                = filename
      i_begin_col             = begcol
      i_begin_row             = begrow
      i_end_col               = endcol
      i_end_row               = endrow
    tables
      intern                  = intern
    exceptions
      inconsistent_parameters = 1
      upload_ole              = 2
      others                  = 3.

  if sy-subrc <> 0.
    write:/ 'Upload Error ', sy-subrc.
  endif.

end-of-selection.

  loop at intern.
    intern1 = intern.
    clear intern1-row.
    append intern1.
  endloop.

  sort intern1 by col.
  loop at intern1.
    at new col.
      t_col-col = intern1-col.
      append t_col.
    endat.
    zwlen = strlen( intern1-value ).
    read table t_col with key col = intern1-col.
    if sy-subrc eq 0.
      if zwlen > t_col-size.
        t_col-size = zwlen.
*                          Internal Table, Current Row Index
        modify t_col index sy-tabix.
      endif.
    endif.
  endloop.

  describe table t_col lines zwlines.

  sort intern by row col.
  if kzheader = 'X'.
    loop at intern.
      fieldnames-title = intern-value.
      append fieldnames.
      at end of row.
        exit.
      endat.
    endloop.
  else.
    do zwlines times.
      write sy-index to fieldnames-title.
      append fieldnames.
    enddo.
  endif.

  sort intern by row col.
  loop at intern.
    if kzheader = 'X'
    and intern-row = 1.
      continue.
    endif.
    tind = intern-col.
    concatenate 'DATA_TAB-VALUE_' tind into zwfeld.
    assign (zwfeld) to <fs1>.
    <fs1> = intern-value.
    at end of row.
      append data_tab.
      clear data_tab.
    endat.
  endloop.

  loop at data_tab.
    ITAB-SYS_ID = DATA_TAB-VALUE_0001.
    ITAB-SYS_REC_ID = DATA_TAB-VALUE_0002.

    itab-bldat  = data_tab-value_0003.
    itab-blart  = data_tab-value_0004.
    itab-bukrs  = data_tab-value_0005.
    itab-budat  = data_tab-value_0006.
    itab-monat  = data_tab-value_0007.
    itab-waers = data_tab-value_0008.
    itab-kursf =  data_tab-value_0009.
    itab-belnr = data_tab-value_0010.

    itab-wwert  = data_tab-value_0011.
    itab-xblnr  = data_tab-value_0012.
    itab-inter_no = data_tab-value_0013.
    itab-bktxt    = data_tab-value_0014.
    itab-pargb  = data_tab-value_0015.
    itab-newbs =  data_tab-value_0016.
    itab-newko = data_tab-value_0017.
    itab-newum = data_tab-value_0018.
    itab-bewar = data_tab-value_0019.
    itab-wrbtr = data_tab-value_0020.

    itab-WMWST =  data_tab-value_0021.
    itab-ctax = data_tab-value_0022.

    itab-mwskz = data_tab-value_0023.
    itab-gsber = data_tab-value_0024.

    itab-zterm = data_tab-value_0025.
    itab-zbd1t = data_tab-value_0026.

    itab-zbd1p = data_tab-value_0027.
    itab-zbd2t = data_tab-value_0028.

    itab-zbd2p = data_tab-value_0029.

    itab-abper = data_tab-value_0030.

    itab-zfbdt = data_tab-value_0031.

    itab-sknto = data_tab-value_0032.

    itab-skfbt = data_tab-value_0033.

    itab-kidno = data_tab-value_0034.

    itab-zlspr = data_tab-value_0035.

    itab-zlsch = data_tab-value_0036.

    itab-uzawe = data_tab-value_0037.

    itab-zuonr = data_tab-value_0038.
    itab-sgtxt = data_tab-value_0039.
    itab-newbs_01 = data_tab-value_0040.

    itab-newko_01 = data_tab-value_0041.

    itab-newum_01 = data_tab-value_0042.

    itab-bewar_01 = data_tab-value_0043.
    itab-bukrs_01 = data_tab-value_0044.

    itab-bvtyp = data_tab-value_0045.

    itab-rstgr = data_tab-value_0046.

    itab-hbkid = data_tab-value_0047.

    itab-anfbn = data_tab-value_0048.

    itab-anfbu = data_tab-value_0049.

    itab-anfbj = data_tab-value_0050.

    itab-hzuon = data_tab-value_0051.

    itab-wrbtr_01 = data_tab-value_0052.

    itab-prctr = data_tab-value_0053.

*    itab-pargb_01 =  data_tab-value_0054.
    itab-pprct =  data_tab-value_0054.

    itab-zuonr_01 = data_tab-value_0055.
    itab-sgtxt_01   = data_tab-value_0056.
    itab-newbs_02 = data_tab-value_0057.
    itab-newko_02 = data_tab-value_0058.
    itab-newum_02  = data_tab-value_0059.
    itab-bewar_02 = data_tab-value_0060.
    itab-bukrs_02 = data_tab-value_0061.
    itab-duedate = data_tab-value_0062.

    append itab.
    clear itab.
  endloop.
*  perform genarate.

* Checking if Vendor is Service vendor or not i.e. if With Holding Tax
* is activated or not
select lifnr
       from lfbw
       into table it_lifnr
       for all entries in itab
       where bukrs = itab-bukrs.
if sy-subrc = 0.
  sort it_lifnr by lifnr.
endif.

  perform open_group.
loop at itab.
clear bldate.
clear budate.
clear: zfbdte,
       v_ddate.


  if not it_lifnr[] is initial.
    clear: it_lifnr.
    read table it_lifnr with key lifnr = itab-newko
                                 binary search
                                 transporting lifnr.
    if sy-subrc = 0.
      v_lifnr = it_lifnr-lifnr.
    endif.
  endif.

write itab-bldat to bldate.
* year =  itab-bldat+0(4).
* month = itab-bldat+4(2).
* date = itab-bldat+6(2).
* concatenate  month date year into bldate separated by '/'.


write itab-budat to budate.
* year =  itab-budat+0(4).
* month =  itab-budat+4(2).
* date = itab-budat+6(2).
* concatenate  month date year into budate separated by '/'.

write itab-zfbdt to zfbdte.
* year =  itab-zfbdt+0(4).
* month =  itab-zfbdt+4(2).
* date = itab-zfbdt+6(2).
* concatenate  month date year into zfbdte separated by '/'.

 if not itab-newum is initial.
* Formatting Due Date
   write itab-duedate to v_ddate.
*   year =  itab-duedate+0(4).
*   month = itab-duedate+4(2).
*   date = itab-duedate+6(2).
*   concatenate  month date year into v_ddate separated by '/'.
 endif.

  refresh bdc_data.
  clear bdc_data.

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

  perform bdc_dynpro      using 'SAPMF05A' '0100'.
  perform bdc_field       using 'BDC_CURSOR'
                                'RF05A-NEWKO'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.

  perform bdc_field       using 'BKPF-BLDAT'
                                bldate.
  perform bdc_field       using 'BKPF-BLART'
                                itab-blart.
  perform bdc_field       using 'BKPF-BUKRS'
                                itab-bukrs.
  perform bdc_field       using 'BKPF-BUDAT'
                                budate.
  perform bdc_field       using 'BKPF-MONAT'
                                itab-monat.
  perform bdc_field       using 'BKPF-WAERS'
                                itab-waers.
  perform bdc_field       using 'BKPF-KURSF'
                                itab-kursf.
  perform bdc_field       using 'BKPF-XBLNR'
                                itab-xblnr.
  perform bdc_field       using 'FS006-DOCID'
                                '*'.
  perform bdc_field       using 'RF05A-NEWBS'
                                itab-newbs.
  perform bdc_field       using 'RF05A-NEWKO'
                                itab-newko.
  if not itab-newum is initial.
    perform bdc_field       using 'RF05A-NEWUM'
                                  itab-newum.
  endif.
  if not itab-newum is initial.
    if itab-newum = 'A'.
      perform bdc_dynpro      using 'SAPMF05A' '0304'.
    elseif itab-newum = 'M' or itab-newum = 'Z' or itab-newum = 'L' or itab-newum = 'K' or itab-newum = 'Y'.
      perform bdc_dynpro      using 'SAPMF05A' '0303'.
    elseif itab-newum = 'W'.
      perform bdc_dynpro      using 'SAPMF05A' '2320'.
    endif.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  itab-wrbtr.
    perform bdc_field       using 'BSEG-ZUONR'
                                  itab-zuonr.
    perform bdc_field       using 'BSEG-SGTXT'
                                  itab-sgtxt  .
    perform bdc_field       using 'BSEG-ZFBDT'
                                   v_ddate.
    perform bdc_field       using 'RF05A-NEWBS'
                                   itab-newbs_01.
    perform bdc_field       using 'RF05A-NEWKO'
                                   itab-newko_01.
  endif.
  if itab-newum is initial.
    perform bdc_dynpro      using 'SAPMF05A' '0302'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  itab-wrbtr.
* Changes to add TEXT and ALLOCATION
    perform bdc_field       using 'BSEG-ZUONR'
                                  itab-zuonr.
    perform bdc_field       using 'BSEG-SGTXT'
                                  itab-sgtxt  .
* End
    perform bdc_field       using 'BSEG-MWSKZ'
                                  '**'.
    perform bdc_field       using 'BSEG-ZTERM'
                                  itab-zterm.
    perform bdc_field       using 'BSEG-ZFBDT'
                                   zfbdte.
    perform bdc_field       using 'RF05A-NEWBS'
                                  itab-newbs_01.
    perform bdc_field       using 'RF05A-NEWKO'
                                  itab-newko_01.
  endif.
  if not v_lifnr is initial.
    perform bdc_dynpro      using 'SAPLFWTD' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'WITH_ITEM-WT_WITHCD(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=GO'.
  endif.
  perform bdc_dynpro      using 'SAPMF05A' '0300'.
  perform bdc_field       using 'BDC_CURSOR'
                                'BSEG-SGTXT'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=BU'.

  perform bdc_field       using 'BSEG-WRBTR'
                                itab-wrbtr_01.
* Changes to add ALLOCATION
  perform bdc_field       using 'BSEG-ZUONR'
                                itab-zuonr_01.
* End
  perform bdc_field       using 'BSEG-SGTXT'
                                itab-sgtxt_01.
*  perform bdc_field       using 'DKACB-FMORE'
*                                'X'.

  perform bdc_dynpro      using 'SAPLKACB' '0002'.
  perform bdc_field       using 'BDC_CURSOR'
                                'COBL-PRCTR'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=ENTE'.
  perform bdc_field       using 'COBL-PRCTR'
                                itab-prctr.
  perform bdc_field       using 'COBL-PPRCTR'
                                itab-pprct.
  perform bdc_transaction using 'F-43'.

  clear: v_lifnr.
endloop.


perform close_group.

*&---------------------------------------------------------------------*
*&      Form  get_pc_file
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_1      text
*      <--P_FILENAME  text
*----------------------------------------------------------------------*
form get_pc_file  using    p_index
                  changing filename.

call method cl_gui_frontend_services=>file_open_dialog
    exporting
      window_title = 'Select the file to be processed...'
    changing
      file_table   = v_file
      rc           = v_rc.

  if sy-subrc = 0.
    read table v_file into v_fileline index p_index.
  endif.
  filename = v_fileline.


endform.                    " get_pc_file

Former Member
0 Kudos

HI

GOOD

AS PER YOUR REQUIREMENT HERE IS SOME FUNCTION MODULE AND THEIR DETAILS

FUNCTION MODULE

-


UPLOAD

WS_ULOAD.

GUI_UPLOAD,

BDC SESSION

-


BDC_START

BDC_OPEN

BDC_CLOSE

=================

GO THROUGH THIS REPORT =>

TABLES: Y001.

7

8 CONSTANTS: C_PATH(14) VALUE '/home/ftpuser/'.

9

10 DATA: BEGIN OF C_TAB,

11 X(1) TYPE X VALUE '09',

12 END OF C_TAB.

13

14 DATA: BUFFER(8000),

15 FIELDNAME_OFFSET TYPE I,

16 * FULLPATH(128),

17 FULLPATH LIKE SXPGCOLIST-PARAMETERS,

18 * CMDFULLPATH(128),

19 CMDFULLPATH LIKE SXPGCOLIST-PARAMETERS,

20 CMD(40),

21 IBTCXPM LIKE BTCXPM OCCURS 0.

22

23 FUNCTION Z_DOWNLOAD.

24 *"----


25 ""Local interface:

26 *" IMPORTING

27 *" VALUE(FILENAME)

28 *" VALUE(LOCATION)

29 *" TABLES

30 *" DATA_TAB

31 *" FIELDNAMES OPTIONAL

32 *"----


33

34 DATA: WS_LINE TYPE I.

35

36 FIELD-SYMBOLS: <F>.

37

38 CHECK NOT FILENAME IS INITIAL.

39

40 CONCATENATE C_PATH FILENAME INTO FULLPATH.

41 OPEN DATASET FULLPATH IN TEXT MODE FOR OUTPUT.

42

43 DESCRIBE TABLE FIELDNAMES LINES WS_LINE.

44 IF WS_LINE NE 0.

45 PERFORM FIELDNAMES_2_BUFFER TABLES FIELDNAMES CHANGING BUFFER.

46 FIELDNAME_OFFSET = STRLEN( BUFFER ).

47 TRANSFER BUFFER TO FULLPATH LENGTH FIELDNAME_OFFSET.

48 ENDIF.

49

50 LOOP AT DATA_TAB.

51 CLEAR BUFFER.

52 CLEAR FIELDNAME_OFFSET.

53 DO.

54 ASSIGN COMPONENT SY-INDEX OF STRUCTURE DATA_TAB TO <F>.

55 IF SY-SUBRC NE 0. EXIT. ENDIF.

56 WRITE <F> TO BUFFER+FIELDNAME_OFFSET.

57 CONDENSE BUFFER.

58 FIELDNAME_OFFSET = STRLEN( BUFFER ).

59 WRITE C_TAB TO BUFFER+FIELDNAME_OFFSET(1).

60 ADD 1 TO FIELDNAME_OFFSET.

61 ENDDO.

62 TRANSFER BUFFER TO FULLPATH LENGTH FIELDNAME_OFFSET.

63 ENDLOOP.

64

65 CLOSE DATASET FULLPATH.

66

67 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

68 EXPORTING

69 COMMANDNAME = 'ZCHMOD'

70 ADDITIONAL_PARAMETERS = FULLPATH

71 TABLES

72 EXEC_PROTOCOL = IBTCXPM

73 EXCEPTIONS

74 NO_PERMISSION = 1

75 COMMAND_NOT_FOUND = 2

76 PARAMETERS_TOO_LONG = 3

77 SECURITY_RISK = 4

78 WRONG_CHECK_CALL_INTERFACE = 5

79 PROGRAM_START_ERROR = 6

80 PROGRAM_TERMINATION_ERROR = 7

81 X_ERROR = 8

82 PARAMETER_EXPECTED = 9

83 TOO_MANY_PARAMETERS = 10

84 ILLEGAL_COMMAND = 11

85 WRONG_ASYNCHRONOUS_PARAMETERS = 12

86 CANT_ENQ_TBTCO_ENTRY = 13

87 JOBCOUNT_GENERATION_ERROR = 14

88 OTHERS = 15.

89

90 CONCATENATE C_PATH FILENAME '_cmd' INTO CMDFULLPATH.

91 OPEN DATASET CMDFULLPATH IN TEXT MODE FOR OUTPUT.

92 CASE LOCATION. "location A, B, C, D on a network

93 WHEN 'A '.

94

95 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

96 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

97 WHEN 'B '.

98 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

99 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

100 when 'C '.

101 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

102 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

103 when 'D '.

104 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

105 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

106 WHEN OTHERS.

107 ENDCASE.

108

109

110

111

112 *start>

113 CLEAR Y001.

114 SELECT SINGLE Y_PATH INTO Y001-Y_PATH

115 FROM Y001 WHERE BNAME = SY-UNAME

116 AND Y_SITE = LOCATION.

117 TRANSFER Y001-Y_PATH TO CMDFULLPATH.

118 *<end

119 CONCATENATE 'lcd' C_PATH INTO CMD SEPARATED BY SPACE.

120 TRANSFER CMD TO CMDFULLPATH.

121 CLEAR CMD.

122 CONCATENATE 'put' FILENAME INTO CMD SEPARATED BY SPACE.

123 TRANSFER CMD TO CMDFULLPATH.

124 TRANSFER 'bye' TO CMDFULLPATH.

125 CLOSE DATASET CMDFULLPATH.

126

127 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

128 EXPORTING

129 COMMANDNAME = 'ZCHMOD'

130 ADDITIONAL_PARAMETERS = CMDFULLPATH

131 TABLES

132 EXEC_PROTOCOL = IBTCXPM

133 EXCEPTIONS

134 NO_PERMISSION = 1

135 COMMAND_NOT_FOUND = 2

136 PARAMETERS_TOO_LONG = 3

137 SECURITY_RISK = 4

138 WRONG_CHECK_CALL_INTERFACE = 5

139 PROGRAM_START_ERROR = 6

140 PROGRAM_TERMINATION_ERROR = 7

141 X_ERROR = 8

142 PARAMETER_EXPECTED = 9

143 TOO_MANY_PARAMETERS = 10

144 ILLEGAL_COMMAND = 11

145 WRONG_ASYNCHRONOUS_PARAMETERS = 12

146 CANT_ENQ_TBTCO_ENTRY = 13

147 JOBCOUNT_GENERATION_ERROR = 14

148 OTHERS = 15.

149

150 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

151 EXPORTING

152 COMMANDNAME = 'ZFTP'

153 ** commandname = 'ZFTP'

154 ADDITIONAL_PARAMETERS = CMDFULLPATH

155 TABLES

156 EXEC_PROTOCOL = IBTCXPM

157 EXCEPTIONS

158 NO_PERMISSION = 1

159 COMMAND_NOT_FOUND = 2

160 PARAMETERS_TOO_LONG = 3

161 SECURITY_RISK = 4

162 WRONG_CHECK_CALL_INTERFACE = 5

163 PROGRAM_START_ERROR = 6

164 PROGRAM_TERMINATION_ERROR = 7

165 X_ERROR = 8

166 PARAMETER_EXPECTED = 9

167 TOO_MANY_PARAMETERS = 10

168 ILLEGAL_COMMAND = 11

169 WRONG_ASYNCHRONOUS_PARAMETERS = 12

170 CANT_ENQ_TBTCO_ENTRY = 13

171 JOBCOUNT_GENERATION_ERROR = 14

172 OTHERS = 15.

173

174 ENDFUNCTION.

175

176 ----


177 * FORM FIELDNAMES_2_BUFFER *

178 ----


179 * ........ *

180 ----


181 * --> FIELDNAMES *

182 * --> BUFFER *

183 ----


184 FORM FIELDNAMES_2_BUFFER TABLES FIELDNAMES CHANGING BUFFER.

185 CLEAR BUFFER.

186 CLEAR FIELDNAME_OFFSET.

187 LOOP AT FIELDNAMES.

188 WRITE FIELDNAMES TO BUFFER+FIELDNAME_OFFSET.

189 CONDENSE BUFFER.

190 FIELDNAME_OFFSET = STRLEN( BUFFER ).

191 WRITE C_TAB TO BUFFER+FIELDNAME_OFFSET(1).

192 ADD 1 TO FIELDNAME_OFFSET.

193 ENDLOOP.

194 FIELDNAME_OFFSET = FIELDNAME_OFFSET - 1.

195 IF FIELDNAME_OFFSET >= 0.

196 WRITE SPACE TO BUFFER+FIELDNAME_OFFSET(1).

197 ENDIF.

198 ENDFORM.

THANKS

MRUTYUN

Former Member
0 Kudos

thankx