MBEW error
Hi,
I am facing problem in MBEW table while releasing the billing document to accounting this is in 3rd party scenario.
Even when i am doing cedit memo at that time also it shows same error.
Rudra
Entry Missing in table MBEW
As you would be aware, MBEW table stores data related to
a) split valuation for a material
b) Updation of Moving Average Price and
c) Material valuation
So most probably, in your case, it could be due to either of the above.
thanks
G. Lakshmipathi
Similar Messages
-
Hello ,
While using the BAPI 'BAPI_MATERIAL_SAVEDATA', to extend material from one plant to another my code is throwing an error 'Currency initial v,current amount 6,000.0000 in MOVING_PR was transferred without a currency'
Enter a material number'
I have incorporated mbew-peinh, even then its throwing the same error.
I snd copy of my code.
report zmm_r018 .
*& Prog to copy n create the existing material using bapi .
tables: t001l, "Storage Locations
mara, "General Material Data
makt, "Material Descriptions
mbew, "Material Valuation
marc, "Plant Data for Material
mltx. "Purchase Order Descriptions
**parameters : new_mat like mara-matnr,
desc like makt-maktx,
*data: ref_mat like mara-matnr.
*data: xmara type mara.
**data: wamatnr like mara-matnr.
data: potext type string."Purchase Order Desc
data : ihead_data type bapimathead,
iclient_data type bapi_mara, "Client Data
iclient_datax type bapi_marax,
imakt like bapi_makt, "Mat Description
iplant_data like bapi_marc, "Plant View
iplant_datax like bapi_marcx,
iltxt type table of bapi_mltx with header line, "Pur Order Text
istoragelocationdata type bapi_mard, "Storage Location
istoragelocationdatax type bapi_mardx,
iaccounting_data like bapi_mbew, "Accounting View
iaccounting_datax like bapi_mbewx,
bapiret like bapiret2,
returnm type table of bapi_matreturn2 with header line.
**Internal Table to hold the records in the text file
types:begin of it,
matnr(18), " Material number
mbrsh(1), " Industry sector
mtart(4), " Material type
werks(4), " Plant
lgort_d(4), "Storage Location
maktx(40), " Material description
meins(3), " Base unit of measure
matkl(9) , " Material group
bismt(18), " Old Material number
spart(2), " Division
gewei(3), " Weight Unit
text1(30), " Purchasr Order Text
text2(30),
text3(30),
text4(30),
text5(30),
text6(30),
dzeinr(22), " Document
ekgrp(3), " Purchasing group
ekwsl(4), " Purchase Value Key
webaz(3), " Goods receipt processing time in days
dismm(2), " MRP Type
minbe(13), "Reorder point
dispo(3), " MRP Controller
disls(2), "Lot size (materials planning)
mabst(13), "Maximum stock level
plifz(3), " Planned delivery time in days
webaz1(3), " Goods receipt processing time in days
fhori(3), "Scheduling Margin Key for Floats
eisbe(13), "Safety stock
mtvfp(2), "Checking Group for Availability Check
lgpbe(10), "Storage Bin
qmatauth(6),"Material Authorization Group for Activities in QM
qmpur(1), " QM in Procurement is Active
qsspur(8), "Control Key for Quality Management in Procurement
bklas(4), " Valuation Class
bwtty_d(1), "Valuation Category
vprsv(1), " Price control indicator
verpr_bapi(23), "Moving average price/periodic unit price
peinh(5), "Price Unit
end of it.
data: it_data type table of it,
wa_data like line of it_data.
*Decalraing flag
data: v_flag value ''.
*DECLARING WORK AREAs TO BE PASSED TO THE FUNCTION MODULE.
data: bapi_head like bapimathead,
bapi_clientdata like bapi_mara,
bapi_clientdatax like bapi_marax,
bapi_plantdata like bapi_marc,
bapi_plantdatax like bapi_marcx,
bapi_storagelocationdata like bapi_mard,
bapi_storagelocationdatax like bapi_mardx,
bapi_salesdata like bapi_mvke,
bapi_salesdatax like bapi_mvkex,
bapi_makt like bapi_makt,
bapi_return like bapiret2.
*INTERNAL TABLE TO HOLD THE MATERIAL DESCRIPTION
data: begin of it_makt occurs 0.
include structure bapi_makt.
data end of it_makt.
data:begin of it_ret occurs 0.
include structure bapiret2.
data end of it_ret.
*INTERNAL TABLE TO HOLD HEADER DATA
data: it_excel type alsmex_tabline occurs 0 with header line.
*SELECTION-SCREEN ELEMENTS
selection-screen begin of block b1 with frame title text-001.
parameter: fname type rlgrap-filename default 'c:\supplies.xls'.
parameters: p_begcol type i default '1' no-display,
p_begrow type i default '2' no-display,
p_endcol type i default '200' no-display,
p_endrow type i default '2500' no-display.
*perform f_get_data.
selection-screen end of block b1.
*DECLARATION OF EXCELAL TABLE
at selection-screen on value-request for fname.
perform f_get_file using fname.
start-of-selection.
perform f_xls_itab using fname
changing it_excel.
perform f_move_data.
perform f_get_data.
perform f_call_bapi.
*& Form F_GET_FILE
text
-->P_FNAME text
<--P_SY_SUBRC text
form f_get_file using p_fname like fname.
call function 'KD_GET_FILENAME_ON_F4'
exporting
program_name = syst-repid
dynpro_number = syst-dynnr
FIELD_NAME = ' '
STATIC = ' '
MASK = ' '
changing
file_name = p_fname
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2
if sy-subrc <> 0.
message e006(zhnc).
endif.
endform. " F_GET_FILE
*& Form F_XLS_ITAB
text
-->P_FNAME text
<--P_IT_EXCEL text
form f_xls_itab using p_fname
changing p_it_excel.
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = 'c:\supplies.xls'
i_begin_col = p_begcol
i_begin_row = p_begrow
i_end_col = p_endcol
i_end_row = p_endrow
tables
intern = it_excel
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " F_XLS_ITAB
*& Form F_MOVE_DATA
text
--> p1 text
<-- p2 text
form f_move_data .
data : lv_index type i.
field-symbols <fs>.
*--- Sorting the internal table
sort it_excel by row col.
clear it_excel.
loop at it_excel.
move it_excel-col to lv_index.
*--- Assigning the each record to an internal table row
assign component lv_index of structure wa_data to <fs>.
*--- Asigning the field value to a field symbol
move it_excel-value to <fs>.
at end of row.
append wa_data to it_data.
clear wa_data.
endat.
endloop.
endform. " F_MOVE_DATA
form f_get_data .
loop at it_data into wa_data.
move-corresponding wa_data to ihead_data.
Header
ihead_data-material = wa_data-matnr.
ihead_data-ind_sector = wa_data-mbrsh.
ihead_data-matl_type = wa_data-mtart.
ihead_data-basic_view = 'X'.
ihead_data-purchase_view = 'X'.
ihead_data-mrp_view = 'X'.
ihead_data-storage_view = 'X'.
ihead_data-quality_view = 'X'.
ihead_data-account_view = 'X'.
move-corresponding wa_data to iclient_data.
Material Description
refresh it_makt.
it_makt-langu = 'EN'.
it_makt-matl_desc = wa_data-maktx.
append it_makt.
Purchase Order Description
clear:iltxt,iltxt[].
concatenate wa_data-text1 wa_data-text2 wa_data-text3 wa_data-text4
wa_data-text5 wa_data-text6 into potext
separated by space.
iltxt-applobject = 'MATERIAL'.
iltxt-text_name = wa_data-matnr.
iltxt-text_id = 'BEST'.
iltxt-langu = sy-langu.
iltxt-langu_iso = 'EN'.
iltxt-format_col = space.
iltxt-text_line = potext.
append iltxt.
Client Data - Basic
iclient_data-matl_group = wa_data-matkl.
iclient_data-old_mat_no = wa_data-bismt.
iclient_data-base_uom = wa_data-meins.
iclient_data-document = wa_data-dzeinr.
iclient_data-unit_of_wt = wa_data-gewei.
iclient_data-division = wa_data-spart.
iclient_data-qm_procmnt = wa_data-qmpur.
iclient_data-pur_valkey = wa_data-ekwsl.
iclient_datax-matl_group = 'X'.
iclient_datax-old_mat_no = 'X'.
iclient_datax-base_uom = 'X'.
iclient_datax-po_unit = 'X'.
iclient_datax-document = 'X'.
iclient_datax-unit_of_wt = 'X'.
iclient_datax-division = 'X'.
iclient_datax-var_ord_un = 'X'.
iclient_data-pur_valkey = 'X'.
move-corresponding wa_data to iplant_data.
Plant - Purchasing
iplant_data-plant = wa_data-werks.
iplant_data-pur_group = wa_data-ekgrp.
iplant_data-gr_pr_time = wa_data-webaz.
iplant_datax-plant = wa_data-werks.
iplant_data-pur_group = 'X'.
iplant_datax-gr_pr_time = 'X'.
*MRP1 View
iplant_data-mrp_type = wa_data-dismm.
iplant_data-reorder_pt = wa_data-minbe.
iplant_data-mrp_ctrler = wa_data-dispo.
iplant_data-lotsizekey = wa_data-disls.
iplant_data-max_stock = wa_data-mabst .
iplant_datax-mrp_type = 'X'.
iplant_datax-reorder_pt = 'X'.
iplant_datax-mrp_ctrler = 'X'.
iplant_datax-lotsizekey = 'X'.
iplant_datax-max_stock = 'X'.
*MRP2 View
iplant_data-plnd_delry = wa_data-plifz.
iplant_data-sm_key = wa_data-fhori.
iplant_data-ctrl_key = wa_data-qsspur.
iplant_data-availcheck = wa_data-mtvfp.
iplant_datax-plnd_delry = 'X'.
iplant_datax-sm_key = 'X'.
iplant_data-ctrl_key = 'X'.
iplant_datax-availcheck = 'X'.
*MRP3 View
iplant_data-safety_stk = wa_data-eisbe.
iplant_data-qm_authgrp = wa_data-qmatauth.
iplant_datax-safety_stk = 'X'.
iplant_data-qm_authgrp = 'X'.
move-corresponding wa_data to istoragelocationdata.
Storage View
istoragelocationdata-plant = wa_data-werks.
istoragelocationdata-stge_loc = wa_data-lgort_d.
istoragelocationdata-stge_bin = wa_data-lgpbe.
istoragelocationdatax-plant = wa_data-werks.
istoragelocationdatax-stge_loc = wa_data-lgort_d.
istoragelocationdatax-stge_bin = 'X'.
Accounting
iaccounting_data-val_area = wa_data-werks.
iaccounting_data-price_ctrl = wa_data-vprsv.
iaccounting_data-moving_pr = wa_data-verpr_bapi.
iaccounting_data-price_unit = wa_data-peinh.
iaccounting_data-val_class = wa_data-bklas.
iaccounting_data-val_cat = wa_data-bwtty_d.
iaccounting_datax-val_area = wa_data-werks.
iaccounting_datax-price_ctrl = 'X'.
iaccounting_datax-moving_pr = 'X'.
iaccounting_datax-price_unit = 'X'.
iaccounting_datax-val_class = 'X'.
iaccounting_datax-val_cat = 'X'.
clear it_ret.
refresh it_ret.
perform f_call_bapi.
read table it_ret with key type = 'S'.
if sy-subrc eq 0.
perform f_bapi_commit.
write:/ 'MATERIAL CREATED OR UPDATED SUCESSFULLY WITH MATERIAL NO',
wa_data-matnr.
else.
*message e000(zhnc) with 'ERROR IN CREATING THE MATERIAL'.
*WRITE: / 'ERROR IN CREATIN MATERIAL',IT_RET-MESSAGE.
*PERFORM F_DOWNLOAD.
endif.
*ENDIF.
endloop.
endform. " F_GET_DATA
*& Form F_CALL_BAPI
text
--> p1 text
<-- p2 text
form f_call_bapi .
call function 'BAPI_MATERIAL_SAVEDATA'
exporting
headdata = ihead_data
clientdata = iclient_data
clientdatax = iclient_datax
plantdata = iplant_data
plantdatax = iplant_datax
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
storagelocationdata = istoragelocationdata
storagelocationdatax = istoragelocationdatax
valuationdata = iaccounting_data
valuationdatax = iaccounting_datax
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA = istoragelocationdata
STORAGETYPEDATAX = istoragelocationdatax
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
NO_DEQUEUE = ' '
NO_ROLLBACK_WORK = ' '
importing
return = it_ret
tables
materialdescription = it_makt
UNITSOFMEASURE = it_uom
UNITSOFMEASUREX = it_uomx
INTERNATIONALARTNOS =
materiallongtext = iltxt
TAXCLASSIFICATIONS =
returnmessages = returnm.
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
append it_ret.
write: it_ret-message .
endform. " F_CALL_BAPI
*& Form F_BAPI_COMMIT
text
--> p1 text
<-- p2 text
form f_bapi_commit .
call function 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
endform. " F_BAPI_COMMIT
Plz suggest some solution.
Best Regards,
RaviHi,
Insert Material number in the MAKT(Material Description table).
Also, check if the material number is missing somewhere else...
Regards,
Kunjal -
Error in key figure value at Reporting level
Hi Experts,
I had problem of Key figure value which displays wrong data in reporting.
The Process is :
I had added the key figure SALK3 to the generic data source (xxx). The Extractor is Table/View, Table is MBEW.I had replicated to BW side.
In BW, The process is Data Source(Generic) to 0MAT_PLANT(Infoobject (Added SALK3 to the infoobject of Attributes tab) ) loads to Multiprovider.I can see data in the multi provider for that particular field after loading.
Now the problem is, In Query designer i had added the key figure in Columns and ran the report.The output of the field is, If the value is 100 it displays 100 ERROR, if it 200 it displays 200 ERROR.Could you please help me on this,where i went wrong.
Regards,
Kishan.Hello,
Please check with the follwing screen shots:
Right click on the key fgure you created----select edit
Once the screen opens select the NODIM from Data Functions before the key figure (as highlighted).
Finally click on OK.
Regards
NS -
Performance issue in Report (getting time out error)
Hi experts,
I am doing Performance for a Report (getting time out error)
Please see the code below and .
while looping internal table IVBAP after 25 minutes its showing time out error at this poit ->
SELECT MAX( ERDAT ) .
please send alternate code for this .
Advance thanks
from
Nagendra
Get Sales Order Details
CLEAR IVBAP.
REFRESH IVBAP.
SELECT VBELN POSNR MATNR NETWR KWMENG WERKS FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IVBAP
FOR ALL ENTRIES IN IVBAK
WHERE VBELN = IVBAK-VBELN
AND MATNR IN Z_MATNR
AND WERKS IN Z_WERKS
AND ABGRU = ' '.
Check for Obsolete Materials - Get Product Hierarhy/Mat'l Description
SORT IVBAP BY MATNR WERKS.
CLEAR: WK_MATNR, WK_WERKS, WK_PRDHA, WK_MAKTX,
WK_BLOCK, WK_MMSTA, WK_MSTAE.
LOOP AT IVBAP.
CLEAR WK_INVDATE. "I6677.sn
SELECT MAX( ERDAT ) FROM VBRP INTO WK_INVDATE WHERE
AUBEL EQ IVBAP-VBELN AND
AUPOS EQ IVBAP-POSNR.
IF SY-SUBRC = 0.
MOVE WK_INVDATE TO IVBAP-INVDT.
MODIFY IVBAP.
ENDIF. "I6677.e n
SELECT SINGLE * FROM MBEW WHERE "I6759.sn
MATNR EQ IVBAP-MATNR AND
BWKEY EQ IVBAP-WERKS AND
BWTAR EQ SPACE.
IF SY-SUBRC = 0.
MOVE MBEW-STPRS TO IVBAP-STPRS.
IVBAP-TOT = MBEW-STPRS * IVBAP-KWMENG.
MODIFY IVBAP.
ENDIF. "I6759.en
IF IVBAP-MATNR NE WK_MATNR OR IVBAP-WERKS NE WK_WERKS.
CLEAR: WK_BLOCK, WK_MMSTA, WK_MSTAE, WK_PRDHA, WK_MAKTX.
MOVE IVBAP-MATNR TO WK_MATNR.
MOVE IVBAP-WERKS TO WK_WERKS.
SELECT SINGLE MMSTA FROM MARC INTO MARC-MMSTA
WHERE MATNR = WK_MATNR
AND WERKS = WK_WERKS.
IF NOT MARC-MMSTA IS INITIAL.
MOVE '*' TO WK_MMSTA.
ENDIF.
SELECT SINGLE LVORM PRDHA MSTAE MSTAV FROM MARA
INTO (MARA-LVORM, MARA-PRDHA, MARA-MSTAE, MARA-MSTAV)
WHERE MATNR = WK_MATNR.
IF ( NOT MARA-MSTAE IS INITIAL ) OR
( NOT MARA-MSTAV IS INITIAL ) OR
( NOT MARA-LVORM IS INITIAL ).
MOVE '*' TO WK_MSTAE.
ENDIF.
MOVE MARA-PRDHA TO WK_PRDHA.
SELECT SINGLE MAKTX FROM MAKT INTO WK_MAKTX
WHERE MATNR = WK_MATNR
AND SPRAS = SY-LANGU.
ENDIF.
IF Z_BLOCK EQ 'B'.
IF WK_MMSTA EQ ' ' AND WK_MSTAE EQ ' '.
DELETE IVBAP.
CONTINUE.
ENDIF.
ELSEIF Z_BLOCK EQ 'U'.
IF WK_MMSTA EQ '' OR WK_MSTAE EQ ''.
DELETE IVBAP.
CONTINUE.
ENDIF.
ELSE.
IF WK_MMSTA EQ '' OR WK_MSTAE EQ ''.
MOVE '*' TO WK_BLOCK.
ENDIF.
ENDIF.
IF WK_PRDHA IN Z_PRDHA. "I4792
MOVE WK_BLOCK TO IVBAP-BLOCK.
MOVE WK_PRDHA TO IVBAP-PRDHA.
MOVE WK_MAKTX TO IVBAP-MAKTX.
MODIFY IVBAP.
ELSE. "I4792
DELETE IVBAP. "I4792
ENDIF. "I4792
IF NOT Z_ALNUM[] IS INITIAL. "I9076
SELECT SINGLE * FROM MAEX "I9076
WHERE MATNR = IVBAP-MATNR "I9076
AND ALNUM IN Z_ALNUM. "I9076
IF SY-SUBRC <> 0. "I9076
DELETE IVBAP. "I9076
ENDIF. "I9076
ENDIF. "I9076
ENDLOOP.Hi Nagendra!
Get Sales Order Details
CLEAR IVBAP.
REFRESH IVBAP.
check ivbak is not initial
SELECT VBELN POSNR MATNR NETWR KWMENG WERKS FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IVBAP
FOR ALL ENTRIES IN IVBAK
WHERE VBELN = IVBAK-VBELN
AND MATNR IN Z_MATNR
AND WERKS IN Z_WERKS
AND ABGRU = ' '.
Check for Obsolete Materials - Get Product Hierarhy/Mat'l Description
SORT IVBAP BY MATNR WERKS.
CLEAR: WK_MATNR, WK_WERKS, WK_PRDHA, WK_MAKTX,
WK_BLOCK, WK_MMSTA, WK_MSTAE.
avoid select widin loop. instead do selection outside loop.u can use read statement......and then loop if required.
LOOP AT IVBAP.
CLEAR WK_INVDATE. "I6677.sn
SELECT MAX( ERDAT ) FROM VBRP INTO WK_INVDATE WHERE
AUBEL EQ IVBAP-VBELN AND
AUPOS EQ IVBAP-POSNR.
IF SY-SUBRC = 0.
MOVE WK_INVDATE TO IVBAP-INVDT.
MODIFY IVBAP.
ENDIF. "I6677.e n
SELECT SINGLE * FROM MBEW WHERE "I6759.sn
MATNR EQ IVBAP-MATNR AND
BWKEY EQ IVBAP-WERKS AND
BWTAR EQ SPACE.
IF SY-SUBRC = 0.
MOVE MBEW-STPRS TO IVBAP-STPRS.
IVBAP-TOT = MBEW-STPRS * IVBAP-KWMENG.
MODIFY IVBAP.
ENDIF. "I6759.en
IF IVBAP-MATNR NE WK_MATNR OR IVBAP-WERKS NE WK_WERKS.
CLEAR: WK_BLOCK, WK_MMSTA, WK_MSTAE, WK_PRDHA, WK_MAKTX.
MOVE IVBAP-MATNR TO WK_MATNR.
MOVE IVBAP-WERKS TO WK_WERKS.
SELECT SINGLE MMSTA FROM MARC INTO MARC-MMSTA
WHERE MATNR = WK_MATNR
AND WERKS = WK_WERKS.
IF NOT MARC-MMSTA IS INITIAL.
MOVE '*' TO WK_MMSTA.
ENDIF.
SELECT SINGLE LVORM PRDHA MSTAE MSTAV FROM MARA
INTO (MARA-LVORM, MARA-PRDHA, MARA-MSTAE, MARA-MSTAV)
WHERE MATNR = WK_MATNR.
IF ( NOT MARA-MSTAE IS INITIAL ) OR
( NOT MARA-MSTAV IS INITIAL ) OR
( NOT MARA-LVORM IS INITIAL ).
MOVE '*' TO WK_MSTAE.
ENDIF.
MOVE MARA-PRDHA TO WK_PRDHA.
SELECT SINGLE MAKTX FROM MAKT INTO WK_MAKTX
WHERE MATNR = WK_MATNR
AND SPRAS = SY-LANGU.
ENDIF.
IF Z_BLOCK EQ 'B'.
IF WK_MMSTA EQ ' ' AND WK_MSTAE EQ ' '.
DELETE IVBAP.
CONTINUE.
ENDIF.
ELSEIF Z_BLOCK EQ 'U'.
IF WK_MMSTA EQ '' OR WK_MSTAE EQ ''.
DELETE IVBAP.
CONTINUE.
ENDIF.
ELSE.
IF WK_MMSTA EQ '' OR WK_MSTAE EQ ''.
MOVE '*' TO WK_BLOCK.
ENDIF.
ENDIF.
IF WK_PRDHA IN Z_PRDHA. "I4792
MOVE WK_BLOCK TO IVBAP-BLOCK.
MOVE WK_PRDHA TO IVBAP-PRDHA.
MOVE WK_MAKTX TO IVBAP-MAKTX.
MODIFY IVBAP.
ELSE. "I4792
DELETE IVBAP. "I4792
ENDIF. "I4792
IF NOT Z_ALNUM[] IS INITIAL. "I9076
SELECT SINGLE * FROM MAEX "I9076
WHERE MATNR = IVBAP-MATNR "I9076
AND ALNUM IN Z_ALNUM. "I9076
IF SY-SUBRC 0. "I9076
DELETE IVBAP. "I9076
ENDIF. "I9076
ENDIF. "I9076
endloop.
U have used many select queries widin loop-endloop which is a big hindrance as far as performance is concerned.Avoid such practice.
Thanks
Deepika -
Delta error in GE-Function Module
Hi ,
my GE-delta is based on UDATE ( chenged date) from CDHDR table.
i created datasource in RS02 and i defined delta based in UDATE with upper limit 1 day and lower limit is '0'..
i created FM based on RSAX_BIW_GEDATA_SIMPLE.
for full load it working fine.
i put some extra code for delta.
it is not take any records...
i dont know much ABAP.
plz tell me where is wrong in my code for delta..
code ...
FUNCTION ZXBWMM_INV_POT_ID.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZVSAIPID OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Example: DataSource for table SFLIGHT
TABLES: SFLIGHT.
TABLES: EBAN , CDPOS , CDHDR , ZVSAPR.
TYPES : BEGIN OF TY_OBJDATE ,
OBJECTID TYPE CDHDR-OBJECTID,
VALUE_NEW TYPE CDPOS-VALUE_NEW,
VALUE_OLD TYPE CDPOS-VALUE_OLD,
UDATE TYPE CDHDR-UDATE,
MINBE TYPE MARC-MINBE,
BSTMA TYPE MARC-BSTMA,
WERKS TYPE MARC-WERKS,
VERPR TYPE MBEW-VERPR,
STPRS TYPE MBEW-STPRS,
LBKUM TYPE MBEW-LBKUM,
BUDAT TYPE MKPF-BUDAT,
MBLNR TYPE MSEG-MBLNR,
MENGE TYPE MSEG-MENGE,
DMBTR TYPE MSEG-DMBTR,
END OF TY_OBJDATE.
data : int_cdhdr type table of cdhdr with header line,
int_cdpos type table of cdpos with HEADER LINE,
INT_OBJDATE TYPE TABLE OF TY_OBJDATE WITH HEADER LINE.
int_marc type table of marc with header line.
*DATA: int_pr1 TYPE TABLE OF ZVSAIPID WITH HEADER LINE.
DATA : BEGIN OF INT_MATNR OCCURS 10,
MAtnr like mara-matnr,
end of int_matnr.
DATA : BEGIN OF INT_MARC OCCURS 10,
matnr like marc-matnr,
MINBE like marC-mINBE,
BSTMA LIKE Marc-bstma,
WERKS LIKE MARC-WERKS,
end of int_marc.
DATA : BEGIN OF INT_MBEW OCCURS 10,
MATNR LIKE MBEW-MATNR,
VERPR LIKE MBEW-VERPR,
STPRS LIKE MBEW-STPRS,
LBKUM LIKE MBEW-LBKUM,
end of int_MBEW.
DATA : BEGIN OF INT_MKPF OCCURS 10,
MBLNR LIKE MKPF-MBLNR,
BUDAT LIKE MKPF-BUDAT,
END OF INT_MKPF.
DATA : BEGIN OF INT_MSEG OCCURS 10,
MATNR LIKE MSEG-MATNR,
MBLNR LIKE MSEG-MBLNR,
MENGE LIKE MSEG-MENGE,
DMBTR LIKE MSEG-DMBTR,
END OF INT_MSEG.
Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SRSC_S_SELECT.
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
cursor
S_CURSOR TYPE CURSOR.
Select ranges
RANGES: L_R_CARRID FOR SFLIGHT-CARRID,
L_R_CONNID FOR SFLIGHT-CONNID.
RANGES : ra_OBJECTID FOR E_T_DATA-OBJECTID.
RA_UDATE FOR E_T_DATA-UDATE.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
IF NOT G_FLAG_INTERFACE_INITIALIZED IS INITIAL.
IF 1 = 2. MESSAGE E008(R3). ENDIF.
LOG_WRITE 'E' "message type
'R3' "message class
'008' "message number
' ' "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDIF.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZOI_MM_INVENTORY_IPID'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
LOG_WRITE 'E' "message type
'R3' "message class
'009' "message number
I_DSOURCE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
Check for supported update mode
CASE I_UPDMODE.
WHEN 'F'.
WHEN 'D'.
WHEN 'R'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E011(R3). ENDIF.
LOG_WRITE 'E' "message type
'R3' "message class
'011' "message number
I_UPDMODE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
READ TABLE I_T_SELECT INTO L_S_SELECT
WITH KEY FIELDNM = 'UDATE'.
APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
G_S_INTERFACE-INITFLAG = I_INITFLAG.
G_S_INTERFACE-UPDMODE = I_UPDMODE.
G_S_INTERFACE-DATAPAKID = I_DATAPAKID.
G_FLAG_INTERFACE_INITIALIZED = SBIWA_C_FLAG_ON.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
First data package -> OPEN CURSOR
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'UDATE'.
ENDLOOP
IF S_COUNTER_DATAPAKID = 0.
Fill range tables BW will only pass down simple selection criteria
of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CARRID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_CARRID.
APPEND L_R_CARRID.
ENDLOOP.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CONNID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_CONNID.
APPEND L_R_CONNID.
ENDLOOP.
Determine number of database records to be read per FETCH statement
from input parameter I_MAXSIZE. If there is a one to one relation
between DataSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT (S_S_IF-T_FIELDS) FROM SFLIGHT
WHERE CARRID IN L_R_CARRID AND
CONNID IN L_R_CONNID.
IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''. "FULL or INIT
OPEN CURSOR WITH HOLD S_CURSOR FOR
select * from cdhdr where OBJECTCLAS = 'MATERIAL' AND TCODE = 'MM02'.
ELSE. "DELTA
OPEN CURSOR WITH HOLD G_CURSOR FOR
select * from cdhdr where OBJECTCLAS = 'MATERIAL'
AND TCODE = 'MM02'
AND UDATE >= L_S_SELECT-LOW
AND UDATE <= L_S_SELECT-HIGH.
ENDIF.
ENDIF.
ENDIF.
"First data package ?
FETCH NEXT CURSOR S_CURSOR
APPENDING TABLE int_cdhdr
PACKAGE SIZE S_S_IF-MAXSIZE.
into table int_cdhdr
IF SY-SUBRC <> 0.
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
SELECT * FROM CDPOS INTO TABLE INT_CDPOS
FOR ALL ENTRIES IN INT_CDHDR
WHERE OBJECTID = INT_CDHDR-OBJECTID
AND TABNAME = 'MARC'
AND ( FNAME = 'BSTMA' OR FNAME = 'MINBE' ).
LOOP AT int_cdpos.
int_matnr-matnr = int_cdpos-objectid.
APPEND int_matnr.
ENDLOOP.
SELECT matnr MINBE BSTMA WERKS FROM MARC INTO TABLE INT_marc
FOR ALL ENTRIES IN int_matnr
WHERE MATNR = INT_matnr-matnr.
SELECT matnr VERPR STPRS LBKUM FROM MBEW INTO TABLE INT_MBEW
FOR ALL ENTRIES IN int_matnr
WHERE MATNR = INT_matnr-matnr.
SELECT matnr MBLNR MENGE DMBTR FROM MSEG INTO TABLE INT_MSEG
FOR ALL ENTRIES IN int_matnr
WHERE MATNR = INT_matnr-matnr.
LOOP AT int_MSEG.
int_MKPF-MBLNR = int_MSEG-MBLNR.
APPEND int_MKPF.
ENDLOOP.
SELECT MBLNR BUDAT FROM MKPF INTO TABLE INT_MKPF
FOR ALL ENTRIES IN int_MKPF
WHERE MBLNR = INT_MKPF-MBLNR.
*BREAK-POINT.
LOOP AT INT_CDPOS.
READ TABLE INT_CDHDR WITH KEY OBJECTID = INT_CDPOS-OBJECTID .
IF SY-SUBRC = 0.
INT_OBJDATE-OBJECTID = INT_CDPOS-OBJECTID.
INT_OBJDATE-VALUE_NEW = INT_CDPOS-VALUE_NEW.
INT_OBJDATE-VALUE_OLD = INT_CDPOS-VALUE_OLD.
INT_OBJDATE-UDATE = INT_CDHDR-UDATE.
READ TABLE INT_MARC WITH KEY MATNR = INT_CDPOS-OBJECTID .
IF SY-SUBRC = 0.
INT_OBJDATE-MINBE = INT_MARC-MINBE.
INT_OBJDATE-BSTMA = INT_MARC-BSTMA.
INT_OBJDATE-WERKS = INT_MARC-WERKS.
ENDIF.
READ TABLE INT_MBEW WITH KEY MATNR = INT_CDPOS-OBJECTID .
IF SY-SUBRC = 0.
INT_OBJDATE-VERPR = INT_MBEW-VERPR.
INT_OBJDATE-STPRS = INT_MBEW-STPRS.
INT_OBJDATE-LBKUM = INT_MBEW-LBKUM.
ENDIF.
READ TABLE INT_MSEG WITH KEY MATNR = INT_CDPOS-OBJECTID .
IF SY-SUBRC = 0.
INT_OBJDATE-MBLNR = INT_MSEG-MBLNR.
INT_OBJDATE-MENGE = INT_MSEG-MENGE.
INT_OBJDATE-DMBTR = INT_MSEG-DMBTR.
ENDIF.
READ TABLE INT_MKPF WITH KEY MBLNR = INT_MSEG-MBLNR .
IF SY-SUBRC = 0.
INT_OBJDATE-MBLNR = INT_MKPF-MBLNR.
INT_OBJDATE-BUDAT = INT_MKPF-BUDAT.
ENDIF.
APPEND INT_OBJDATE.
ENDIF.
ENDLOOP.
*SELECT * FROM EBAN
INTO CORRESPONDING FIELDS OF TABLE INT_PR1
FOR ALL ENTRIES IN INT_OBJDATE
WHERE BAnfn = int_objdate-objectid.
*ZZPRREL
LOOP AT INT_OBJDATE.
E_T_DATA-OBJECTID = INT_OBJDATE-OBJECTID.
E_T_DATA-UDATE = INT_OBJDATE-UDATE.
E_T_DATA-VALUE_NEW = INT_OBJDATE-VALUE_NEW.
E_T_DATA-VALUE_OLD = INT_OBJDATE-VALUE_OLD.
E_T_DATA-MINBE = INT_OBJDATE-MINBE.
E_T_DATA-BSTMA = INT_OBJDATE-BSTMA.
E_T_DATA-WERKS = INT_OBJDATE-WERKS.
E_T_DATA-VERPR = INT_OBJDATE-VERPR.
E_T_DATA-STPRS = INT_OBJDATE-STPRS.
E_T_DATA-LBKUM = INT_OBJDATE-LBKUM.
E_T_DATA-MBLNR = INT_OBJDATE-MBLNR.
E_T_DATA-MENGE = INT_OBJDATE-MENGE.
E_T_DATA-DMBTR = INT_OBJDATE-DMBTR.
E_T_DATA-BUDAT = INT_OBJDATE-BUDAT.
APPEND E_T_DATA.
CLEAR E_T_DATA.
ENDLOOP.
Fetch records into interface table.
named E_T_'Name of extract structure'.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION.
i assign points....
Regards,
PSR.Hi ,
i am not find any sollution for this..
any body help me for this problum...
i assign points..
Regards,
PSR -
Accounting entry not posted but MBEW table shows total stock and value
Hi
My R/3 version 4.7
I have a material which is stockable and valuated of material type ERSA(Spare parts)
This material was created in may 2007 and material ledger activated,i dont see master records in accounting view in material price analysis tab for the month may 07 till aug 07,and i see master recordsfor the month sep 07 till jan 08
For this particular material in the report MB51 for all the 3 material documents posted,there are no accounting entries in accounting document.
Also in the report output the field amount in local currency is zero for all the 3 material documents.
1.1st material document with mvt 202 for qty 1 posted in the month of may 07,no entries in acc.doc
In this case,MSEG-DMBTR(amount in local currency) was not updated
Also i dont see master records for this period in accounting view in material price analysis tab,in material master.
2.2nd material document with mvt 261 posted for qty 1 in the month of nov,no entries in acc.doc
In this case,MSEG-DMBTR(amount in local currency)was not updated.
I see master records for this period in accounting view in material price analysis tab with stock 1 qty and value zero
3.3rd material document with mvt 101 posted qty 1 in the month of dec,in this case once GR is done MSEG-DMBTR(amount in local currency) was not updated,but mbew has the entries for stock and value.
Can any one let me know why the system is not updating the mseg-dmbtr and as well affecting MB51 report
Regards
RathaThe settings in Customizing which define that no negative stocks are allowed for the storage type, have only an effect on the transfer orders. In addition, you must also set message L9040 as an error message. For this, call up the Customizing and branch to: 'Logistics Execution -> Warehouse Management -> Interfaces -> Inventory Management -> Allow negative Stocks in Interim Storage Types'. There, execute point 'Control of System Messages in Warehouse Management' and enter message type 'E' for message number L9040
-
Regarding Runtime error in ALV List Display.
am using following to display data in ALV List.
but after executing of program am getting runtime error called 'Field Symbol has Not been assigned' .
please tell me how to correct the error.
Very urgent
Suitable answers rewarded with Maximum Ponits...
REPORT zmatrix.
TYPE-POOLS: slis.
TABLES: agr_define, sza5_d0700.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-006.
SELECT-OPTIONS: s_role FOR agr_define-agr_name OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
D A T A *
TYPES: BEGIN OF ty_agr_1251_inf,
agr_name TYPE agr_1251-agr_name,
object TYPE agr_1251-object,
field TYPE agr_1251-field,
low(20) TYPE c,
high TYPE agr_1251-high,
infty TYPE t582s-infty,
itext TYPE t582s-itext,
END OF ty_agr_1251_inf.
TYPES: BEGIN OF ty_agr_1251_tcode,
agr_name TYPE agr_1251-agr_name,
object TYPE agr_1251-object,
field TYPE agr_1251-field,
low(20) TYPE c,
high TYPE agr_1251-high,
tcode TYPE tstct-tcode,
ttext TYPE tstct-ttext,
END OF ty_agr_1251_tcode.
TYPES: BEGIN OF ty_t582s,
infty TYPE agval,
itext TYPE t582s-itext,
END OF ty_t582s.
TYPES: BEGIN OF ty_code,
tcode TYPE tstct-tcode,
ttext TYPE ttext_stct,
END OF ty_code.
TYPES: BEGIN OF ty_inf,
infty TYPE t582s-infty,
itext TYPE t582s-itext,
END OF ty_inf.
TYPES: BEGIN OF ty_role,
agr_name TYPE agr_1251-agr_name,
END OF ty_role.
TYPES: BEGIN OF tys_role_dtls,
agr_name TYPE agr_name,
value TYPE c,
property TYPE c,
END OF tys_role_dtls.
TYPES: BEGIN OF tys_infotype_final,
text(60),
text1(60),
value(4),
END OF tys_infotype_final.
I N T E R N A L T A B L E S *
DATA: wa_infotyp_final TYPE tys_infotype_final.
DATA: t_infotyp_final TYPE TABLE OF tys_infotype_final.
DATA: BEGIN OF wa_infotyp_dtls,
infty TYPE infty,
itext TYPE intxt,
role_dtls TYPE TABLE OF tys_role_dtls,
END OF wa_infotyp_dtls.
DATA: BEGIN OF wa_tcode_dtls,
tcode TYPE tcode,
ttext TYPE ttext_stct,
role_dtls TYPE TABLE OF tys_role_dtls,
END OF wa_tcode_dtls.
DATA: t_infotyp_dtls LIKE TABLE OF wa_infotyp_dtls,
t_tcode_dtls LIKE TABLE OF wa_tcode_dtls,
t_role_dtls TYPE TABLE OF tys_role_dtls,
wa_role_dtls TYPE tys_role_dtls.
DATA: wa_inf TYPE ty_inf,
t_inf TYPE STANDARD TABLE OF ty_inf.
DATA: wa_role TYPE ty_role,
t_role TYPE STANDARD TABLE OF ty_role.
DATA: wa_tcode TYPE ty_code,
t_tcode TYPE TABLE OF ty_code.
DATA: wa_agr_1251_inf TYPE ty_agr_1251_inf.
DATA: wa_agr_1251_tcode TYPE ty_agr_1251_tcode.
DATA: t_agr_1251_inf TYPE STANDARD TABLE OF ty_agr_1251_inf.
DATA: t_agr_1251_tc TYPE STANDARD TABLE OF ty_agr_1251_tcode.
DATA: wa_582s TYPE ty_t582s.
DATA: t_582s TYPE STANDARD TABLE OF ty_t582s.
DATA: t_range_tcode TYPE RANGE OF tcode.
DATA: t_range_inf TYPE RANGE OF infotyp.
DATA: wa_range_inf LIKE LINE OF t_range_inf.
DATA: wa_range_tcode LIKE LINE OF t_range_tcode.
DATA: wa_field TYPE slis_fieldcat_alv.
DATA: t_field TYPE slis_t_fieldcat_alv.
VARIABLES FOR OLE *
DATA: text(20),
count(20).
DATA: text1(30).
DATA: agr_name TYPE agr_1251-agr_name.
DATA: flag TYPE i VALUE '0'.
DATA: string1 TYPE string.
DATA: str TYPE string VALUE 'SAP%'.
DATA: count1 TYPE i VALUE '0'.
*& Event START-OF-SELECTION
START-OF-SELECTION.
PERFORM f100_get_inf_data.
PERFORM f200_process_inf_data.
count1 = 1.
PERFORM f300_prepare_field_catalog.
PERFORM f110_main_data.
PERFORM f400_display_data.
PERFORM f100_get_trans_data.
*& Form f110_main_data
text
FORM f110_main_data.
wa_infotyp_final-text = 'Access to Infotypes'.
APPEND wa_infotyp_final TO t_infotyp_final.
wa_infotyp_final-text = 'Infotype'.
wa_infotyp_final-text1 = 'Description'.
APPEND wa_infotyp_final TO t_infotyp_final.
wa_infotyp_final-text = '*'.
wa_infotyp_final-text1 = 'Acess to all Infotypes'.
LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.
READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf
WITH KEY agr_name = wa_role-agr_name field = 'INFTY' low = '*'.
IF syst-subrc = 0.
wa_infotyp_final-value = 'X'.
ENDIF.
ENDLOOP.
APPEND wa_infotyp_final TO t_infotyp_final.
LOOP AT t_inf INTO wa_inf WHERE infty <> ' '.
wa_infotyp_final-text = wa_inf-infty.
wa_infotyp_final-text1 = wa_inf-itext.
LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.
Role Name
CLEAR wa_role_dtls.
flag = 1.
wa_role_dtls-agr_name = wa_role-agr_name.
For Value D & F
READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf
WITH KEY agr_name = wa_role-agr_name field = 'AUTHC'..
IF syst-subrc EQ 0.
IF wa_agr_1251_inf-low = 'R'.
wa_infotyp_final-value = 'D'.
ELSE.
wa_infotyp_final-value = 'F'.
ENDIF.
ENDIF.
APPEND wa_role_dtls TO t_role_dtls.
APPEND wa_infotyp_final TO t_infotyp_final.
ENDLOOP.
ENDLOOP.
ENDFORM. "f110_main_data
*& Form f100_get_inf_data
text
FORM f100_get_inf_data.
Logic for Infotypes *
SELECT aagr_name aobject
afield alow a~high
INTO TABLE t_agr_1251_inf
FROM agr_1251 AS a INNER JOIN agr_define AS b
ON aagr_name EQ bagr_name
WHERE ( ( aobject EQ 'P_ORGIN' OR aobject EQ 'P_PERNR' )
AND ( aagr_name IN s_role ) AND ( bagr_name NOT LIKE str ) ).
ENDFORM. "f100_get_inf_data
*& Form f200_get_inf_process_data
text
FORM f200_process_inf_data.
LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
IF wa_agr_1251_inf-high IS INITIAL.
CLEAR wa_range_inf.
wa_range_inf-sign = 'I'.
wa_range_inf-option = 'EQ'.
wa_range_inf-low = wa_agr_1251_inf-low.
APPEND wa_range_inf TO t_range_inf.
ELSE.
CLEAR wa_range_inf.
wa_range_inf-sign = 'I'.
wa_range_inf-option = 'BT'.
wa_range_inf-low = wa_agr_1251_inf-low.
wa_range_inf-high = wa_agr_1251_inf-high.
APPEND wa_range_inf TO t_range_inf.
ENDIF.
ENDLOOP.
SORT t_range_inf.
DELETE ADJACENT DUPLICATES FROM t_range_inf.
IF t_range_inf IS NOT INITIAL.
SELECT infty itext FROM t582s
INTO TABLE t_582s
WHERE sprsl = 'EN' AND infty IN t_range_inf.
IF syst-subrc EQ 0.
ENDIF.
ENDIF.
LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
IF wa_agr_1251_inf-high IS INITIAL.
READ TABLE t_582s INTO wa_582s
WITH KEY infty = wa_agr_1251_inf-low.
IF syst-subrc EQ 0.
wa_agr_1251_inf-infty = wa_582s-infty.
wa_agr_1251_inf-itext = wa_582s-itext.
MODIFY t_agr_1251_inf FROM wa_agr_1251_inf
TRANSPORTING infty itext.
IF syst-subrc EQ 0.
ENDIF.
ENDIF.
ELSE.
CLEAR count.
LOOP AT t_582s INTO wa_582s
WHERE infty GE wa_agr_1251_inf-low
AND infty LE wa_agr_1251_inf-high.
IF count LE 1.
wa_agr_1251_inf-high = space.
wa_agr_1251_inf-infty = wa_582s-infty.
wa_agr_1251_inf-itext = wa_582s-itext.
MODIFY t_agr_1251_inf FROM wa_agr_1251_inf
TRANSPORTING infty itext.
IF syst-subrc EQ 0.
CLEAR wa_582s.
ENDIF.
ELSE.
wa_agr_1251_inf-high = space.
wa_agr_1251_inf-infty = wa_582s-infty.
wa_agr_1251_inf-itext = wa_582s-itext.
APPEND wa_agr_1251_inf TO t_agr_1251_inf.
ENDIF.
CLEAR wa_agr_1251_inf.
count = count + 1.
ENDLOOP.
ENDIF.
ENDLOOP.
wa_role-agr_name = ' '.
APPEND wa_role TO t_role.
wa_role-agr_name = ' '.
APPEND wa_role TO t_role.
LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
IF wa_agr_1251_inf IS NOT INITIAL.
wa_role-agr_name = wa_agr_1251_inf-agr_name.
wa_inf-infty = wa_agr_1251_inf-infty.
wa_inf-itext = wa_agr_1251_inf-itext.
APPEND wa_role TO t_role.
APPEND wa_inf TO t_inf.
ENDIF.
ENDLOOP.
SORT t_role BY agr_name.
DELETE ADJACENT DUPLICATES FROM t_role.
SORT t_inf BY infty.
DELETE ADJACENT DUPLICATES FROM t_inf.
ENDFORM. "f200_get_process_inf_data
*& Form f100_get_trans_data
text
FORM f100_get_trans_data.
Logic for Transaction Codes *
SELECT aagr_name aobject
afield alow a~high
INTO CORRESPONDING FIELDS OF TABLE t_agr_1251_tc
FROM agr_1251 AS a
INNER JOIN agr_define AS b ON aagr_name EQ bagr_name
WHERE a~agr_name IN s_role
AND a~object EQ 'S_TCODE'.
ENDFORM. "f100_get_trans_data
*& Form f200_process_trans_data
text
FORM f200_process_trans_data.
LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
IF wa_agr_1251_tcode-high IS INITIAL.
CLEAR wa_range_tcode.
wa_range_tcode-sign = 'I'.
wa_range_tcode-option = 'EQ'.
wa_range_tcode-low = wa_agr_1251_tcode-low.
APPEND wa_range_tcode TO t_range_tcode.
ELSE.
CLEAR wa_range_tcode.
wa_range_tcode-sign = 'I'.
wa_range_tcode-option = 'BT'.
wa_range_tcode-low = wa_agr_1251_tcode-low.
wa_range_tcode-high = wa_agr_1251_tcode-high.
APPEND wa_range_tcode TO t_range_tcode.
ENDIF.
ENDLOOP.
SORT t_range_tcode.
DELETE ADJACENT DUPLICATES FROM t_range_tcode.
IF t_range_tcode IS NOT INITIAL.
SELECT tcode
ttext
FROM tstct
INTO TABLE t_tcode
WHERE sprsl EQ 'E'
AND tcode IN t_range_tcode.
IF sy-subrc EQ 0.
ENDIF.
ENDIF.
SORT t_agr_1251_tc BY agr_name.
LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
IF wa_agr_1251_tcode-high IS INITIAL.
READ TABLE t_tcode INTO wa_tcode
WITH KEY tcode = wa_agr_1251_tcode-low.
IF syst-subrc EQ 0.
wa_agr_1251_tcode-tcode = wa_tcode-tcode.
wa_agr_1251_tcode-ttext = wa_tcode-ttext.
MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode
TRANSPORTING tcode ttext.
IF syst-subrc EQ 0.
ENDIF.
ENDIF.
ELSE.
CLEAR count.
LOOP AT t_tcode INTO wa_tcode
WHERE tcode GE wa_agr_1251_tcode-low
AND tcode LE wa_agr_1251_tcode-high.
IF count LE 1.
agr_name = wa_agr_1251_tcode-agr_name.
wa_agr_1251_tcode-high = space.
wa_agr_1251_tcode-tcode = wa_tcode-tcode.
wa_agr_1251_tcode-ttext = wa_tcode-ttext.
MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode
TRANSPORTING tcode ttext high.
IF syst-subrc EQ 0.
CLEAR wa_tcode.
ENDIF.
count = 1.
ELSE.
wa_agr_1251_tcode-high = space.
wa_agr_1251_tcode-agr_name = agr_name.
wa_agr_1251_tcode-low = wa_tcode-tcode.
wa_agr_1251_tcode-tcode = wa_tcode-tcode.
wa_agr_1251_tcode-ttext = wa_tcode-ttext.
APPEND wa_agr_1251_tcode TO t_agr_1251_tc.
ENDIF.
CLEAR wa_agr_1251_tcode.
count = count + 1.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
wa_role-agr_name = wa_agr_1251_tcode-agr_name.
APPEND wa_role TO t_role.
ENDLOOP.
SORT t_role BY agr_name.
DELETE ADJACENT DUPLICATES FROM t_role.
SORT t_tcode BY tcode.
DELETE ADJACENT DUPLICATES FROM t_tcode.
ENDFORM. "f200_process_trans_data
*& Form f100_prepare_field_catalog
text
FORM f300_prepare_field_catalog.
LOOP AT t_role INTO wa_role.
wa_field-col_pos = count1.
wa_field-fieldname = wa_role-agr_name.
APPEND wa_field TO t_field.
count1 = count1 + 1.
ENDLOOP.
ENDFORM. "f100_prepare_field_catalog
*& Form f100_display_data
text
FORM f400_display_data.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-cprog
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
it_fieldcat = t_field[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_infotyp_final[]
EXCEPTIONS
program_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.
ENDFORM. "f100_display_datathis are the wasy u can build a field catalog...
1.----
FORM fill_fieldcat .
DATA: fld(30),
idx(2) TYPE n.
DEFINE no_output.
fieldcatalog-fieldname = &1.
fieldcatalog-no_out = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
END-OF-DEFINITION.
DEFINE catalog.
fieldcatalog-fieldname = &1.
fieldcatalog-seltext_s = &2.
if not &3 is initial.
fieldcatalog-seltext_m = &3.
else.
fieldcatalog-seltext_m = fieldcatalog-seltext_s.
endif.
if not &4 is initial.
fieldcatalog-seltext_l = &4.
else.
fieldcatalog-seltext_l = fieldcatalog-seltext_m.
endif.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
END-OF-DEFINITION.
catalog 'AVAIL_BASE'
'Base Qty.'
'Base Qty. Available'
'Base Quantity Available'.
catalog 'AVAIL_SALES'
'Sales Qty.'
'Sales Qty. Available'
'Sales Quantity Available'.
LOOP AT t_char_data.
idx = sy-tabix.
CONCATENATE 'CHR' idx INTO fld.
catalog fld
t_char_data-atbez
t_char_data-atbez
t_char_data-atbez.
ENDLOOP.
ADD 1 TO idx.
WHILE idx LE 15.
CONCATENATE 'CHR' idx INTO fld.
no_output fld.
ADD 1 TO idx.
ENDWHILE..
fieldcatalog-fieldname = 'EXACT'.
fieldcatalog-checkbox = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
2.----
FORM fieldcatalog.
REFRESH fc. CLEAR fc.
fc-tabname = 'HEADER'.
fc-fieldname = 'KUNNR'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'HEADER'.
fc-fieldname = 'NAME1_K'.
fc-ref_tabname = 'KNA1'.
fc-ref_fieldname = 'NAME1'.
APPEND fc. CLEAR fc.
fc-tabname = 'HEADER'.
fc-fieldname = 'TOTAL'.
fc-ref_tabname = 'MBEW'.
fc-ref_fieldname = 'SALK3'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'MATNR'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'MAKTX'.
fc-ref_tabname = 'MAKT'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'CHARG'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'WERKS'.
fc-ref_tabname = 'MSKU'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'NAME1_W'.
fc-ref_tabname = 'T001W'.
fc-ref_fieldname = 'NAME1'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc. -
Error while running MM17 Transaction
Hi Frnds,
I am doing MM17 Mass transaction Field (MBEW-VPRSV ) , i am changing the price control of a material from V to S then i am getting an error saying that :
ELF-WJ-35MM-CSM1 : Messages have been issued: number MASS000484000000.
Regards
RakeshHi Rakesh,
I think Cost Component Split already exists for this material hence system is not allowing to change price control.
Pl. check by changing price control manually by using MM02.
If same error is occuring, then pl. verify whether MAP and Standard Price are identical for this material or not.
In this situation, you have to make these two prices identical then only you can change price control.
To make both the prices identical by using MR21.
Regards,
Amol -
Error While Uploading Material Master Through Bdc Call Transaction
Hi Sap Gurus,
I am doing Bdc call Transaction for Material Master Uploading.
But After Entering data for 4-5 screen i got a error_
Field Mara-iprkz doesn,t exit in the screen saplmgmm 4000
Field Mara-prctr doesn,t exit in the screen saplmgmm 4000
Field Mbew-stprs doesn,t exit in the screen saplmgmm 4000
Field Marc-mtvfe doesn,t exit in the screen saplmgmm 4000
Enter Valuation class.
This is my Programme....................................
<removed by moderator>
Thanks in advance.
Arindam
Moderator message: please post only relevant code parts, your post must be less than 5000 characters to preserve formatting.
Edited by: Thomas Zloch on Apr 16, 2011 9:29 PMSorry for my obvious answer, but you should ask a more precise question.
Your errors are that you try to enter fields but they don't exist, so it sounds logic.
And the error "Enter Valuation class." means that the field is mandatory. So you must enter it.
Re-record the transaction using SHDB (eventually play with the http://wiki.sdn.sap.com/wiki/display/ABAP/Recordduringplay), run it in A display mode, and correct your program.
Sandra
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'MVKE-SKTOF'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'MARC-PRCTR'
wa_mara-prctr."'MUMBAI'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'MARA-IPRKZ'
'D'. -
I got the time out error in production system how can i rectity
TYPES : BEGIN OF TY_FINAL_IDEL,
IEDD(10),
IEDD LIKE AFRU-IEDD,
MATNR LIKE AFPO-MATNR,
AUFNR LIKE AFPO-AUFNR,
PERNR LIKE AFRU-PERNR,
BUDAT(10),
GRUND LIKE AFRU-GRUND,
MATKL LIKE MARA-MATKL,
MENGE LIKE MSEG-MENGE,
PSMNG LIKE AFPO-PSMNG,
PSAMG LIKE AFPO-PSAMG,
XMNGA LIKE AFRU-XMNGA,
STPRS LIKE MBEW-STPRS,
NETPR LIKE EKPO-NETPR,
TC LIKE MBEW-STPRS,
GRDTX LIKE TRUGT-GRDTX,
ARBPL LIKE CRHD-ARBPL,
MAKTX LIKE MAKT-MAKTX,
END OF TY_FINAL_IDEL.
TYPES : BEGIN OF TY_MARA_IDEL,
MATNR LIKE MARA-MATNR,
MATKL LIKE MARA-MATKL,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
MENGE LIKE MSEG-MENGE,
STPRS LIKE MBEW-STPRS,
NETPR LIKE EKPO-NETPR,
END OF TY_MARA_IDEL.
TYPES : BEGIN OF TY_AFPO_IDEL,
AUFNR LIKE AFPO-AUFNR,
PSMNG LIKE AFPO-PSMNG,
MATNR LIKE AFPO-MATNR,
PSAMG LIKE AFPO-PSAMG,
BUDAT LIKE AFRU-BUDAT,
ARBID LIKE AFRU-ARBID,
XMNGA LIKE AFRU-XMNGA,
GRUND LIKE AFRU-GRUND,
PERNR LIKE AFRU-PERNR,
AUFNR LIKE AFRU-AUFNR,
IEDD LIKE AFRU-IEDD,
AUFNR LIKE AFRU-AUFNR,
AUFPL LIKE AFRU-AUFPL,
APLZL LIKE AFRU-APLZL,
VORNR LIKE AFRU-VORNR,
GRDTX LIKE TRUGT-GRDTX,
END OF TY_AFPO_IDEL.
TYPES : BEGIN OF TY_CRHD_IDEL,
OBJID LIKE CRHD-OBJID,
ARBPL LIKE CRHD-ARBPL,
AUFPL LIKE V_QAPO-AUFPL,
VORGLFNR LIKE V_QAPO-VORGLFNR,
VORNR LIKE V_QAPO-VORNR,
ARBID LIKE V_QAPO-ARBID,
END OF TY_CRHD_IDEL.
TYPES : BEGIN OF TY_TRUGT_IDEL,
SPRAS LIKE TRUGT-SPRAS,
GRUND LIKE TRUGT-GRUND,
GRDTX LIKE TRUGT-GRDTX,
END OF TY_TRUGT_IDEL.
TYPES : BEGIN OF TY_AFRU_IDEL,
AUFNR LIKE AFRU-AUFNR,
END OF TY_AFRU_IDEL.
*& VARIABLE DECLARATION *
DATA : R_WERKS LIKE AFRU-WERKS,
R_MATNR LIKE AFPO-MATNR,
R_MATKL LIKE MARA-MATKL,
R_AUFNR LIKE AFPO-AUFNR,
R_ISDD LIKE AFRU-ISDD,
R_IEDD LIKE AFRU-IEDD.
*& INTERNAL TABLE DECLARATION *
DATA : IT_FINAL_IDEL TYPE STANDARD TABLE OF TY_FINAL_IDEL WITH HEADER LINE INITIAL SIZE 100 WITH DEFAULT KEY.
DATA : IT_AFPO_IDEL TYPE STANDARD TABLE OF TY_AFPO_IDEL WITH HEADER LINE INITIAL SIZE 100 WITH DEFAULT KEY.
DATA : IT_MARA_IDEL TYPE STANDARD TABLE OF TY_MARA_IDEL WITH HEADER LINE INITIAL SIZE 100 WITH DEFAULT KEY.
DATA : IT_CRHD_IDEL TYPE STANDARD TABLE OF TY_CRHD_IDEL WITH HEADER LINE INITIAL SIZE 100 WITH DEFAULT KEY.
DATA : IT_TRUGT_IDEL TYPE STANDARD TABLE OF TY_TRUGT_IDEL WITH HEADER LINE INITIAL SIZE 100 WITH DEFAULT KEY.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : WA_FIELDCAT_LN LIKE LINE OF IT_FIELDCAT.
DATA : IT_EVENTCAT TYPE SLIS_T_EVENT.
DATA : WA_EVENTCAT_LN LIKE LINE OF IT_EVENTCAT.
DATA : IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: S_COL_POS TYPE I.
*& SELECTION SCREEN DECLARATION *
SELECTION-SCREEN BEGIN OF BLOCK : BLOCK WITH FRAME.
SELECT-OPTIONS: S_WERKS FOR AFRU-WERKS DEFAULT 'IN01' NO INTERVALS NO-EXTENSION , "Plant
S_MATNR FOR AFPO-MATNR, "Material Code
S_MATKL FOR MARA-MATKL NO INTERVALS NO-EXTENSION, "Material Group
S_AUFNR FOR AFPO-AUFNR, "Order Number
S_IEDD FOR AFRU-IEDD OBLIGATORY. "Confirmed date for execution finish
*NO INTERVALS NO-EXTENSION
SELECTION-SCREEN END OF BLOCK BLOCK.
AT SELECTION SCREEN *
AT SELECTION-SCREEN ON S_WERKS.
SELECT SINGLE WERKS FROM AFRU INTO R_WERKS WHERE WERKS IN S_WERKS.
IF SY-SUBRC <> 0.
MESSAGE E001(ZIN01_RDPR).
ENDIF.
AT SELECTION-SCREEN ON S_MATNR.
SELECT SINGLE MATNR FROM AFPO INTO R_MATNR WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E002(ZIN01_RDPR).
ENDIF.
*AT SELECTION-SCREEN ON S_MATKL.
SELECT SINGLE MATKL FROM MARA INTO R_MATKL WHERE MATKL IN S_MATKL.
IF SY-SUBRC <> 0.
MESSAGE E003(ZIN01_RDPR).
ENDIF.
AT SELECTION-SCREEN ON S_AUFNR.
SELECT SINGLE AUFNR FROM AFPO INTO R_AUFNR WHERE AUFNR IN S_AUFNR.
IF SY-SUBRC <> 0.
MESSAGE E004(ZIN01_RDPR).
ENDIF.
AT SELECTION-SCREEN ON S_IEDD.
SELECT SINGLE IEDD FROM AFRU INTO R_IEDD WHERE IEDD IN S_IEDD.
IF SY-SUBRC <> 0.
MESSAGE E005(ZIN01_RDPR).
ENDIF.
IF S_IEDD-LOW IS INITIAL OR S_IEDD-HIGH IS INITIAL.
MESSAGE E005(ZIN01_RDPR).
ENDIF.
SELECT SINGLE IEDD FROM AFRU INTO R_IEDD WHERE IEDD IN S_IEDD.
IF SY-SUBRC <> 0.
MESSAGE E006(ZIN01_RDPR).
ENDIF.
START OF SELECTION *
START-OF-SELECTION.
PERFORM SELECT_DATA.
*PERFORM MAIN_DATA.
PERFORM BUILD_FIELDCATALOG.
PERFORM DATA_DISPLAY.
FORM TO SELECT DATA INTO INTERNAL TABLE
FORM SELECT_DATA.
SELECT FAUFNR FPSMNG FMATNR GBUDAT GARBID GXMNGA GGRUND GPERNR GIEDD GAUFNR GAUFPL GAPLZL G~VORNR INTO CORRESPONDING FIELDS OF TABLE IT_AFPO_IDEL
FROM AFPO AS F
INNER JOIN AFRU AS G ON FAUFNR = GAUFNR
WHERE F~AUFNR IN S_AUFNR AND
F~MATNR IN S_MATNR AND
G~WERKS = 'IN01' AND
G~XMNGA <> 0 AND
G~IEDD IN S_IEDD .
G~WERKS IN S_WERKS AND
IF SY-SUBRC <> 0.
MESSAGE E006(ZIN01_RDPR).
ENDIF.
IF SY-SUBRC = 0.
SELECT GRUND GRDTX INTO CORRESPONDING FIELDS OF TABLE IT_TRUGT_IDEL FROM TRUGT
FOR ALL ENTRIES IN IT_AFPO_IDEL
WHERE GRUND = IT_AFPO_IDEL-GRUND .
ENDIF.
SELECT HOBJID HARBPL IAUFPL IVORGLFNR IVORNR IARBID INTO CORRESPONDING FIELDS OF TABLE IT_CRHD_IDEL
FROM CRHD AS H
INNER JOIN V_QAPO AS I ON HOBJID = IARBID
FOR ALL ENTRIES IN IT_AFPO_IDEL
WHERE VORGLFNR = IT_AFPO_IDEL-APLZL AND
ARBID = IT_AFPO_IDEL-ARBID AND
OBJID = IT_AFPO_IDEL-ARBID .
IF SY-SUBRC = 0.
SELECT BMATNR BMAKTX BSPRAS DMATNR D~STPRS INTO CORRESPONDING FIELDS OF TABLE IT_MARA_IDEL
FROM MAKT AS B
INNER JOIN MBEW AS D ON BMATNR = DMATNR
FOR ALL ENTRIES IN IT_AFPO_IDEL
WHERE DMATNR = IT_AFPO_IDEL-MATNR AND BSPRAS = 'EN'.
ENDIF.
END OF SELECTION
DATA : PEDATE(10),
POSDATE(10).
LOOP AT IT_AFPO_IDEL.
CONCATENATE IT_AFPO_IDEL-IEDD6(2) IT_AFPO_IDEL-IEDD4(2) IT_AFPO_IDEL-IEDD+0(4)
INTO PEDATE SEPARATED BY '.'.
IT_FINAL_IDEL-IEDD = PEDATE.
CONCATENATE IT_AFPO_IDEL-BUDAT6(2) IT_AFPO_IDEL-BUDAT4(2) IT_AFPO_IDEL-BUDAT+0(4)
INTO POSDATE SEPARATED BY '.'.
IT_FINAL_IDEL-BUDAT = POSDATE.
IT_FINAL_IDEL-PERNR = IT_AFPO_IDEL-PERNR.
IT_FINAL_IDEL-MATNR = IT_AFPO_IDEL-MATNR.
IT_FINAL_IDEL-AUFNR = IT_AFPO_IDEL-AUFNR.
IT_FINAL_IDEL-PSMNG = IT_AFPO_IDEL-PSMNG.
IT_FINAL_IDEL-XMNGA = IT_AFPO_IDEL-XMNGA.
IT_FINAL_IDEL-GRUND = IT_AFPO_IDEL-GRUND.
READ TABLE IT_TRUGT_IDEL WITH KEY GRUND = IT_AFPO_IDEL-GRUND.
IT_FINAL_IDEL-GRDTX = IT_TRUGT_IDEL-GRDTX.
READ TABLE IT_CRHD_IDEL WITH KEY VORGLFNR = IT_AFPO_IDEL-APLZL AUFPL = IT_AFPO_IDEL-AUFPL.
IT_FINAL_IDEL-ARBPL = IT_CRHD_IDEL-ARBPL.
READ TABLE IT_MARA_IDEL WITH KEY MATNR = IT_AFPO_IDEL-MATNR.
IF SY-SUBRC = 0.
IT_FINAL_IDEL-MAKTX = IT_MARA_IDEL-MAKTX.
IT_FINAL_IDEL-STPRS = IT_MARA_IDEL-STPRS.
IT_FINAL_IDEL-TC = IT_AFPO_IDEL-XMNGA * IT_MARA_IDEL-STPRS.
ENDIF.
how can i rectify that one
in b5t run fine
but brp i got time_out error
how to rectify
give me a solution ,its very very urgent
Regards
ds
APPEND IT_FINAL_IDEL.
CLEAR : IT_FINAL_IDEL,IT_AFPO_IDEL,IT_MARA_IDEL,IT_CRHD_IDEL.
CLEAR : IT_TRUGT_IDEL-GRDTX,IT_FINAL_IDEL-TC,IT_FINAL_IDEL-MATNR,IT_FINAL_IDEL-MAKTX, IT_FINAL_IDEL-PSMNG, IT_FINAL_IDEL-STPRS.
ENDLOOP.In your END-OF-SELECTION, you are doing a number of table reads without the binary search option. This will cause the entire tables to be read for each read. Therefore, change this portion of the code to:
DATA : pedate(10),
posdate(10).
SORT: it_trugt_idel BY grund,
it_crhd_idel BY vorglfnr aufpl,
it_mara_idel BY matnr,
loop at it_afpo_idel.
CONCATENATE it_afpo_idel-iedd+6(2) it_afpo_idel-iedd+4(2)
it_afpo_idel-iedd+0(4) INTO pedate SEPARATED BY '.'.
it_final_idel-iedd = pedate.
CONCATENATE it_afpo_idel-budat+6(2) it_afpo_idel-budat+4(2)
it_afpo_idel-budat+0(4) INTO posdate SEPARATED BY '.'.
it_final_idel-budat = posdate.
it_final_idel-pernr = it_afpo_idel-pernr.
it_final_idel-matnr = it_afpo_idel-matnr.
it_final_idel-aufnr = it_afpo_idel-aufnr.
it_final_idel-psmng = it_afpo_idel-psmng.
it_final_idel-xmnga = it_afpo_idel-xmnga.
it_final_idel-grund = it_afpo_idel-grund.
READ TABLE it_trugt_idel WITH KEY
grund = it_afpo_idel-grund
BINARY SEARCH.
it_final_idel-grdtx = it_trugt_idel-grdtx.
READ TABLE it_crhd_idel WITH KEY
vorglfnr = it_afpo_idel-aplzl
aufpl = it_afpo_idel-aufpl.
binary search.
it_final_idel-arbpl = it_crhd_idel-arbpl.
READ TABLE it_mara_idel WITH KEY
matnr = it_afpo_idel-matnr
BINARY SEARCH.
IF sy-subrc = 0.
it_final_idel-maktx = it_mara_idel-maktx.
it_final_idel-stprs = it_mara_idel-stprs.
it_final_idel-tc = it_afpo_idel-xmnga * it_mara_idel-stprs.
ENDIF.
APPEND it_final_idel.
* CLEAR : IT_FINAL_IDEL,IT_AFPO_IDEL,IT_MARA_IDEL,IT_CRHD_IDEL.
CLEAR : it_trugt_idel-grdtx,it_final_idel-tc,it_final_idel-matnr,
it_final_idel-maktx, it_final_idel-psmng, it_final_idel-stprs.
ENDLOOP.
Rob -
Error by creating datasource in r/3
Hi,
i have a problem with creating a datasouce in r/3.
Error message :
Units field WAERS for field VERPR of DataSource ZBW_MBEW is hidden
I use for extraction function module with extraction structure. There is in this structure field VERPR, which is CURR with reference field WAERS in another table.
Thanks for help
RadkaYes, i have done thos before. But I have to change code for extracion function module, but i don't know how....
FUNCTION Z_BW_MBEW.
""Local interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" VALUE(I_CALLMODE) LIKE ROARCHD200-CALLMODE OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZBW_MBEW_STRUCT OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Example: DataSource for table SFLIGHT
TABLES: sflight.
Auxiliary Selection criteria structure
DATA: l_s_select TYPE srsc_s_select.
Maximum number of lines for DB table
STATICS: s_s_if TYPE srsc_s_if_simple,
counter
s_counter_datapakid LIKE sy-tabix,
cursor
s_cursor TYPE cursor.
Select ranges
RANGES: l_r_carrid FOR sflight-carrid,
l_r_connid FOR sflight-connid.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF i_initflag = sbiwa_c_flag_on.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
CASE i_dsource.
WHEN 'ZBW_MBEW'.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF.
this is a typical log call. Please write every error message like this
log_write 'E' "message type
'R3' "message class
'009' "message number
i_dsource "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
APPEND LINES OF i_t_select TO s_s_if-t_select.
Fill parameter buffer for data extraction calls
s_s_if-requnr = i_requnr.
s_s_if-dsource = i_dsource.
s_s_if-maxsize = i_maxsize.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF i_t_fields TO s_s_if-t_fields.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
First data package -> OPEN CURSOR
IF s_counter_datapakid = 0.
Fill range tables BW will only pass down simple selection criteria
of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'CARRID'.
MOVE-CORRESPONDING l_s_select TO l_r_carrid.
APPEND l_r_carrid.
ENDLOOP.
LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'CONNID'.
MOVE-CORRESPONDING l_s_select TO l_r_connid.
APPEND l_r_connid.
ENDLOOP.
Determine number of database records to be read per FETCH statement
from input parameter I_MAXSIZE. If there is a one to one relation
between DataSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
OPEN CURSOR WITH HOLD s_cursor FOR
SELECT (s_s_if-t_fields) FROM mbew.
ENDIF. "First data package ?
Fetch records into interface table.
named E_T_'Name of extract structure'.
FETCH NEXT CURSOR s_cursor
APPENDING CORRESPONDING FIELDS
OF TABLE e_t_data
PACKAGE SIZE s_s_if-maxsize.
IF sy-subrc <> 0.
CLOSE CURSOR s_cursor.
RAISE no_more_data.
ENDIF.
s_counter_datapakid = s_counter_datapakid + 1.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION. -
Error during BAPI while uploading Material data through MM01
Hi all,
i am facing one problem when uploading Material data thorough BAPI in MM01.i am attaching the code below and the error given.
but in the debugger all the value is being stored.
REPORT ZFINISHED_MAT.
Data: Begin of legacy_data occurs 0,
MATNR LIKE MARA-MATNR,
MBRSH LIKE MARA-MBRSH, "Industry Sector
MTART LIKE MARA-MTART, "Matl Type
WERKS LIKE MARD-WERKS, "Plant
LGORT LIKE MARD-LGORT, "Storage location
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
MAKTX LIKE MAKT-MAKTX, "Matl Desc.
MEINS LIKE MARA-MEINS, "Base UOM
MATKL LIKE MARA-MATKL, "Matl.Grp
* BISMT LIKE MARA-BISMT,
SPART LIKE MARA-SPART, "Division
* BRGEW LIKE MARA-BRGEW, "Gross weight
GROES LIKE MARA-GROES,
FERTH LIKE MARA-FERTH,
ZEINR LIKE MARA-ZEINR,
TAXKM1 LIKE MLAN-TAXM1,
TAXKM2 LIKE MLAN-TAXM2,
TAXKM3 LIKE MLAN-TAXM3,
TAXKM4 LIKE MLAN-TAXM4,
KTGRM LIKE MVKE-KTGRM,
* GEWEI LIKE MARA-GEWEI, "Weight unit
* NTGEW LIKE MARA-NTGEW, "Net weight
* KLART LIKE RMCLF-KLART,
MTVFP LIKE MARC-MTVFP, "Availibility Check
* XGCHP LIKE MARA-XGCHP,
XCHPF LIKE MARA-XCHPF, "Batch Management
TRAGR LIKE MARA-TRAGR,
LADGR TYPE MARC-LADGR,
VPRSV LIKE MBEW-VPRSV, "Price Control
VERPR LIKE MBEW-VERPR,
* SPRAS LIKE MAKT-SPRAS,
END OF LEGACY_DATA.
DATA: BEGIN OF IT_MAKT OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT.
DATA: END OF IT_MAKT.
*--- BAPI structures
DATA: BAPI_HEAD LIKE BAPIMATHEAD, " Header Segment with Control Information
BAPI_MAKT LIKE BAPI_MAKT, " Material Description
BAPI_MARA1 LIKE BAPI_MARA, " Client Data
BAPI_MARAX LIKE BAPI_MARAX, " Checkbox Structure for BAPI_MARA
BAPI_MARD1 LIKE BAPI_MARD,
BAPI_MARDX1 LIKE BAPI_MARDX, " Checkbox Structure for BAPI_MARD
BAPI_MARC1 LIKE BAPI_MARC, " Plant View
BAPI_MARCX LIKE BAPI_MARCX, " Checkbox Structure for BAPI_MARC
BAPI_MVKE1 LIKE BAPI_MVKE,
BAPI_MVKEX1 LIKE BAPI_MVKEX, " Checkbox Structure for BAPI_MVKE
BAPI_MLAN1 LIKE BAPI_MLAN,
BAPI_MLANX1 LIKE bapi_mlan1, " Checkbox Structure for BAPI_MLAN
BAPI_MBEW1 LIKE BAPI_MBEW, " Accounting View
BAPI_MBEWX LIKE BAPI_MBEWX, " Checkbox Structure for BAPI_MBEW
BAPI_RETURN LIKE BAPIRET2. " Return Parameter
* $PARAMETERS DECLARATION$
SELECTION-SCREEN BEGIN OF BLOCK B11
WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME. " DEFAULT 'C:\TEST1.XLS'.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN END OF BLOCK B11 .
* $DATA DECLARATION$
*DATA : BDC_DATA LIKE STANDARD TABLE OF BDCDATA WITH HEADER LINE.
DATA : IT_EXCEL TYPE STANDARD TABLE OF ALSMEX_TABLINE INITIAL SIZE 0 WITH HEADER LINE,
IT_EXCEL_DUMMY TYPE ALSMEX_TABLINE.
DATA : MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : L_MSTRING(480).
DATA :L_SUBRC LIKE SY-SUBRC.
DATA: V_FILE TYPE STRING.
* $AT-SELECTON SCREEN DECLARATION$
AT SELECTION-SCREEN ON P_FILE.
IF P_FILE IS INITIAL.
MESSAGE E398(00) WITH 'FILE NAME NEEDS TO BE SPECIFIED'.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE
start-of-selection.
perform data_fetch_to_xls.
perform insertion.
*& Form data_fetch_to_xls
* text
* --> p1 text
* <-- p2 text
FORM data_fetch_to_xls .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 25
I_END_ROW = 2
TABLES
INTERN = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
WRITE: /'ERROR UPLOADING XLS FILE FROM PRESENTATION SERVER !' ,
/'RETURN CODE : ', SY-SUBRC.
ELSE.
*************NOW FILL DATA FROM EXCEL INTO FINAL LEGACY DATA ITAB----LEGACY_DATA***************
IF NOT IT_EXCEL[] IS INITIAL.
CLEAR LEGACY_DATA.
REFRESH LEGACY_DATA[].
LOOP AT IT_EXCEL.
IT_EXCEL_DUMMY = IT_EXCEL.
AT NEW COL.
CASE IT_EXCEL_DUMMY-COL.
WHEN 1.
LEGACY_DATA-MATNR = IT_EXCEL_DUMMY-VALUE(18).
WHEN 2.
LEGACY_DATA-MBRSH = IT_EXCEL_DUMMY-VALUE(1).
WHEN 3.
LEGACY_DATA-MTART = IT_EXCEL_DUMMY-VALUE(4).
WHEN 4.
LEGACY_DATA-WERKS = IT_EXCEL_DUMMY-VALUE(4).
WHEN 5.
LEGACY_DATA-LGORT = IT_EXCEL_DUMMY-VALUE(4).
WHEN 6.
LEGACY_DATA-VKORG = IT_EXCEL_DUMMY-VALUE(4).
WHEN 7.
LEGACY_DATA-VTWEG = IT_EXCEL_DUMMY-VALUE(2).
WHEN 8.
LEGACY_DATA-MAKTX = IT_EXCEL_DUMMY-VALUE(40).
WHEN 9.
LEGACY_DATA-MEINS = IT_EXCEL_DUMMY-VALUE(3).
WHEN 10.
LEGACY_DATA-MATKL = IT_EXCEL_DUMMY-VALUE(9).
WHEN 11.
LEGACY_DATA-SPART = IT_EXCEL_DUMMY-VALUE(2).
WHEN 12.
LEGACY_DATA-GROES = IT_EXCEL_DUMMY-VALUE(32).
WHEN 13.
LEGACY_DATA-FERTH = IT_EXCEL_DUMMY-VALUE(18).
WHEN 14.
LEGACY_DATA-ZEINR = IT_EXCEL_DUMMY-VALUE(22).
WHEN 15.
LEGACY_DATA-TAXKM1 = IT_EXCEL_DUMMY-VALUE(1).
WHEN 16.
LEGACY_DATA-TAXKM2 = IT_EXCEL_DUMMY-VALUE(1).
WHEN 17.
LEGACY_DATA-TAXKM3 = IT_EXCEL_DUMMY-VALUE(1).
WHEN 18.
LEGACY_DATA-TAXKM4 = IT_EXCEL_DUMMY-VALUE(1).
WHEN 19.
LEGACY_DATA-KTGRM = IT_EXCEL_DUMMY-VALUE(2).
WHEN 20.
LEGACY_DATA-MTVFP = IT_EXCEL_DUMMY-VALUE(2).
WHEN 21.
LEGACY_DATA-XCHPF = IT_EXCEL_DUMMY-VALUE(1).
WHEN 22.
LEGACY_DATA-TRAGR = IT_EXCEL_DUMMY-VALUE(4).
WHEN 23.
LEGACY_DATA-LADGR = IT_EXCEL_DUMMY-VALUE(4).
WHEN 24.
LEGACY_DATA-VPRSV = IT_EXCEL_DUMMY-VALUE(1).
WHEN 25.
LEGACY_DATA-VERPR = IT_EXCEL_DUMMY-VALUE(14).
APPEND LEGACY_DATA.
CLEAR LEGACY_DATA.
ENDCASE.
ENDAT.
AT END OF ROW.
ENDAT.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " data_fetch_to_xls
*& Form insertion
* text
* --> p1 text
* <-- p2 text
FORM insertion .
LOOP AT legacy_data.
* Header
BAPI_HEAD-MATERIAL = legacy_data-MATNR.
BAPI_HEAD-IND_SECTOR = legacy_data-MBRSH.
BAPI_HEAD-MATL_TYPE = legacy_data-MTART.
BAPI_HEAD-BASIC_VIEW = 'X'.
BAPI_HEAD-SALES_VIEW = 'X'.
BAPI_HEAD-STORAGE_VIEW = 'X'.
*BAPI_HEAD-PURCHASE_VIEW = 'X'.
BAPI_HEAD-ACCOUNT_VIEW = 'X'.
* Material Description
REFRESH IT_MAKT.
*IT_MAKT-LANGU = legacy_data-SPRAS.
IT_MAKT-MATL_DESC = legacy_data-MAKTX.
APPEND IT_MAKT.
BAPI_MARD1-PLANT = legacy_data-WERKS.
BAPI_MARD1-STGE_LOC = legacy_data-LGORT.
BAPI_MARDX1-PLANT = legacy_data-WERKS.
BAPI_MARDX1-STGE_LOC = legacy_data-LGORT.
** Client Data - Basic
BAPI_MARA1-MATL_GROUP = legacy_data-MATKL.
*bapi_mara1-OLD_MAT_NO = legacy_data-bismt.
BAPI_MARA1-BASE_UOM = legacy_data-MEINS.
BAPI_MARA1-PROD_MEMO = LEGACY_DATA-FERTH.
BAPI_MARA1-SIZE_DIM = LEGACY_DATA-GROES.
BAPI_MARA1-DOCUMENT = LEGACY_DATA-ZEINR.
BAPI_MARA1-BATCH_MGMT = LEGACY_DATA-XCHPF.
*BAPI_MARA1-UNIT_OF_WT = legacy_data-GEWEI.
BAPI_MARA1-TRANS_GRP = legacy_data-TRAGR.
BAPI_MARA1-DIVISION = legacy_data-SPART.
BAPI_MARAX-MATL_GROUP = 'X'.
*BAPI_MARAX-OLD_MAT_NO = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-PROD_MEMO = 'X'.
BAPI_MARAX-SIZE_DIM = 'X'.
BAPI_MARAX-DOCUMENT = 'X'.
BAPI_MARAX-BATCH_MGMT = 'X'.
*BAPI_MARAX-UNIT_OF_WT = 'X'.
BAPI_MARAX-TRANS_GRP = 'X'.
BAPI_MARAX-DIVISION = 'X'.
*SALES
BAPI_MVKE1-SALES_ORG = legacy_data-VKORG.
BAPI_MVKE1-DISTR_CHAN = legacy_data-VTWEG.
*BAPI_MVKE1-DELYG_PLNT = legacy_data-DWERK.
BAPI_MVKE1-ACCT_ASSGT = legacy_data-KTGRM.
BAPI_MVKEX1-SALES_ORG = legacy_data-VKORG.
BAPI_MVKEX1-DISTR_CHAN = legacy_data-VTWEG.
*BAPI_MVKEX1-DELYG_PLNT = 'X'.
BAPI_MVKEX1-ACCT_ASSGT = 'X'.
** Plant - Purchasing
BAPI_MARC1-PLANT = legacy_data-WERKS.
BAPI_MARC1-LOADINGGRP = legacy_data-LADGR.
BAPI_MARC1-AVAILCHECK = legacy_data-MTVFP.
*BAPI_MARC1-MRP_GROUP = legacy_data-disgr.
BAPI_MARCX-PLANT = legacy_data-WERKS.
BAPI_MARCX-LOADINGGRP = 'X'.
BAPI_MARCX-AVAILCHECK = 'X'.
*BAPI_MARCX-MRP_GROUP = 'X'.
* Accounting
BAPI_MBEW1-VAL_AREA = legacy_data-WERKS.
BAPI_MBEW1-PRICE_CTRL = legacy_data-VPRSV.
BAPI_MBEW1-STD_PRICE = legacy_data-VERPR.
*BAPI_MBEW1-VAL_CLASS = legacy_data-BKLAS.
*BAPI_MBEW1-STD_PRICE = legacy_data-STPRS.
*BAPI_MBEW1-PRICE_UNIT = legacy_data-PEINH.
BAPI_MBEWX-VAL_AREA = legacy_data-WERKS.
BAPI_MBEWX-PRICE_CTRL = 'X'.
BAPI_MBEWX-STD_PRICE = 'X'.
*BAPI_MBEWX-VAL_CLASS = 'X'.
* TAX JURISDICTION CODE
BAPI_MLAN1-TAXCLASS_1 = LEGACY_DATA-TAXKM1.
BAPI_MLAN1-TAXCLASS_2 = LEGACY_DATA-TAXKM2.
BAPI_MLAN1-TAXCLASS_3 = LEGACY_DATA-TAXKM3.
BAPI_MLAN1-TAXCLASS_4 = LEGACY_DATA-TAXKM4.
BAPI_MLAN1-TAXCLASS_1 = 'X'.
BAPI_MLAN1-TAXCLASS_2 = 'X'.
BAPI_MLAN1-TAXCLASS_3 = 'X'.
BAPI_MLAN1-TAXCLASS_4 = 'X'.
*--- BAPI to create material
call function 'BAPI_MATERIAL_SAVEDATA'
exporting
HEADDATA = BAPI_HEAD
CLIENTDATA = BAPI_MARA1
CLIENTDATAX = BAPI_MARAX
*PLANTDATA = BAPI_MARC1
*PLANTDATAX = BAPI_MARCX
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
VALUATIONDATA = BAPI_MBEW1
VALUATIONDATAX = BAPI_MBEWX
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA = BAPI_MVKE1
* SALESDATAX = BAPI_MVKEX
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
IMPORTING
RETURN = BAPI_RETURN
TABLES
MATERIALDESCRIPTION = IT_MAKT
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
IF BAPI_RETURN-TYPE = 'E'.
WRITE:/ 'Error:' ,BAPI_RETURN-MESSAGE ,'for material:' ,legacy_data-maTNR.
ELSEIF BAPI_RETURN-TYPE = 'S'.
WRITE: 'Successfully created material' ,legacy_data-maTNR.
ENDIF.
ENDLOOP.
ENDFORM. " insertion
The error: The field MARC-MTVFP/BAPI_MARC-AVAILCHECK is defined as a required field; it does not contain an entr
suggestion will be vry helpful,
Kind Regards,
Edited by: Prasenjit Sengupta on Nov 16, 2009 9:11 AMHi Prasenjit,
Did you get any solution for this as I am getting same error from BAPI to update MRP controller in MARC table.
Regards,
Suruchi -
Error - Settlement for Production order Co88
Hello,
Before Dec 2009 the FG material xxxxx has been goods movement post without maintained split valuation. Then Dec2009 the material xxxxx has been extended to split valuated.
While process of production order settlement against said material through CO88, we are facing one error Valuation Type not set for material xxxx.
What could be the reason that system is showing the error.
Best Regards,
AvijitHi,
If no valuation category has been assigned to a material (MBEW-BWTTY is
blank), and you wish to assign multiple valuation categories (split
valuation) to this material, then the material must not have linked
documents and the stock must be zero for both the current and previous
periods.
The reason of this restriction is that objects that are open and
refer to valuation data without split valuation can result in
inconsistencies if the valuation category is changed.
So If you want to subsequently change the valuation control for a material
to split valuation, you should previously check the following:
- No stock is available for the material
- All production orders must be closed
- No purchase order can still be opened
These checkings will avoid inconsistencies or undesired side-effects.
Consequentely you can not change a valuation category of a material
if there are purchase order item lines (even if the purchase order is
completed) or if a stock balance exists for that material.
For more information concerning limitations associated with changing the
valuation category, you can see note 30656. (Although this note is
used primarily regarding a change to the Unit of Measurement, the
functionality is very similar).
Please also check note 155874, which outlines what must be performed
in order to change the valuation category.
Best regards,
MLM -
Time limit error no matter what optimization I do...
Hello Experts,
I am trying to optimize the code below since it always results in time limi error when we transport
it to production server. I have tried eliminating some select inside the loop and using for all entries
but it still gets the error. Anyway, below is the code and I hoe you can help me out on this one guys.
Thank you and take care!
LOOP AT lt_vbap ASSIGNING <wa_vbap>.
IF <wa_vbap>-auart EQ 'ZUCI' OR
<wa_vbap>-auart EQ 'ZURV' OR
<wa_vbap>-auart EQ 'ZUPR'.
Check if a delivery document has been created
CLEAR wa_vbill. "used wa_vbfa-vbeln instead of wa_vbill
*Start of modification - AVH - 04/11/07
*/ Used read table instead of fetching records from database every loop
SELECT SINGLE vbeln
FROM vbfa
INTO wa_vbill
WHERE vbelv = <wa_vbap>-vbeln
AND ( ( vbtyp_n EQ 'J' AND vbtyp_v = 'C' )
OR ( vbtyp_n EQ 'T' AND vbtyp_v = 'H' ) ).
CLEAR wa_vbfa.
READ TABLE lt_vbfa INTO wa_vbfa WITH KEY vbelv = <wa_vbap>-vbeln
vbtyp_n = 'J'
vbtyp_v = 'C'
BINARY SEARCH
TRANSPORTING vbeln.
IF sy-subrc <> 0.
READ TABLE lt_vbfa INTO wa_vbfa WITH KEY vbelv = <wa_vbap>-vbeln
vbtyp_n = 'T'
vbtyp_v = 'H'
BINARY SEARCH
TRANSPORTING vbeln.
ENDIF.
*End of modification - AVH - 04/11/07
IF sy-subrc <> 0.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ELSE.
Check if within selection parameters
CLEAR wa_likp.
*Start of modification - AVH - 04/11/07
READ TABLE lt_likp INTO wa_likp WITH KEY vbeln = wa_vbill.
READ TABLE lt_likp INTO wa_likp WITH KEY vbeln = wa_vbfa-vbeln.
*End of modification - AVH - 04/11/07
*Start of modification - AVH - 04/11/07
*/ Used wa_vbfa instead of variable wa_vbill
IF sy-subrc <> 0.
SELECT SINGLE *
FROM likp
INTO wa_likp
WHERE vbeln = wa_vbill.
SELECT SINGLE *
FROM likp
INTO wa_likp
WHERE vbeln = wa_vbfa-vbeln.
*End of modification - AVH - 04/11/07
APPEND wa_likp TO lt_likp.
ENDIF.
IF NOT wa_likp-wadat_ist IN s_erdat.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
ENDIF.
ELSE.
Check if this has already been billed
CLEAR wa_vbill. "Used wa_vbfa instead of wa_vbill
*Start of modification - AVH - 04/11/07
*/ Used read table instead of fetching records from database every loop
SELECT SINGLE vbeln
FROM vbfa
INTO wa_vbill
WHERE vbelv = <wa_vbap>-vbeln
AND ( ( vbtyp_n EQ 'M' AND vbtyp_v = 'C' )
OR ( vbtyp_n EQ 'O' AND vbtyp_v = 'H' ) ).
CLEAR wa_vbfa.
READ TABLE lt_vbfa INTO wa_vbfa WITH KEY vbelv = <wa_vbap>-vbeln
vbtyp_n = 'M'
vbtyp_v = 'C'
BINARY SEARCH
TRANSPORTING vbeln.
IF sy-subrc <> 0.
READ TABLE lt_vbfa INTO wa_vbfa WITH KEY vbelv = <wa_vbap>-vbeln
vbtyp_n = 'O'
vbtyp_v = 'H'
BINARY SEARCH
TRANSPORTING vbeln.
ENDIF.
*End of modification - AVH - 04/11/07
IF sy-subrc <> 0.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ELSE.
Check if within selection parameters
CLEAR wa_vbrk.
*Start of modification - AVH - 04/11/07
*/ Used wa_vbfa instead of variable wa_vbill.
READ TABLE lt_vbrk INTO wa_vbrk WITH KEY vbeln = wa_vbill.
READ TABLE lt_vbrk INTO wa_vbrk WITH KEY vbeln = wa_vbfa-vbeln.
IF sy-subrc <> 0.
SELECT SINGLE vbeln fkdat
FROM vbrk
INTO wa_vbrk
WHERE vbeln = wa_vbill.
APPEND wa_vbrk TO lt_vbrk.
SELECT SINGLE vbeln fkdat
FROM vbrk
INTO wa_vbrk
WHERE vbeln = wa_vbfa-vbeln.
APPEND wa_vbrk TO lt_vbrk.
ENDIF.
*End of modification
IF NOT wa_vbrk-fkdat IN s_erdat.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
Get Material Type and Division
IF <wa_vbap>-spart IS NOT INITIAL.
SELECT SINGLE mtart
FROM mara
INTO lv_mtart
WHERE matnr = <wa_vbap>-matnr.
ELSE.
SELECT SINGLE mtart spart
FROM mara
INTO (lv_mtart,<wa_vbap>-spart)
WHERE matnr = <wa_vbap>-matnr.
ENDIF.
If material division is same as parameter division
IF <wa_vbap>-spart = p_spart.
If material is subsidiary-owned
IF <wa_vbap>-spart in lr_spart.
If customer is the same as that of parameter division
IF <wa_vbap>-kunnr NE lr_kunnr OR <wa_vbap>-auart EQ 'ZUDO' OR <wa_vbap>-auart EQ 'ZUS3'.
If item is a free good, tag order type as 'ZUPR' to treat
the item the same way as 'ZUPR'
IF <wa_vbap>-pstyv = 'TANN' OR
<wa_vbap>-pstyv = 'ZKNF' OR
<wa_vbap>-pstyv = 'ZKNN' OR
<wa_vbap>-pstyv = 'ZFLO' OR
<wa_vbap>-pstyv = 'ZKBF' OR
<wa_vbap>-pstyv = 'ZKLN' OR
<wa_vbap>-pstyv = 'ZREN'.
lv_auart = <wa_vbap>-auart.
IF lv_auart EQ 'ZUPR'.
CLEAR <wa_vbap>-pstyv.
ENDIF.
<wa_vbap>-auart = 'ZUPR'.
CLEAR: lv_mtart.
ENDIF.
Set Cost of Goods Sold Account
<wa_vbap>-cogshkont = '0050000010'.
CASE <wa_vbap>-auart.
WHEN 'ZUDO' OR 'ZUPR' OR 'ZUCI'.
IF p_rtrns EQ 'X'.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
WHEN 'ZURD'.
IF p_issue EQ 'X'.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
WHEN OTHERS.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDCASE.
CASE <wa_vbap>-auart.
WHEN 'ZUPR'.
CASE lv_mtart.
WHEN 'ZUL4'.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
WHEN OTHERS.
Check if division is defined in mapping table
READ TABLE lt_ulsub INTO wa_ulsub
WITH KEY spart = <wa_vbap>-spart.
IF sy-subrc = 0.
<wa_vbap>-kostl = wa_ulsub-kostlp.
<wa_vbap>-bukrs = wa_ulsub-bukrsp.
<wa_vbap>-type = 'TP'.
Set Cost of Goods Sold Account
IF lv_auart = 'ZUPR'.
<wa_vbap>-cogshkont = '0050000006'.
ENDIF.
ELSE.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
ENDCASE.
WHEN 'ZUCI' OR 'ZUDO' OR 'ZURD' OR 'ZUS3'.
Get cost center from header text
PERFORM get_cost_center USING <wa_vbap>-vbeln
CHANGING <wa_vbap>-kostl.
* Change by LGTE 11-02-2006
Check if Medvale sales
IF <wa_vbap>-auart EQ 'ZUCI' AND <wa_vbap>-kostl IS INITIAL.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
Check if UL Cost Center
ELSEIF <wa_vbap>-kostl NE gv_ul_kostl.
IF <wa_vbap>-kostl NE gv_ul_kostl.
* End change.
Get material division and check if subsidiary product
SELECT SINGLE spart FROM mara INTO <wa_vbap>-spart
WHERE matnr = <wa_vbap>-matnr.
READ TABLE lt_ulsub INTO wa_ulsub
WITH KEY spart = <wa_vbap>-spart.
IF sy-subrc = 0.
Get requestor's company code from cost center data
SELECT SINGLE bukrs
FROM csks
INTO <wa_vbap>-bukrs
WHERE kokrs = lc_kokrs
AND kostl = <wa_vbap>-kostl
AND datbi GE sy-datum
AND datab LE sy-datum.
IF sy-subrc = 0.
For donations, only include if a subsidiary company is donating
IF <wa_vbap>-auart EQ 'ZUDO' OR <wa_vbap>-auart EQ 'ZUS3'.
IF NOT <wa_vbap>-kunnr IN lr_kunnrnt.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
CHECK <wa_vbap>-kunnr IN lr_kunnrnt.
ENDIF.
For ZUCI, if the company code of the costcenter is UL, do not include
IF <wa_vbap>-bukrs EQ gc_ul_bukrs.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
IF <wa_vbap>-bukrs = wa_ulsub-bukrsp.
<wa_vbap>-type = 'RV'.
ELSE.
<wa_vbap>-type = 'RV'.
ENDIF.
ELSE.
Check if customer defined in table ZFI_DONATIONS
SELECT SINGLE kunnr FROM zfi_donations INTO <wa_vbap>-kostl
WHERE kunnr = <wa_vbap>-kostl.
IF sy-subrc <> 0.
lv_error = 'X'.
CONCATENATE 'Cost center/Customer' <wa_vbap>-kostl
'does not exist. Please check Sales Order'
<wa_vbap>-vbeln
INTO lt_disp-message SEPARATED BY space.
lt_disp-type = 'E'.
<wa_vbap>-del_ind = 'X'.
APPEND lt_disp.
CONTINUE.
ELSE.
<wa_vbap>-type = 'RV'.
ENDIF.
ENDIF.
ELSE.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
ELSE.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
WHEN OTHERS.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDCASE.
ELSE.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
ELSE.
<wa_vbap>-del_ind = 'X'.
CONTINUE.
ENDIF.
Get company code description
SELECT SINGLE butxt
FROM t001
INTO <wa_vbap>-butxt
WHERE bukrs = <wa_vbap>-bukrs.
IF sy-subrc <> 0.
SELECT SINGLE name1
FROM kna1
INTO <wa_vbap>-butxt
WHERE kunnr = <wa_vbap>-kostl.
ENDIF.
Change by LGTE on 11-02-2006
Get Transaction Type
CASE <wa_vbap>-auart.
WHEN 'ZUPR'. "UL Promo/Samples
IF <wa_vbap>-pstyv = 'TANN' OR
<wa_vbap>-pstyv = 'ZKNF' OR
<wa_vbap>-pstyv = 'ZKNN' OR
<wa_vbap>-pstyv = 'ZFLO' OR
<wa_vbap>-pstyv = 'ZKBF' OR
<wa_vbap>-pstyv = 'ZKLN' OR
<wa_vbap>-pstyv = 'ZREN'.
<wa_vbap>-ltext = 'Free Goods'.
ELSE.
<wa_vbap>-ltext = 'Product Samples'.
ENDIF.
WHEN 'ZUDO'. "Donations - R/3
<wa_vbap>-ltext = 'Donations - R/3'.
WHEN 'ZUCI'. "Donations - ZUCI
<wa_vbap>-ltext = 'Donations - ZUCI'.
WHEN 'ZURD' OR 'ZUS3'. "UL Returns - Donation
<wa_vbap>-ltext = 'UL Returns - Donation'.
ENDCASE.
Get cost center description
SELECT SINGLE ltext FROM cskt INTO <wa_vbap>-ltext
WHERE spras = sy-langu
AND kokrs = lc_kokrs
AND kostl = <wa_vbap>-kostl
AND datbi GE sy-datum.
End of change.
Get material description
SELECT SINGLE maktx
FROM makt
INTO <wa_vbap>-maktx
WHERE matnr = <wa_vbap>-matnr
AND spras = sy-langu.
Get division from material master
SELECT SINGLE spart FROM mara INTO <wa_vbap>-spart
WHERE matnr = <wa_vbap>-matnr.
Get division description
SELECT SINGLE vtext
FROM tspat
INTO <wa_vbap>-vtext
WHERE spras = sy-langu
AND spart = <wa_vbap>-spart.
Get Valuation Class
SELECT SINGLE bklas
FROM mbew
INTO lv_bklas
WHERE matnr = <wa_vbap>-matnr.
Determine G/L of FG Based on Valuation Class
READ TABLE lt_val_cls INTO wa_val_cls WITH TABLE KEY bklas = lv_bklas.
<wa_vbap>-fghkont = wa_val_cls-hkont.
Determine Cost Center of Cogs Account
READ TABLE lt_ulsub INTO wa_ulsub WITH TABLE KEY spart = <wa_vbap>-spart.
<wa_vbap>-cogskostl = wa_ulsub-kostlp.
ENDLOOP. "ENDLOOPHi,
Hopefully it can help you:
1. Try remove all SELECT statement within LOOP, replace with select all data before LOOP using For ALL ENTRIES.
2. Try use READ TABLE using BINARY SEARCH. Don't forget to SORT the table according your Search Key.
If it still couldn;t help, try run your report in background.
Regards, -
Error message (M3024) during parallel goods movement
For publication distribution, collected unreferenced deliveries and goods issues are done in SAP system for a customer group by a program which is triggered by a web service every day. Standart SAP functionalities are used in this program. At goods issue part of program, an error message is occuring "Valuation data for material & is locked by the user &" with error code :M3024. The user who processes the program is locking himself. Also we have checked the other goods movement types in standart transactions (MB1B-MB11..)and same problem was occured. We have checked the notes that we applied before for to avoid material lock in paralel goods movement. There is nothing changed both in customizing and deveploment after upgrade. So we couldnt find the way to fix this problem. FIRST ANSWER FROM SAP***************************************** Can you kindly review the attached note 70865 with regards to this issue. WE APPLIED.-- We reviewed 70865 and this solution not applicable for our current system. According to note; We set material late lock exclusive time 15 seconds in OMJI. This solution solved material lock error at all plant level. After this solution, We get same batch error during goods movement(m3862), Then We applied note 157423, this note solved material batch lock error during goods movement, At last we have now m3024(Material valuation error lock) error during all goods movement. THEN********************************* As explained in the note 70865 , to ensure data integrity, it is necessary to block the material against updates by other users during good movements. This is achieved by blocking the material plant (lock object MARC) and the material valuation area (lock object MBEW) exclusively against othertransactions which update the material master. What you can do, as advised in the note, is to activate the late block via transaction OMJI. As a result of this change, several users will be able to carry out good movements to the same material and plant simultaneously. The problem is that you will experience a disadvantage of performance loss after this change. Please, notice that with this change in OMJI, several users will be ableto carry out GOODS MOVEMENTS to the same material and plant simultaneously. This change will not allow the simultaneous input of a goods movement and an invoice for the same material (in this case, the material will be locked as soon as the purchase order item is adopted in the invoice and the error message M3024 will occur). When the error message M3024 occurs, you could check with transaction SM12, there you could find some tables like MBEW are locked by user. The table is locked to prevent valuation, quantity etc. to be updated. System does not check if it is standard price or MAP, as soon as you work with one material it will be locked (its valuation data has to be locked, because otherwise there is no guarantee of the consistency of the stock values. Without this lock mechanism the possibility of serious data inconsistencies could arise). your customizing under: SPRO > IMG > Material Management > Set up Material block for goods movements Here you could choose setting 2(at positing) to have only a short locking period at posting. Please review information in attached notes. 521945 FAQ: Material block 322989 Late block: Number of blocking attempts AT LAST ** PROBLEM STILL GOING ON WHAT SHOULD WE DO TO SOLVE THIS ERROR.
HI Fatih,
Refer to SAP Note 1744780 - Error message M3024 during Invoice Verification process .
In the standard system it is not possible the simultaneous entry of a GOODS MOVEMENTS and an INVOICE for the same material and the same plant.
When you enter the invoice for the purchase order item, the valuation data for the material is updated, therefore this valuation data (table MBEW) needs to be blocked so that it is not changed at the same time by any other transaction (which might cause inconsistencies).
Resolution
This system behavior can not be avoided by any customizing setting or any user exit.
This is correct system behavior to protect the other transactions update the material master.
As advised in the note 70865 :
It is possible to activate the late block via transaction OMJI. As a result of this change, several users will be able to carry out good movements to the same material and plant simultaneously, however there is a risk to cause the data inconsistency and performance problems.
Maybe you are looking for
-
Color and contrast different from Premiere Pro 2 DVD creation
I found after creating DVD's via Premiere Pro 2 are more saturated and more neutral in color vs encoding through Encore. I made a si8de by side test, converted them back to AVI and grabbed the same still of each. The Encore still was lower in contras
-
Multiple AppleTV's- syncing and streaming and combining....
Multifold question... I have 11 APple TV's running at our ...etate. Don't aski- But it is actually a VERY cost effective way for guest rooms and other functions to have access to TV/Movies Music etc. What i do NOW is i have one machine on the netwrok
-
Can someone help with how to get image
from a database into a display page using Dreamweaver? I have a page with a recordset and a database with text and images. The image field only has a link to the folder and image as in images/image1.jpg including size. The thumbnail I want to display
-
Webattendant and CUCM 7.X
Hello all, I was wondering if you know anything about web attendant with CUCM 7.x is this still supported ? or what replaced web attendant on version 7 thank you
-
Genre - HOW to edit or delete?
Greetings, I'm wondering if there's a way to edit or delete the genre list of iTunes? Could anyone kindly answer? Your expertise is very much appreciated.