2008 Feb 06 11:54 AM
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.
2008 Feb 06 11:59 AM
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.
2008 Feb 06 12:01 PM
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.
2008 Feb 06 12:00 PM
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.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |