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

Data from excel sheet into my own created database table???

Former Member
0 Likes
568

Hi Experts,

Can anyone tell me how to transfer the data from the excel sheet into a database table created by me???

please give some example programs..

thank you..

Santhosh.

Hi Experts,

Can anyone tell me how to transfer the data from the excel sheet into a database table created by me???

please give some example programs..

thank you..

Santhosh.

3 REPLIES 3
Read only

Former Member
0 Likes
518

hi,

Just have a look at the following example program . First upload the file using the fm then process the data using the required internal table.

REPORT ZEXL_UPLOAD.

tables: ZEMPLOY.

Internal table for holding data from the excel sheet

DATA: tb_intern TYPE STANDARD TABLE OF alsmex_tabline WITH HEADER LINE.

Internal table like database table to hold excel data.

data: begin of tb_data occurs 0,

field1(5),

field2(5),

end of tb_data.

DATA: BEGIN OF tb_data_tab OCCURS 0.

INCLUDE STRUCTURE ZEMPLOY.

DATA: END OF TB_DATA_TAB.

Constants

constants : c_1 type i value 1, "Constant value of 1

c_2 type i value 2, "Constant value of 2

c_6 type i value 6, "Constant value of 6

c_28 type i value 15, "Constant value of 15

c_9999 type i value 9999, "Constant value of 9999

c_x type c value 'X'. "Constant for value 'X'

Selection screen

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

parameters: p_file like rlgrap-filename obligatory. " File name

parameters: p_colbeg type i default c_1 no-display. " Column beginning

parameters: p_colend type i default c_28 no-display. " Column end

parameters: p_rowbeg type i default c_2 no-display. " Row beginning

parameters: p_rowend type i default c_9999 no-display." Row end

selection-screen end of block b1.

-


AT S E L E C T I O N S C R E E N ON VALUE REQUEST

-


at selection-screen on value-request for p_file.

To get the F4 help for file

perform get_filename.

-


S T A R T O F S E L E C T I O N *

-


start-of-selection.

Load data from Excel file

perform upload_data.

perform process_data.

perform update_table.

&----


*& Form get_filename

&----


text

-


FORM get_filename .

Function module used for F4 help

call function 'F4_FILENAME'

exporting

program_name = syst-cprog

dynpro_number = syst-dynnr

importing

file_name = p_file.

ENDFORM. " get_filename

&----


*& Form upload_data

&----


text

-


FORM upload_data .

data: l_excel type rlgrap-filename. " Variable for filename

l_excel = p_file.

FM to upload data from excel sheet to internal table

call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'

exporting

filename = l_excel

i_begin_col = p_colbeg

i_begin_row = p_rowbeg

i_end_col = p_colend

i_end_row = p_rowend

tables

intern = tb_intern

exceptions

inconsistent_parameters = 1

upload_ole = 2

others = 3.

if sy-subrc = 0.

endif.

ENDFORM. " upload_data

&----


*& Form process_data

&----


text

-


FORM process_data .

*--Processing the internal table generated from the function module

*--Passing data from Excel file to internal table

clear: tb_data.

loop at tb_intern.

AT NEW row.

CLEAR tb_data_tab.

ENDAT.

CASE tb_intern-col.

WHEN '0001'.

tb_data_tab-KUNNR = tb_intern-value.

WHEN '0002'.

tb_data_tab-name1 = tb_intern-value.

ENDCASE.

*--Appending the internal table tb_data

AT END OF row.

APPEND tb_data_tab.

CLEAR tb_data_tab.

ENDAT.

ENDLOOP.

ENDFORM. " process_data

&----


*& Form update_table

&----


text

-


FORM update_table .

modify ZEMPLOY FROM table tb_data_tab ."client specified.

ENDFORM. " update_table

Hope this is helpful, Do reward.

Read only

0 Likes
518

Hi,

Check this below code:

REPORT zmat_upload MESSAGE-ID zgaurav.

TYPE-POOLS: truxs.

*TABLES: MARC, "Plant Data for Material

MARA.

SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: p_file1 TYPE string MODIF ID id1 DEFAULT 'C:\Case\abccode.xls'.

PARAMETERS: p_file2 TYPE string MODIF ID id2 DEFAULT 'C:\Case\mrp_cont.xls'.

SELECTION-SCREEN : END OF BLOCK b1.

SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: abc_code RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND ucomm.

PARAMETERS: mrp_cont RADIOBUTTON GROUP g1.

SELECTION-SCREEN : END OF BLOCK b2.

TYPES: BEGIN OF t_datatab,

matnr TYPE matnr,

werks TYPE werks_d,

abc_id TYPE c,

END OF t_datatab.

DATA: it_datatab TYPE STANDARD TABLE OF t_datatab,

wa_datatab TYPE t_datatab.

internal table that will store excel data

DATA: itab TYPE STANDARD TABLE OF alsmex_tabline WITH DEFAULT KEY,

w_itab LIKE LINE OF itab.

declaration for bapi

DATA: bapi_head LIKE bapimathead,

bapi_marc LIKE bapi_marc,

bapi_marcx LIKE bapi_marcx,

bapi_return LIKE bapiret2.

DATA: g_value TYPE i VALUE 1.

DATA: l_ret1(1) TYPE c.

DATA: l_filename1 TYPE rlgrap-filename .

DATA: l_ret2(1) TYPE c.

DATA: l_filename2 TYPE rlgrap-filename .

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

*****

A T S E L E C T I O N S C R E E N

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

*****

AT SELECTION-SCREEN OUTPUT .

IF abc_code = 'X'.

g_value = 1.

LOOP AT SCREEN.

IF screen-group1 = 'ID2' OR screen-group1 ='ID3' OR screen-group1 ='ID4'

OR screen-group1 = 'ID5' OR screen-group1 ='ID6'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF mrp_cont = 'X'.

g_value = 2.

LOOP AT SCREEN.

IF screen-group1 = 'ID1' OR screen-group1 ='ID3' OR screen-group1 ='ID4'

OR screen-group1 = 'ID5' OR screen-group1 ='ID6'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN.

Check whether the filename is entered or not

IF g_value = 1.

IF p_file1 = ''.

MESSAGE e031.

ENDIF.

*

IF p_file1 ''.

CALL METHOD cl_gui_frontend_services=>file_exist

EXPORTING

file = l_filename1

file = p_file1

RECEIVING

result = l_ret1

EXCEPTIONS

OTHERS = 1.

IF l_ret1 = 'X'.

WRITE:/ 'File exists'.

MESSAGE i011.

ELSE.

WRITE:/ 'file doesnt exist'.

MESSAGE i012.

ENDIF.

ENDIF.

ELSEIF g_value = 2.

IF p_file2 = ''.

MESSAGE e031.

ENDIF.

*

IF p_file2 ''.

CALL METHOD cl_gui_frontend_services=>file_exist

EXPORTING

file = p_file2

RECEIVING

result = l_ret2

EXCEPTIONS

OTHERS = 1.

IF l_ret2 = 'X'.

WRITE:/ 'File exists'.

MESSAGE i011.

ELSE.

WRITE:/ 'file doesnt exist'.

MESSAGE i012.

ENDIF.

ENDIF.

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

S T A R T - O F - S E L E C T I O N

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

START-OF-SELECTION.

PERFORM excel_to_internal_upload.

&----


*& Form excel_to_internal_upload

&----


FORM excel_to_internal_upload .

l_filename1 = p_file1.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = p_file1

filename = l_filename1

i_begin_col = '1'

i_begin_row = '1'

i_end_col = '4'

i_end_row = '4'

TABLES

intern = itab

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.

Append excel data into internal table

LOOP AT itab INTO w_itab.

CASE w_itab-row. " This is Case of Rows

WHEN '0001'.

CASE w_itab-col. "This is case of first column

WHEN '0001'.

wa_datatab-matnr = w_itab-value.

WHEN '0002'.

wa_datatab-werks = w_itab-value.

WHEN '0003'.

wa_datatab-abc_id = w_itab-value.

ENDCASE. " This is end case of first column

AT END OF row. " This is the start of event of first row

IF NOT wa_datatab IS INITIAL.

APPEND wa_datatab TO it_datatab.

CLEAR wa_datatab.

ENDIF.

ENDAT. " this is end of event of first row

WHEN '0002'.

CASE w_itab-col.

WHEN '0001'.

wa_datatab-matnr = w_itab-value.

WHEN '0002'.

wa_datatab-werks = w_itab-value.

WHEN '0003'.

wa_datatab-abc_id = w_itab-value.

ENDCASE.

AT END OF row.

IF NOT wa_datatab IS INITIAL.

APPEND wa_datatab TO it_datatab.

CLEAR wa_datatab.

ENDIF.

ENDAT.

WHEN '0003'.

CASE w_itab-col.

WHEN '0001'.

wa_datatab-matnr = w_itab-value.

WHEN '0002'.

wa_datatab-werks = w_itab-value.

WHEN '0003'.

wa_datatab-abc_id = w_itab-value.

ENDCASE.

AT END OF row.

IF NOT wa_datatab IS INITIAL.

APPEND wa_datatab TO it_datatab.

CLEAR wa_datatab.

ENDIF.

ENDAT.

ENDCASE.

ENDLOOP.

*if sy-subrc = 0.

*

*write: 'abccode is succefully uploaded '.

*endif.

if not it_datatab[] is initial.

*

*

*

LOOP AT it_datatab INTO wa_datatab.

*header

bapi_head-material = wa_datatab-matnr.

BAPI_HEAD-MATL_TYPE = 'HALB'.

bapi_head-mrp_view = 'X'.

*client

bapi_marc-plant = wa_datatab-werks.

bapi_marcx-plant = wa_datatab-werks.

bapi_marcx-abc_id = wa_datatab-abc_id.

bapi_marc-abc_id = wa_datatab-abc_id.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = bapi_head

CLIENTDATA =

CLIENTDATAX =

plantdata = bapi_marc

plantdatax = bapi_marcx

FORECASTPARAMETERS =

FORECASTPARAMETERSX =

PLANNINGDATA =

PLANNINGDATAX =

STORAGELOCATIONDATA =

STORAGELOCATIONDATAX =

VALUATIONDATA =

VALUATIONDATAX =

WAREHOUSENUMBERDATA =

WAREHOUSENUMBERDATAX =

SALESDATA =

SALESDATAX =

STORAGETYPEDATA =

STORAGETYPEDATAX =

FLAG_ONLINE = ' '

FLAG_CAD_CALL = ' '

NO_DEQUEUE = ' '

NO_ROLLBACK_WORK = ' '

IMPORTING

return = bapi_return.

TABLES

MATERIALDESCRIPTION =

UNITSOFMEASURE =

UNITSOFMEASUREX =

INTERNATIONALARTNOS =

MATERIALLONGTEXT =

TAXCLASSIFICATIONS =

RETURNMESSAGES =

PRTDATA =

PRTDATAX =

EXTENSIONIN =

EXTENSIONINX =

IF bapi_return-TYPE = 'S'.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

if sy-subrc = 0.

write: 'success'.

endif.

EXPORTING

WAIT =

IMPORTING

RETURN =

.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

IMPORTING

RETURN =

.

if sy-subrc = 0.

write: ' failure'.

endif.

endif.

ENDLOOP.

endif.

*

ENDFORM. " excel_to_internal_upload

Thanks.

Note:Reward points if you find useful.

Read only

Former Member
0 Likes
518

u can use gui_upload to upload the data into an internal table from excel sheet and then use the bdc to update the data into database table.

here is the sample code.

TABLES: ekpo, t006a, zmcutmigr.

  • Global data

DATA: client LIKE sy-mandt,

wa_tabix TYPE i,

keep VALUE 'X',

holddate LIKE sy-datum,

v_lines TYPE i VALUE 0.

DATA filename TYPE string.

  • itab for the bdcdata

DATA: BEGIN OF bdcdata OCCURS 0.

INCLUDE STRUCTURE bdcdata.

DATA: END OF bdcdata.

  • itab for holding purchase order history from source client

DATA: BEGIN OF iekbe OCCURS 0,

ebeln LIKE ekbe-ebeln,

ebelp LIKE ekbe-ebelp,

zekkn LIKE ekbe-zekkn,

vgabe LIKE ekbe-vgabe,

gjahr LIKE ekbe-gjahr,

belnr LIKE ekbe-belnr,

buzei LIKE ekbe-buzei,

bewtp LIKE ekbe-bewtp,

bwart LIKE ekbe-bwart,

budat LIKE ekbe-budat,

menge LIKE ekbe-menge,

bpmng LIKE ekbe-bpmng,

dmbtr LIKE ekbe-dmbtr,

wrbtr LIKE ekbe-wrbtr,

waers LIKE ekbe-waers,

cpudt LIKE ekbe-cpudt,

cputm LIKE ekbe-cputm,

mandt LIKE ekbe-mandt,

ekorg LIKE ekko-ekorg,

END OF iekbe.

  • itab for holding material doc header

DATA: BEGIN OF imkpf OCCURS 0,

mblnr LIKE mkpf-mblnr,

mjahr LIKE mkpf-mjahr,

xblnr LIKE mkpf-xblnr,

frbnr LIKE mkpf-frbnr,

bktxt LIKE mkpf-bktxt,

budat LIKE mkpf-budat,

END OF imkpf.

  • itab for holding material doc pos.

DATA: BEGIN OF imseg OCCURS 0,

mblnr LIKE mseg-mblnr,

mjahr LIKE mseg-mjahr,

zeile LIKE mseg-zeile,

erfmg LIKE mseg-erfmg,

erfme LIKE mseg-erfme,

ablad LIKE mseg-ablad,

sgtxt LIKE mseg-sgtxt,

weanz LIKE mseg-weanz,

grund LIKE mseg-grund,

lgort LIKE mseg-lgort,

werks LIKE mseg-werks,

END OF imseg.

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

  • Selection screen

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

SELECTION-SCREEN SKIP 1.

PARAMETERS: jobname(12) DEFAULT 'GR_LKV', "group name of session

user(12) TYPE c DEFAULT sy-uname. "user name for starting

SELECTION-SCREEN SKIP 1.

*date added 20070102

PARAMETERS: docdate LIKE sy-datum DEFAULT '20061231' OBLIGATORY.

SELECTION-SCREEN SKIP 1.

PARAMETERS: fileekbe LIKE rlgrap-filename DEFAULT

'C:ekbe.txt'.

PARAMETERS: filemkpf LIKE rlgrap-filename DEFAULT

'C:mkpf.txt'.

PARAMETERS: filemseg LIKE rlgrap-filename DEFAULT

'C:mseg.txt'.

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

AT SELECTION-SCREEN ON VALUE-REQUEST FOR fileekbe.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

file_name = fileekbe.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filemkpf.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

file_name = filemkpf.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filemseg.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

file_name = filemseg.

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

INCLUDE: zbbatch.

START-OF-SELECTION.

client = sy-mandt.

*

PERFORM upload_from_pc.

*

  • Check if the file contains header line.

  • remove header line in extracted file

wa_tabix = 1.

LOOP AT iekbe.

IF iekbe-ebeln CA '0123456789' OR

wa_tabix > 1.

EXIT.

ELSE.

DELETE iekbe.

ENDIF.

wa_tabix = wa_tabix + 1.

ENDLOOP.

wa_tabix = 1.

LOOP AT imkpf.

IF imkpf-mblnr CA '0123456789' OR

wa_tabix > 1.

EXIT.

ELSE.

DELETE imkpf.

ENDIF.

wa_tabix = wa_tabix + 1.

ENDLOOP.

wa_tabix = 1.

LOOP AT imseg.

IF imseg-mblnr CA '0123456789' OR

wa_tabix > 1.

EXIT.

ELSE.

DELETE imseg.

ENDIF.

wa_tabix = wa_tabix + 1.

ENDLOOP.

DESCRIBE TABLE iekbe LINES v_lines.

IF v_lines > 0.

SORT iekbe BY ebeln ebelp cpudt cputm.

PERFORM create_group.

v_lines = 0.

PERFORM gen_bdc.

PERFORM close_group.

WRITE:/ 'Session ', jobname, 'created.'.

WRITE:/ 'Number of transactions:', v_lines.

ENDIF.

*&----


*

*& Form gen_bdc

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM gen_bdc.

DATA: v_erfmg(13) VALUE space,

v_ebeln LIKE ekpo-ebeln..

LOOP AT iekbe.

*

  • Check material document

*

READ TABLE imkpf WITH KEY mblnr = iekbe-belnr

mjahr = iekbe-gjahr.

IF sy-subrc NE 0.

  • WRITE: / iekbe-ebeln,

  • iekbe-ebelp,

  • 'kommer ej att godsmottagas. Mtrl.dok huvud saknas !'

  • COLOR COL_NEGATIVE.

CONTINUE.

ENDIF.

*

  • Convert PO number

*

v_ebeln = iekbe-ebeln.

PERFORM change_po_number USING iekbe-mandt

v_ebeln

iekbe-ekorg

CHANGING iekbe-ebeln.

*

  • Check Purchase order line

*

SELECT SINGLE * FROM ekpo

WHERE ebeln = iekbe-ebeln

AND ebelp = iekbe-ebelp.

IF sy-subrc NE 0.

  • 'Inköps order rad ej konverterad!'

*

CONTINUE.

ENDIF.

*

  • --------- Creating mtrl.dok, starting screen ------------------------*

PERFORM bdc_dynpro USING 'SAPMM07M' '200'.

  • perform bdc_field using 'MKPF-BUDAT' imkpf-budat.

  • dates added 20070102

PERFORM bdc_field USING 'MKPF-BLDAT' docdate.

PERFORM bdc_field USING 'MKPF-BUDAT' docdate.

*

PERFORM bdc_field USING 'RM07M-LFSNR' imkpf-xblnr.

PERFORM bdc_field USING 'MKPF-FRBNR' imkpf-frbnr.

PERFORM bdc_field USING 'MKPF-BKTXT' imkpf-bktxt.

PERFORM bdc_field USING 'RM07M-BWARTWE' iekbe-bwart.

PERFORM bdc_field USING 'RM07M-EBELN' iekbe-ebeln.

PERFORM bdc_field USING 'RM07M-EBELP' iekbe-ebelp.

*----


Creating mtrl.dok pos info screen----


*

READ TABLE imseg WITH KEY mblnr = iekbe-belnr

mjahr = iekbe-gjahr

zeile = iekbe-buzei.

PERFORM convert_lgort.

*

  • Convert unit

*

PERFORM convert_unit CHANGING imseg-erfme.

PERFORM bdc_field USING 'BDC_OKCODE' 'SP'.

PERFORM bdc_dynpro USING 'SAPMM07M' '210'.

WRITE imseg-erfmg TO v_erfmg UNIT imseg-erfme LEFT-JUSTIFIED.

PERFORM bdc_field USING 'MSEG-ERFMG' v_erfmg. "Registr. ME

PERFORM bdc_field USING 'MSEG-ERFME' imseg-erfme. "Enhet

IF ekpo-lgort IS INITIAL.

PERFORM bdc_field USING 'MSEG-LGORT' imseg-lgort. "St loc

ENDIF.

  • perform bdc_field using 'MSEG-ELIKZ' imseg-elikz. "Slutleverans

PERFORM bdc_field USING 'MSEG-ABLAD' imseg-ablad.

IF iekbe-bwart = '122'.

PERFORM bdc_field USING 'MSEG-GRUND' imseg-grund.

ENDIF.

PERFORM bdc_field USING 'MSEG-SGTXT' imseg-sgtxt.

PERFORM bdc_field USING 'MSEG-WEANZ' imseg-weanz.

PERFORM bdc_field USING 'BDC_OKCODE' 'BU'.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

tcode = 'MB01'

TABLES

dynprotab = bdcdata.

CLEAR bdcdata.

REFRESH bdcdata.

v_lines = v_lines + 1.

ENDLOOP.

ENDFORM. " gen_bdc

*&----


*

*& Form UPLOAD_FROM_PC

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM upload_from_pc.

CLEAR: iekbe, imkpf,imseg .

REFRESH: iekbe, imkpf, imseg .

filename = fileekbe.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = filename

filetype = 'ASC'

has_field_separator = 'X'

TABLES

data_tab = iekbe

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

IF sy-subrc <> 0.

MESSAGE e001(38) WITH fileekbe 'Return code:' sy-subrc.

ENDIF.

filename = filemkpf.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = filename

filetype = 'ASC'

has_field_separator = 'X'

TABLES

data_tab = imkpf

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

IF sy-subrc <> 0.

MESSAGE e001(38) WITH filemkpf 'Return code:' sy-subrc.

ENDIF.

filename = filemseg.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = filename

filetype = 'ASC'

has_field_separator = 'X'

TABLES

data_tab = imseg

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

IF sy-subrc <> 0.

MESSAGE e001(38) WITH filemseg 'Return code:' sy-subrc.

ENDIF.

ENDFORM. " UPLOAD_FROM_PC

*&----


*

*& Form change_po_number

*&----


*

  • text

*----


*

  • -->P_IEKBE_MANDT text

  • -->P_IEKBE_EBELN text

  • -->P_IEKBE_PURCH_ORG text

  • <--P_IEKBE_EBELN text

*----


*

FORM change_po_number USING p_iekbe_mandt

p_iekbe_ebeln

p_iekbe_purch_org

CHANGING p_iekbe_ebeln2.

IF p_iekbe_mandt = 100.

*

  • Purchase order extracted in client 100

*

CONCATENATE 'Q' p_iekbe_ebeln+1

INTO p_iekbe_ebeln2.

ELSE.

*

  • Purchase order extracted in client 001

  • Check purchase org

*

IF p_iekbe_purch_org = '5000'.

CONCATENATE 'P' p_iekbe_ebeln+1

INTO p_iekbe_ebeln2.

ELSE.

CONCATENATE 'N' p_iekbe_ebeln+1

INTO p_iekbe_ebeln2.

ENDIF.

ENDIF.

ENDFORM. " change_po_number

*&----


*

*& Form convert_unit

*&----


*

  • text

*----


*

  • <--P_IMSEG_ERFME text

*----


*

FORM convert_unit CHANGING p_imseg_erfme.

DATA: unit_out LIKE mseg-erfme.

*

  • STEP 1 - CHECK IF UNIT EXISTS IN ENGLISH

*

SELECT SINGLE * FROM t006a

WHERE spras = 'EN'

AND mseh3 = p_imseg_erfme.

IF sy-subrc NE 0.

*

  • STEP 2 - UNIT NOT FOUND AS ENGLISH - CALL CONVERSION EXIT

*

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'

EXPORTING

input = p_imseg_erfme

language = 'E'

IMPORTING

  • LONG_TEXT =

output = unit_out

  • SHORT_TEXT =

EXCEPTIONS

unit_not_found = 1

OTHERS = 2

.

IF sy-subrc = 0.

p_imseg_erfme = unit_out.

ELSE.

*

  • STEP 3 - UNIT NOT CONVERTED - CHECK ZMCUTMIGR

*

SELECT SINGLE * FROM zmcutmigr

WHERE tecnname = 'MEINS'

AND oldvalue = p_imseg_erfme

AND oldvalue2 = ' '.

IF sy-subrc = 0.

p_imseg_erfme = zmcutmigr-newvalue.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " convert_unit

*&----


*

*& Form convert_lgort

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM convert_lgort.

IF imseg-werks = '3050'.

imseg-lgort = '3500'.

ELSE.

IF iekbe-mandt = '100'.

CASE imseg-lgort.

WHEN '1005'.

imseg-lgort = '8012'.

WHEN '1011'.

imseg-lgort = '8091'.

WHEN '1012'.

imseg-lgort = '8012'.

ENDCASE.

ENDIF.

ENDIF.

ENDFORM. " convert_lgort

regards,

pavan.