11-13-2007 3:20 AM
1. In my prog i am uploading two files. One is bom and another one is material file.
when i am executing the program , it is going to dump. Can you plz tell me why?
11-13-2007 3:21 AM
Hi,
If you show the code and tell what is the dump then we may correct it.
Regards,
Atish
11-13-2007 4:01 AM
BOM upload:
TABLES: STKO, STPO, MAST,MARC, T002,T001W.
----
I N T E R N A L T A B L E S *
----
Internal table for Header
DATA: BEGIN OF tbl_bicsk OCCURS 0.
INCLUDE STRUCTURE bicsk.
DATA: END OF tbl_bicsk.
DATA: BEGIN OF tbl_cstmat OCCURS 0.
INCLUDE STRUCTURE cstmat.
DATA: END OF tbl_cstmat.
DATA: BEGIN OF tbl_stko OCCURS 0,
stlty LIKE stko-stlty,
stlnr LIKE stko-stlty,
stlal LIKE stko-stlty,
stkoz LIKE stko-stlty,
aennr LIKE stko-aennr,
END OF tbl_stko.
Internal table for Item
DATA: BEGIN OF tbl_bicsp OCCURS 0.
INCLUDE STRUCTURE bicsp.
DATA: END OF tbl_bicsp.
DATA: BEGIN OF tbl_item OCCURS 0.
INCLUDE STRUCTURE stpox.
DATA: END OF tbl_item.
Internal table for output
DATA: BEGIN OF tbl_output OCCURS 0,
v_data(1024),
END OF tbl_output.
DATA: BEGIN OF tbl_mast OCCURS 0 ,
matnr LIKE mast-matnr,
stlal LIKE mast-stlal,
stlan LIKE mast-stlan,
werks LIKE mast-werks,
END OF tbl_mast.
DATA: BEGIN OF tbl_altbom OCCURS 0,
count TYPE i VALUE '01',
matnr LIKE cstmat-matnr,
END OF tbl_altbom.
DATA tbl_header LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF tbl_plant OCCURS 0,
werks LIKE t001w-werks,
END OF tbl_plant.
DATA: BEGIN OF tbl_matnr OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
END OF tbl_matnr.
DATA: tbl_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF tbl_file OCCURS 0,
material(18) TYPE c,
END OF tbl_file.
DATA: BEGIN OF tbl_material OCCURS 0,
matnr LIKE marc-matnr,
END OF tbl_material.
----
D A T A D E C L A R A T I O N *
----
DATA: v_stlty LIKE stko-stlty.
DATA: v_stlnr LIKE stko-stlnr.
DATA tdname_header LIKE thead-tdname.
DATA tdname_alter LIKE thead-tdname.
DATA tdname_item LIKE thead-tdname.
DATA: BEGIN OF tbl_text,
stype LIKE bicsk-stype,
lang LIKE sy-langu,
tdformat LIKE tline-tdformat,
tdline(72),
isolang(2),
END OF tbl_text.
DATA v_stkoz LIKE stko-stkoz.
DATA v_filesize TYPE i.
DATA: v_download_lines(9) TYPE n,
v_mapl_lines_read(9) TYPE n,
v_plpo_lines_read(9) TYPE n,
v_plko_lines_read(9) TYPE n,
v_plas_lines_read(9) TYPE n,
v_prev_plnnr LIKE mapl-plnnr,
v_prev_plnal LIKE mapl-plnal,
v_repid LIKE sy-repid,
v_length TYPE i,
v_suppress_report(1) TYPE c,
v_answer(1) TYPE c,
v_unix_filename LIKE rlgrap-filename,
v_filename LIKE rlgrap-filename,
v_directory LIKE draw-filep,
v_file LIKE draw-filep .
----
S E L E C T - O P T I O N S / P A R A M E T E R S *
----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: r_allmat RADIOBUTTON GROUP 004.
SELECTION-SCREEN COMMENT 4(42) text-103.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS: s_matnr FOR marc-matnr.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: r_matfil RADIOBUTTON GROUP 004.
SELECTION-SCREEN COMMENT 4(42) text-104.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS: r_matapp RADIOBUTTON GROUP 003.
SELECTION-SCREEN COMMENT 7(40) text-105.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS p_appnam LIKE filename-fileextern
DEFAULT '/usr/sap/data/ice/matfile.txt'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS: r_matpre RADIOBUTTON GROUP 003.
SELECTION-SCREEN COMMENT 7(40) text-106.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS P_PRENAM LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS: s_werks FOR marc-werks OBLIGATORY,
s_stlan for mast-stlan.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_unix RADIOBUTTON GROUP rg01.
PARAMETERS: p_path LIKE rlgrap-filename DEFAULT
'/usr/sap/data/ice/'.
PARAMETERS: p_unfile LIKE rlgrap-filename.
SELECTION-SCREEN SKIP 1.
PARAMETERS: p_pc RADIOBUTTON GROUP rg01.
PARAMETERS: P_OFILE LIKE RLGRAP-FILENAME
OBLIGATORY DEFAULT 'c:/BOM.txt'.
SELECTION-SCREEN END OF BLOCK b2.
----
A T S E L E C T I O N - S C R E E N *
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_prenam.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
CHANGING
file_name = p_prenam
EXCEPTIONS
mask_too_long = 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.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ofile.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
CHANGING
file_name = p_ofile
EXCEPTIONS
mask_too_long = 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.
Check valid materials are entered
AT SELECTION-SCREEN ON s_matnr.
PERFORM material_check.
----
I N I T I A L I Z A T I O N *
----
INITIALIZATION.
*Refresh internal tables.
REFRESH:tbl_bicsk,
tbl_cstmat,
tbl_bicsp,
tbl_item,
tbl_output,
tbl_mast,
tbl_header,
tbl_plant,
tbl_matnr,
tbl_stko,
tbl_dynpfields.
Retrieve langauge from table T002 (Language keys table)
SELECT SINGLE * FROM t002 WHERE spras = sy-langu.
Hold the report/program name
v_repid = sy-repid.
----
S T A R T - O F - S E L E C T I O N *
----
START-OF-SELECTION.
Check valid plant is entered
PERFORM plant_check.
check the filenames are entered
PERFORM check_filenames.
Get Data
PERFORM get_data.
Download output data
PERFORM download_data.
END-OF-SELECTION.
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data.
DATA: v_msg(100) TYPE c.
IF r_matfil EQ 'X'.
IF r_matapp EQ 'X'.
PERFORM open_dataset USING p_appnam 'I' 'T' 1.
OPEN DATASET p_appnam FOR INPUT IN TEXT MODE MESSAGE v_msg.
CHECK syst-subrc = 0.
DO.
READ DATASET p_appnam INTO tbl_file.
IF syst-subrc <> 0.
EXIT.
ELSE.
APPEND tbl_file.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = tbl_file-material
IMPORTING
output = tbl_material-matnr
EXCEPTIONS
number_not_found = 1
OTHERS = 2.
CHECK syst-subrc = 0.
APPEND tbl_material.
CLEAR: tbl_file, tbl_material.
ENDIF.
ENDDO.
CLOSE DATASET p_appnam.
ELSE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_prenam
filetype = 'ASC'
TABLES
data_tab = tbl_file
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT tbl_file.
CLEAR tbl_material.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = tbl_file-material
IMPORTING
output = tbl_material-matnr
EXCEPTIONS
number_not_found = 1
OTHERS = 2.
CHECK syst-subrc = 0.
APPEND tbl_material.
ENDLOOP.
ENDIF.
ENDIF.
IF r_matfil EQ 'X'.
IF NOT tbl_material[] IS INITIAL.
SELECT matnr stlal stlan werks FROM mast
INTO TABLE tbl_mast
FOR ALL ENTRIES IN tbl_material
WHERE matnr EQ tbl_material-matnr
AND werks IN s_werks
and stlan in s_stlan.
ENDIF.
ELSE.
SELECT matnr stlal stlan werks FROM mast
INTO TABLE tbl_mast
WHERE matnr IN s_matnr
AND werks IN s_werks
and stlan in s_stlan.
ENDIF.
IF NOT tbl_mast[] IS INITIAL.
LOOP AT tbl_mast.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'PP01'
datuv = sy-datum
mtnrv = tbl_mast-matnr
stlal = tbl_mast-stlal
stlan = tbl_mast-stlan
werks = tbl_mast-werks
IMPORTING
topmat = tbl_cstmat
DSTST =
TABLES
stb = tbl_item
MATCAT =
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc = 0.
PERFORM header_data.
PERFORM long_text USING 'MZU' '2' tdname_header.
PERFORM long_text USING 'MKO' '3' tdname_alter.
PERFORM item_data.
ENDIF.
CLEAR:tbl_cstmat,tbl_item.
REFRESH:tbl_cstmat,tbl_item.
ENDLOOP.
ELSE.
WRITE:/ text-010. "No Bill of Material Found'
STOP.
ENDIF.
ENDFORM. " GET_DATA
&----
*& Form header_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM header_data.
SORT tbl_cstmat.
READ TABLE tbl_cstmat INDEX 1.
Batch Input Interface record Type
tbl_bicsk-stype = '1'.
Transaction Code
tbl_bicsk-tcode = 'CS01'.
Change Number
tbl_bicsk-aennr = tbl_cstmat-aennr.
BOM Base unit of measure
tbl_bicsk-bmein = tbl_cstmat-bmein.
Base quanity
IF NOT tbl_cstmat-bmeng IS INITIAL.
tbl_bicsk-bmeng = tbl_cstmat-bmeng.
ENDIF.
CAD indicator
tbl_bicsk-cadkz = tbl_cstmat-cadkz.
Valid to date
IF NOT tbl_cstmat-datub IS INITIAL.
tbl_bicsk-datub = tbl_cstmat-datub.
ENDIF.
Valid from date
IF NOT tbl_cstmat-datuv IS INITIAL.
tbl_bicsk-datuv = tbl_cstmat-datuv.
ENDIF.
Required Quanity
IF NOT tbl_cstmat-emeng IS INITIAL.
tbl_bicsk-emeng = tbl_cstmat-emeng.
ENDIF.
tbl_bicsk-equnr = v_space. " Equipment number
BOM Group
tbl_bicsk-exstl = tbl_cstmat-exstl.
Laboratory/design office
tbl_bicsk-labor = tbl_cstmat-labor.
Deletion indicator for BOMs
tbl_bicsk-loekz = tbl_cstmat-loekz.
To lot size
IF NOT tbl_cstmat-losbs IS INITIAL.
tbl_bicsk-losbs = tbl_cstmat-losbs.
ENDIF.
From lot size
IF NOT tbl_cstmat-losvn IS INITIAL.
tbl_bicsk-losvn = tbl_cstmat-losvn.
ENDIF.
Material Number
tbl_bicsk-matnr = tbl_cstmat-matnr.
Alternative BOM : sequential nos.
tbl_altbom-count = 01.
tbl_altbom-matnr = tbl_cstmat-matnr.
LOOP AT tbl_altbom WHERE matnr = tbl_altbom-matnr.
tbl_altbom-count = tbl_altbom-count + 1.
ENDLOOP.
APPEND tbl_altbom.
tbl_bicsk-selal = tbl_altbom-count .
CLEAR tbl_altbom.
tbl_bicsk-serge = . "Manufacturer serial number
Alernative BOM text
tbl_bicsk-stktx = tbl_cstmat-stktx.
Alternative BOM
tbl_bicsk-stlal = tbl_cstmat-stlal.
BOM usage
tbl_bicsk-stlan = tbl_cstmat-stlan.
Authorization group for bills of material
tbl_bicsk-stlbe = tbl_cstmat-stlbe.
BOM status
IF NOT tbl_cstmat-stlst IS INITIAL.
tbl_bicsk-stlst = tbl_cstmat-stlst.
ELSE.
REPLACE '00' WITH ' ' INTO tbl_cstmat-stlst.
ENDIF.
tbl_bicsk-VMTNR = . "Material Variant
Plant
tbl_bicsk-werks = tbl_cstmat-werks.
Bom text
tbl_bicsk-ZTEXT = ?.
Revision level
tbl_bicsk-revlv = tbl_cstmat-revlv.
tbl_bicsk-TPLNR = . "Function location
tbl_bicsk-DOKAR = . "Document type
tbl_bicsk-DOKNR = . "Document number
tbl_bicsk-DOKTL = . "Document part
tbl_bicsk-DOKVR = . "Document version
tbl_bicsk-VBELN = . "Sales order
Sales order item
REPLACE '000000' WITH ' ' INTO tbl_bicsk-vbpos.
tbl_bicsk-STOBJ = . "Standard object
tbl_bicsk-VDKNR = . "Document(Variant)
tbl_bicsk-VDKAR = "Document type(Variant)
tbl_bicsk-VDKTL = "Document part(Variant)
tbl_bicsk-VDKVR = "Document version (Variant)
tbl_bicsk-VEQNR = "Equipment (Variant)
tbl_bicsk-VTPNR = "Function location (Variant)
tbl_bicsk-PSPNR = "WBS element BI BOMs
tbl_bicsk-OITXT =
Header long text
CONCATENATE sy-mandt tbl_cstmat-stlty tbl_cstmat-stlnr INTO
tdname_header.
Sort the BOM header data internal table
SORT tbl_stko.
Read the internal table (BOM Header data)
READ TABLE tbl_stko
WITH KEY stlty = tbl_cstmat-stlty
stlnr = tbl_cstmat-stlnr
stlal = tbl_cstmat-stlal
aennr = tbl_cstmat-aennr
BINARY SEARCH.
IF sy-subrc EQ 0.
v_stkoz = tbl_stko-stkoz.
ELSE.
Retrieve BOM header data from table STKO (BOM Header data)
SELECT stlty
stlnr
stlal
stkoz
aennr
FROM stko
INTO TABLE tbl_stko
WHERE stlty = tbl_cstmat-stlty
AND stlnr = tbl_cstmat-stlnr
AND stlal = tbl_cstmat-stlal
AND aennr = tbl_cstmat-aennr.
Variable to hold the counter
v_stkoz = tbl_stko-stkoz.
ENDIF.
CONCATENATE sy-mandt tbl_cstmat-stlty tbl_cstmat-stlnr
tbl_cstmat-stlal v_stkoz INTO tdname_alter.
tbl_output-v_data = tbl_bicsk.
APPEND tbl_bicsk.
APPEND tbl_output.
CLEAR tbl_bicsk.
CLEAR tbl_output.
CLEAR v_stkoz.
endif.
ENDFORM. " header_data
&----
*& Form download_data
&----
Download the data to local file
----
FORM download_data.
IF p_pc = 'X'.
IF NOT tbl_output[] IS INITIAL.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = p_ofile
filetype = 'ASC'
IMPORTING
filelength = v_filesize
TABLES
data_tab = tbl_output
FIELDNAMES =
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10
.
IF sy-subrc = 0.
WRITE:/ v_filesize,' ',text-006. " No of bytes downloaded sucessfully
ENDIF.
ELSE.
IF sy-subrc <> 0.
WRITE:/ 'Error writing PC download file - return code'(003),
sy-subrc.
STOP.
ENDIF.
ENDIF.
ENDIF.
IF p_unix = 'X'.
CONCATENATE p_path p_unfile INTO v_unix_filename.
DELETE DATASET v_unix_filename.
Open Unix file
OPEN DATASET v_unix_filename FOR OUTPUT IN TEXT MODE.
Issue error message
IF sy-subrc NE 0.
message e009. " Error while getting the file name
WRITE:/ text-007. "Error while opening/writing the file unix server
STOP.
ENDIF.
LOOP AT tbl_output.
Transfer the record to the file
TRANSFER tbl_output-v_data TO v_unix_filename.
ENDLOOP.
ENDIF.
Close the Unix file
CLOSE DATASET v_unix_filename.
ENDFORM. " download_data
&----
*& Form item_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM item_data.
LOOP AT tbl_item.
Batch input interface record type
tbl_bicsp-stype = '4'.
Line indiex
REPLACE '0000' WITH ' ' INTO tbl_bicsp-xline.
Indicator: Sub-items exist
tbl_bicsp-upskz = tbl_item-upskz. "Indicator:sub-items exist
tbl_bicsp-AUSKZ = . "selection Indicator
Indicator: Alternative item
tbl_bicsp-alpos = tbl_item-alpos.
Component scrap in percent
IF NOT tbl_item-ausch IS INITIAL.
tbl_bicsp-ausch = tbl_item-ausch. "Component scrap in percent
ENDIF.
Operation scrap
IF NOT tbl_item-avoau IS INITIAL.
tbl_bicsp-avoau = tbl_item-avoau.
ENDIF.
Material provision indicator
tbl_bicsp-beikz = tbl_item-beikz.
CAD indicator
tbl_bicsp-cadpo = tbl_item-cadpo.
Purchasing group
tbl_bicsp-ekgrp = tbl_item-ekgrp.
Indicator: Spare part
tbl_bicsp-erskz = tbl_item-erskz.
Fixed qty
tbl_bicsp-fmeng = tbl_item-fmeng.
BOM Component
tbl_bicsp-idnrk = tbl_item-idnrk.
Account number of vendor/creditor
tbl_bicsp-lifnr = tbl_item-lifnr.
Delivery time in days
IF NOT tbl_item-lifzt IS INITIAL.
tbl_bicsp-lifzt = tbl_item-lifzt.
ENDIF.
Material group
tbl_bicsp-matkl = tbl_item-matkl.
Component unit of measure
tbl_bicsp-meins = tbl_item-meins.
Componet quantity
IF NOT tbl_item-menge IS INITIAL.
tbl_bicsp-menge = tbl_item-menge.
ENDIF.
Indicator: Net scrap
tbl_bicsp-netau = tbl_item-netau.
Follow-up Material in BOM item
tbl_bicsp-nfmat = tbl_item-nfmat.
Follow-up item
IF NOT tbl_item-nlfzt IS INITIAL.
tbl_bicsp-nlfzt = tbl_item-nlfzt.
ENDIF.
Price unit
IF NOT tbl_item-peinh IS INITIAL.
tbl_bicsp-peinh = tbl_item-peinh.
ENDIF.
BOM item number
tbl_bicsp-posnr = tbl_item-posnr.
Item catergory (Bill of material)
tbl_bicsp-postp = tbl_item-postp.
Price (BTCI)
IF NOT tbl_item-preis IS INITIAL.
tbl_bicsp-preis = tbl_item-preis.
ENDIF.
BOM item text (line 1)
tbl_bicsp-potx1 = tbl_item-potx1.
BOM item text (line 2)
tbl_bicsp-potx2 = tbl_item-potx2.
Issusing plant
tbl_bicsp-pswrk = tbl_item-pswrk. "Issuing plant
Indicator: recursiveness allowed
tbl_bicsp-rekrs = tbl_item-rekrs.
Formula key
tbl_bicsp-rform = tbl_item-rform.
Number of variable-size items
IF NOT tbl_item-roanz IS INITIAL.
tbl_bicsp-roanz = tbl_item-roanz.
ENDIF.
*tbl_bicsp-ROAME = . "Unit of measure for variable-size items
*tbl_bicsp-ROKME = . "Unit of measure for variable-size component
Unit of measure for sizes 1 to 3
tbl_bicsp-romei = tbl_item-romei.
Quantity of variable-size item
IF NOT tbl_item-romen IS INITIAL.
tbl_bicsp-romen = tbl_item-romen.
ENDIF.
Size 1
IF NOT tbl_item-roms1 IS INITIAL.
tbl_bicsp-roms1 = tbl_item-roms1.
ENDIF.
Size 2
IF NOT tbl_item-roms2 IS INITIAL.
tbl_bicsp-roms2 = tbl_item-roms2.
ENDIF.
Size 3
IF NOT tbl_item-roms3 IS INITIAL.
tbl_bicsp-roms3 = tbl_item-roms3.
ENDIF.
Indicator: item relevant to sales
tbl_bicsp-rvrel = tbl_item-rvrel.
Cost element
tbl_bicsp-sakto = tbl_item-sakto.
Indicator: item relevant to production
IF NOT tbl_item-sanfe IS INITIAL.
tbl_bicsp-sanfe = tbl_item-sanfe.
ELSE.
tbl_bicsp-sanfe = '!'.
ENDIF.
Indicator: item relevant to plant maintenance
tbl_bicsp-sanin = tbl_item-sanin.
Indicator for relevancy of costing
tbl_bicsp-sanka = tbl_item-sanka.
Indicator: item relevant to engineering
tbl_bicsp-sanko = tbl_item-sanko.
Indicator: high-level configuration
tbl_bicsp-sanvs = tbl_item-sanvs.
Indicator: bulk material
tbl_bicsp-schgt = tbl_item-schgt.
Alternative BOM
tbl_bicsp-selal = tbl_item-caalt. "exist in 4.6c
BOM component
tbl_bicsp-selid = tbl_item-idnrk.
BOM item number
tbl_bicsp-selpo = tbl_item-posnr.
tbl_bicsp-SELSB = tbl_item-. " Sort string
Sort string
tbl_bicsp-sortf = tbl_item-sortf.
PM assembly indicator
tbl_bicsp-stkkz = tbl_item-stkkz.
*tbl_bicsp-STKTX = tbl_item-. "Aternative BOM text
Alternative BOM
tbl_bicsp-stlal = tbl_item-stlal.
Indicator:assembly
tbl_bicsp-stlkz = tbl_item-stkkz.
Distribution key for component consumption
tbl_bicsp-verti = tbl_item-verti.
Processing time for goods receipt in days
IF NOT tbl_item-webaz IS INITIAL.
tbl_bicsp-webaz = tbl_item-webaz.
ENDIF.
Currency key
tbl_bicsp-waers = tbl_item-waers.
Document type
tbl_bicsp-dokar = tbl_item-dokar.
Document number
tbl_bicsp-doknr = tbl_item-doknr.
Document version
tbl_bicsp-dokvr = tbl_item-dokvr.
Document part
tbl_bicsp-doktl = tbl_item-doktl.
Usage probability in %
IF NOT tbl_item-ewahr IS INITIAL.
tbl_bicsp-ewahr = tbl_item-ewahr.
ENDIF.
Purchasing Organization
tbl_bicsp-ekorg = tbl_item-ekorg.
Issue location for poroduction order
tbl_bicsp-lgort = tbl_item-lgort.
Class number
tbl_bicsp-class = tbl_item-class.
Class type
tbl_bicsp-klart = tbl_item-klart.
Resulting item category
tbl_bicsp-potpr = tbl_item-potpr.
Alternative item: Group
tbl_bicsp-alpgr = tbl_item-alpgr.
Alternative item: Strategy
tbl_bicsp-alpst = tbl_item-alpst.
Alternative item: Ranking order
IF NOT tbl_item-alprf IS INITIAL.
tbl_bicsp-alprf = tbl_item-alprf.
ELSE.
REPLACE '00' WITH ' ' INTO tbl_bicsp-alprf.
ENDIF.
Explosion type
tbl_bicsp-dspst = tbl_item-dspst.
Supply area
Strat sree
tbl_bicsp-prvbe = tbl_item-prvbe. "exist in 4.6c
end sree
Discontinuation group
tbl_bicsp-nfeag = tbl_item-nfeag.
Follow-up group
tbl_bicsp-nfgrp = tbl_item-nfgrp.
Indicator: Co-product
tbl_bicsp-kzkup = tbl_item-kzkup.
Intra material
tbl_bicsp-intrm = tbl_item-intrm.
Indicator: Classification as selection condition
tbl_bicsp-kzclb = tbl_item-kzclb.
Lead-time offset for operation
Start of sree exist in 4.6c
if not tbl_item-nlfzv is initial.
tbl_bicsp-nlfzv = tbl_item-nlfzv.
endif.
Unit for lead-time offset for operation
tbl_bicsp-nlfmv = tbl_item-nlfmv.
Reference point for BOM transfer
tbl_bicsp-rfpnt = tbl_item-rfpnt.
end of sree
tbl_output-v_data = tbl_bicsp.
APPEND tbl_bicsp.
APPEND tbl_output.
CLEAR tbl_bicsp.
CLEAR tbl_output.
Item long text
CONCATENATE sy-mandt tbl_item-bmtyp tbl_item-stlnr
tbl_item-stlkn tbl_item-stpoz INTO tdname_item.
PERFORM long_text USING 'MPO' '5' tdname_item.
ENDLOOP.
ENDFORM. " item_data
&----
*& Form Long_text
&----
text
----
-->P_0249 text
----
FORM long_text USING text_id stype v_name.
CLEAR tbl_header.
REFRESH tbl_header.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = text_id
language = sy-langu
name = v_name
object = 'BOM'
TABLES
lines = tbl_header
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7.
IF sy-subrc = 0.
SELECT SINGLE * FROM t002 WHERE spras = sy-langu.
LOOP AT tbl_header.
tbl_text-stype = stype.
tbl_text-lang = t002-spras.
tbl_text-tdformat = tbl_header-tdformat.
tbl_text-tdline = tbl_header-tdline.
tbl_text-isolang = t002-laiso.
tbl_output = tbl_text.
APPEND tbl_output.
CLEAR tbl_text.
ENDLOOP.
ELSEIF sy-subrc = 4.
ENDIF.
ENDFORM. " Long_text
&----
*& Form PLANT_CHECK
&----
text
----
--> p1 text
<-- p2 text
----
FORM plant_check.
IF NOT s_werks[] IS INITIAL.
SELECT werks FROM t001w INTO TABLE tbl_plant WHERE werks IN s_werks.
IF sy-subrc NE 0.
WRITE:/ text-008. " Invalid Plant
STOP.
ENDIF.
ENDIF.
ENDFORM. " PLANT_CHECK
&----
*& Form Material_check
&----
Validate the material
----
FORM material_check.
SELECT matnr werks FROM marc INTO TABLE tbl_matnr
WHERE werks IN s_werks
AND matnr IN s_matnr.
IF sy-subrc NE 0.
WRITE:/ text-009. " 'No material found'
STOP.
ENDIF.
Refresh and Free the internal table tbl_matnr
REFRESH:tbl_matnr.
FREE:tbl_matnr.
ENDFORM. " Material_check
&----
*& Form check_filenames
&----
text
----
--> p1 text
<-- p2 text
----
FORM check_filenames.
make sure the user has entered a file name
IF p_pc = 'X' AND p_ofile = ' '.
WRITE:/ 'Please enter a PC file name'(011).
STOP.
ENDIF.
IF p_unix = 'X' AND p_unfile = ' '.
WRITE:/ 'Please enter a UNIX file name'(012).
STOP.
ENDIF.
If the UNIX file name exists, ask for a confirmation that the
file is to be over-written. The PC is for testing and we
do not care if it is over-written.
IF p_unix = 'X'.
CONCATENATE p_path p_unfile INTO v_unix_filename.
OPEN DATASET v_unix_filename FOR INPUT IN TEXT MODE.
IF sy-subrc = 0.
CLOSE DATASET v_unix_filename.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = text-005
text_question = text-004
text_button_1 = 'YES'
text_button_2 = 'NO'
default_button = '2'
start_column = 25
start_row = 6
IMPORTING
answer = v_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF v_answer = '2'. "no over-write
v_suppress_report = 'X'.
STOP.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " check_filenames
Please give me reward points.
11-13-2007 4:03 AM
Material Upload:
TABLES: MARA,MARC,MVKE,MBEW,MAKT,T024W,T001W,T001K,MARD,MLGN,
MLGT. . "sdhadi
************************************************************************
Constant *
************************************************************************
************************************************************************
DATA, WORK AREAS & INTERNAL TABLES *
************************************************************************
DATA: v_ifile LIKE rlgrap-filename,
v_path LIKE rlgrap-filename,
v_repid LIKE syst-repid,
v_header(2000),
v_unix_filename LIKE rlgrap-filename,
v_specdesc(50) TYPE c,
v_secondline(150) TYPE c,
V_TOT_REC TYPE I.
IT to store material basic data
DATA: BEGIN OF t_mara OCCURS 0,
matnr LIKE mara-matnr,
MTART LIKE MARA-MTART, "sdhadi
MBRSH LIKE MARA-MBRSH, "sdhadi
BISMT LIKE MARA-BISMT, "Murali Poli
meins LIKE mara-meins,
BSTME LIKE MARA-BSTME, "Murali Poli
matkl LIKE mara-matkl,
GROES LIKE MARA-GROES, "Murali poli
BRGEW LIKE MARA-BRGEW, "Murali Poli
NTGEW LIKE MARA-NTGEW, "Murali Poli
VOLUM LIKE MARA-VOLUM, "Murali Poli
VOLEH LIKE MARA-VOLEH, "Murali Poli
EAN11 LIKE MARA-EAN11, "Murali Poli
NUMTP LIKE MARA-NUMTP, "Murali Poli
prdha LIKE mara-prdha,
tragr LIKE mara-tragr,
ekwsl LIKE mara-ekwsl,
GEWEI LIKE MARA-GEWEI, "sdhadi
VHART LIKE MARA-VHART, "Murali Poli
VABME LIKE MARA-VABME, "Murali Poli
MSTAE LIKE MARA-MSTAE, "Murali Poli
MSTDE LIKE MARA-MSTDE, "Murali Poli
MFRPN LIKE MARA-MFRPN, "Murali Poli 4.6
MFRNR LIKE MARA-MFRNR, "Murali Poli 4.6
MPROF LIKE MARA-MPROF, "Murali Poli 4.6
ILOOS LIKE MARA-ILOOS, "Murali Poli 4.6
END OF t_mara.
IT to store material plant data
DATA: BEGIN OF t_marc OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
MMSTA LIKE MARC-MMSTA, "Murali Poli
PLIFZ LIKE MARC-PLIFZ, "Murali Poli
WEBAZ LIKE MARC-WEBAZ, "Murali Poli
AUSSS LIKE MARC-AUSSS, "Murali Poli
SOBSL LIKE MARC-SOBSL, "sdhadi
MINBE LIKE MARC-MINBE , "Murali Poli
EISBE LIKE MARC-EISBE , "Murali Poli
BSTMA LIKE MARC-BSTMA , "Murali Poli
MABST LIKE MARC-MABST , "Murali Poli
KZAUS LIKE MARC-KZAUS, "Murali Poli
AUSDT LIKE MARC-AUSDT , "Murali Poli
NFMAT LIKE MARC-NFMAT, "Murali Poli
KZBED LIKE MARC-KZBED, "sdhadi
FHORI LIKE MARC-FHORI, "sdhadi
DZEIT LIKE MARC-DZEIT , "Murali Poli
ATPKZ LIKE MARC-ATPKZ , "Murali Poli
ladgr LIKE marc-ladgr,
STAWN LIKE MARC-STAWN, "sdhadi
KAUTB LIKE MARC-KAUTB, "Murali Poli
KORDB LIKE MARC-KORDB, "Murali Poli
HERKL LIKE MARC-HERKL, "sdhadi
HERKR LIKE MARC-HERKR, "Murali Poli
MTVER LIKE MARC-MTVER, "Murali Poli
prctr LIKE marc-prctr,
ekgrp LIKE marc-ekgrp,
usequ LIKE marc-usequ,
LGPRO LIKE MARC-LGPRO,
disgr LIKE marc-disgr,
KAUSF LIKE MARC-KAUSF, "Murali Poli
dismm LIKE marc-dismm,
fxhor LIKE marc-fxhor,
dispo LIKE marc-dispo,
disls LIKE marc-disls,
bstmi LIKE marc-bstmi,
rdprf LIKE marc-rdprf,
bstrf LIKE marc-bstrf,
beskz LIKE marc-beskz,
rgekz LIKE marc-rgekz,
fabkz like marc-fabkz, "Murali Poli 4.6
LOSGR LIKE MARC-LOSGR, "Murali Poli
eprio LIKE marc-eprio,
mrppp LIKE marc-mrppp,
perkz LIKE marc-perkz,
mtvfp LIKE marc-mtvfp,
altsl LIKE marc-altsl,
sfepr LIKE marc-sfepr,
sauft LIKE marc-sauft,
RWPRO LIKE MARC-RWPRO, "Murali Poli
ABCIN LIKE MARC-ABCIN, "Murali Poli
awsls LIKE marc-awsls,
XMCNG LIKE MARC-XMCNG, "Murali Poli
PRENG LIKE MARC-PRENG, "Murali Poli
STRGR LIKE MARC-STRGR, "Murali Poli
LGFSB LIKE MARC-LGFSB, "Murali Poli
SHFLG LIKE MARC-SHFLG, "Murali Poli
SHZET LIKE MARC-SHZET, "Murali Poli
MOWNR LIKE MARC-MOWNR, "Murali Poli 4.6
EISLO LIKE MARC-EISLO, "Murali Poli 4.6
END OF t_marc.
start sdhadi
DATA: BEGIN OF T_EKORG OCCURS 0,
WERKS LIKE T024W-WERKS,
EKORG LIKE T024W-EKORG,
END OF T_EKORG.
DATA: BEGIN OF T_PLANTS OCCURS 0,
WERKS LIKE MARC-WERKS,
BUKRS LIKE T001-BUKRS,
END OF T_PLANTS.
DATA: BEGIN OF T_MARD OCCURS 0,
MATNR LIKE MARD-MATNR,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LGPBE LIKE MARD-LGPBE, "Murali Poli
END OF T_MARD.
DATA: BEGIN OF tbl_file OCCURS 0,
material(18) TYPE c,
END OF tbl_file.
DATA: BEGIN OF tbl_material OCCURS 0,
matnr LIKE marc-matnr,
END OF tbl_material.
end sdhadi
IT to store material text
DATA: BEGIN OF t_makt OCCURS 0,
matnr LIKE mara-matnr,
SPRAS LIKE MAKT-SPRAS,
maktx LIKE makt-maktx,
END OF t_makt.
to store material sales data
DATA:BEGIN OF t_mvke OCCURS 0,
matnr LIKE mvke-matnr,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VERSG LIKE MVKE-VERSG, "Murali Poli
VRKME LIKE MVKE-VRKME, "Murali Poli
dwerk LIKE mvke-dwerk,
mtpos LIKE mvke-mtpos,
KONDM LIKE MVKE-KONDM, "Murali Poli
KTGRM LIKE MVKE-KTGRM, "Murali Poli
END OF t_mvke.
to store material valuation data
DATA: BEGIN OF t_mbew OCCURS 0,
matnr LIKE mbew-matnr,
bwkey LIKE mbew-bwkey,
bwtar LIKE mbew-bwtar,
VPRSV LIKE MBEW-VPRSV,
VERPR LIKE MBEW-VERPR, "Murali Poli
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
bklas LIKE mbew-bklas,
BWPRS LIKE MBEW-BWPRS, "Murali Poli
ZPLP1 LIKE MBEW-ZPLP1, "Murali Poli
ZPLD1 LIKE MBEW-ZPLD1, "Murali Poli
HRKFT LIKE MBEW-HRKFT, "Murali Poli
hkmat LIKE mbew-hkmat,
MLAST LIKE MBEW-MLAST, "sdhadi
EKALR LIKE MBEW-EKALR, "Murali Poli
END OF t_mbew.
Start by Murali Poli
*DATA: BEGIN OF T_MLGN OCCURS 0,
MATNR LIKE MLGN-MATNR,
LGBKZ LIKE MLGN-LGBKZ,
LGNUM LIKE MLGN-LGNUM,
END OF T_MLGN.
*DATA: BEGIN OF T_MLGT OCCURS 0,
MATNR LIKE MLGT-MATNR,
LGNUM LIKE MLGT-LGNUM,
END OF T_MLGT.
End by Murali Poli
DATA: BEGIN OF t_output OCCURS 0,
matnr LIKE mara-matnr,
werks LIKE marc-werks,
BUKRS LIKE T001-BUKRS, "sdhadi
maktx LIKE makt-maktx,
MTART LIKE MARA-MTART, "sdhadi
MBRSH LIKE MARA-MBRSH, "sdhadi
BISMT LIKE MARA-BISMT, "Murali Poli
GEWEI LIKE MARA-GEWEI, "sdhadi
meins LIKE mara-meins,
BSTME LIKE MARA-BSTME, "Murali Poli
matkl LIKE mara-matkl,
GROES LIKE MARA-GROES, "Murali poli
BRGEW(17) , "Murali Poli
NTGEW(17), "Murali Poli
VOLUM(17), "Murali Poli
VOLEH(17), "Murali Poli
EAN11 LIKE MARA-EAN11, "Murali Poli
NUMTP LIKE MARA-NUMTP, "Murali Poli
VHART LIKE MARA-VHART, "Murali Poli
VABME LIKE MARA-VABME, "Murali Poli
MSTAE LIKE MARA-MSTAE, "Murali Poli
MSTDE LIKE MARA-MSTDE, "Murali Poli
prdha LIKE mara-prdha,
Start sree commented to adjust feild sequence
MFRPN LIKE MARA-MFRPN, "Murali Poli 4.6
MFRNR LIKE MARA-MFRNR, "Murali Poli 4.6
MPROF LIKE MARA-MPROF, "Murali Poli 4.6
ILOOS LIKE MARA-ILOOS, "Murali Poli 4.6
end sree
LGORT LIKE MARD-LGORT, "sdhadi
LGPBE LIKE MARD-LGPBE, "Murali Poli
tragr LIKE mara-tragr,
ekwsl LIKE mara-ekwsl,
ladgr LIKE marc-ladgr,
PRCTR LIKE MARC-PRCTR,
VKORG LIKE MVKE-VKORG, "sdhadi
VTWEG LIKE MVKE-VTWEG, "sdhadi
EKORG LIKE T024W-EKORG, "sdhadi
ekgrp LIKE marc-ekgrp,
usequ LIKE marc-usequ,
disgr LIKE marc-disgr,
dismm LIKE marc-dismm,
fxhor LIKE marc-fxhor,
dispo LIKE marc-dispo,
disls LIKE marc-disls,
BSTMI(17),
STAWN LIKE MARC-STAWN, "sdhadi
HERKL LIKE MARC-HERKL, "sdhadi
SOBSL LIKE MARC-SOBSL, "sdhadi
KZBED LIKE MARC-KZBED, "sdhadi
FHORI LIKE MARC-FHORI, "sdhadi
LGPRO LIKE MARC-LGPRO, "sdhadi
MMSTA LIKE MARC-MMSTA, "Murali Poli
PLIFZ(7), "Murali Poli
WEBAZ(7), "Murali Poli
AUSSS(9), "Murali Poli
MINBE(17) , "Murali Poli
EISBE(17) , "Murali Poli
BSTMA(17), "Murali Poli
MABST(17) , "Murali Poli
KZAUS LIKE MARC-KZAUS, "Murali Poli
AUSDT LIKE MARC-AUSDT , "Murali Poli
NFMAT LIKE MARC-NFMAT, "Murali Poli
DZEIT(7) , "Murali Poli
ATPKZ LIKE MARC-ATPKZ , "Murali Poli
KAUTB LIKE MARC-KAUTB, "Murali Poli
KORDB LIKE MARC-KORDB, "Murali Poli
HERKR LIKE MARC-HERKR, "Murali Poli
MTVER LIKE MARC-MTVER, "Murali Poli
KAUSF(9), "Murali Poli
LOSGR(17), "Murali Poli
RWPRO LIKE MARC-RWPRO, "Murali Poli
ABCIN LIKE MARC-ABCIN, "Murali Poli
XMCNG LIKE MARC-XMCNG, "Murali Poli
PRENG LIKE MARC-PRENG, "Murali Poli
STRGR LIKE MARC-STRGR, "Murali Poli
LGFSB LIKE MARC-LGFSB, "Murali Poli
SHFLG LIKE MARC-SHFLG, "Murali Poli
SHZET LIKE MARC-SHZET, "Murali Poli
rdprf LIKE marc-rdprf,
bstrf(17),
beskz LIKE marc-beskz,
rgekz LIKE marc-rgekz,
fabkz like marc-fabkz, Commented Sree to adjust
eprio LIKE marc-eprio,
mrppp LIKE marc-mrppp,
perkz LIKE marc-perkz,
mtvfp LIKE marc-mtvfp,
altsl LIKE marc-altsl,
sfepr LIKE marc-sfepr,
sauft LIKE marc-sauft,
awsls LIKE marc-awsls,
*start sree commented to adjust
MOWNR LIKE MARC-MOWNR, "Murali Poli 4.6
EISLO(17), "Murali Poli 4.6
end Sree
dwerk LIKE mvke-dwerk,
mtpos LIKE mvke-mtpos,
VERSG LIKE MVKE-VERSG, "Murali Poli
VRKME LIKE MVKE-VRKME, "Murali Poli
KONDM LIKE MVKE-KONDM, "Murali Poli
KTGRM LIKE MVKE-KTGRM, "Murali Poli
bklas LIKE mbew-bklas,
hkmat LIKE mbew-hkmat,
MLAST LIKE MBEW-MLAST, "sdhadi
VPRSV LIKE MBEW-VPRSV,
VERPR(15), "Murali Poli
BWPRS(15), "Murali Poli
ZPLP1(15), "Murali Poli
ZPLD1 LIKE MBEW-ZPLD1, "Murali Poli
HRKFT LIKE MBEW-HRKFT, "Murali Poli
EKALR LIKE MBEW-EKALR, "Murali Poli
LGBKZ LIKE MLGN-LGBKZ, "Murali Poli
LGNUM LIKE MLGN-LGNUM, "Murali Poli
stprs(14),
peinh(5),
start sree added all the above commented feilds.
MFRPN LIKE MARA-MFRPN,
MFRNR LIKE MARA-MFRNR,
MPROF LIKE MARA-MPROF,
ILOOS LIKE MARA-ILOOS,
fabkz like marc-fabkz,
MOWNR LIKE MARC-MOWNR,
EISLO(17),
end sree
END OF t_output.
final internal table
DATA: BEGIN OF tbl_final OCCURS 0,
RECORD(7000),
END OF tbl_final.
----
S E L E C T - O P T I O N S / P A R A M E T E R S *
----
start Sdhadi
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R_ALLMAT RADIOBUTTON GROUP 004.
SELECTION-SCREEN COMMENT 4(42) TEXT-103.
SELECTION-SCREEN END OF LINE.
end sdhadi
SELECT-OPTIONS: S_MATNR FOR MARC-MATNR.
start Sdhadi
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R_MATFIL RADIOBUTTON GROUP 004.
SELECTION-SCREEN COMMENT 4(42) TEXT-104.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS: r_matapp RADIOBUTTON GROUP 003.
SELECTION-SCREEN COMMENT 7(40) text-105.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS p_appnam LIKE filename-fileextern
DEFAULT '/usr/sap/data/ice/matfile.txt'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS: r_matpre RADIOBUTTON GROUP 003.
SELECTION-SCREEN COMMENT 7(40) text-106.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 4.
PARAMETERS P_PRENAM LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF LINE.
end sdhadi
SELECT-OPTIONS: S_WERKS FOR MARC-WERKS OBLIGATORY.
parameters p_delim(1) default ','.
SELECTION-SCREEN SKIP 2.
PARAMETERS: p_serv RADIOBUTTON GROUP rad1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_path LIKE rlgrap-filename
DEFAULT '/usr/sap/data/ice/conversions/'.
PARAMETERS: P_IFILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP.
PARAMETERS: p_locl RADIOBUTTON GROUP rad1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_lfile LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b2.
----
A T - S E L E C T I O N - S C R E E N *
----
*AT SELECTION-SCREEN ON s_werks.
PERFORM multiple_plant_code_check(z_delphi_security_checks)
TABLES s_werks
USING ' '
'03'
'X'
' '.
*create file search for desktop files
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lfile.
PERFORM get_filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_prenam.
V_REPID = SY-REPID.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
CHANGING
file_name = p_prenam
EXCEPTIONS
mask_too_long = 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.
----
T O P - O F - P A G E
----
TOP-OF-PAGE.
v_specdesc = syst-title.
v_secondline = syst-repid.
PERFORM DELPHI_HEADER(ZHEADFOT)
USING v_specdesc
v_secondline
syst-linsz.
----
S T A R T - O F - S E L E C T I O N *
----
START-OF-SELECTION.
get the material.
PERFORM GET_MATERIAL_FROM_FILE.
get all the data.
PERFORM GET_DATA.
Prepare final internal table.
PERFORM FINAL_TABLE.
start sree
perform filter_data.
end sree
fill the header record.
PERFORM header.
down load data.
PERFORM download.
print output to the screen.
DESCRIBE TABLE t_output LINES v_tot_rec.
IF p_locl = 'X'.
WRITE:/ 'Total No. Of records', v_tot_rec,
'downloaded to', p_lfile.
ELSE.
WRITE:/ 'Total No. Of records', v_tot_rec,
'downloaded to', v_unix_filename.
ENDIF.
&----
*& Form get_filename
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_filename.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = p_lfile
def_path = 'c:\'
mask = ',.,..'
mode = 'O'
TITLE = TEXT-002
IMPORTING
filename = p_lfile
RC =
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ENDFORM. " get_filename
&----
*& Form header
&----
append header record
----
FORM header.
CONCATENATE
'Material ID'
'Plant'
'Company Code' "sdhadi
'Material Description'
'Material Type' "sdhadi
'Industry Sector' "sdhadi
'Old material number' "Murali Poli
'Weight Unit' "sdhadi
'UOM'
'Order unit (purchasing)' "Murali Poli
'Material Goup'
'Size/dimensions' "Murali Poli
'Gross weight' "Murali Poli
'Net weight' "Murali Poli
'Volume' "Murali Poli
'Volume unit' "Murali Poli
'International Article Number' "Murali Poli
'Number category of Internation' "Murali Poli
'Shipping material type' "Murali Poli
'Variable order unit active' "Murali Poli
'General material status' "Murali Poli
'Date from which the gen. mat' "Murali Poli
'Product Hierarchy'
start sree comented to adjusted with 3.1i
'Manufacturer part number' "Murali Poli 4.6
'Manufacturer number' "Murali Poli 4.6
'Mfr part profile' "Murali Poli 4.6
'Indicator: In bulk/liquid' "Murali Poli 4.6
end sree
'Storage Location'
'Storage bin' "Murali Poli
'Transportation Goup'
'Purchasing value key'
'Loading group'
'Profit center'
'Sales Org' "sdhadi
'Distribution channel' "sdhadi
'Purchase Org' "sdhadi
'Purchasing group'
'Quota Arrangement Usage'
'MRP group'
'MRP Type'
'Planning Time fence'
'MRP Controller'
'LOT size'
'Min. Lot Size'
'Commodity Code' "Sdhadi
'Country of Origin' "Sdhadi
'Special Procurement' "Sdhadi
'Requirement Type' "Sdhadi
'Schedule Margin key' "Sdhadi
'Issue. Storage loc' "Sdhadi
'Plant-Specific Material Status' "Murali Poli
'Planned delivery time in days' "Murali Poli
'Processing time for goods receipt in days' "Murali Poli
'Assembly Scrap' "Murali Poli
'Reorder point (BTCI)' "Murali Poli
'Safety stock (BTCI)' "Murali Poli
'Maximum lot size (BTCI)' "Murali Poli
'Maximum stock level' "Murali Poli
'Discontinuation indicator' "Murali Poli
'Effective-out date (BTCI)' "Murali Poli
'Follow-up material' "Murali Poli
'In-house production time (BTCI)' "Murali Poli
'Replacement part' "Murali Poli
'Indicator: automatic purchase order allowed' "Murali Poli
'Indicator: Source list requirement' "Murali Poli
'Region of origin of material (non-preferential origin)' "Murali
'Export/import material group' "Murali Poli
'Component scrap in percent (BTCI)' "Murali Poli
'Lot size of product cost estimate (BTCI)' "Murali Poli
'Range of coverage profile' "Murali Poli
'Physical inventory indicator for cycle counting' "Murali Poli
'Negative stocks allowed in plant' "Murali Poli
'Indicator: Vendor declaration exists' "Murali Poli
'Strategy group' "Murali Poli
'Default storage location for external procurement' "Murali
'Safety time indicator (with or without safety time)'"Murali Poli
'Safety time in workdays(for data transfer)' "Murali Poli
'Rounding Profile'
'Rounding value'
'Procurement Type'
'Back Flush'
'JIT schedule indicator' "Murali Poli 4.6 By sree
'Stock Det. Group'
'Planning calendar'
'Period indicator'
'Availability check'
'Selection Method'
'REM Profile'
'Repetitive Manufacturing Indicator'
'Variance Key'
start Sree comment
'CAP: Number of CAP products list' "Murali Poli 4.6
'Lower Limit for Safety Stock (BCTI)' "Murali Poli 4.6
end sree
'Delivering Plant'
'Item category group'
'Material statistic group' "Murali Poli
'Sales unitSALES' "Murali Poli
'Material Pricing Group' "Murali Poli
'Account assignment group' "Murali Poli
'Material group 1' "Murali Poli
'Material group 2' "Murali Poli
'Valuation class'
'Material Origin'
'Price determination'
'Price control'
'Moving average price (BTCI)' "Murali Poli
'Valuation price based on tax law (BTCI)' "Murali Poli
'Planned price 1 (BTCI)' "Murali Poli
'Planned Price Date 1 (BTCI)' "Murali Poli
'Origin group freight' "Murali Poli
'Material is costed with quantity structure' "Murali Poli
'Storage section indicator' "Murali Poli
'Warehouse number/complex' "Murali Poli
'Std. Price'
'Price Unit'
start sree add all 6 commented feild
'Manufacturer part number'
'Manufacturer number'
'Mfr part profile'
'Indicator: In bulk/liquid'
'JIT schedule indicator'
'CAP: Number of CAP products list'
'Lower Limit for Safety Stock (BCTI)'
end sree
INTO tbl_final-record SEPARATED BY p_delim.
APPEND tbl_final.
ENDFORM. " header
&----
*& Form download
&----
Subroutine to download
----
FORM download.
IF NOT t_output[] IS INITIAL.
LOOP AT t_output.
CLEAR tbl_final.
t_output-vtweg = '10'."DIST
perform dw.
append tbl_final.
t_output-vtweg = '30'."DIST
perform dw.
append tbl_final. "to duplicate the record with distribution chl.
CLEAR: tbl_final, t_output.
ENDLOOP.
ENDIF.
IF p_locl = 'X'.
Download to PC file.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = p_lfile
filetype = 'ASC'
TABLES
data_tab = tbl_final.
ELSE.
CLEAR v_unix_filename.
CONCATENATE p_path p_ifile INTO v_unix_filename.
DELETE DATASET v_unix_filename.
Open Unix file
OPEN DATASET v_unix_filename FOR OUTPUT IN TEXT MODE.
Issue error message
IF sy-subrc NE 0.
message e009. " Error while getting the file name
WRITE:/ text-006. "Error while opening/writing the file unix server
STOP.
ENDIF.
LOOP AT tbl_final.
TRANSFER tbl_final TO v_unix_filename.
CLEAR tbl_final.
ENDLOOP.
Close the Unix file
CLOSE DATASET v_unix_filename.
ENDIF.
ENDFORM. " download
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA.
Get all the materials for plants
IF R_MATFIL EQ 'X'.
IF NOT TBL_MATERIAL[] IS INITIAL.
SELECT
MATNR
werks
MMSTA "Murali Poli
PLIFZ "Murali Poli
WEBAZ "Murali Poli
AUSSS "Murali Poli
SOBSL
MINBE "Murali Poli
EISBE "Murali Poli
BSTMA "Murali Poli
MABST "Murali Poli
KZAUS "Murali Poli
AUSDT "Murali Poli
NFMAT "Murali Poli
KZBED
FHORI
DZEIT "Murali Poli
ATPKZ "Murali Poli
ladgr
STAWN
KAUTB "Murali Poli
KORDB "Murali Poli
HERKL
HERKR "Murali Poli
MTVER "Murali Poli
prctr
ekgrp
usequ
LGPRO
disgr
KAUSF "Murali Poli
dismm
fxhor
dispo
disls
bstmi
rdprf
bstrf
beskz
rgekz
fabkz "Murali Poli 4.6c
LOSGR "Murali Poli
eprio
mrppp
perkz
mtvfp
altsl
sfepr
sauft
RWPRO "Murali Poli
ABCIN "Murali Poli
awsls
XMCNG "Murali Poli
PRENG "Murali Poli
STRGR "Murali Poli
LGFSB "Murali Poli
SHFLG "Murali Poli
SHZET "Murali Poli
MOWNR "Murali Poli 4.6
EISLO "Murali Poli 4.6
INTO TABLE t_marc FROM marc
FOR ALL ENTRIES IN TBL_MATERIAL
WHERE MATNR = TBL_MATERIAL-MATNR AND
WERKS IN S_WERKS AND
LVORM EQ SPACE.
IF sy-subrc = 0.
SORT t_marc BY matnr.
ELSE.
MESSAGE S000(0) WITH 'No data for the selection criteria'.
ENDIF.
ENDIF.
ELSE.
SELECT
MATNR
werks
MMSTA "Murali Poli
PLIFZ "Murali Poli
WEBAZ "Murali Poli
AUSSS "Murali Poli
SOBSL
MINBE "Murali Poli
EISBE "Murali Poli
BSTMA "Murali Poli
MABST "Murali Poli
KZAUS "Murali Poli
AUSDT "Murali Poli
NFMAT "Murali Poli
KZBED
FHORI
DZEIT "Murali Poli
ATPKZ "Murali Poli
LADGR
STAWN
KAUTB "Murali Poli
KORDB "Murali Poli
HERKL
HERKR "Murali Poli
MTVER "Murali Poli
prctr
ekgrp
usequ
LGPRO
disgr
KAUSF "Murali Poli
dismm
fxhor
dispo
disls
bstmi
rdprf
bstrf
beskz
rgekz
fabkz "sdhadi 4.6c
LOSGR "Murali Poli
eprio
mrppp
perkz
mtvfp
altsl
sfepr
sauft
RWPRO "Murali Poli
ABCIN "Murali Poli
awsls
XMCNG "Murali Poli
PRENG "Murali Poli
STRGR "Murali Poli
LGFSB "Murali Poli
SHFLG "Murali Poli
SHZET "Murali Poli
MOWNR EISLO "Murali Poli 4.6
INTO TABLE t_marc FROM marc
WHERE matnr IN s_matnr AND
WERKS IN S_WERKS AND
LVORM EQ SPACE.
IF sy-subrc = 0.
SORT t_marc BY matnr.
ELSE.
MESSAGE S000(0) WITH 'No data for the selection criteria'.
ENDIF.
ENDIF.
start sdhadi
IF NOT T_MARC[] IS INITIAL.
get the purchase organisations from t024w.
SELECT WERKS EKORG FROM T024W INTO TABLE T_EKORG
WHERE WERKS IN S_WERKS.
IF SY-SUBRC = 0.
SORT T_EKORG BY WERKS.
ENDIF.
get the plants and corresponding company codes
SELECT P~WERKS AS WERKS C~BUKRS AS BUKRS INTO TABLE T_PLANTS
FROM ( t001w AS p INNER JOIN t001k AS c
ON C~BWKEY = P~BWKEY ).
IF SY-SUBRC = 0.
SORT T_PLANTS.
ENDIF.
material plant storage location
SELECT MATNR WERKS LGORT
LGPBE "Murali Poli
FROM MARD INTO TABLE T_MARD
FOR ALL ENTRIES IN T_MARC
WHERE MATNR = T_MARC-MATNR AND
WERKS = T_MARC-WERKS.
IF SY-SUBRC = 0.
SORT T_MARD BY MATNR WERKS.
ENDIF.
end sdhadi
get material basic data
SELECT MATNR
MTART MBRSH "sdhadi
BISMT "Murali Poli
meins
BSTME "Murali Poli
matkl
GROES "Murali poli
BRGEW "Murali Poli
NTGEW "Murali Poli
VOLUM "Murali Poli
VOLEH "Murali Poli
EAN11 "Murali Poli
NUMTP "Murali Poli
prdha
tragr
EKWSL
GEWEI "sdhadi
VHART "Murali Poli
VABME "Murali Poli
MSTAE "Murali Poli
MSTDE "Murali Poli
MFRPN MFRNR MPROF "Murali Poli 4.6
ILOOS "Murali Poli 4.6
FROM mara INTO TABLE t_mara
FOR ALL ENTRIES IN t_marc
WHERE MATNR = T_MARC-MATNR AND
LVORM EQ SPACE.
IF sy-subrc = 0.
SORT t_mara BY matnr.
ENDIF.
get material text
SELECT MATNR SPRAS MAKTX FROM MAKT
INTO TABLE t_makt
FOR ALL ENTRIES IN t_mara
WHERE matnr = t_mara-matnr.
IF sy-subrc = 0.
SORT t_makt BY matnr.
ENDIF.
get material sales data
SELECT MATNR VKORG VTWEG "sdhadi
VERSG VRKME "Murali Poli
dwerk
mtpos
KONDM KTGRM "Murali Poli
FROM MVKE INTO TABLE T_MVKE
FOR ALL ENTRIES IN t_mara
WHERE matnr = t_mara-matnr.
IF sy-subrc = 0.
SORT t_mvke BY matnr.
ENDIF.
get material accounting data
SELECT
matnr
bwkey
bwtar
VPRSV
VERPR "Murali Poli
STPRS
PEINH
bklas
BWPRS ZPLP1 ZPLD1 HRKFT "Murali Poli
hkmat
MLAST "Sdhadi
EKALR "Murali Poli
FROM MBEW INTO TABLE T_MBEW
FOR ALL ENTRIES IN t_marc
WHERE matnr = t_marc-matnr AND
bwkey = t_marc-werks.
IF sy-subrc = 0.
SORT t_mbew BY matnr bwkey.
ENDIF.
Start by Murali Poli
get Warehouse data
SELECT
MATNR
LGBKZ LGNUM
FROM MLGN INTO TABLE T_MLGN
FOR ALL ENTRIES IN T_MARC
WHERE MATNR = T_MARC-MATNR.
IF SY-SUBRC = 0.
SORT T_MLGN BY MATNR LGNUM .
ENDIF.
*
SELECT
MATNR
LGTYP
FROM MLGT INTO TABLE T_MLGT
FOR ALL ENTRIES IN T_MARC
WHERE MATNR = T_MARC-MATNR.
IF SY-SUBRC = 0.
SORT T_MLGT BY MATNR LGNUM LGTYP.
ENDIF.
ENDIF.
ENDFORM. " GET_DATA
&----
*& Form FINAL_TABLE
&----
text
----
--> p1 text
<-- p2 text
----
FORM FINAL_TABLE.
IF NOT t_marc[] IS INITIAL.
LOOP AT t_marc.
MOVE: t_marc-matnr TO t_output-matnr,
t_marc-werks TO t_output-werks,
t_marc-ladgr TO t_output-ladgr,
t_marc-prctr TO t_output-prctr,
t_marc-ekgrp TO t_output-ekgrp,
t_marc-usequ TO t_output-usequ,
t_marc-disgr TO t_output-disgr,
t_marc-dismm TO t_output-dismm,
t_marc-fxhor TO t_output-fxhor,
t_marc-dispo TO t_output-dispo,
t_marc-disls TO t_output-disls,
t_marc-bstmi TO t_output-bstmi,
t_marc-rdprf TO t_output-rdprf,
t_marc-bstrf TO t_output-bstrf,
t_marc-beskz TO t_output-beskz,
t_marc-rgekz TO t_output-rgekz,
t_marc-fabkz TO t_output-fabkz, "sdhadi 4.6c
t_marc-eprio TO t_output-eprio,
t_marc-mrppp TO t_output-mrppp,
t_marc-perkz TO t_output-perkz,
t_marc-mtvfp TO t_output-mtvfp,
t_marc-altsl TO t_output-altsl,
t_marc-sfepr TO t_output-sfepr,
t_marc-sauft TO t_output-sauft,
T_MARC-AWSLS TO T_OUTPUT-AWSLS,
Start Murali Poli
T_MARC-MMSTA TO T_OUTPUT-MMSTA,
T_MARC-PLIFZ TO T_OUTPUT-PLIFZ,
T_MARC-WEBAZ TO T_OUTPUT-WEBAZ,
T_MARC-AUSSS TO T_OUTPUT-AUSSS,
T_MARC-MINBE TO T_OUTPUT-MINBE,
T_MARC-EISBE TO T_OUTPUT-EISBE,
T_MARC-BSTMA TO T_OUTPUT-BSTMA,
T_MARC-MABST TO T_OUTPUT-MABST,
T_MARC-KZAUS TO T_OUTPUT-KZAUS,
T_MARC-AUSDT TO T_OUTPUT-AUSDT,
T_MARC-NFMAT TO T_OUTPUT-NFMAT,
T_MARC-DZEIT TO T_OUTPUT-DZEIT,
T_MARC-ATPKZ TO T_OUTPUT-ATPKZ,
T_MARC-KAUTB TO T_OUTPUT-KAUTB,
T_MARC-KORDB TO T_OUTPUT-KORDB,
T_MARC-HERKR TO T_OUTPUT-HERKR,
T_MARC-MTVER TO T_OUTPUT-MTVER,
T_MARC-KAUSF TO T_OUTPUT-KAUSF,
T_MARC-LOSGR TO T_OUTPUT-LOSGR,
T_MARC-RWPRO TO T_OUTPUT-RWPRO,
T_MARC-ABCIN TO T_OUTPUT-ABCIN,
T_MARC-XMCNG TO T_OUTPUT-XMCNG,
T_MARC-PRENG TO T_OUTPUT-PRENG,
T_MARC-STRGR TO T_OUTPUT-STRGR,
T_MARC-LGFSB TO T_OUTPUT-LGFSB,
T_MARC-SHFLG TO T_OUTPUT-SHFLG,
T_MARC-SHZET TO T_OUTPUT-SHZET,
T_MARC-MOWNR TO T_OUTPUT-MOWNR, "Murali Poli 4.6
T_MARC-EISLO TO T_OUTPUT-EISLO, "Murali Poli 4.6
*End Murali Poli
*start sdhadi
T_MARC-STAWN TO T_OUTPUT-STAWN,
T_MARC-HERKL TO T_OUTPUT-HERKL,
T_MARC-SOBSL TO T_OUTPUT-SOBSL,
T_MARC-KZBED TO T_OUTPUT-KZBED,
T_MARC-FHORI TO T_OUTPUT-FHORI,
T_MARC-LGPRO TO T_OUTPUT-LGPRO.
READ TABLE T_PLANTS WITH KEY WERKS = T_MARC-WERKS BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE:T_PLANTS-BUKRS TO T_OUTPUT-BUKRS.
ENDIF.
READ TABLE T_EKORG WITH KEY WERKS = T_MARC-WERKS BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE:T_EKORG-EKORG TO T_OUTPUT-EKORG.
ENDIF.
end sdhadi
READ TABLE t_mara WITH KEY matnr = t_marc-matnr
BINARY SEARCH.
IF sy-subrc = 0.
MOVE:t_mara-meins TO t_output-meins,
t_mara-matkl TO t_output-matkl,
t_mara-prdha TO t_output-prdha,
t_mara-tragr TO t_output-tragr,
T_MARA-EKWSL TO T_OUTPUT-EKWSL,
T_MARA-MTART TO T_OUTPUT-MTART,"sdhadi
T_MARA-MBRSH TO T_OUTPUT-MBRSH,"sdhadi
T_MARA-GEWEI TO T_OUTPUT-GEWEI,"sdhadi
*Start by Murali Poli
T_MARA-BISMT TO T_OUTPUT-BISMT,
T_MARA-BSTME TO T_OUTPUT-BSTME,
T_MARA-GROES TO T_OUTPUT-GROES,
T_MARA-BRGEW TO T_OUTPUT-BRGEW,
T_MARA-NTGEW TO T_OUTPUT-NTGEW,
T_MARA-VOLUM TO T_OUTPUT-VOLUM,
T_MARA-VOLEH TO T_OUTPUT-VOLEH,
T_MARA-EAN11 TO T_OUTPUT-EAN11,
T_MARA-NUMTP TO T_OUTPUT-NUMTP,
T_MARA-VHART TO T_OUTPUT-VHART,
T_MARA-VABME TO T_OUTPUT-VABME,
T_MARA-MSTAE TO T_OUTPUT-MSTAE,
T_MARA-MSTDE TO T_OUTPUT-MSTDE,
T_MARA-MFRPN TO T_OUTPUT-MFRPN, "Murali Poli 4.6
T_MARA-MFRNR TO T_OUTPUT-MFRNR, "Murali Poli 4.6
T_MARA-MPROF TO T_OUTPUT-MPROF, "Murali Poli 4.6
T_MARA-ILOOS TO T_OUTPUT-ILOOS. "Murali Poli 4.6
*End by Murali Poli
ENDIF.
READ TABLE t_mbew WITH KEY matnr = t_marc-matnr
bwkey = t_marc-werks
BINARY SEARCH.
IF sy-subrc = 0.
MOVE: T_MBEW-BKLAS TO T_OUTPUT-BKLAS,
T_MBEW-HKMAT TO T_OUTPUT-HKMAT,
T_MBEW-VPRSV TO T_OUTPUT-VPRSV,
T_MBEW-STPRS TO T_OUTPUT-STPRS,
T_MBEW-PEINH TO T_OUTPUT-PEINH,
T_MBEW-MLAST TO T_OUTPUT-MLAST, "sdhadi
T_MBEW-VERPR TO T_OUTPUT-VERPR, "Murali Poli
T_MBEW-BWPRS TO T_OUTPUT-BWPRS, "Murali Poli
T_MBEW-ZPLP1 TO T_OUTPUT-ZPLP1, "Murali Poli
T_MBEW-ZPLD1 TO T_OUTPUT-ZPLD1, "Murali Poli
T_MBEW-HRKFT TO T_OUTPUT-HRKFT, "Murali Poli
T_MBEW-EKALR TO T_OUTPUT-EKALR. "Murali Poli
ENDIF.
READ TABLE T_MVKE WITH KEY MATNR = T_MARC-MATNR
BINARY SEARCH.
IF sy-subrc = 0.
MOVE: t_mvke-dwerk TO t_output-dwerk,
T_MVKE-MTPOS TO T_OUTPUT-MTPOS,
T_MVKE-VKORG TO T_OUTPUT-VKORG,
T_MVKE-VTWEG TO T_OUTPUT-VTWEG,
T_MVKE-VERSG TO T_OUTPUT-VERSG, "Murali Poli
T_MVKE-VRKME TO T_OUTPUT-VRKME, "Murali Poli
T_MVKE-KONDM TO T_OUTPUT-KONDM, "Murali Poli
T_MVKE-KTGRM TO T_OUTPUT-KTGRM. "Murali Poli
ENDIF.
Start by Murali Poli
READ TABLE T_MLGN WITH KEY MATNR = T_MARC-MATNR
BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE: T_MLGN-LGBKZ TO T_OUTPUT-LGBKZ,
T_MLGN-LGNUM TO T_OUTPUT-LGNUM.
T_MLGN-LTKZA TO T_OUTPUT-LTKZA,
T_MLGN-LTKZE TO T_OUTPUT-LTKZE.
ENDIF.
READ TABLE T_MLGT WITH KEY MATNR = T_MARC-MATNR
BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE T_MLGT-LGTYP TO T_OUTPUT-LGTYP.
ENDIF.
End by Murali Poli
READ TABLE t_makt WITH KEY matnr = t_marc-matnr
SPRAS = 'E'
BINARY SEARCH.
IF sy-subrc = 0.
MOVE t_makt-maktx TO t_output-maktx.
ELSE.
READ TABLE T_MAKT WITH KEY MATNR = T_MARC-MATNR.
MOVE T_MAKT-MAKTX TO T_OUTPUT-MAKTX.
ENDIF.
READ TABLE T_MARD WITH KEY MATNR = T_MARC-MATNR
WERKS = T_MARC-WERKS BINARY SEARCH.
IF SY-SUBRC = 0.
LOOP AT T_MARD WHERE MATNR = T_MARC-MATNR
AND WERKS = T_MARC-WERKS.
MOVE: T_MARD-LGORT TO T_OUTPUT-LGORT.
T_MARD-LGPBE TO T_OUTPUT-LGPBE. "Murali Poli
APPEND T_OUTPUT.
ENDLOOP.
ELSE.
APPEND t_output.
ENDIF.
CLEAR: t_output,t_marc.
ENDLOOP.
ENDIF.
ENDFORM. " FINAL_TABLE
&----
*& Form GET_MATERIAL_FROM_FILE
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_MATERIAL_FROM_FILE.
DATA: v_msg(100) TYPE c.
IF r_matfil EQ 'X'.
IF r_matapp EQ 'X'.
PERFORM open_dataset USING p_appnam 'I' 'T' 1.
OPEN DATASET p_appnam FOR INPUT IN TEXT MODE MESSAGE v_msg.
CHECK syst-subrc = 0.
DO.
READ DATASET p_appnam INTO tbl_file.
IF syst-subrc <> 0.
EXIT.
ELSE.
APPEND tbl_file.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = tbl_file-material
IMPORTING
output = tbl_material-matnr
EXCEPTIONS
number_not_found = 1
OTHERS = 2.
CHECK syst-subrc = 0.
APPEND tbl_material.
CLEAR: tbl_file, tbl_material.
ENDIF.
ENDDO.
CLOSE DATASET p_appnam.
ELSE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_prenam
filetype = 'ASC'
TABLES
data_tab = tbl_file
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT tbl_file.
CLEAR tbl_material.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = tbl_file-material
IMPORTING
output = tbl_material-matnr
EXCEPTIONS
number_not_found = 1
OTHERS = 2.
CHECK syst-subrc = 0.
APPEND tbl_material.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " GET_MATERIAL_FROM_FILE
&----
*& Form dw
&----
text
----
--> p1 text
<-- p2 text
----
FORM dw.
CONCATENATE
t_output-matnr
t_output-werks
T_OUTPUT-BUKRS "sdhadi
T_OUTPUT-MAKTX
T_OUTPUT-MTART "sdhadi
T_OUTPUT-MBRSH "sdhadi
T_OUTPUT-BISMT "Murali Poli
T_OUTPUT-GEWEI "sdhadi
t_output-meins
T_OUTPUT-BSTME "Murali Poli
t_output-matkl
T_OUTPUT-GROES "Murali poli
T_OUTPUT-BRGEW "Murali Poli
T_OUTPUT-NTGEW "Murali Poli
T_OUTPUT-VOLUM "Murali Poli
T_OUTPUT-VOLEH "Murali Poli
T_OUTPUT-EAN11 "Murali Poli
T_OUTPUT-NUMTP "Murali Poli
T_OUTPUT-VHART "Murali Poli
T_OUTPUT-VABME "Murali Poli
T_OUTPUT-MSTAE "Murali Poli
T_OUTPUT-MSTDE "Murali Poli
t_output-prdha
start sree commented to adjust with 3.1i
t_output-MFRPN "Murali Poli 4.6
t_output-MFRNR "Murali Poli 4.6
t_output-MPROF "Murali Poli 4.6
t_output-ILOOS "Murali Poli
end sree
T_OUTPUT-LGORT "sdhadi
T_OUTPUT-LGPBE "Murali Poli
t_output-tragr
t_output-ekwsl
t_output-ladgr
t_output-prctr
T_OUTPUT-VKORG "sdhadi
T_OUTPUT-VTWEG "sdhadi
T_OUTPUT-EKORG "sdhadi
t_output-ekgrp
t_output-usequ
t_output-disgr
t_output-dismm
t_output-fxhor
t_output-dispo
t_output-disls
t_output-bstmi
T_OUTPUT-STAWN "sdhadi
T_OUTPUT-HERKL "sdhadi
T_OUTPUT-SOBSL "sdhadi
T_OUTPUT-KZBED "sdhadi
T_OUTPUT-FHORI "sdhadi
T_OUTPUT-LGPRO "sdhadi
T_OUTPUT-MMSTA "Murali Poli
T_OUTPUT-PLIFZ "Murali Poli
T_OUTPUT-WEBAZ "Murali Poli
T_OUTPUT-AUSSS "Murali Poli
T_OUTPUT-MINBE "Murali Poli
T_OUTPUT-EISBE "Murali Poli
T_OUTPUT-BSTMA "Murali Poli
T_OUTPUT-MABST "Murali Poli
T_OUTPUT-KZAUS "Murali Poli
T_OUTPUT-AUSDT "Murali Poli
T_OUTPUT-NFMAT "Murali Poli
T_OUTPUT-DZEIT "Murali Poli
T_OUTPUT-ATPKZ "Murali Poli
T_OUTPUT-KAUTB "Murali Poli
T_OUTPUT-KORDB "Murali Poli
T_OUTPUT-HERKR "Murali Poli
T_OUTPUT-MTVER "Murali Poli
T_OUTPUT-KAUSF "Murali Poli
T_OUTPUT-LOSGR "Murali Poli
T_OUTPUT-RWPRO "Murali Poli
T_OUTPUT-ABCIN "Murali Poli
T_OUTPUT-XMCNG "Murali Poli
T_OUTPUT-PRENG "Murali Poli
T_OUTPUT-STRGR "Murali Poli
T_OUTPUT-LGFSB "Murali Poli
T_OUTPUT-SHFLG "Murali Poli
T_OUTPUT-SHZET "Murali Poli
T_OUTPUT-RDPRF
t_output-bstrf
t_output-beskz
t_output-rgekz
t_output-fabkz "Murali Poli 4.6 Sree adjust
t_output-eprio
t_output-mrppp
t_output-perkz
t_output-mtvfp
t_output-altsl
t_output-sfepr
t_output-sauft
t_output-awsls
T_OUTPUT-MOWNR "Murali Poli 4.6 Sree adjust
T_OUTPUT-EISLO "Murali Poli 4.6 sree adjust
t_output-dwerk
t_output-mtpos
T_OUTPUT-VERSG "Murali Poli
T_OUTPUT-VRKME "Murali Poli
T_OUTPUT-KONDM "Murali Poli
T_OUTPUT-KTGRM "Murali Poli
t_output-bklas
t_output-hkmat
T_OUTPUT-MLAST "sdhadi
t_output-vprsv
T_OUTPUT-VERPR "Murali Poli
T_OUTPUT-BWPRS "Murali Poli
T_OUTPUT-ZPLP1 "Murali Poli
T_OUTPUT-ZPLD1 "Murali Poli
T_OUTPUT-HRKFT "Murali Poli
T_OUTPUT-EKALR "Murali Poli
T_OUTPUT-LGBKZ "Murali Poli
T_OUTPUT-LGNUM "Murali Poli
t_output-stprs
t_output-peinh
start sree to add all the commented feilds
t_output-MFRPN
t_output-MFRNR
t_output-MPROF
t_output-ILOOS
t_output-fabkz
T_OUTPUT-MOWNR
T_OUTPUT-EISLO
end sree
INTO tbl_final-record SEPARATED BY p_delim.
ENDFORM. " dw
&----
*& Form filter_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM filter_data.
data: t_output_tmp like t_output occurs 0 with header line.
if not t_output[] is initial.
sort t_output by matnr werks.
clear:t_output_tmp,t_output.
refresh t_output_tmp.
loop at t_output.
clear t_output_tmp.
if t_output-werks = '0010'.
move-corresponding t_output to t_output_tmp.
append t_output_tmp.
clear:t_output_tmp,t_output.
else.
read table t_output_tmp with key matnr = t_output-matnr
werks = '0010'.
if sy-subrc NE 0.
move-corresponding t_output to t_output_tmp.
append t_output_tmp.
clear:t_output_tmp,t_output.
endif.
endif.
endloop.
refresh t_output.
t_output[] = t_output_tmp[].
endif.
ENDFORM. " filter_data
Reward points please....
11-13-2007 4:07 AM
Hi
i think you Passing the same file name for both the tables. you need two file names
11-13-2007 4:55 AM
I am really thankful to all of you who took an effort to answer my question.
thanks for your precious time.
The error is User giving the filenames vice versa.