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

problem in a Interface

Former Member
0 Likes
1,101

Hi....

I have an Interface which actually downloads the "MATERIAL MASTER DATA" from SAP to a flat file.

The current o/p of the interface looks like:

MAT NO. MAT DESCRIPTION Subst. Mat no......

Now they askd me to add 3 more fields to that existing program.

those are:

1.OUTSERT No.

2.MEDICATION PART No.

3.AWP PRICE.

So I have written 2 FORMS to retrieve these things.

1st FORM is for getting OUTSERT and MED. PART No.

2nd FORM for AWP PRICE.

(1) OUTSERT: This we get from STPO-IDNRK field. similarly

(2) MED. PART NO.: This also is from STPO-IDNRK field.

The method I used for getting these two things is:

Basically the OUTSERT and MED PART NO. is nothing but the BOM COMPONENTS [STPO-IDNRK].

There is a simple difference between these two things:

If the BOM Component contains 'O' or 'OP' in that value then it is taken as OUTSERT.

For Eg: If STPO-IDNRK value is 73543O or 98723OP then it is OUTSERT.

and If STPO-IDNRK value is 65489M or 68785MP then it is MED. PART NO.

and we have two conditions to be satisfied to calculate these two things,

1.The Material Group[MARA-MATKL] should be 'OST' or 'OSP'.

means MARA-MATKL = 'OST' or 'OSP'.

2.The Alternative BOM Text[STKO-STKTX] should be 'UNRESTRICTED'.

means STKO-STKTX = 'UNRESTRICTED'.

Coming to AWP PRICE, it should be get from field RATE[KONP-KBETR].

I have used tables STKO, STPO to get Outsert and Med. Part No and A505, KONP for AWP Price...

I have highlighted the part of the code which I have included in the existing program....

But there are some problems with that code...so i'm not getting results....

Plz look at the code and let me know wher I've gone wrong...

Thanks much,

The code is:

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

REPORT Z02.

  • Table definitions ----------------------------------------------------

TABLES: AUSP, " Characteristic Values

CABN, " Characteristic

CAWN, " Characteristic values

CAWNT, " Value Texts

LFA1, " Vendor master (general section)

MAKT, " Material Descriptions

MARA, " Material Master: General Data

MARM, " Units of Measure

MBEW, " Material Valuation

MVKE, " Material Master: Sales Data

TVMST, " Materials: SD Status: Texts

TVM3T, " Material pricing group 3: Description

TVM5T, " Material pricing group 5: Description

KOTD001, " Conditions: Substitution - Sample Structure

KONDD, " Material Substitution - Data Division

<b>mast,

stko,

stpo,

a505,

konp.</b>

*----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TITLE1.

SELECT-OPTIONS: S_BWKEY FOR MBEW-BWKEY

MEMORY ID DEFAULT_BWKEY OBLIGATORY

No-Extension No Intervals.

SELECTION-SCREEN END OF BLOCK B1.

PARAMETERS:

MATLFILE(100) LOWER CASE OBLIGATORY

DEFAULT '/sapinterface/ebusiness/matlfile'.

  • Constants ------------------------------------------------------------

CONSTANTS:

ZERO_DEC_3 TYPE P DECIMALS 3 VALUE 0,

ZEROS(9) TYPE N VALUE 0,

REC_TYPE(2) VALUE 'MM',

DELIMETER_QUOTE VALUE '"',

BEGIN OF DEFAULTS,

BWTAR LIKE MBEW-BWTAR VALUE SPACE,

VKORG LIKE MVKE-VKORG VALUE '1000',

VTWEG LIKE MVKE-VTWEG VALUE '10',

END OF DEFAULTS.

constants:

c_uncpath_material(43)

value '/sapinterface/unconverted/zvppo102_matlfile',

c_final_path(44)

value '/sapinterface/ebusiness/' ,

c_uncpath(26)

value '/sapinterface/unconverted/' .

*----


  • Data Elements --------------------------------------------------------

DATA: PROGNAME LIKE SY-REPID,

PROG_START_DATE LIKE SY-DATUM,

PROG_START_TIME LIKE SY-UZEIT,

WRITE_COUNT TYPE I,

OUTFILE(100),

WK_STPRS LIKE MBEW-STPRS,

WK_AUSP LIKE AUSP,

WK_CABN LIKE CABN,

WK_MARA LIKE MARA,

WK_MARM LIKE MARM.

DATA: BEGIN OF MATERIAL_DATA occurs 0,

DELIMITER_START,

REC_TYPE LIKE REC_TYPE,

MATNR LIKE MARA-MATNR,

MAKTX LIKE MAKT-MAKTX,

SMATN LIKE KONDD-SMATN,

SMATN_START LIKE KOTD001-DATAB,

SMATN_END LIKE KOTD001-DATBI,

VMSTA LIKE MVKE-VMSTA,

VMSTB LIKE TVMST-VMSTB,

LAEDA LIKE MARA-LAEDA,

AENAM LIKE MARA-AENAM,

VENDOR_NUM LIKE MARA-MFRNR,

VENDOR_NM LIKE LFA1-NAME1,

PROD_LINE_CD LIKE MVKE-MVGR5,

PROD_LINE_DSC(20),

DEA_SCH_ID LIKE MVKE-MVGR3,

DEA_SCH_DSC(20),

NORMT LIKE MARA-NORMT,

STPRS(13),

LOGO_DESC(30),

PRESCRIPT_FLAG(1),

THER_CLASS(5),

THER_CLASS_DSC(30),

THER_SUB_CLASS(5),

THER_SUB_CLASS_DSC(30),

THER_EQUIV(2),

ITEM_PACKAGE_SIZE(10),

ITEM_PACKAGE_TYPE(2),

DOSAGE_FORM(3),

DOSAGE_FORM_DSC(30),

DOSE_ADMIN(3),

DOSE_ADMIN_DSC(30),

BOTTLE_SIZE(6),

BRAND_NAME(25),

BRAND_DISTR(20),

BRAND_COLOR(20),

BRAND_SHAPE(15),

ANDA_DATE LIKE SY-DATUM,

ANDA_NUMBER(9),

BIO_STUDY,

DESI_INDICATOR,

DRUG_TERM_DT LIKE SY-DATUM,

FDA_APPRV_DT LIKE SY-DATUM,

ITEM_REG_NM(30),

MARKET_DT LIKE SY-DATUM,

PRODUCT_COLOR(20),

PRODUCT_FLAVOR(15),

PRODUCT_SHAPE(15),

PRODUCT_STRENGTH(18),

MEINS LIKE MARA-MEINS,

BEGIN OF BASE_MEASURES,

WEIGHT(15), "* like mara-brgew

WT_UNIT LIKE MARA-GEWEI,

VOLUM(15), "* like mara-volum,

VOL_UNIT LIKE MARA-VOLEH,

PKG_LENGTH(15), "* like mara-laeng

PKG_WIDTH(15), "* like mara-breit

PKG_HEIGHT(15), "* like mara-hoehe

DIM_UNIT LIKE MARA-MEABM,

END OF BASE_MEASURES,

INR_CRTN_COUNT(6), "* like marm-umrez

INR_CRTN_MEASURES LIKE MATERIAL_DATA-BASE_MEASURES,

CASE_COUNT(6), "* like marm-umrez

CASE_MEASURES LIKE MATERIAL_DATA-BASE_MEASURES,

ITEM_NOTE(500),

DELIMITER_END,

<b>component like stpo-idnrk,

mguide like stpo-idnrk,

awp like konp-kbetr,</b>

END OF MATERIAL_DATA.

DATA : F_M_uncFILE(100) . " Material file(unconverted)

DATA: W_BRM(3) Value 'BRM'.

<b>data: str1(2) type c value 'O',

str2(2) type c value 'OP',

str3(2) type c value 'M',

str4(2) type c value 'MP'.</b>

<b>data: begin of i_material,

matnr like mara-matnr,

rate like konp-kbetr,

end of i_material.

data: begin of i_outsert occurs 0,

matnr like mara-matnr,

stktx like stko-stktx,

component like stpo-idnrk,

end of i_outsert.</b>

*----


INITIALIZATION.

*----


*--- Initialize text fields for selection screen.

TITLE1 = 'Set Default'.

SET PARAMETER ID 'DEFAULT_BWKEY' FIELD W_BRM.

START-OF-SELECTION.

*----


PERFORM INITIAL_STUFF.

PERFORM MAIN_SELECT.

PERFORM WRAPUP.

*----


  • Select all material master records for finished products.

*----


FORM MAIN_SELECT.

SELECT MATNR

BISMT

LAEDA

AENAM

MEINS

BRGEW

GEWEI

VOLUM

VOLEH

LAENG

BREIT

HOEHE

MEABM

NORMT

INTO (MATERIAL_DATA-MATNR,

MATERIAL_DATA-SMATN,

MATERIAL_DATA-LAEDA,

MATERIAL_DATA-AENAM,

MATERIAL_DATA-MEINS,

WK_MARA-BRGEW,

MATERIAL_DATA-BASE_MEASURES-WT_UNIT,

WK_MARA-VOLUM,

MATERIAL_DATA-BASE_MEASURES-VOL_UNIT,

WK_MARA-LAENG,

WK_MARA-BREIT,

WK_MARA-HOEHE,

MATERIAL_DATA-BASE_MEASURES-DIM_UNIT,

MATERIAL_DATA-NORMT)

FROM MARA

WHERE MTART = 'FERT' "* Finished product

OR MTART = 'HAWA'

ORDER BY MATNR.

      • Assign default values for fields which may not be available.

PERFORM ASSIGN_DEFAULTS.

      • Get related data from other tables.

PERFORM GET_MATERIAL_DESCRIPTION.

PERFORM GET_STANDARD_PRICE.

PERFORM GET_MVKE.

PERFORM GET_MARM.

PERFORM GET_AUSP.

PERFORM GET_SUBSTITUTE_MATNR.

PERFORM GET_BASIC_DATA_TEXT.

PERFORM GET_VENDOR_NAME.

<b>perform get_outsert.

perform get_awp.</b>

SEARCH MATERIAL_DATA FOR '"'.

IF SY-SUBRC = 0.

REPLACE '"' WITH ' ' INTO MATERIAL_DATA.

ENDIF.

MATERIAL_DATA-DELIMITER_START = DELIMETER_QUOTE.

MATERIAL_DATA-DELIMITER_END = DELIMETER_QUOTE.

      • Write output record.

ADD 1 TO WRITE_COUNT.

TRANSFER MATERIAL_DATA TO F_M_UNCFILE .

      • Reinitialize work variables.

CLEAR: MATERIAL_DATA,

WK_STPRS,

WK_AUSP,

WK_CABN,

WK_MARA,

WK_MARM.

ENDSELECT.

ENDFORM. " main_select

*----


  • Assign numeric fields to character fields for output.

*----


FORM ASSIGN_DEFAULTS.

MATERIAL_DATA-REC_TYPE = REC_TYPE.

MATERIAL_DATA-BASE_MEASURES-WEIGHT = WK_MARA-BRGEW.

MATERIAL_DATA-BASE_MEASURES-VOLUM = WK_MARA-VOLUM.

MATERIAL_DATA-BASE_MEASURES-PKG_LENGTH = WK_MARA-LAENG.

MATERIAL_DATA-BASE_MEASURES-PKG_WIDTH = WK_MARA-BREIT.

MATERIAL_DATA-BASE_MEASURES-PKG_HEIGHT = WK_MARA-HOEHE.

  • Set character fields to 0 in case not found on DB.

MATERIAL_DATA-ANDA_NUMBER = ZEROS. "* ???

MATERIAL_DATA-ITEM_PACKAGE_SIZE = 0.

MATERIAL_DATA-INR_CRTN_COUNT = 0.

MATERIAL_DATA-CASE_COUNT = 0.

MATERIAL_DATA-INR_CRTN_MEASURES-WEIGHT = ZERO_DEC_3.

MATERIAL_DATA-INR_CRTN_MEASURES-VOLUM = ZERO_DEC_3.

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_LENGTH = ZERO_DEC_3.

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_WIDTH = ZERO_DEC_3.

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_HEIGHT = ZERO_DEC_3.

MOVE-CORRESPONDING MATERIAL_DATA-INR_CRTN_MEASURES

TO MATERIAL_DATA-CASE_MEASURES.

ENDFORM. " assign_defaults

*----


FORM GET_VENDOR_NAME.

SELECT SINGLE NAME1

INTO MATERIAL_DATA-VENDOR_NM

FROM LFA1

WHERE LIFNR = MATERIAL_DATA-VENDOR_NUM.

ENDFORM. " get_vendor_name

----


  • FORM GET_OUTSERT *

----


<b>form get_outsert.

select matnr from mara into corresponding fields of table material_data

where mtart = 'FERT' or mtart = 'HAWA'.

select didnrk amatnr

into (i_outsert-component, i_outsert-matnr)

from stpo as d

inner join stko as c

on dstlnr = cstlnr

inner join mast as b

on cstlnr = bstlnr

inner join mara as a

on bmatnr = amatnr

  • for all entries IN material_data

where a~matnr = material_data-matnr.

append i_outsert.

endselect.

  • check i_outsert-stktx = 'UNRESTRICTED'.

if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).

move i_outsert-component to material_data-component.

append material_data.

elseif ( i_outsert-component cs str3 ) or

( i_outsert-component cs str4 ).

move i_outsert-component to material_data-mguide.

append material_data.

endif.

modify material_data transporting component

where matnr = i_outsert-matnr.

endform. "get_outsert</b>

----


  • FORM GET_AWP *

----


<b>form get_awp.

select matnr from mara into corresponding fields of table material_data

where mtart = 'FERT' or mtart = 'HAWA'.

select bmatnr ckbetr into (i_material-matnr, i_material-rate)

from konp as c

inner join a505 as b

on cknumh = bknumh

inner join mara as a

on bmatnr = amatnr

for all entries IN material_data

where a~matnr = material_data-matnr

and b~kappl = 'V'

and b~kschl = 'ZR10'

and b~vkorg = '1000'

and b~pltyp = '01'

and b~datbi > sy-datum

and b~datab < sy-datum.

append i_material.

endselect.

move i_material-rate to material_data-awp.

append material_data.

modify material_data transporting awp

where matnr = i_material-matnr.

endform. "get_awp</b>

*----


FORM GET_MATERIAL_DESCRIPTION.

SELECT SINGLE MAKTX

INTO MATERIAL_DATA-MAKTX

FROM MAKT

WHERE MATNR = MATERIAL_DATA-MATNR

AND SPRAS = SY-LANGU.

ENDFORM. " get_material_description

*----


FORM GET_STANDARD_PRICE.

data: l_vprsv like mbew-vprsv,

l_verpr like mbew-verpr.

clear: l_Vprsv, l_verpr.

SELECT SINGLE VPRSV VERPR stprs

into (l_vprsv, l_verpr, WK_stprs)

FROM MBEW

WHERE MATNR = MATERIAL_DATA-MATNR

AND BWKEY IN S_BWKEY

AND BWTAR = DEFAULTS-BWTAR.

  • the need to change the assumption

  • that standard price is housed in MBEW-STPRS. This does not apply to

  • plant US18, so need to check to see what the price control field is

  • (MBEW-VPRSV) and if it is S, use standard price, if it is V, use the

  • moving average price.

IF L_VPRSV = 'V'.

WK_STPRS = L_VERPR.

ENDIF.

MATERIAL_DATA-STPRS = WK_STPRS.

ENDFORM. " get_standard_price

*----


FORM GET_MVKE.

SELECT SINGLE MVGR3

VMSTA

MVGR5

INTO (MATERIAL_DATA-DEA_SCH_ID,

MATERIAL_DATA-VMSTA,

MATERIAL_DATA-PROD_LINE_CD)

FROM MVKE

WHERE MATNR = MATERIAL_DATA-MATNR

AND VKORG = DEFAULTS-VKORG

AND VTWEG = DEFAULTS-VTWEG.

IF SY-SUBRC = 0.

PERFORM GET_DEA_ID_DSC.

PERFORM GET_PROD_LINE_DSC.

PERFORM GET_VMSTB.

ENDIF.

ENDFORM. " get_mvke

*----


FORM GET_DEA_ID_DSC.

SELECT SINGLE BEZEI

INTO MATERIAL_DATA-DEA_SCH_DSC

FROM TVM3T

WHERE SPRAS = SY-LANGU

AND MVGR3 = MATERIAL_DATA-DEA_SCH_ID.

ENDFORM. " get_dea_id_dsc

*----


FORM GET_PROD_LINE_DSC.

SELECT SINGLE BEZEI

INTO MATERIAL_DATA-PROD_LINE_DSC

FROM TVM5T

WHERE SPRAS = SY-LANGU

AND MVGR5 = MATERIAL_DATA-PROD_LINE_CD.

ENDFORM. " form get_prod_line_dsc

*----


FORM GET_VMSTB.

SELECT SINGLE VMSTB

INTO MATERIAL_DATA-VMSTB

FROM TVMST

WHERE SPRAS = SY-LANGU

AND VMSTA = MATERIAL_DATA-VMSTA.

ENDFORM. " form get_vmstb

*----


  • Get measurements, etc. for inner carton and case from the MARM table.

*----


FORM GET_MARM.

SELECT MEINH " alternative unit of measure for stockkeeping unit

UMREZ " numerator for conversion to base units of measure

LAENG " length

BREIT " width

HOEHE " height

MEABM " unit of dimension for length/width/height

VOLUM " volume

VOLEH " volume unit

BRGEW " gross weight

GEWEI " unit of weight

INTO (WK_MARM-MEINH,

WK_MARM-UMREZ,

WK_MARM-LAENG,

WK_MARM-BREIT,

WK_MARM-HOEHE,

WK_MARM-MEABM,

WK_MARM-VOLUM,

WK_MARM-VOLEH,

WK_MARM-BRGEW,

WK_MARM-GEWEI)

FROM MARM

WHERE MATNR = MATERIAL_DATA-MATNR

AND MEINH IN ('CS', 'PAK').

PERFORM EVALUATE_MEINH.

CLEAR WK_MARM.

ENDSELECT.

ENDFORM. " get_marm

*----


  • Populate output record fields based on alternative unit of measure.

*----


FORM EVALUATE_MEINH.

CASE WK_MARM-MEINH.

WHEN 'CS'.

MATERIAL_DATA-CASE_COUNT = WK_MARM-UMREZ.

MATERIAL_DATA-CASE_MEASURES-WEIGHT = WK_MARM-BRGEW.

MATERIAL_DATA-CASE_MEASURES-WT_UNIT = WK_MARM-GEWEI.

MATERIAL_DATA-CASE_MEASURES-VOLUM = WK_MARM-VOLUM.

MATERIAL_DATA-CASE_MEASURES-VOL_UNIT = WK_MARM-VOLEH.

MATERIAL_DATA-CASE_MEASURES-PKG_LENGTH = WK_MARM-LAENG.

MATERIAL_DATA-CASE_MEASURES-PKG_WIDTH = WK_MARM-BREIT.

MATERIAL_DATA-CASE_MEASURES-PKG_HEIGHT = WK_MARM-HOEHE.

MATERIAL_DATA-CASE_MEASURES-DIM_UNIT = WK_MARM-MEABM.

WHEN 'PAK'.

MATERIAL_DATA-INR_CRTN_COUNT = WK_MARM-UMREZ.

MATERIAL_DATA-INR_CRTN_MEASURES-WEIGHT = WK_MARM-BRGEW.

MATERIAL_DATA-INR_CRTN_MEASURES-WT_UNIT = WK_MARM-GEWEI.

MATERIAL_DATA-INR_CRTN_MEASURES-VOLUM = WK_MARM-VOLUM.

MATERIAL_DATA-INR_CRTN_MEASURES-VOL_UNIT = WK_MARM-VOLEH.

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_LENGTH = WK_MARM-LAENG.

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_WIDTH = WK_MARM-BREIT.

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_HEIGHT = WK_MARM-HOEHE.

MATERIAL_DATA-INR_CRTN_MEASURES-DIM_UNIT = WK_MARM-MEABM.

ENDCASE.

ENDFORM. " evaluate_meinh

*----


  • Get characterics from the AUSP & CABN tables.

*----


FORM GET_AUSP.

*--- Get object number for classification lookup.

data: l_objek like ausp-objek.

clear l_objek.

select cuobj into l_objek from inob up to 1 rows

where klart = '001'

and obtab = 'MARA'

and objek = material_data-matnr.

endselect.

SELECT A~ATINN " internal characteristic

A~ATWRT " characteristic value

A~ATAWE " unit of measurement

A~ATAW1 " unit of measurement

A~ATFLV " internal floating point from (value if date)

C~ATNAM " characteristic name

INTO (WK_AUSP-ATINN,

WK_AUSP-ATWRT,

WK_AUSP-ATAWE,

WK_AUSP-ATAW1,

WK_AUSP-ATFLV,

WK_CABN-ATNAM)

FROM AUSP AS A INNER JOIN

CABN AS C ON AATINN = CATINN

where a~objek = l_objek

AND C~ATNAM LIKE 'MM_%'

AND A~LKENZ = SPACE.

PERFORM EVALUATE_CHARACTERISTIC.

ENDSELECT.

ENDFORM. " get_ausp

*----


  • Populate output record fields based on characteristic type.

*----


FORM EVALUATE_CHARACTERISTIC.

DATA: SIZE_TEMP TYPE I.

CASE WK_CABN-ATNAM.

when 'MM_BOTTLE_SIZE'.

MATERIAL_DATA-BOTTLE_SIZE = WK_AUSP-ATWRT.

when 'MM_BRAND_COLOR'.

MATERIAL_DATA-BRAND_COLOR = WK_AUSP-ATWRT.

WHEN 'MM_BRAND_DISTRIBUTOR'.

MATERIAL_DATA-BRAND_DISTR = WK_AUSP-ATWRT.

when 'MM_BRAND_NAME'.

MATERIAL_DATA-BRAND_NAME = WK_AUSP-ATWRT.

when 'MM_BRAND_SHAPE'.

MATERIAL_DATA-BRAND_SHAPE = WK_AUSP-ATWRT.

WHEN 'MM_DOSAGE_FORM'.

MATERIAL_DATA-DOSAGE_FORM = WK_AUSP-ATWRT.

PERFORM GET_CHARACTERISTIC_DSC

USING WK_AUSP-ATINN

WK_AUSP-ATWRT

CHANGING MATERIAL_DATA-DOSAGE_FORM_DSC.

when 'MM_DOSE_ADMINISTRATION'.

MATERIAL_DATA-DOSE_ADMIN = WK_AUSP-ATWRT.

PERFORM GET_CHARACTERISTIC_DSC

USING WK_AUSP-ATINN

WK_AUSP-ATWRT

CHANGING MATERIAL_DATA-DOSE_ADMIN_DSC.

WHEN 'MM_ITEM_PACKAGE_SIZE'.

SIZE_TEMP = WK_AUSP-ATFLV.

MATERIAL_DATA-ITEM_PACKAGE_SIZE = SIZE_TEMP.

WHEN 'MM_ITEM_PACKAGE_TYPE'.

MATERIAL_DATA-ITEM_PACKAGE_TYPE = WK_AUSP-ATWRT.

when 'MM_LOGO_DESC'.

MATERIAL_DATA-LOGO_DESC = WK_AUSP-ATWRT.

when 'MM_PRESCRIPTION_FLAG'.

MATERIAL_DATA-PRESCRIPT_FLAG = WK_AUSP-ATWRT.

when 'MM_THERAPEUTIC_CLASS'.

MATERIAL_DATA-THER_CLASS = WK_AUSP-ATWRT.

PERFORM GET_CHARACTERISTIC_DSC

USING WK_AUSP-ATINN

WK_AUSP-ATWRT

CHANGING MATERIAL_DATA-THER_CLASS_DSC.

when 'MM_THERAPEUTIC_SUB_CLASS'.

MATERIAL_DATA-THER_SUB_CLASS = WK_AUSP-ATWRT.

PERFORM GET_CHARACTERISTIC_DSC

USING WK_AUSP-ATINN

WK_AUSP-ATWRT

CHANGING MATERIAL_DATA-THER_SUB_CLASS_DSC.

WHEN 'MM_THERAPEUTIC_RATING'.

MATERIAL_DATA-THER_EQUIV = WK_AUSP-ATWRT.

when 'MM_ANDA_DATE'.

PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV

CHANGING MATERIAL_DATA-ANDA_DATE.

when 'MM_ANDA_NUMBER'.

MATERIAL_DATA-ANDA_NUMBER = WK_AUSP-ATWRT.

when 'MM_BIO_STUDY'.

MATERIAL_DATA-BIO_STUDY = WK_AUSP-ATWRT.

when 'MM_DESI_INDICATOR'.

MATERIAL_DATA-DESI_INDICATOR = WK_AUSP-ATWRT.

when 'MM_DRUG_TERMINATION_DATE'.

PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV

CHANGING MATERIAL_DATA-DRUG_TERM_DT.

when 'MM_FDA_APPROVAL_DATE'.

PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV

CHANGING MATERIAL_DATA-FDA_APPRV_DT.

when 'MM_ITEM_REGULATORY_NAME'.

MATERIAL_DATA-ITEM_REG_NM = WK_AUSP-ATWRT.

when 'MM_MARKET_DATE'.

PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV

CHANGING MATERIAL_DATA-MARKET_DT.

when 'MM_PRODUCT_COLOR'.

MATERIAL_DATA-PRODUCT_COLOR = WK_AUSP-ATWRT.

when 'MM_PRODUCT_FLAVOR'.

MATERIAL_DATA-PRODUCT_FLAVOR = WK_AUSP-ATWRT.

when 'MM_PRODUCT_SHAPE'.

MATERIAL_DATA-PRODUCT_SHAPE = WK_AUSP-ATWRT.

when 'MM_PRODUCT_STRENGTH'.

MATERIAL_DATA-PRODUCT_STRENGTH = WK_AUSP-ATWRT.

WHEN 'MM_VENDOR'.

MATERIAL_DATA-VENDOR_NUM = WK_AUSP-ATWRT.

ENDCASE.

CLEAR SIZE_TEMP.

ENDFORM. " evaluate_characteristic

*----


  • Get descriptive text from CAWN & CAWNT for characteristics.

*----


FORM GET_CHARACTERISTIC_DSC USING PARM_ATINN

PARM_ATWRT

CHANGING PARM_DSC_TEXT.

CLEAR PARM_DSC_TEXT.

SELECT SINGLE ATWTB

INTO PARM_DSC_TEXT

FROM CAWN AS C1 INNER JOIN

CAWNT AS C2 ON C1ATINN = C2ATINN

AND C1ATZHL = C2ATZHL

WHERE C1~ATINN = PARM_ATINN

AND C1~ATWRT = PARM_ATWRT

AND C2~SPRAS = SY-LANGU

AND C2~ADZHL = 0.

ENDFORM. " get_characteristic_dsc

*----


  • Call function CTCV_CONVERT_FLOAT_TO_DATE to convert floating point

  • number to a date in yyyymmdd format.

*----


form convert_to_date using date

changing conv_date.

clear conv_date.

data: wrk_date(30) type c."Format YYYYMMDD changing it to MMDDYYYY

call function 'CTCV_CONVERT_FLOAT_TO_DATE'

EXPORTING

float = date

IMPORTING

date = wrk_date

EXCEPTIONS

others = 1.

CONV_DATE = WRK_DATE.

ENDFORM. " convert_to_date

*----


  • Get substitute material number.

*----


FORM GET_SUBSTITUTE_MATNR.

SELECT SINGLE SMATN

DATAB

DATBI

INTO (MATERIAL_DATA-SMATN,

MATERIAL_DATA-SMATN_START,

MATERIAL_DATA-SMATN_END)

FROM KOTD001 INNER JOIN

KONDD ON KOTD001~KNUMH = KONDD~KNUMH

WHERE KAPPL = 'V' "* Sales/Distribution

AND KSCHL = 'A001' "* Material Entered

AND MATWA = MATERIAL_DATA-MATNR

AND DATBI >= SY-DATUM

AND DATAB <= SY-DATUM

AND SUGRD = SPACE.

ENDFORM. " get_substitute_matnr.

*----


  • Get basic data text for material item note.

  • If this is longer than 500 bytes, it will be truncated at 500.

*----


FORM GET_BASIC_DATA_TEXT.

DATA: BEGIN OF TEXT_HEADER.

INCLUDE STRUCTURE THEAD. "* SAPscript: Text Header

DATA: END OF TEXT_HEADER.

DATA: BEGIN OF TEXT_LINES OCCURS 100.

INCLUDE STRUCTURE TLINE. "* SAPscript: text lines

DATA: END OF TEXT_LINES.

DATA: ITEM_NOTE_LENGTH TYPE I.

  • Set up text header for call to READ_TEXT.

TEXT_HEADER-TDOBJECT = 'MATERIAL'.

TEXT_HEADER-TDNAME = MATERIAL_DATA-MATNR.

TEXT_HEADER-TDID = 'GRUN'. "* Basic data text

TEXT_HEADER-TDSPRAS = SY-LANGU.

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

ID = TEXT_HEADER-TDID

LANGUAGE = TEXT_HEADER-TDSPRAS

NAME = TEXT_HEADER-TDNAME

OBJECT = TEXT_HEADER-TDOBJECT

  • ARCHIVE_HANDLE = 0

  • IMPORTING

  • HEADER =

TABLES

LINES = TEXT_LINES

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 7

OTHERS = 8.

CASE SY-SUBRC.

WHEN 0.

LOOP AT TEXT_LINES.

IF SY-TABIX = 1.

MATERIAL_DATA-ITEM_NOTE = TEXT_LINES-TDLINE.

ELSE.

  • Pass up to 500 bytes to Siebel.

ITEM_NOTE_LENGTH = STRLEN( MATERIAL_DATA-ITEM_NOTE ).

IF ITEM_NOTE_LENGTH > 498.

EXIT.

ELSE.

CONCATENATE MATERIAL_DATA-ITEM_NOTE

TEXT_LINES-TDLINE

INTO MATERIAL_DATA-ITEM_NOTE

SEPARATED BY SPACE.

ENDIF.

ENDIF.

ENDLOOP.

WHEN 4.

  • Not found; this is normal if no text was entered.

WHEN OTHERS.

MESSAGE E000(38) WITH 'Bad call to function READ_TEXT'.

ENDCASE.

ENDFORM. " get_substitute_matnr

*----


  • Open files, set initial conditions, etc.

*----


FORM INITIAL_STUFF.

data : w_length type i .

PROGNAME = SY-REPID.

WRITE: / 'Program: ', PROGNAME.

WRITE: / 'Execution start date: ', SY-DATUM.

WRITE: / 'Execution start time: ', SY-UZEIT.

WRITE: / .

CALL FUNCTION 'Z_SET_INTERFACE_FILENAME'

EXPORTING

INTERFACE_NAME = MATLFILE

DATE_TIME_SW = 'X'

EXTENSION_TYPE = 'txt'

IMPORTING

PATHNAME = OUTFILE

EXCEPTIONS

OTHERS = 1.

----


f_m_uncfile = outfile .

clear w_length.

w_length = strlen( matlfile ).

replace matlfile with c_uncpath_material into F_M_UNCFILE length

w_length .

open dataset F_m_UNCFILE for output in text mode .

if sy-subrc <> 0 .

MESSAGE E000(38) WITH 'Unable to open file ' F_m_UNCFILE.

endif.

ENDFORM. " initial_stuff.

*----


  • Close files, etc.

*----


FORM WRAPUP.

CLOSE DATASET F_M_UNCFILE.

PERFORM CONVERT_FILE.

WRITE: / 'Material interface file name: ', OUTFILE,

/,

/ 'Number of records written to material file: ', WRITE_COUNT.

endform.

*----


  • This form is included for testing and is performed if the test_rec

  • checkbox is checked.

*----


FORM WRITE_FORMATTED_TEST_RECORD.

WRITE: /,

/ 'Beginning of new record :',

/ 'Start Delimiter :|' NO-GAP,

MATERIAL_DATA-DELIMITER_START NO-GAP, '|',

/ 'Record Type :|' NO-GAP,

MATERIAL_DATA-REC_TYPE NO-GAP, '|',

/ 'Material Number :|' NO-GAP,

MATERIAL_DATA-MATNR NO-GAP USING NO EDIT MASK, '|',

/ 'Material Description :|' NO-GAP,

MATERIAL_DATA-MAKTX NO-GAP, '|',

/ 'Substitute Material Number :|' NO-GAP,

MATERIAL_DATA-SMATN NO-GAP, '|',

/ 'Substitute Start Date :|' NO-GAP,

MATERIAL_DATA-SMATN_START NO-GAP, '|',

/ 'Substitute End Date :|' NO-GAP,

MATERIAL_DATA-SMATN_END NO-GAP, '|',

/ 'Status Code :|' NO-GAP,

MATERIAL_DATA-VMSTA NO-GAP, '|',

/ 'Status Description :|' NO-GAP,

MATERIAL_DATA-VMSTB NO-GAP, '|',

/ 'Date of last change :|' NO-GAP,

MATERIAL_DATA-LAEDA NO-GAP, '|',

/ 'User who changed record :|' NO-GAP,

MATERIAL_DATA-AENAM NO-GAP, '|',

/ 'Manufacturer Number :|' NO-GAP,

MATERIAL_DATA-VENDOR_NUM NO-GAP, '|',

/ 'Vendor Name :|' NO-GAP,

MATERIAL_DATA-VENDOR_NM NO-GAP, '|',

/ 'Product Line Code :|' NO-GAP,

MATERIAL_DATA-PROD_LINE_CD NO-GAP, '|',

/ 'Product Line Description :|' NO-GAP,

MATERIAL_DATA-PROD_LINE_DSC NO-GAP, '|',

/ 'DEA Schedule ID :|' NO-GAP,

MATERIAL_DATA-DEA_SCH_ID NO-GAP, '|',

/ 'DEA Schedule Description :|' NO-GAP,

MATERIAL_DATA-DEA_SCH_DSC NO-GAP, '|',

/ 'Labeller Code :|' NO-GAP,

MATERIAL_DATA-NORMT NO-GAP, '|',

/ 'Standard Price :|' NO-GAP,

MATERIAL_DATA-STPRS NO-GAP, '|',

/ 'Logo Description :|' NO-GAP,

MATERIAL_DATA-LOGO_DESC NO-GAP, '|',

/ 'Prescription Flag :|' NO-GAP,

MATERIAL_DATA-PRESCRIPT_FLAG NO-GAP, '|',

/ 'Therapeutic Class :|' NO-GAP,

MATERIAL_DATA-THER_CLASS NO-GAP, '|',

/ 'Therapeutic Class Description :|' NO-GAP,

MATERIAL_DATA-THER_CLASS_DSC NO-GAP, '|',

/ 'Therapeutic Subclass :|' NO-GAP,

MATERIAL_DATA-THER_SUB_CLASS NO-GAP, '|',

/ 'Therapeutic Subclass Description:|' NO-GAP,

MATERIAL_DATA-THER_SUB_CLASS_DSC NO-GAP, '|',

/ 'Therapeutic Equivalence :|' NO-GAP,

MATERIAL_DATA-THER_EQUIV NO-GAP, '|',

/ 'Item Package Size :|' NO-GAP,

MATERIAL_DATA-ITEM_PACKAGE_SIZE NO-GAP, '|',

/ 'Item Package Type :|' NO-GAP,

MATERIAL_DATA-ITEM_PACKAGE_TYPE NO-GAP, '|',

/ 'Dosage Form :|' NO-GAP,

MATERIAL_DATA-DOSAGE_FORM NO-GAP, '|',

/ 'Dosage Form Description :|' NO-GAP,

MATERIAL_DATA-DOSAGE_FORM_DSC NO-GAP, '|',

/ 'Dose Administration :|' NO-GAP,

MATERIAL_DATA-DOSE_ADMIN NO-GAP, '|',

/ 'Dose Administration Description :|' NO-GAP,

MATERIAL_DATA-DOSE_ADMIN_DSC NO-GAP, '|',

/ 'Bottle Size :|' NO-GAP,

MATERIAL_DATA-BOTTLE_SIZE NO-GAP, '|',

/ 'Brand Name :|' NO-GAP,

MATERIAL_DATA-BRAND_NAME NO-GAP, '|',

/ 'Brand Distributor :|' NO-GAP,

MATERIAL_DATA-BRAND_DISTR NO-GAP, '|',

/ 'Brand Color :|' NO-GAP,

MATERIAL_DATA-BRAND_COLOR NO-GAP, '|',

/ 'Brand Shape :|' NO-GAP,

MATERIAL_DATA-BRAND_SHAPE NO-GAP, '|',

/ 'ANDA Date :|' NO-GAP,

MATERIAL_DATA-ANDA_DATE NO-GAP, '|',

/ 'ANDA Number :|' NO-GAP,

MATERIAL_DATA-ANDA_NUMBER NO-GAP, '|',

/ 'Bio Study :|' NO-GAP,

MATERIAL_DATA-BIO_STUDY NO-GAP, '|',

/ 'DESI Indicator :|' NO-GAP,

MATERIAL_DATA-DESI_INDICATOR NO-GAP, '|',

/ 'Drug Term Date :|' NO-GAP,

MATERIAL_DATA-DRUG_TERM_DT NO-GAP, '|',

/ 'FDA Approval Date :|' NO-GAP,

MATERIAL_DATA-FDA_APPRV_DT NO-GAP, '|',

/ 'Item Regulatory Name :|' NO-GAP,

MATERIAL_DATA-ITEM_REG_NM NO-GAP, '|',

/ 'Market Date :|' NO-GAP,

MATERIAL_DATA-MARKET_DT NO-GAP, '|',

/ 'Product Color :|' NO-GAP,

MATERIAL_DATA-PRODUCT_COLOR NO-GAP, '|',

/ 'Product Flavor :|' NO-GAP,

MATERIAL_DATA-PRODUCT_FLAVOR NO-GAP, '|',

/ 'Product Shape :|' NO-GAP,

MATERIAL_DATA-PRODUCT_SHAPE NO-GAP, '|',

/ 'Product Strength :|' NO-GAP,

MATERIAL_DATA-PRODUCT_STRENGTH NO-GAP, '|',

/ 'Base Unit of Measure :|' NO-GAP,

MATERIAL_DATA-MEINS NO-GAP, '|',

/ 'Base Weight :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-WEIGHT NO-GAP, '|',

/ 'Base Weight Unit :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-WT_UNIT NO-GAP, '|',

/ 'Base Volume :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-VOLUM NO-GAP, '|',

/ 'Base Volume Unit :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-VOL_UNIT NO-GAP, '|',

/ 'Base Package Length :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-PKG_LENGTH NO-GAP, '|',

/ 'Base Package Width :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-PKG_WIDTH NO-GAP, '|',

/ 'Base Package Height :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-PKG_HEIGHT NO-GAP, '|',

/ 'Base Dimension Unit :|' NO-GAP,

MATERIAL_DATA-BASE_MEASURES-DIM_UNIT NO-GAP, '|',

/ 'Inner Carton Count :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_COUNT NO-GAP, '|',

/ 'Inner Carton Weight :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-WEIGHT NO-GAP, '|',

/ 'Inner Carton Weight Unit :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-WT_UNIT NO-GAP, '|',

/ 'Inner Carton Volume :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-VOLUM NO-GAP, '|',

/ 'Inner Carton Volume Unit :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-VOL_UNIT NO-GAP, '|',

/ 'Inner Carton Package Length :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_LENGTH NO-GAP, '|',

/ 'Inner Carton Package Width :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_WIDTH NO-GAP, '|',

/ 'Inner Carton Package Height :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-PKG_HEIGHT NO-GAP, '|',

/ 'Inner Carton Dimension Unit :|' NO-GAP,

MATERIAL_DATA-INR_CRTN_MEASURES-DIM_UNIT NO-GAP, '|',

/ 'Case Count :|' NO-GAP,

MATERIAL_DATA-CASE_COUNT NO-GAP, '|',

/ 'Case Weight :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-WEIGHT NO-GAP, '|',

/ 'Case Weight Unit :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-WT_UNIT NO-GAP, '|',

/ 'Case Volume :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-VOLUM NO-GAP, '|',

/ 'Case Volume Unit :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-VOL_UNIT NO-GAP, '|',

/ 'Case Length :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-PKG_LENGTH NO-GAP, '|',

/ 'Case Width :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-PKG_WIDTH NO-GAP, '|',

/ 'Case Height :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-PKG_HEIGHT NO-GAP, '|',

/ 'Case Dimension Unit :|' NO-GAP,

MATERIAL_DATA-CASE_MEASURES-DIM_UNIT NO-GAP, '|',

/ 'Item Note :|' NO-GAP,

MATERIAL_DATA-ITEM_NOTE NO-GAP, '|',

/ 'End Delimiter :|' NO-GAP,

MATERIAL_DATA-DELIMITER_END NO-GAP, '|',

/.

ENDFORM. " write_formatted_test_record

*----


  • Copy the output files to the appropriate archive folder.

*----


FORM COPY_TO_ARCHIVE USING C_FILE.

DATA:

ARCHFILE(100),

COPYFILES(255),

ITAB LIKE BTCXPM OCCURS 0 WITH HEADER LINE,

W_LENGTH TYPE I ,

W_INFILE(100),

W_OUTFILE(100).

PERFORM BUILD_ARCHIVE_NAME USING C_FILE

CHANGING ARCHFILE.

CONCATENATE C_FILE C_UNCPATH INTO COPYFILES SEPARATED BY SPACE .

CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

EXPORTING

COMMANDNAME = 'ZUNIXCOPY'

ADDITIONAL_PARAMETERS = COPYFILES

OPERATINGSYSTEM = SY-OPSYS

STDOUT = 'X'

STDERR = 'X'

TERMINATIONWAIT = 'X'

TABLES

EXEC_PROTOCOL = ITAB

EXCEPTIONS

NO_PERMISSION = 1

COMMAND_NOT_FOUND = 2

PARAMETERS_TOO_LONG = 3

SECURITY_RISK = 4

WRONG_CHECK_CALL_INTERFACE = 5

PROGRAM_START_ERROR = 6

PROGRAM_TERMINATION_ERROR = 7

X_ERROR = 8

PARAMETER_EXPECTED = 9

TOO_MANY_PARAMETERS = 10

ILLEGAL_COMMAND = 11

WRONG_ASYNCHRONOUS_PARAMETERS = 12

CANT_ENQ_TBTCO_ENTRY = 13

JOBCOUNT_GENERATION_ERROR = 14

OTHERS = 15.

w_length = strlen( c_final_path ).

replace c_final_path with ' ' into c_file length w_length.

shift c_file left deleting leading space .

concatenate c_uncpath c_file into w_infile .

concatenate archfile c_file into w_outfile .

CALL FUNCTION 'Z_CONVERT_UNIX2DOS'

EXPORTING

INFILE = w_infile

OUTFILE = w_outfile

EXCEPTIONS

ERROR = 1

IDENTICAL_FILENAMES = 2

NO_INPUT_FILE = 3

OTHERS = 4.

IF SY-SUBRC = 0.

SKIP.

WRITE: / C_FILE, 'copied to', ARCHFILE.

ELSE.

MESSAGE E000(38) WITH 'Archive file copy failed.'.

ENDIF.

ENDFORM. " copy_to_archive.

*----


  • Build Archive file pathnames.

*----


FORM BUILD_ARCHIVE_NAME USING P_PATH

CHANGING P_ARCH.

DATA:

NODECOUNT TYPE I,

LASTNODE TYPE I,

BEGIN OF NODES OCCURS 25,

NODENAME(100),

END OF NODES.

SPLIT P_PATH AT '/' INTO TABLE NODES.

DESCRIBE TABLE NODES LINES NODECOUNT.

CLEAR P_ARCH.

LASTNODE = NODECOUNT - 1.

LOOP AT NODES.

CASE SY-TABIX.

WHEN LASTNODE.

CONCATENATE P_ARCH NODES-NODENAME '/archive/' INTO P_ARCH.

WHEN NODECOUNT.

WHEN OTHERS.

CONCATENATE P_ARCH NODES-NODENAME '/' INTO P_ARCH.

ENDCASE.

ENDLOOP.

ENDFORM. " build_archive_name

&----


*& Form CONVERT_FILE

&----


  • Move output files from unconverted directory to final destination

  • directory and convert from UNIX to DOS format in the process.

----


FORM CONVERT_FILE.

CONCATENATE MATLFILE '.txt' INTO OUTFILE.

  • Convert customer file from Unix to DOS

CALL FUNCTION 'Z_CONVERT_UNIX2DOS'

EXPORTING

INFILE = F_M_UNCFILE

OUTFILE = outFILE

EXCEPTIONS

ERROR = 1

IDENTICAL_FILENAMES = 2

NO_INPUT_FILE = 3

OTHERS = 4.

.

IF SY-SUBRC <> 0.

write: /'Error converting file. Input file: ', F_M_UNCFILE.

write: /' Output file: ', outFILE.

ENDIF.

ENDFORM. " CONVERT_FILE

6 REPLIES 6
Read only

Former Member
0 Likes
991

Hi Deva,

I doubt the problem is with the below code..

select matnr from mara into corresponding fields of table material_data
where mtart = 'FERT' or mtart = 'HAWA'.

select d~idnrk a~matnr
into (i_outsert-component, i_outsert-matnr)
from stpo as d
inner join stko as c
on d~stlnr = c~stlnr
inner join mast as b
on c~stlnr = b~stlnr
inner join mara as a
on b~matnr = a~matnr
* for all entries IN material_data
where a~matnr = material_data-matnr.
append i_outsert.
endselect.
* check i_outsert-stktx = 'UNRESTRICTED'.

<b>if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).
move i_outsert-component to material_data-component.
append material_data.

elseif ( i_outsert-component cs str3 ) or
( i_outsert-component cs str4 ).
move i_outsert-component to material_data-mguide.
append material_data.
endif.
modify material_data transporting component</b>
where matnr = i_outsert-matnr.

Read only

0 Likes
991

Vijay

Could you please tell me what exactly i went wrong in that?

And Please let me know what I have to do if I want to get the BOM Components who has the "alternative BOM text" as "UNRESTRICTED". Where I have to check this?

thnx

Read only

0 Likes
991

Vijay,

Could you tell me is the code in the FORM "GET_OUTSERT" has to be changed a bit?

What changes have to be made in that?

plz let me know

I have modified the FORM "get_outsert".

it is still not giving the correct results.

can u see that and modify further?

thnx

Message was edited by: dev a

Read only

Former Member
0 Likes
991

Hi Deva,

before calling this perform you are filling material_data.

why again selecting to material_data.

instead of that you can select it to some other table

and loop that material_data and read this table.

<b>select matnr from mara into corresponding fields of table material_data

where mtart = 'FERT' or mtart = 'HAWA'.</b>

2. use for all entries i material_data avoid select endselect.

<b>select didnrk amatnr

into (i_outsert-component, i_outsert-matnr)

from stpo as d

inner join stko as c

on dstlnr = cstlnr

inner join mast as b

on cstlnr = bstlnr

inner join mara as a

on bmatnr = amatnr

  • for all entries IN material_data

where a~matnr = material_data-matnr.

append i_outsert.

endselect.</b>* check i_outsert-stktx = 'UNRESTRICTED'.

3.here you are reading only header , not table so you may end up with no results.

you need to loop the i_outsert and modify the material_data(pass the info from i_outsert).

<b>if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).

move i_outsert-component to material_data-component.

append material_data.

elseif ( i_outsert-component cs str3 ) or

( i_outsert-component cs str4 ).

move i_outsert-component to material_data-mguide.

append material_data.

endif.

modify material_data transporting component

where matnr = i_outsert-matnr.</b>

thease are the few things you need to do.

regards

vijay

Read only

0 Likes
991

Hi Vijay,

thanks very much for the reply with valuable suggestion.

I have made couple of changes in the program like this:

i have created another Internal table like this...for selecting the data of MARA...

<b>data: begin of it_temp occurs 0,

matnr like mara-matnr,

end of it_temp.</b>

then I have changed the FORM like this ....

Plz have a look on that and let me know if any thing is wrong in that...

thnx much..

<b>form get_outsert.

select matnr from mara into corresponding fields of table

it_temp where mtart = 'FERT' or mtart = 'HAWA'.

select didnrk amatnr

into (i_outsert-component, i_outsert-matnr)

from stpo as d

inner join stko as c

on dstlnr = cstlnr

inner join mast as b

on cstlnr = bstlnr

inner join mara as a

on bmatnr = amatnr

for all entries IN it_temp

where a~matnr = it_temp-matnr.

append i_outsert.

endselect.

loop at i_outsert where matnr = it_temp-matnr.

if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).

write i_outsert-component to material_data-component.

append material_data.

elseif ( i_outsert-component cs str3 ) or

( i_outsert-component cs str4 ).

write i_outsert-component to material_data-mguide.

append material_data.

endif.

modify material_data transporting component

where matnr = i_outsert-matnr.

endloop.

endform. "get_outsert</b>

Read only

0 Likes
991

Hi Vijay,

thanks very much for the reply with valuable suggestion.

I have made couple of changes in the program like this:

i have created another Internal table like this...for selecting the data of MARA...

<b>data: begin of it_temp occurs 0,

matnr like mara-matnr,

end of it_temp.</b>

then I have changed the FORM like this ....

Plz have a look on that and let me know if any thing is wrong in that...

thnx much..

<b>form get_outsert.

select matnr from mara into corresponding fields of table

it_temp where mtart = 'FERT' or mtart = 'HAWA'.

select didnrk amatnr

into (i_outsert-component, i_outsert-matnr)

from stpo as d

inner join stko as c

on dstlnr = cstlnr

inner join mast as b

on cstlnr = bstlnr

inner join mara as a

on bmatnr = amatnr

for all entries IN it_temp

where a~matnr = it_temp-matnr.

append i_outsert.

endselect.

loop at i_outsert where matnr = it_temp-matnr.

if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).

write i_outsert-component to material_data-component.

append material_data.

elseif ( i_outsert-component cs str3 ) or

( i_outsert-component cs str4 ).

write i_outsert-component to material_data-mguide.

append material_data.

endif.

modify material_data transporting component

where matnr = i_outsert-matnr.

endloop.

endform. "get_outsert</b>