Application Development 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: 

Error during Material Extension

Former Member
0 Kudos

Dear Guru's,

While doing Material extension through BAPI_MATERIAL_SAVEDATA from source plant to destination plant

I am getting below error.

"Profit center 1000/3330 does not exist "

My problem is The profit center is already maintaned in the system.

How can i resolve this problem.

Please help me.

Thanks in advance.

Prashanth maturu

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

If u r sure that the profit center exists in ur system and u got the error, its simple.

Field PRCTR (Profit Center) is of 10 Characters. u r passing only 4 or 5 chars.

So u r getting that error.

Solution is that you have to add leading zeroes to that profit center.

u can use the FM given below to add the leading zeroes.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = ITAB-PRCTR

IMPORTING

OUTPUT = ITAB-PRCTR.

Regards,

Asif Ali Khan

5 REPLIES 5

Former Member
0 Kudos

hi

u have to use same profit center... which u have used initially at the time of creation .....

so at the time of extension u have use same profit center.

Former Member
0 Kudos

hi,

You also need to extend bapi_te_mara and bape_te_marax. Remember that all types in bapi_te_mara must be char types which correspond to the extension of zmm01s0001. The extension of bapi_te_marax must contain the same named fields as the other two extensions, but all must have a type BAPIUPDATE (CHAR 1

thanks

abdul.

0 Kudos

Dear Abdul,

Thanks for your great co-operation.

The point you have mentioned in the reply..

I have already maintained ..please check my code. to resolve the problem...

REPORT zmmr_material_extension.

TABLES: t001l, "Storage Locations

mara, "General Material Data

makt, "Material Descriptions

mbew, "Material Valuation

marc, "Plant Data for Material

mard, " Storage location

bapiparex, " bapi structure for parameter extension.

bapiparexx, "bapi structure for parameter extension.

bapi_te_mara,

bapi_te_marax,

bapi_te_marc,

bapi_te_marcx,

bapi_te_mard,

bapi_te_mardx.

  • BAPI_RETURN .

DATA : loop_idx TYPE sy-tabix.

DATA : i_matnr LIKE mara-matnr,

o_matnr LIKE mara-matnr,

w_tragr LIKE mara-tragr,

w_mtvfp LIKE marc-mtvfp,

w_disgr LIKE marc-disgr,

w_ladgr LIKE marc-ladgr.

DATA: bapi_head LIKE bapimathead,

bapi_makt LIKE bapi_makt, "Material Description

bapi_mara1 LIKE bapi_mara, "Client Data

bapi_marax LIKE bapi_marax,

bapi_marc1 LIKE bapi_marc, "Plant View

bapi_marcx LIKE bapi_marcx,

bapi_mbew1 LIKE bapi_mbew, "Accounting View

bapi_mbewx LIKE bapi_mbewx,

bapi_mard1 LIKE bapi_mard, " STORAGE LOCATION

bapi_mardx LIKE bapi_mardx.

  • BAPIPAREX1 LIKE BAPIPAREX.

  • BAPIPAREXX LIKE BAPIPAREXX,

  • BAPI_RETURN LIKE BAPIRET2.

*

DATA: BEGIN OF int_makt OCCURS 100.

INCLUDE STRUCTURE bapi_makt.

DATA: END OF int_makt.

DATA:BEGIN OF it_bapiparex OCCURS 0.

INCLUDE STRUCTURE bapiparex.

DATA:END OF it_bapiparex.

DATA:BEGIN OF it_bapiparexx OCCURS 0.

INCLUDE STRUCTURE bapiparexx.

DATA:END OF it_bapiparexx.

it_bapiparex-structure = 'BAPI_TE_MARA'.

it_bapiparex-valuepart1 = bapi_te_mara. "-MATERIAL.

APPEND it_bapiparex.

it_bapiparexx-structure = 'BAPI_TE_MARAX'.

it_bapiparexx-valuepart1 = bapi_te_marax. " -MATERIAL.

APPEND it_bapiparexx.

it_bapiparex-structure = 'BAPI_TE_MARC'.

it_bapiparex-valuepart1 = bapi_te_marc. "-PLANT.

APPEND it_bapiparex.

*

it_bapiparexx-structure = 'BAPI_TE_MARCX'.

it_bapiparexx-valuepart1 = bapi_te_marcx. "-PLANT.

APPEND it_bapiparexx.

it_bapiparex-structure = 'BAPI_TE_MARD'.

it_bapiparex-valuepart1 = bapi_te_mard. "-PLANT.

*IT_BAPIPAREX-VALUEPART2 = BAPI_TE_MARD. "-STGE_LOC.

APPEND it_bapiparex.

it_bapiparexx-structure = 'BAPI_TE_MARDX'.

it_bapiparexx-valuepart1 = bapi_te_mardx. "-PLANT.

*IT_BAPIPAREX-VALUEPART2 = BAPI_TE_MARD. "-STGE_LOC.

APPEND it_bapiparexx.

DATA : errflag.

DATA : bapi_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF int_mat OCCURS 100,

werks(4), "Plant

mtart(4), "Material type

matnr(18), "Material number

matkl(9) , "Material group

mbrsh(1), "Industry sector

meins(3), "Base unit of measure

  • gewei(3), "Weight Unit

spart(2), "Division

tragr(4), "Transportation group

ekwsl(4), "Purchasing Value Key

        • marc

ekgrp(3), "Purchasing group

mtvfp(2), "Checking Group for Availability Check

ladgr(4), "Loading group

prctr(10), "Profit Center

webaz LIKE bapi_marc-gr_pr_time, "Goods receipt processing time in days.

perkz(1), "Period indicator

awsls(6), "Variance Key

disgr(4), "MRP Group

dismm(2), "MRP Type

dispo(3), "MRP controller

disls(2), "Lot size (materials planning)

beskz(1), "Procurement Type

dzeit LIKE bapi_marc-inhseprodt, "In-house production time.

plifz LIKE bapi_marc-plnd_delry, "Planned delivery time in days.

      • makt

spras(2), "Language key

maktx(40), "Material description

***mbew

bklas(4), "Valuation Class.

vprsv(1), "Price control indicator

verpr LIKE bapi_mbew-moving_pr, "Moving Average Price

stprs LIKE bapi_mbew-std_price, "Standard price

peinh LIKE bapi_mbew-price_unit, "Price unit

****mard

lgort(4), "Storage location

END OF int_mat.

DATA : wa_int_mat LIKE int_mat.

SELECT-OPTIONS:

plant FOR marc-werks OBLIGATORY MEMORY ID plt,

material FOR mara-matnr MEMORY ID mat,

matltype FOR mara-mtart MEMORY ID mty,

division FOR mara-spart MEMORY ID div.

PARAMETERS: f_file LIKE rlgrap-filename

DEFAULT 'C:\Documents and Settings\prashant.maturu\Desktop\ZMATERIAL.XLS' MEMORY ID f_file,

getdata AS CHECKBOX, "Tick to download materials data to local harddisk

upddata AS CHECKBOX. "Tick to update date to Materials Master

IF getdata = 'X'.

PERFORM download_data.

  • PERFORM material_conversion.

PERFORM download_file.

ENDIF.

IF upddata = 'X'.

PERFORM upload_file.

PERFORM material_conversion.

PERFORM update_mm.

ENDIF.

&----


*& Form DOWNLOAD_DATA

&----


  • text

----


FORM download_data.

*IF MATLTYPE-LOW NE 'SFGD' OR MATLTYPE-LOW NE 'SPRS'.

SELECT * FROM marc WHERE lvorm EQ ' '

AND werks IN plant

AND matnr IN material.

CLEAR mara.

SELECT SINGLE * FROM mara WHERE matnr = marc-matnr .

  • CHECK MATLTYPE.

    • IF mara-mtart = 'SFGD' OR mara-mtart = '' OR mara-mtart = 'SPRS'.

    • CLEAR : mara,int_mat.

    • CONTINUE.

    • ENDIF.

CHECK division.

CLEAR mbew.

SELECT SINGLE * FROM mbew WHERE matnr = marc-matnr

AND bwkey = marc-werks.

CLEAR makt.

SELECT SINGLE * FROM makt WHERE spras = 'EN'

AND matnr = marc-matnr.

CLEAR mard.

SELECT SINGLE * FROM mard WHERE matnr = marc-matnr

AND werks = marc-werks.

    • WRITE:/ marc-werks, "Plant

    • mara-mtart, "Material type

    • mara-matnr, "Material number

    • mara-matkl, "Material group

    • mara-mbrsh, "Industry sector

    • mara-meins, "Base unit of measure

    • mara-gewei, "Weight Unit

    • mara-spart, "Division

    • mara-tragr, "Trasaction Group

    • mara-ekwsl, "Purchase Value key

      • MARA-IPRKZ, "Period indi.for. SLED.

    • marc-ekgrp, "Purchasing group

    • marc-mtvfp, "Availability check

    • marc-ladgr, "Loading grp.

    • marc-prctr, "Profit Center

    • marc-webaz, "GR processing time

    • marc-perkz, "Period Indicator

    • marc-awsls, "Variance key

    • marc-disgr, "MRP GROUP

    • marc-dismm, "MRP TYPE

    • marc-dispo, "MRP CONTOLLER

    • marc-disls, "LOT SIZE

    • marc-beskz, "PROCUREMENT TYPE

    • marc-dzeit, "IN-HOUSE PRD TIME

    • marc-plifz, "PLANT DELIVERY TIME

    • mbew-bklas, "VALUATION CLASS

    • mbew-vprsv, "Price control indicator

    • mbew-verpr, "MOVING PRICE

    • mbew-stprs, "Standard price

    • mbew-peinh, "Price unit

    • makt-spras, "Language key

    • makt-maktx, "Material description

    • mard-lgort. "Storage location.

int_mat-werks = marc-werks. "Plant

int_mat-mtart = mara-mtart. "Material type

int_mat-matnr = mara-matnr. "Material number

int_mat-matkl = mara-matkl. "Material group

int_mat-mbrsh = mara-mbrsh. "Industry sector

int_mat-meins = mara-meins. "Base unit of measure

  • int_mat-gewei = mara-gewei. "Weight Unit

int_mat-spart = mara-spart. "Division

int_mat-tragr = mara-tragr. "Trasaction Group

int_mat-ekwsl = mara-ekwsl. "Purchase Value key

  • INT_MAT-IPRKZ = MARA-IPRKZ. "Period indi.for. SLED.

int_mat-ekgrp = marc-ekgrp. "Purchasing group

int_mat-mtvfp = marc-mtvfp. "Availability check

int_mat-ladgr = marc-ladgr. "Loading grp.

int_mat-prctr = marc-prctr. "Profit Center

int_mat-webaz = marc-webaz. "GR processing time

int_mat-perkz = marc-perkz. "Period Indicator

int_mat-awsls = marc-awsls. "Variance key

int_mat-disgr = marc-disgr. "MRP GROUP

int_mat-dismm = marc-dismm. "MRP TYPE

int_mat-dispo = marc-dispo. "MRP CONTOLLER

int_mat-disls = marc-disls. "LOT SIZE

int_mat-beskz = marc-beskz. "PROCUREMENT TYPE

int_mat-dzeit = marc-dzeit. "IN-HOUSE PRD TIME

int_mat-plifz = marc-plifz. "PLANT DELIVERY TIME

int_mat-bklas = mbew-bklas. "Valution class

int_mat-vprsv = mbew-vprsv. "Price control indicator

int_mat-verpr = mbew-verpr. "Moving price

int_mat-stprs = mbew-stprs. "Standard price

int_mat-peinh = mbew-peinh. "Price unit

int_mat-spras = makt-spras. "Language key

int_mat-maktx = makt-maktx. "Material description

int_mat-lgort = mard-lgort. " Storage location

APPEND int_mat.

CLEAR int_mat.

ENDSELECT.

*ENDIF.

ENDFORM. "DOWNLOAD_DATA

&----


*& Form DOWNLOAD_FILE

&----


  • text

----


FORM download_file.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

filename = f_file

filetype = 'DAT'

TABLES

data_tab = int_mat

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.

FORMAT COLOR COL_GROUP.

WRITE:/ 'Data Download Successfully to your local harddisk'.

SKIP.

ENDIF.

ENDFORM. "DOWNLOAD_FILE

&----


*& Form UPLOAD_FILE

&----


  • text

----


FORM upload_file.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = f_file

filetype = 'DAT'

TABLES

data_tab = int_mat

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.

FORMAT COLOR COL_GROUP.

WRITE:/ 'Data Upload Successfully from your local harddisk'.

SKIP.

ENDIF.

ENDFORM. "UPLOAD_FILE

&----


*& Form UPDATE_MM

&----


  • text

----


FORM update_mm.

DATA : salesdata LIKE bapi_mvke,

salesdatax LIKE bapi_mvkex.

*salesdata-SALES_ORG = 'HCCL'.

*salesdata-DISTR_CHAN = '10'.

LOOP AT int_mat.

  • Header

bapi_head-material = int_mat-matnr.

bapi_head-ind_sector = int_mat-mbrsh.

bapi_head-matl_type = int_mat-mtart.

bapi_head-basic_view = 'X'.

bapi_head-sales_view = 'X'.

bapi_head-purchase_view = 'X'.

bapi_head-mrp_view = 'X'.

bapi_head-storage_view = 'X'.

  • bapi_head-prt_view = 'X'.

  • BAPI_HEAD-QUALITY_VIEW = 'X'.

bapi_head-account_view = 'X'.

  • bapi_head-cost_view = 'X'.

  • Client Data - Basic

bapi_mara1-matl_group = int_mat-matkl.

bapi_mara1-base_uom = int_mat-meins.

  • bapi_mara1-unit_of_wt = int_mat-gewei.

bapi_mara1-division = int_mat-spart.

bapi_mara1-trans_grp = int_mat-tragr.

bapi_mara1-pur_valkey = int_mat-ekwsl.

  • bapi_mara1-item_cat = 'NORM'.

bapi_marax-matl_group = 'X'.

bapi_marax-base_uom = 'X'.

  • bapi_marax-unit_of_wt = 'X'.

bapi_marax-division = 'X'.

bapi_marax-trans_grp = 'X'.

bapi_marax-pur_valkey = 'X'.

bapi_marax-item_cat = 'X'.

      • sorage location.

bapi_mard1-plant = int_mat-werks. "

bapi_mard1-stge_loc = int_mat-lgort.

bapi_mardx-plant = int_mat-werks. "

bapi_mardx-stge_loc = int_mat-lgort.

  • Material Description

REFRESH int_makt.

int_makt-langu = int_mat-spras.

int_makt-matl_desc = int_mat-maktx.

APPEND int_makt.

  • Plant - Purchasing

bapi_marc1-plant = int_mat-werks. "PLANT-LOW.

bapi_marc1-pur_group = int_mat-ekgrp.

bapi_marc1-availcheck = int_mat-mtvfp.

bapi_marc1-loadinggrp = int_mat-ladgr.

bapi_marc1-profit_ctr = int_mat-prctr. " profit center and plant are same

bapi_marc1-gr_pr_time = int_mat-webaz.

bapi_marc1-period_ind = int_mat-perkz.

bapi_marc1-variance_key = int_mat-awsls.

bapi_marc1-mrp_group = int_mat-disgr.

bapi_marc1-mrp_type = int_mat-dismm.

bapi_marc1-mrp_ctrler = int_mat-dispo.

bapi_marc1-lotsizekey = int_mat-disls.

bapi_marc1-proc_type = int_mat-beskz.

bapi_marc1-inhseprodt = int_mat-dzeit.

bapi_marc1-plnd_delry = int_mat-plifz.

bapi_marcx-plant = int_mat-werks.

bapi_marcx-pur_group = 'X'.

bapi_marcx-availcheck = 'X'.

bapi_marcx-loadinggrp = 'X'.

bapi_marcx-profit_ctr = 'X'.

bapi_marcx-gr_pr_time = 'X'.

bapi_marcx-period_ind = 'X'.

bapi_marcx-variance_key = 'X'.

bapi_marcx-mrp_group = 'X'.

bapi_marcx-mrp_type = 'X'.

bapi_marcx-mrp_ctrler = 'X'.

bapi_marcx-lotsizekey = 'X'.

bapi_marcx-proc_type = 'X'.

bapi_marcx-inhseprodt = 'X'.

bapi_marcx-plnd_delry = 'X'.

  • Accounting

bapi_mbew1-val_area = int_mat-werks.

bapi_mbew1-val_class = int_mat-bklas.

bapi_mbew1-price_ctrl = int_mat-vprsv.

bapi_mbew1-moving_pr = int_mat-verpr.

bapi_mbew1-std_price = int_mat-stprs.

bapi_mbew1-price_unit = int_mat-peinh.

bapi_mbewx-val_area = int_mat-werks.

bapi_mbewx-val_class = 'X'.

bapi_mbewx-price_ctrl = 'X'.

bapi_mbewx-moving_pr = 'X'.

bapi_mbewx-std_price = 'X'.

bapi_mbewx-price_unit = 'X'.

DATA : no_dequeue LIKE bapie1global_data.

DATA : flag_online LIKE bapie1global_data.

no_dequeue-testrun = 'X'.

flag_online-testrun = 'X'.

no_dequeue-inp_fld_check = 'E'.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = bapi_head

clientdata = bapi_mara1

clientdatax = bapi_marax

plantdata = bapi_marc1

plantdatax = bapi_marcx

storagelocationdata = bapi_mard1

storagelocationdatax = bapi_mardx

valuationdata = bapi_mbew1

valuationdatax = bapi_mbewx

flag_online = flag_online-testrun

no_dequeue = no_dequeue-testrun

IMPORTING

return = bapi_return

TABLES

materialdescription = int_makt

extensionin = it_bapiparex

extensioninx = it_bapiparexx.

  • IF BAPI_RETURN-TYPE = 'S' .

*

  • CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT = 'X'.

  • ENDIF.

*

  • IF BAPI_RETURN-TYPE = 'S' .

  • format color 5.

  • WRITE:/ 'Success Message ', BAPI_RETURN-NUMBER,

  • BAPI_RETURN-MESSAGE.

*

  • ENDIF.

  • IF BAPI_RETURN-TYPE = 'E'.

  • WRITE:/ 'Error Message ', BAPI_RETURN-NUMBER,

  • BAPI_RETURN-MESSAGE.

  • ENDIF.

CLEAR errflag.

LOOP AT bapi_return.

IF bapi_return-type EQ 'E'.

MESSAGE s000(0) WITH bapi_return-message.

errflag = 'X'.

  • ELSE.

  • WRITE:/ GM_RETURN-MESSAGE.

ENDIF.

ENDLOOP.

*BREAK-POINT.

IF errflag IS INITIAL.

COMMIT WORK AND WAIT.

IF sy-subrc NE 0.

MESSAGE s000(0) WITH bapi_return-message 'Error in Commit'.

EXIT.

ELSE.

MESSAGE s000(0) WITH bapi_return-message.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. "UPDATE_MM

&----


*& Form material_conversion

&----


FORM material_conversion .

IF int_mat IS NOT INITIAL.

LOOP AT int_mat.

loop_idx = sy-tabix.

CLEAR i_matnr.

CLEAR o_matnr.

i_matnr = int_mat-matnr.

IF NOT int_mat-tragr IS INITIAL.

CONCATENATE '000' int_mat-tragr INTO w_tragr.

ENDIF.

IF NOT int_mat-mtvfp IS INITIAL.

CONCATENATE '0' int_mat-mtvfp INTO w_mtvfp.

ENDIF.

CONCATENATE '000' int_mat-disgr INTO w_disgr.

IF NOT int_mat-ladgr IS INITIAL.

CONCATENATE '000' int_mat-ladgr INTO w_ladgr.

ENDIF.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = i_matnr

IMPORTING

output = o_matnr

EXCEPTIONS

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

wa_int_mat = int_mat.

wa_int_mat-matnr = o_matnr.

wa_int_mat-tragr = w_tragr.

wa_int_mat-mtvfp = w_mtvfp.

wa_int_mat-disgr = w_disgr.

wa_int_mat-ladgr = w_ladgr.

MODIFY int_mat FROM wa_int_mat.

ENDLOOP.

ENDIF.

ENDFORM. " material_conversion

regards

Prashanth

Former Member
0 Kudos

Hi,

If u r sure that the profit center exists in ur system and u got the error, its simple.

Field PRCTR (Profit Center) is of 10 Characters. u r passing only 4 or 5 chars.

So u r getting that error.

Solution is that you have to add leading zeroes to that profit center.

u can use the FM given below to add the leading zeroes.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = ITAB-PRCTR

IMPORTING

OUTPUT = ITAB-PRCTR.

Regards,

Asif Ali Khan

0 Kudos

Dear Guru,

Thank you...for your kind help. My problem is solved with your suggestion.

Regards,

Prashanth maturu.