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

Upload and download programs

Former Member
0 Likes
983

Could anyone send me an upload and download programs(excel sheet) in BDC's

Thanks in Advance

Could anyone send me an upload and download programs(excel sheet) in BDC's

Thanks in Advance

5 REPLIES 5
Read only

Former Member
0 Likes
904

If you want to upload data from excel ..first you have to upload the data to internal table using FM: ALSM_EXCEL_TO_INTERNAL_TABLE.

If yopu want to download the data into excel just put .xsl extension within GUI_DOWNLOAD function module parameters.

Reward if it useful.

Dara.

Read only

Former Member
0 Likes
904

See this sample program.(To upload into Internal Table)

REPORT ZEXCEL .

Structure for Final Internal Table

TYPES: BEGIN OF TY_FINAL,

MATNR LIKE RC29N-MATNR, "Material BOM

WERKS LIKE RC29N-WERKS, "Plant

STLAN LIKE RC29N-STLAN, "BOM Usage

STLAL LIKE RC29N-STLAL, "Alternative BOM

DATUV LIKE RC29N-DATUV, "Valid-From Date

ZTEXT LIKE RC29K-ZTEXT, "BOM text

POSTP LIKE RC29P-POSTP, "Item category (bill of

"material)

IDNRK LIKE RC29P-IDNRK, "BOM component

MENGE(16), "Component quantity

END OF TY_FINAL.

DATA: I_FINAL TYPE STANDARD TABLE OF TY_FINAL WITH HEADER LINE.

data: i_BDCDATA like bdcdata occurs 0 with header line.

DATA: BEGIN OF IEXCEL OCCURS 0.

INCLUDE STRUCTURE ALSMEX_TABLINE.

DATA: END OF IEXCEL.

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

PERFORM SHOW_HELP_FOR_P_FILE.

START-OF-SELECTION.

PERFORM GET_FILE.

PERFORM F_FILL_BDCDATA.

PERFORM F_SESSION.

END-OF-SELECTION.

PERFORM DISPLAY_DATA.

&----


*& Form SHOW_HELP_FOR_P_FILE

&----


FORM SHOW_HELP_FOR_P_FILE.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

PROGRAM_NAME = SYST-REPID

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

STATIC = ' '

MASK = ' '

CHANGING

FILE_NAME = P_FILE

EXCEPTIONS

MASK_TOO_LONG = 1

OTHERS = 2.

IF SY-SUBRC 0.

EXIT.

ENDIF.

ENDFORM. " SHOW_HELP_FOR_P_FILE

&----


*& Form GET_FILE

&----


FORM GET_FILE.

DATA: V_LEN TYPE I.

SHIFT P_FILE RIGHT DELETING TRAILING SPACE.

V_LEN = STRLEN( P_FILE ).

V_LEN = V_LEN - 3.

IF ( P_FILEV_LEN(3) EQ 'xls' OR P_FILEV_LEN(3) EQ 'XLS' ) .

Get all the details from the Excel file

SHIFT P_FILE LEFT DELETING LEADING SPACE.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = P_FILE

I_BEGIN_COL = 1

I_BEGIN_ROW = 1

I_END_COL = 9

I_END_ROW = 100

TABLES

INTERN = IEXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

SORT IEXCEL BY ROW COL.

LOOP AT IEXCEL.

IF IEXCEL-COL = '0001'.

I_FINAL-MATNR = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0002'.

I_FINAL-WERKS = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0003'.

I_FINAL-STLAN = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0004'.

I_FINAL-STLAL = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0005'.

I_FINAL-DATUV = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0006'.

I_FINAL-ZTEXT = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0007'.

I_FINAL-POSTP = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0008'.

I_FINAL-IDNRK = IEXCEL-VALUE.

ENDIF.

IF IEXCEL-COL = '0009'.

I_FINAL-MENGE = IEXCEL-VALUE.

ENDIF.

AT END OF ROW.

APPEND I_FINAL.

CLEAR I_FINAL.

ENDAT.

ENDLOOP.

ENDIF.

ENDFORM. " GET_FILE

&----


*& Form DISPLAY_DATA

&----


text

-


--> p1 text

<-- p2 text

-


FORM DISPLAY_DATA.

LOOP AT I_FINAL.

WRITE: /1(18) I_FINAL-MATNR, "Material BOM

19(4) I_FINAL-WERKS, "Plant

24(1) I_FINAL-STLAN, "BOM Usage

26(2) I_FINAL-STLAL, "Alternative BOM

29(8) I_FINAL-DATUV, "Valid-From Date

40(40) I_FINAL-ZTEXT, "BOM text

81(1) I_FINAL-POSTP, "Item category (bill of

"material)

82(18) I_FINAL-IDNRK, "BOM component

101(13) I_FINAL-MENGE RIGHT-JUSTIFIED. "Component

"quantity

ENDLOOP.

ENDFORM. " DISPLAY_DATA

Download to excel:

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

code

REPORT ztablexls.

TABLES: USR03,DD02L.

DATA: ZX030L LIKE X030L.

DATA BEGIN OF ZDFIES OCCURS 0.

INCLUDE STRUCTURE DFIES.

DATA END OF ZDFIES.

DATA: BEGIN OF FLDITAB OCCURS 0,

FLDNAME(11) TYPE C,

END OF FLDITAB.

DATA ITABUSR03 LIKE USR03 OCCURS 0 WITH HEADER LINE.

DATA TNAME LIKE DD02L-TABNAME.

SELECT * FROM USR03 INTO TABLE ITABUSR03.

TNAME = 'USR03'.

PERFORM GETFIELEDS.

PERFORM SHOW123.

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

FORM GETFIELEDS.

CALL FUNCTION 'GET_FIELDTAB'

EXPORTING

LANGU = SY-LANGU

ONLY = SPACE

TABNAME = TNAME

WITHTEXT = 'X'

IMPORTING

HEADER = ZX030L

TABLES

FIELDTAB = ZDFIES

EXCEPTIONS

INTERNAL_ERROR = 01

NO_TEXTS_FOUND = 02

TABLE_HAS_NO_FIELDS = 03

TABLE_NOT_ACTIV = 04.

CASE SY-SUBRC.

WHEN 0.

LOOP AT ZDFIES.

FLDITAB-FLDNAME = ZDFIES-FIELDNAME.

APPEND FLDITAB.

ENDLOOP.

WHEN OTHERS.

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

with SY-SUBRC.

ENDCASE.

ENDFORM.

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

FORM SHOW123.

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

FILE_NAME = 'C:\USR03.XLS'

DATA_SHEET_NAME = 'USER LIST'

TABLES

DATA_TAB = ITABUSR03

FIELDNAMES = FLDITAB

EXCEPTIONS

FILE_NOT_EXIST = 1

FILENAME_EXPECTED = 2

COMMUNICATION_ERROR = 3

OLE_OBJECT_METHOD_ERROR = 4

OLE_OBJECT_PROPERTY_ERROR = 5

INVALID_FILENAME = 6

INVALID_PIVOT_FIELDS = 7

DOWNLOAD_PROBLEM = 8

OTHERS = 9.

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.

Reward points..

Read only

0 Likes
904

Reward points..

Read only

venkat_o
Active Contributor
0 Likes
904

Hi krishna, Here are the sample programs to upload and download excel file. 1. Upload Excel data. We can use the Function module TEXT_CONVERT_XLS_TO_SAP to read the Excel file into the internal table. From this internal table you can fill the target internal table.


  report  zvenkat-upload-xl  no standard page heading.
"----------------------------------------------------------------------
"Declarations.
"----------------------------------------------------------------------
"types
types:
      begin of t_bank_det,
        pernr(8)  type c,
        bnksa(4)  type c,
        zlsch(1)  type c,
        bkplz(10) type c,
        bkort(25) type c,
        bankn(18) type c,
      end of t_bank_det.
"work areas
data:
      w_bank_det type t_bank_det.
"internal tables
data:
      i_bank_det type table of t_bank_det.
"---------------------------------------------------------------------
" selection-screen
"----------------------------------------------------------------------
selection-screen begin of block b1 with frame title text_001.
parameters p_file type localfile.
selection-screen end of block b1.
*---------------------------------------------------------------------
"At selection-screen on value-request for p_file.
*---------------------------------------------------------------------
at selection-screen on value-request for p_file.
  perform f4_help.
*---------------------------------------------------------------------
  "Start-of-selection.
*---------------------------------------------------------------------
start-of-selection.
  perform upload_data.
*---------------------------------------------------------------------
  "End-of-selection.
*---------------------------------------------------------------------
end-of-selection.
  perform display_data.
*&---------------------------------------------------------------------*
  "Form  f4_help
*&---------------------------------------------------------------------*
form f4_help .
  data:
        l_file_name like  ibipparms-path  .

  call function 'F4_FILENAME'
    exporting
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
      field_name    = 'P_FILE'
    importing
      file_name     = l_file_name.

  p_file = l_file_name.

endform.                                                    " f4_help
*---------------------------------------------------------------------*
"Form  upload_data
*---------------------------------------------------------------------*
form upload_data .
  type-pools:truxs.
  data:li_tab_raw_data type  truxs_t_text_data.
  data:l_filename      like  rlgrap-filename.

  l_filename = p_file.
  call function 'TEXT_CONVERT_XLS_TO_SAP'
    exporting
      i_tab_raw_data       = li_tab_raw_data
      i_filename           = l_filename
    tables
      i_tab_converted_data = i_bank_det
    exceptions
      conversion_failed    = 1
      others               = 2.
  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.                    " upload_data
*---------------------------------------------------------------------*
" Form  display_data
*---------------------------------------------------------------------*
form display_data .
  data: char100 type char100.
  loop at i_bank_det into w_bank_det .
    if sy-tabix = 1.
      write w_bank_det.
      write / '------------------------------------------------------------'.
    else.
      write / w_bank_det.
    endif.
  endloop.

endform.                    " display_data 
2.* Download data into Excel file* Use the function module SAP_CONVERT_TO_XLS_FORMAT to download the internal table to an excel file.

 
  DATA: t100_lines TYPE STANDARD TABLE OF t001 WITH DEFAULT KEY.

PARAMETERS: p_file LIKE rlgrap-filename DEFAULT 'c:\tmp\test.xls'.
SELECT * FROM t001
  INTO TABLE t100_lines.

CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
  EXPORTING
    i_filename     = p_file
  TABLES
    i_tab_sap_data = t100_lines. 
I hope that those programs help u . Regards, Venkat.O

Read only

Former Member
0 Likes
904

Hi Krishna,

try this code it may be helps to you,

----


  • Report Name : ZBDC_CR01 *

  • Description : This program will upload Work Center Details *

  • Data Transfer type : BDC *

  • Date : 03.04.2008 *

  • Created by : Ravi Kumar.S *

----


report ZBDC_CR01 no standard page heading line-size 255.

&----


&

& Internal Table Declaration &

&----


&

Types: begin of typ_out,

arbpl type rc68a-arbpl, "work centre code

werks type rc68a-werks, "plant

verwe(4), "Resourse category

stext type p1000-stext, "work center description

veran(3), "person responsible

stand type p3000-stand, "Location

planv1(3), "usage

vgwts1 type p3000-vgwts, "standard value key

steus type p3003-steus, "control key

vgexx1(3) type c, "UOM1

vgexx2(3) type c, "UOM2

vgexx3(3) type c, "UOM3

vgexx4(3) type c, "UOM4

pic(5) type c, "pic

planv2 type p3000-planv, "Usage

vgwts2 type p3000-vgwts, "Standard value key

kapart1(3), "Capacity category1

  • palnr type kako-planr, "Planner Group

mosid(2) type c, "shift Grouping

kalid(2) type c, "Factory calendar ID

meins1(3) type c, "UOM5

begzt(08), "Start time

endzt(08), "Finish time

ngrad type kako-ngrad, "Capacity utilization

aznor(03), "Number of individual capacities

meins2 type kako-Meins, "UOM6

datuv type kaza-datuv, "valid from

datub type kaza-datub, "valid to

sprog type kaza-sprog, "shift sequence

kapart2 type rc68a-kapart, "sechdule category2

fort1 type p3005-fort1, "setup Formula

fort2 type p3005-fort2, "Processing Formula

kostl type crkeyk-kostl, "Cost Center

larxx1 type rc68a-larxx, "Activity Type 1

leinh1 type rc68a-leinh, "Activity Unit 1

forxx1 type rc68a-forxx, "Formula key 1

larxx2 type rc68a-larxx, "Activity Type 2

leinh2 type rc68a-leinh, "Activity Unit 2

forxx2 type rc68a-forxx, "Formula key 2

larxx3 type rc68a-larxx, "Activity Type 3

leinh3 type rc68a-leinh, "Activity Unit 3

forxx3 type rc68a-forxx, "Formula key 3

larxx4 type rc68a-larxx, "Activity Type 4

leinh4 type rc68a-leinh, "Activity Unit 4

forxx4 type rc68a-forxx, "Formula key 4

end of typ_out.

DATA: TA_CR01 type standard table of typ_out initial size 0,

WA_CR01 type typ_out.

Data: ta_excel type standard table of alsmex_tabline initial size 0,

wa_excel type alsmex_tabline.

    • >>> For Work Center Upload

Data: ta_bdcdata type standard table of bdcdata ,

wa_bdcdata type bdcdata,

ta_bdcmessage type table of bdcmsgcoll,

wa_bdcmessage type bdcmsgcoll.

Data: tp_currentrow type i.

constants : cn_batch(4) type c value 'CR01',

cn_tcode(4) type c value 'CR01' .

&----


&

& Selection Screen &

----


&

SELECTION-SCREEN : BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

PARAMETERS : PA_FILE TYPE IBIPPARMS-PATH OBLIGATORY.

SELECTION-SCREEN : END OF BLOCK BLK1 .

----


&

  • At Selection-Screen &*

----


&

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

FIELD_NAME = 'PA_FILE'

IMPORTING

FILE_NAME = PA_FILE.

&----


&

& Start Of Selection &

&----


&

start-of-selection.

perform upload.

perform bdc_open.

perform bdc_screens .

perform bdc_close.

call transaction 'SM35'.

&----


*& Form upload

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM upload .

call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = PA_FILE

i_begin_col = 2

i_begin_row = 2

i_end_col = 255

i_end_row = 65000

TABLES

intern = ta_excel

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 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.

  • Sorting table by Rows and Columns.

SORT TA_EXCEL BY ROW COL.

  • Get First ROW retrieved.

READ TABLE ta_excel into wa_excel INDEX 1.

  • Set First Row retrieved to Current Row

TP_CURRENTROW = wa_excel-row.

loop at ta_excel into wa_excel.

  • Reset Values for Next Row

IF WA_EXCEL-ROW NE TP_CURRENTROW.

APPEND WA_CR01 TO TA_CR01.

CLEAR WA_CR01.

TP_CURRENTROW = WA_EXCEL-ROW.

ENDIF.

CASE WA_EXCEL-COL.

WHEN '0001'.

WA_CR01-ARBPL = WA_EXCEL-VALUE.

WHEN '0002'.

WA_CR01-WERKS = WA_EXCEL-VALUE.

WHEN '0003'.

WA_CR01-VERWE = WA_EXCEL-VALUE.

WHEN '0004'.

WA_CR01-STEXT = WA_EXCEL-VALUE.

WHEN '0005'.

WA_CR01-VERAN = WA_EXCEL-VALUE.

WHEN '0006'.

WA_CR01-STAND = WA_EXCEL-VALUE.

WHEN '0007'.

WA_CR01-PLANV1 = WA_EXCEL-VALUE.

WHEN '0008'.

WA_CR01-VGWTS1 = WA_EXCEL-VALUE.

WHEN '0009'.

WA_CR01-STEUS = WA_EXCEL-VALUE.

WHEN '0010'.

WA_CR01-VGEXX1 = WA_EXCEL-VALUE.

WHEN '0011'.

WA_CR01-VGEXX2 = WA_EXCEL-VALUE.

WHEN '0012'.

WA_CR01-VGEXX3 = WA_EXCEL-VALUE.

WHEN '0013'.

WA_CR01-VGEXX4 = WA_EXCEL-VALUE.

WHEN '0014'.

WA_CR01-PIC = WA_EXCEL-VALUE.

WHEN '0015'.

WA_CR01-PLANV2 = WA_EXCEL-VALUE.

WHEN '0016'.

WA_CR01-VGWTS2 = WA_EXCEL-VALUE.

WHEN '0017'.

WA_CR01-KAPART1 = WA_EXCEL-VALUE.

  • WHEN '0000'.

  • WA_CR01-PLANR = WA_EXCEL-VALUE.

WHEN '0018'.

WA_CR01-MOSID = WA_EXCEL-VALUE.

WHEN '0019'.

WA_CR01-KALID = WA_EXCEL-VALUE.

WHEN '0020'.

WA_CR01-MEINS1 = WA_EXCEL-VALUE.

WHEN '0021'.

WA_CR01-BEGZT = WA_EXCEL-VALUE.

WHEN '0022'.

WA_CR01-ENDZT = WA_EXCEL-VALUE.

WHEN '0023'.

WA_CR01-NGRAD = WA_EXCEL-VALUE.

WHEN '0024'.

WA_CR01-AZNOR = WA_EXCEL-VALUE.

WHEN '0025'.

WA_CR01-MEINS2 = WA_EXCEL-VALUE.

WHEN '0026'.

WA_CR01-DATUV = WA_EXCEL-VALUE.

WHEN '0027'.

WA_CR01-DATUB = WA_EXCEL-VALUE.

WHEN '0028'.

WA_CR01-SPROG = WA_EXCEL-VALUE.

WHEN '0029'.

WA_CR01-KAPART2 = WA_EXCEL-VALUE.

WHEN '0030'.

WA_CR01-FORT1 = WA_EXCEL-VALUE.

WHEN '0031'.

WA_CR01-FORT2 = WA_EXCEL-VALUE.

WHEN '0032'.

WA_CR01-KOSTL = WA_EXCEL-VALUE.

WHEN '0033'.

WA_CR01-LARXX1 = WA_EXCEL-VALUE.

WHEN '0034'.

WA_CR01-LEINH1 = WA_EXCEL-VALUE.

WHEN '0035'.

WA_CR01-FORXX1 = WA_EXCEL-VALUE.

WHEN '0036'.

WA_CR01-LARXX2 = WA_EXCEL-VALUE.

WHEN '0037'.

WA_CR01-LEINH2 = WA_EXCEL-VALUE.

WHEN '0038'.

WA_CR01-FORXX2 = WA_EXCEL-VALUE.

WHEN '0039'.

WA_CR01-LARXX3 = WA_EXCEL-VALUE.

WHEN '0040'.

WA_CR01-LEINH3 = WA_EXCEL-VALUE.

WHEN '0041'.

WA_CR01-FORXX3 = WA_EXCEL-VALUE.

WHEN '0042'.

WA_CR01-LARXX4 = WA_EXCEL-VALUE.

WHEN '0043'.

WA_CR01-LEINH4 = WA_EXCEL-VALUE.

WHEN '0044'.

WA_CR01-FORXX4 = WA_EXCEL-VALUE.

ENDCASE.

ENDLOOP.

append wa_cr01 to ta_cr01.

ENDFORM. " upload

&----


*& Form bdc_open

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM bdc_open .

call function 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

  • DEST = FILLER8

GROUP = 'CR01'

  • HOLDDATE = FILLER8

KEEP = 'X'

USER = SY-UNAME

  • RECORD = FILLER1

  • PROG = SY-CPROG

*

  • 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.

ENDFORM. " bdc_open

&----


*& Form bdc_screens

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM bdc_screens .

loop at ta_cr01 into wa_cr01.

refresh ta_bdcdata.

perform bdc_dynpro using 'SAPLCRA0' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RC68A-VERWE'.

perform bdc_field using 'BDC_OKCODE'

'=NEXT'.

perform bdc_field using 'RC68A-WERKS'

wa_cr01-werks.

perform bdc_field using 'RC68A-ARBPL'

wa_cr01-arbpl.

perform bdc_field using 'RC68A-VERWE'

wa_cr01-verwe.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=VORA'.

perform bdc_field using 'P1000-STEXT'

wa_cr01-stext.

perform bdc_field using 'BDC_CURSOR'

'P3000-VGWTS'.

perform bdc_field using 'P3000-VERAN'

wa_cr01-veran.

perform bdc_field using 'P3000-STAND'

wa_cr01-stand.

perform bdc_field using 'P3000-PLANV'

wa_cr01-planv1.

perform bdc_field using 'P3000-VGWTS'

wa_cr01-vgwts1.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=KAUE'.

perform bdc_field using 'BDC_CURSOR'

'RC68A-VGEXX(04)'.

perform bdc_field using 'P3003-STEUS'

wa_cr01-steus.

perform bdc_field using 'P3003-STEUS_REF'

'X'.

perform bdc_field using 'RC68A-VGEXX(01)'

wa_cr01-vgexx1.

perform bdc_field using 'RC68A-VGEXX(02)'

wa_cr01-vgexx2.

perform bdc_field using 'RC68A-VGEXX(03)'

wa_cr01-vgexx3.

perform bdc_field using 'RC68A-VGEXX(04)'

wa_cr01-vgexx4.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=KAKO'.

perform bdc_field using 'BDC_CURSOR'

'RC68A-KAPART(01)'.

perform bdc_field using 'RC68A-KAPART(01)'

wa_cr01-kapart1.

perform bdc_dynpro using 'SAPLCRK0' '0101'.

perform bdc_field using 'BDC_OKCODE'

'=KAZA'.

  • perform bdc_field using 'KAKT-KTEXT'

  • wa_cr01-ktext.

  • perform bdc_field using 'KAKO-PLANR'

  • 'wei'.

perform bdc_field using 'KAKO-MOSID'

wa_cr01-mosid.

perform bdc_field using 'RC68K-BEGZT'

wa_cr01-begzt.

perform bdc_field using 'RC68K-ENDZT'

wa_cr01-endzt.

perform bdc_field using 'KAKO-NGRAD'

wa_cr01-ngrad.

  • perform bdc_field using 'RC68K-PAUSE'

  • wa_cr01-pause.

perform bdc_field using 'KAKO-AZNOR'

wa_cr01-aznor.

perform bdc_field using 'KAKO-KALID'

wa_cr01-kalid.

perform bdc_field using 'KAKO-MEINS'

wa_cr01-meins1.

perform bdc_field using 'BDC_CURSOR'

'KAKO-KAPTER'.

perform bdc_field using 'KAKO-KAPTER'

'X'.

perform bdc_field using 'RC68K-KAPLPL'

'X'.

perform bdc_dynpro using 'SAPLCRK0' '0116'.

perform bdc_field using 'BDC_CURSOR'

'KAZA-DATUV(01)'.

perform bdc_field using 'BDC_OKCODE'

'=INSI'.

  • perform bdc_field using 'RC68K-VERSN'

  • wa_cr01-versn.

perform bdc_field using 'KAZA_DEFAULT-BEGZT'

wa_cr01-begzt.

perform bdc_field using 'KAZA_DEFAULT-ENDZT'

wa_cr01-endzt.

  • perform bdc_field using 'KAZA_DEFAULT-PAUSE'

  • wa_cr01-pause.

perform bdc_field using 'KAZA_DEFAULT-NGRAD'

wa_cr01-ngrad.

  • perform bdc_field using 'KAZA_DEFAULT-ANZHL'

  • wa_cr01-anzhl.

  • perform bdc_field using 'KAKT-KTEXT'

  • wa_cr01-ktext.

perform bdc_dynpro using 'SAPLCRK0' '0116'.

perform bdc_field using 'BDC_CURSOR'

'KAZA-SPROG(01)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

  • perform bdc_field using 'RC68K-VERSN'

  • wa_cr01-versn.

perform bdc_field using 'KAZA_DEFAULT-BEGZT'

wa_cr01-begzt.

perform bdc_field using 'KAZA_DEFAULT-ENDZT'

wa_cr01-endzt.

  • perform bdc_field using 'KAZA_DEFAULT-PAUSE'

  • wa_cr01-pause.

perform bdc_field using 'KAZA_DEFAULT-NGRAD'

wa_cr01-ngrad.

  • perform bdc_field using 'KAZA_DEFAULT-ANZHL'

  • wa_cr01-anzhl.

perform bdc_field using 'KAZA-DATUV(01)'

wa_cr01-datuv.

perform bdc_field using 'KAZA-DATUB(01)'

wa_cr01-datub.

perform bdc_field using 'KAZA-SPROG(01)'

wa_cr01-sprog.

  • perform bdc_field using 'KAKT-KTEXT'

  • wa_cr01-ktext.

perform bdc_dynpro using 'SAPLCRK0' '0116'.

perform bdc_field using 'BDC_CURSOR'

'KAZA-SPROG(01)'.

perform bdc_field using 'BDC_OKCODE'

'=BACK'.

  • perform bdc_field using 'RC68K-VERSN'

  • wa_cr01-versn.

perform bdc_field using 'KAZA_DEFAULT-BEGZT'

wa_cr01-begzt.

perform bdc_field using 'KAZA_DEFAULT-ENDZT'

wa_cr01-endzt.

  • perform bdc_field using 'KAZA_DEFAULT-PAUSE'

  • wa_cr01-pause.

perform bdc_field using 'KAZA_DEFAULT-NGRAD'

wa_cr01-ngrad.

  • perform bdc_field using 'KAZA_DEFAULT-ANZHL'

  • wa_cr01-anzhl.

  • perform bdc_field using 'KAKT-KTEXT'

  • wa_cr01-ktext.

perform bdc_dynpro using 'SAPLCRK0' '0101'.

perform bdc_field using 'BDC_OKCODE'

'=BACK'.

perform bdc_field using 'BDC_CURSOR'

'KAKT-KTEXT'.

  • perform bdc_field using 'KAKT-KTEXT'

  • wa_cr01-ktext.

  • perform bdc_field using 'KAKO-PLANR'

  • 'WEI'.

perform bdc_field using 'RC68K-BEGZT'

wa_cr01-begzt.

perform bdc_field using 'RC68K-ENDZT'

wa_cr01-endzt.

perform bdc_field using 'KAKO-NGRAD'

wa_cr01-ngrad.

  • perform bdc_field using 'RC68K-PAUSE'

  • wa_cr01-pause.

perform bdc_field using 'KAKO-AZNOR'

wa_cr01-aznor.

  • perform bdc_field using 'KAKO-KAPEH'

  • wa_cr01-kapeh.

perform bdc_field using 'KAKO-KALID'

wa_cr01-kalid.

perform bdc_field using 'KAKO-MEINS'

wa_cr01-meins2.

perform bdc_field using 'KAKO-KAPTER'

'X'.

perform bdc_field using 'RC68K-KAPLPL'

'X'.

perform bdc_dynpro using 'SAPLCRK0' '0101'.

perform bdc_field using 'BDC_OKCODE'

'=BACK'.

perform bdc_field using 'BDC_CURSOR'

'KAKT-KTEXT'.

  • perform bdc_field using 'KAKT-KTEXT'

  • wa_cr01-ktext.

  • perform bdc_field using 'KAKO-PLANR'

  • 'WEI'.

perform bdc_field using 'RC68K-BEGZT'

wa_cr01-begzt.

perform bdc_field using 'RC68K-ENDZT'

wa_cr01-endzt.

perform bdc_field using 'KAKO-NGRAD'

wa_cr01-ngrad.

  • perform bdc_field using 'RC68K-PAUSE'

  • wa_cr01-pause.

perform bdc_field using 'KAKO-AZNOR'

wa_cr01-aznor.

  • perform bdc_field using 'KAKO-KAPEH'

  • wa_cr01-kapeh.

perform bdc_field using 'KAKO-KALID'

wa_cr01-kalid.

perform bdc_field using 'KAKO-MEINS'

wa_cr01-meins1.

perform bdc_field using 'KAKO-KAPTER'

'X'.

perform bdc_field using 'RC68K-KAPLPL'

'X'.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=TERM'.

perform bdc_field using 'BDC_CURSOR'

'P3006-FORK1(01)'.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=VK11'.

perform bdc_field using 'BDC_CURSOR'

'P3005-FORT2'.

perform bdc_field using 'RC68A-KAPART'

wa_cr01-kapart2.

perform bdc_field using 'P3005-FORT1'

wa_cr01-fort1.

perform bdc_field using 'P3005-FORT2'

wa_cr01-fort2.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'BDC_CURSOR'

'RC68A-FORXX(04)'.

  • perform bdc_field using 'P1001-BEGDA'

  • wa_cr01-begda.

  • perform bdc_field using 'P1001-ENDDA'

  • wa_cr01-endda.

perform bdc_field using 'CRKEYK-KOSTL'

wa_cr01-kostl.

perform bdc_field using 'RC68A-LARXX(01)'

wa_cr01-larxx1.

perform bdc_field using 'RC68A-LARXX(02)'

wa_cr01-larxx2.

perform bdc_field using 'RC68A-LARXX(03)'

wa_cr01-larxx3.

perform bdc_field using 'RC68A-LARXX(04)'

wa_cr01-larxx4.

perform bdc_field using 'RC68A-LEINH(01)'

wa_cr01-leinh1.

perform bdc_field using 'RC68A-LEINH(02)'

wa_cr01-leinh2.

perform bdc_field using 'RC68A-LEINH(03)'

wa_cr01-leinh3.

perform bdc_field using 'RC68A-LEINH(04)'

wa_cr01-leinh4.

perform bdc_field using 'RC68A-FORXX(01)'

wa_cr01-forxx1.

perform bdc_field using 'RC68A-FORXX(02)'

wa_cr01-forxx2.

perform bdc_field using 'RC68A-FORXX(03)'

wa_cr01-forxx3.

perform bdc_field using 'RC68A-FORXX(04)'

wa_cr01-forxx4.

  • perform bdc_transaction using 'CR01'.

call function 'BDC_INSERT'

exporting

tcode = 'CR01'

tables

dynprotab = ta_bdcdata.

if sy-subrc <> 0.

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

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

endif.

  • PERFORM BDC_INSERT.

ENDLOOP.

ENDFORM. " bdc_screens

&----


*& Form BDC_INSERT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


*FORM BDC_INSERT .

*

*CALL FUNCTION 'BDC_INSERT'

  • EXPORTING

  • TCODE = 'CR01'

    • POST_LOCAL = NOVBLOCAL

    • PRINTING = NOPRINT

    • SIMUBATCH = ' '

    • CTUPARAMS = ' '

  • TABLES

  • DYNPROTAB = ta_bdcdata

    • 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

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM bdc_close .

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

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_1269 text

  • -->P_1270 text

----


form bdc_dynpro using program type sy-repid

dynpro type any.

WA_BDCDATA-PROGRAM = PROGRAM.

WA_BDCDATA-DYNPRO = DYNPRO.

WA_BDCDATA-DYNBEGIN = 'X'.

append wa_bdcdata to ta_bdcdata.

clear wa_bdcdata.

endform. " bdc_dynpro

&----


*& Form bdc_field

&----


  • text

----


  • -->P_1329 text

  • -->P_1330 text

----


form bdc_field using fnam type any

fval type any.

  • IF FVAL <> ''.

WA_BDCDATA-FNAM = FNAM.

WA_BDCDATA-FVAL = FVAL.

append wa_bdcdata to ta_bdcdata.

clear wa_bdcdata.

  • ENDIF.

endform. " bdc_field