Call transaction mb51 : performance issue
Hi,
I have written one report where I am calling Tcode mb51 and getting the records from it and displaying those in my report. Is there any way to have better performance in my report. Since its taking too much time if I select all materials for specific plant.?
rgds,
Madhuri
Madhuri,
Just run this query to get all the required fields out as that of the MB51 List....ok
types : begin of stype_fields,
fieldname type name_feld,
end of stype_fields.
types : stab_fields type standard table
of stype_fields
with default key.
data : l_t_fields type stab_fields.
append 'MSEG~ANLN1' to l_t_fields.
append 'MSEG~ANLN2' to l_t_fields.
append 'MSEG~APLZL' to l_t_fields.
append 'MSEG~AUFNR' to l_t_fields.
append 'MSEG~AUFPL' to l_t_fields.
append 'MKPF~BKTXT' to l_t_fields.
append 'MKPF~BLDAT' to l_t_fields.
append 'MSEG~BPMNG' to l_t_fields.
append 'MSEG~BPRME' to l_t_fields.
append 'MSEG~BSTME' to l_t_fields.
append 'MSEG~BSTMG' to l_t_fields.
append 'MKPF~BUDAT' to l_t_fields.
append 'MSEG~BUKRS' to l_t_fields.
append 'MSEG~BWART' to l_t_fields.
append 'MSEG~BWTAR' to l_t_fields.
append 'MSEG~CHARG' to l_t_fields.
append 'MKPF~CPUDT' to l_t_fields.
append 'MKPF~CPUTM' to l_t_fields.
append 'MSEG~DMBTR' to l_t_fields.
append 'MSEG~EBELN' to l_t_fields.
append 'MSEG~EBELP' to l_t_fields.
append 'MSEG~ERFME' to l_t_fields.
append 'MSEG~ERFMG' to l_t_fields.
append 'MSEG~EXBWR' to l_t_fields.
append 'MSEG~EXVKW' to l_t_fields.
append 'MSEG~GRUND' to l_t_fields.
append 'MSEG~KDAUF' to l_t_fields.
append 'MSEG~KDEIN' to l_t_fields.
append 'MSEG~KDPOS' to l_t_fields.
append 'MSEG~KOSTL' to l_t_fields.
append 'MSEG~KUNNR' to l_t_fields.
append 'MSEG~KZBEW' to l_t_fields.
append 'MSEG~KZVBR' to l_t_fields.
append 'MSEG~KZZUG' to l_t_fields.
append 'MSEG~LGORT' to l_t_fields.
append 'MSEG~LIFNR' to l_t_fields.
append 'MSEG~MATNR' to l_t_fields.
append 'MKPF~MBLNR' to l_t_fields.
append 'MSEG~MEINS' to l_t_fields.
append 'MSEG~MENGE' to l_t_fields.
append 'MKPF~MJAHR' to l_t_fields.
append 'MSEG~NPLNR' to l_t_fields.
append 'MSEG~PS_PSP_PNR' to l_t_fields.
append 'MSEG~RSNUM' to l_t_fields.
append 'MSEG~RSPOS' to l_t_fields.
append 'MSEG~SHKZG' to l_t_fields.
append 'MSEG~SOBKZ' to l_t_fields.
append 'MKPF~USNAM' to l_t_fields.
append 'MKPF~VGART' to l_t_fields.
append 'MSEG~VKWRT' to l_t_fields.
append 'MSEG~WAERS' to l_t_fields.
append 'MSEG~WERKS' to l_t_fields.
append 'MKPF~XABLN' to l_t_fields.
append 'MSEG~XAUTO' to l_t_fields.
append 'MKPF~XBLNR' to l_t_fields.
append 'MSEG~ZEILE' to l_t_fields.
select (l_t_fields)
into corresponding fields of table itab
from mkpf inner join mseg
on mkpfmandt = msegmandt
and mkpfmblnr = msegmblnr
and mkpfmjahr = msegmjahr
WHERE MKPF~BUDAT in BUDAT
and MSEG~BWART in BWART
and MSEG~CHARG in CHARG
and MSEG~KUNNR in KUNNR
and MSEG~LGORT in LGORT
and MSEG~LIFNR in LIFNR
and MSEG~MATNR in MATNR
and MSEG~SOBKZ in SOBKZ
and MKPF~USNAM in USNAM
and MKPF~VGART in VGART
and MSEG~WERKS in WERKS
and MKPF~XBLNR in XBLNR.
If you run this above query in your report instead on calling MB51 in ur report, you will get the list as that of std. MB51, check this out.
Regards,
Chandan
Similar Messages
-
Returning multiple values from a called tabular form(performance issue)
I hope someone can help with this.
I have a form that calls another form to display a multiple column tabular list of values(needs to allow for user sorting so could not use a LOV).
The user selects one or more records from the list by using check boxes. In order to detect the records selected I loop through the block looking for boxes checked off and return those records to the calling form via a PL/SQL table.
The form displaying the tabular list loads quickly(about 5000 records in the base table). However when I select one or more values from the table and return back to the calling form, it takes a while(about 3-4 minutes) to return to the called form with the selected values.
I guess it is going through the block(all 5000 records) looking for boxes checked off and that is what is causing the noticeable pause.
Is this normal given the data volumes I have or are there any other perhaps better techniques or tricks I could use to improve performance. I am using Forms6i.
Sorry for being so long-winded and thanks in advance for any help.Try writing to your PL/SQL table when the user selects (or remove when deselect) by usuing a when-checkbox-changed trigger. This will eliminate the need for you top loop through a block with 5000 records and should improve your performance.
I am not aware of any performance issues with PL/SQL tables in forms, but if you still have slow performance try using a shared record-group instead. I have used these in the past for exactly the same thing and had no performance problems.
Hope this helps,
Candace Stover
Forms Product Management -
How to clear all selection screen parameters before calling transaction?
Hi Experts
I have a ABAP report that displays data using ALV.
When I double click a cell it calls transaction MB51. Before calling the transaction I need to set some parameters of the selection screen of the transaction.
My code is like below:
<UL>
<LI>FREE MEMORY ID 'MAT'. <I>"material</I>
<LI> FREE MEMORY ID 'WRK'. <I>"plant</I>
<LI> FREE MEMORY ID 'CHA'. <I>"batch</I>
<LI><I>* Get the selected ALV row data</I>
<LI>READ TABLE i_recon INDEX p_selfield-tabindex INTO x_recon.
<LI><I>* If link MB51 is clicked then open tcode MB51</I>
<LI> IF p_selfield-sel_tab_field+8(4) = 'MB51'.
<LI><I>* Pass material, plant to the corresponding tcode</I>
<LI> SET PARAMETER ID 'MAT' FIELD x_recon-matnr.
<LI> SET PARAMETER ID 'WRK' FIELD p_plant.
<LI> CALL TRANSACTION 'MB51' AND SKIP FIRST SCREEN.
</UL>
The problem is:
<UL> <LI> 1. First, I run the given transaction before running the report in a separate session with some set of values in the selection screen. For example: plant = AB01, Material = 990001 and Batch = 10001.</LI>
</UL>
<UL>
<LI> 2. Then in another session I run my report. In the report ALV I have selected a record where plant = AB01, Material = 990001 but Batch is blank. But it opens the transaction with plant = AB01, Material = 990001 and Batch = 10001.
Even though in my ALV record the batch is blank yet it uses the batch value from the memory. That is, the batch value that was given in the transaction earlier. Why it is not getting cleared? I have also used FREE MEMORY ID code in the beginning. But still it is not clearing the values in the memory.
</UL>
<UL>
<LI>What shall I do to clear all the selection screen parameters before calling the transaction?</LI>
</UL>
<UL>
<LI>
Thanks
Gopal
</LI>
</UL>
Edited by: gopalkrishna baliga on Aug 11, 2010 10:29 AMIts because sap memory is globally shared.
Do it like this.
READ TABLE i_recon INDEX p_selfield-tabindex INTO x_recon.
IF p_selfield-sel_tab_field+8(4) = 'MB51'.
perform bdc_dynpro using 'RM07DOCS' '1000'.
perform bdc_field using 'BDC_OKCODE' '=ONLI'.
perform bdc_field using 'MATNR-LOW' x_recon-matnr.
perform bdc_field using 'WERKS-LOW' p_plant.
perform bdc_field using 'CHARG-LOW' p_batch.
perform bdc_field using 'DATABASE' 'X'.
call transaction 'MB51' with i_bdcdata mode 'E'.
endif.
form bdc_dynpro using program dynpro.
clear la_bdcdata.
la_bdcdata-program = program.
la_bdcdata-dynpro = dynpro.
la_bdcdata-dynbegin = 'X'.
append la_bdcdata to i_bdcdata.
endform.
form bdc_field using fnam fval.
clear la_bdcdata.
la_bdcdata-fnam = fnam.
la_bdcdata-fval = fval.
append la_bdcdata to i_bdcdata.
endform. -
Call Transaction (BAPI) in ABAP Web Dynpro
I'm developing a ABAP WD application which make use of a RFC BAPI. The BAPI will then use call transaction to perform certain operation on R3.
<b>CALL TRANSACTION 'IQS12' USING bdcdata MODE 'P'
MESSAGES INTO itab.</b>
It works fine when I tested it using TCode SE37. When the call transaction fails all error message is trapped inside the internal table.
However when I run it using ABAP WD, it does not return the internal table but an error page on the portal. The error message was displayed on the portal page. I would like to handle the error message by my own. Is there any way doing this?
Appreciate if anyone can sort this out for me. Thanks in advance.
RickyHi,
It's okie now. I have found out that this is a known issue and there's a SAP notes (935725) for that.
According to the notes, call transaction with message type E will fail if the BAPI is executed through http.
Thanks for replying. Appreciate that.
Ricky -
Initial Load Error - No generation performed. Call transaction GN_START
Hi Folks,
We are doing middleware configuration for data migration between R3->CRM.Have followed "Best Practies" configuration Guide.
System Using; CRM 2007 and ECC6.0
Issue
While performing initial load, system is throwing the error as
001- No generation performed. Call transaction GN_START
002-Due to system errors the Load is prohibited (check transaction MW_CHECK)!
After calling the transaction GN_START system asks for job scheduling,whereas I have already scheduled it.
A job is already scheduled periodically.
Clicking on 'Continue' will create another job
that starts immediately.
After checking(MW_CHECK),message is displayed as
No generation performed. Call transaction GN_START.
If anybody has encountered the similar issue and has resolved it,their guidence will be greatly appriciated.
Thanks in Advance
VEERA BVeera,
We also faced the same problem when we have done the upgrade from CRM 4.0 to CRM 2007.
For that you go to SMWP where you can see all the errors related to Middleware with the error message so try to remove the error,
Also pls check in RZ20 and activate the middleware trace tree.
Regards
Vinod -
2 issues with call transaction to LS24
Hello All,
There are 2 issues with call transaction to LS24.
<b>1) It doesn't take batch value and displays stock for all batches.
2) When you go back, it doesn't go back to the calling program.</b>
Any thoughts ?
<u>Here is my code:</u>
PARAMETERS: p_lgnum TYPE lgnum,
p_matnr TYPE matnr,
p_werks TYPE werks_d,
p_lgort TYPE lgort_d,
p_charg TYPE charg_d.
START-OF-SELECTION.
END-OF-SELECTION.
PERFORM display_stock_per_batch.
*& Form DISPLAY_STOCK_PER_BATCH
FORM display_stock_per_batch .
SET PARAMETER ID 'LGN' FIELD p_lgnum.
SET PARAMETER ID 'MAT' FIELD p_matnr.
SET PARAMETER ID 'WRK' FIELD p_werks.
SET PARAMETER ID 'LAG' FIELD p_lgort.
SET PARAMETER ID 'CHA' FIELD p_charg.
CALL TRANSACTION 'LS24' AND SKIP FIRST SCREEN.
ENDFORM. " DISPLAY_STOCK_PER_BATCHhello
use this code
perform bdc_dynpro using 'SAPML01S' '0209'.
perform bdc_field using 'BDC_CURSOR'
'RL01S-CHARG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RL01S-LGNUM'
p_lgnum.
perform bdc_field using 'RL01S-MATNR'
p_matnr.
perform bdc_field using 'RL01S-WERKS'
p_werks.
perform bdc_field using 'RL01S-LGORT'
p_lgort.
perform bdc_field using 'RL01S-BESTQ'
perform bdc_field using 'RL01S-SOBKZ'
perform bdc_field using 'RL01S-CHARG'
p_charg.
perform bdc_dynpro using 'SAPML01S' '0209'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RL01S-LGNUM'.
perform bdc_transaction using 'LS24'.
may be it will help u -
Improve performance of bdc call transaction
Hi all,
I am performing a batch update of tax codes in a BDC call transaction program. This particular code takes about 3 minutes to process 2,600 entries. I have tried almost everything but is there a way to improve / make it run faster?
I have a feeling it has something to do with the form "do_transaction", but I really don't know anymore.
Thank you in advance.
Attached is the code:
*& Report ZFI_CHANGEWTAX
*& Description: Change Doctors Withholding Tax Code (EI)
*& Using BDC Call Transaction Method
*& Created by : mpena
*& Created on : 07/15/2009
*& Modification History
*& Seq Changed on
*& Changed by
*& 001 07/15/2009
*& mpena Initial Development
*& 002 07/20/2009
*& mpena Logic modification
*& Testing
*& 003 07/20/2009
*& mpena Call function parameter modification
*& 004 07/22/2009
*& mpena Report generation
*& Performance improvements
REPORT zfi_changewtax
NO STANDARD PAGE HEADING
MESSAGE-ID zfk02msg.
TYPES: BEGIN OF t_tax,
lifnr LIKE lfa1-lifnr, "account number
wt_withcd LIKE lfbw-wt_withcd, "current tax code
wt_withcd_new LIKE lfbw-wt_withcd, "new tax code (left blank at default)
END OF t_tax.
DATA: wa_tax TYPE t_tax,
i_tax TYPE STANDARD TABLE OF t_tax,
it_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE,
lin TYPE i.
-------Selection Screen Design -
SELECTION-SCREEN:
SKIP 1,
BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.
PARAMETERS: p_ktokk LIKE lfa1-ktokk DEFAULT 'DOCT' OBLIGATORY,
p_bukrs LIKE lfbw-bukrs DEFAULT 'SL' OBLIGATORY,
p_wtax LIKE lfbw-wt_withcd OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
INITIALIZATION.
aaa = 'Change Tax Code to specified value'.
TOP-OF-PAGE.
WRITE:
/ 'Update of taxes successful on:', sy-datum, sy-uzeit,
/ 'Generated by:', sy-uname,
/ 'Company Code:', p_bukrs, 'Vendor Group:', p_ktokk.
SKIP 1.
ULINE.
WRITE:
/ 'Account Number', 20 'Old Withholding Tax Code', 50 'New Withholding Tax Code'.
ULINE.
START-OF-SELECTION.
SELECT lfa1~lifnr
lfbw~wt_withcd
INTO TABLE i_tax
FROM lfa1 INNER JOIN lfbw
ON lfa1lifnr = lfbwlifnr
WHERE lfbw~bukrs EQ p_bukrs
AND lfbw~witht EQ 'EI'.
IF sy-subrc EQ 0.
DESCRIBE TABLE i_tax LINES lin.
ENDIF.
Update i_tax with new value of wt_witchd, then display for comparison.
After write: if old and new tax are the same, tax update was not successful for that specific account
or inputted tax type is the same as the old one.
LOOP AT i_tax INTO wa_tax.
wa_tax-wt_withcd_new = p_wtax.
MODIFY i_tax FROM wa_tax.
WRITE:
/ wa_tax-lifnr,
20 wa_tax-wt_withcd,
50 wa_tax-wt_withcd_new.
CLEAR wa_tax.
ENDLOOP.
PERFORM do_transaction USING p_bukrs p_wtax.
*& Form do_transaction
Extracted from ZFKO2 recording accessible in shdb.
FORM do_transaction USING v_bukrs v_wtax.
MESSAGE i000 WITH lin.
LOOP AT i_tax INTO wa_tax.
REFRESH it_bdcdata.
PERFORM bdc_dynpro USING 'SAPMF02K' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-D0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
wa_tax-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
v_bukrs.
PERFORM bdc_field USING 'RF02K-D0610'
'X'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBW-WT_WITHCD(01)'.
PERFORM bdc_field USING 'LFB1-QLAND'
'PH'.
PERFORM bdc_field USING 'LFBW-WT_WITHCD(01)'
v_wtax.
PERFORM bdc_dynpro USING 'SAPMF02K' '0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-QLAND'.
PERFORM bdc_field USING 'LFB1-QLAND'
'PH'.
CALL TRANSACTION 'FK02' USING it_bdcdata
MODE 'N'
UPDATE 'A'.
ENDLOOP.
MESSAGE i001.
ENDFORM. "do_transaction
form for bdc dynpro
FORM bdc_dynpro USING program
dynpro.
it_bdcdata-program = program.
it_bdcdata-dynpro = dynpro.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
CLEAR it_bdcdata.
ENDFORM. "bdc_dynpro
form for bdc field
FORM bdc_field USING fnam
fval.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
APPEND it_bdcdata.
CLEAR it_bdcdata.
ENDFORM. "bdc_fieldYou might want to try using a BAPI instead of a call transaction. I believe "BAPI_VENDOR_SAVECHARVALREPLICA" will work for you. Calling a BAPI is just like calling a function module. After you call the bapi remember to commit it with the function module "BAPI_TRANSACTION_COMMIT".
-
Issue in background job for call transaction
Dear All,
I am facing a strange issue with call transaction. I need to add some Purchase requisitons in the APO using Call transactionmethod. It is working fine In All screen mode and No Screen Mode. But when I schedule the program in BAckground processing it is not wokring fine. It is not creating any Purchase requisitioins. When I debug the background Job it is creating Purchase requisitions.
Please find the code below
DATA: l_wa_params TYPE ctu_params.
l_wa_params-dismode = l_c_mode.
l_wa_params-updmode = 'A'.
l_wa_params-defsize = 'X'.
l_wa_params-racommit = 'X'.
CALL TRANSACTION '/SAPAPO/RRP3' USING fp_i_bdcdata OPTIONS FROM l_wa_params
MESSAGES INTO l_i_bdcmsgcoll.Hi,
I have exactly the same problem with transaction /SAPAPO/RRP5.
Thanks in advance for your help,
Yannick CAREL -
Issue with using call transaction CJ9F and F.M BAPI_PROJECT_MAINTAIN
Hello All,
In my custom program for a given project in selection screen we are getting all the related data as shown in CJ20N, in this screen I first created the WBS element and during save we used F.M BAPI_PROJECT_MAINTAIN to update the data, and next called transaction CJ9F to update BLC, after this we are comming back to selection screen 1000.
Now from selection screen if i enter again into that project details screen and try to create a new WBS it is showing below information msg.
Changing the contents of the field is not permitted
Message no. CJ727
If i remove the call transaction CJ9F part during save i am not getting the above error msg.
I think i am getting this error when we call the function module BAPI_PROJECT_MAINTAIN twice in the program.
Please help me to resolve this issue, as this msg is not allowing to save or create anything.
But i found that if i come totally out of my custom transaction and enter once again into that Z transaction it is working fine with out that message
Please help me to resolve this issue.Hi,
Not sure, but if it is possible, complete your project update using the custom transaction and do the CJ9F afterwards seperately.
Regards
Sreekanth -
Performance issue: CALL FUNCTION inside a Loop.
Hi Friends
I have a Performance Issue. That is, inside a loop...endloop a CALL FUNCTION has been used which gets data from another database table. Finally it's appended into another internal table. Please see this :
LOOP AT i_mdkp.
REFRESH lt_mdtbx.
CLEAR lt_mdtbx.
CALL FUNCTION 'READ_MRP_LIST'
EXPORTING
idtnum = i_mdkp-dtnum
icflag = 'X'
tables
mdtbx = lt_mdtbx
APPEND LINES OF lt_mdtbx TO i_mdtb.
ENDLOOP.
It happens for each record available in i_mdkp. Suppose, i_mdkp have around 50000 records, it needs to call the function module till that much time.
So, I want to split it. Can I?
Please give me your valueable suggestions.
Regards
SenthilIf internal table i_mdkp has 50,000 records it does not mean that you need to run 50,000 iterations. You just need dtnum from internal table i_mdkp so you number of iterations should be eqaul to the unique number of dtnum in the internal table. Sort the internal table by dtnum and delete adjacent duplicates from the internal table comparing dtnum before looping. Look at the code below.
DATA i_mdkp_tmp LIKE TABLE OF i_mdkp.
IF NOT i_mdkp[] IS INITIAL.
i_mdkp_tmp[] = i_mdkp[].
SORT i_mdkp BY dtnum.
DELETE ADJACENT DUPLICATES FROM i_mdkp COMPARING dtnum.
REFRESH i_mdtb.
LOOP AT i_mdkp.
CALL FUNCTION 'READ_MRP_LIST'
EXPORTING
idtnum = i_mdkp-dtnum
icflag = 'X'
TABLES
mdtbx = lt_mdtbx.
APPEND LINES OF lt_mdtbx TO i_mdtb.
REFRESH lt_mdtbx.
ENDLOOP.
i_mdkp[] = i_mdkp_tmp[]
ENDIF. -
Performance issue due to RFC calls. (R/3 to R/3 system)
Hi,
My application face serious performance problem because of RFC calls (R/3 system to R/3 system).
1)is there any transaction code for doing performance analysis on RFC calls in R/3 system?
2)How far large volume of Data Transfer (mainly due to internal tables) in a RFC call affects the performance? is there any limit for data transfer size at a time in a RFC call? if so how to calculate for best performance?
Thanks and regards,
Prakash.Hi Andreas,
Suppose an RFC enabled Fm having an internal table as importing parameter.During execution of this Fm with 4000 enteries for the internal table results in performance degrading.is there any way to improve the performance?.
Thanks and regards,
Prakash. -
Hi All,
I need some assistance for my below query...
If there are already existing some product/quote lines on the quote and then we try to add another new product/quote line to this quote , then it is taking more time to add the product. As per my understanding it is calling the Pricing engine for the existing line as well. How can we avoid the pricing engine call for the existing lines.
There are some parameters which we are setting as mentioned below :
l_control_rec.header_pricing_event := 'BATCH' -- What does this mean when we set to batch
l_control_rec.price_mode := 'ENTIRE_QUOTE'; -- (possible values could be CHANGE_LINES , QUOTE_LINE)
l_header_rec.pricing_status_indicator := 'C';
l_control_rec.calculate_freight_charge_flag := 'Y';
l_control_rec.calculate_tax_flag := 'Y';
l_header_rec.tax_status_indicator := 'C';
Question :Could someone please help us with this whether is there any way with these parameters could be altered or changed to some other value ( like for PRICE_MODE we see this parameter could have some other values like : CHANGE_LINES , QUOTE_LINE etc other than ENTIRE_QUOTE).
means lets say we do the Pricing Engine call only for the Newly Added quote line but not do it for the Entire Quote again and again..
Now the other question here could be how do we finally synch the line level price values for all the quote lines upto the Quote header level in form of Totals (TOTAL_LIST_PRICE,TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE, TOTAL_QUOTE_PRICE in aso_quote_headers_all table) ??
Also is there a way that we don't do the Freight Charge calculation and Tax calculation (means we skip this completely) while adding products to the quote but do it at a later point when doing the Submit to Order functionality.
Could someone please help with these pricing related parameters and modes to be used in order to get around this performance issue
Thanks
MithunDear Expert,
Activate your Controlling area as usual and Cost Centers and Profit Center , You can assign an internal order for the particular product line for what you are seeing and can collect the costs of that particular product line exclusively.
Regards,
Shankar K B -
Performance issue on calling the API queryFolders to retrive the subfolders
Hi, We are using 10.3.0 collaboration server.When we make an API call to get the folders under a parent folder, the API is taking more than 2 minutes to return. When we did research, found out that the query collaboration server is executing taking time to return the results from the collaboration database. I am copying the query below. The performance issue coming when the number of sub folders is more than 1400. I did few experiments on this query. When I remove the sort clause, the query is running too fast. If i keep the sort clause and remove the sub query in select clause , query is running fast. But the combination is taking too much time i.e. 80 seconds. Please share your ideas on how to increase the performance of this API call. We are planning to upgrade to another version of collab but not sure whether it would fix the problem. Highly appreciated your valuable suggestions. Let me know if you need more information.
SELECT OBJ.OBJECTID, OBJ.TID, OBJ.CREATED, OBJ.MODIFIED, OBJ.NAME,
OBJ.DESCRIPTION, OBJ.OWNERID, OBJ.PROJECTID, OBJ.PARENTID,
OBJ.OWNERNAME, OBJ.PARENTPATH, OBJ.PARENTIDPATH, OBJ.DEPTH,
OBJ.MODERATED, OBJ.CRAWLERACCESSIBLE,(select DISTINCT(1) FROM
CSFOLDERS where(exists(select * from csFolders subFolders where
subFolders.parentID=OBJ.objectid))) as HASVISSUBFOLD FROM CSFOLDERS
OBJ WHERE EXISTS (SELECT * FROM CSROLEMEMBERSHIP RM,CSFOLDERSECURITY
OS,PLUMTREE.PTVGROUPMEMBERSHIP GRP WHERE OS.ACCESSLEVEL > 0 AND
GRP.USERID=:v0 AND GRP.GROUPID = RM.PTGROUPID AND RM.OBJECTID =
OS.ROLEID AND OS.OBJECTID = OBJ.OBJECTID) AND obj.TID = 3 AND
(obj.parentID=:v1) ORDER BY LOWER(obj.NAME) ASChi reddy,
before applying for all entries on mseg
1.sort t_mard by matnr werks and lgort
2. if not t_mard is initial.
select mblnr mjahr etc...
endif.
these are the main precautions u need to look into before you are using second select.
entires from bseg, mseg will consume lot of time.
so the best if only the fields u r showing are required then take it from the respective table like
ebeln ebelp from ekpo
like that .
so the alternative will be this but this will be the best option if u know only these fields are to be selected .
hope u r getting my point.
yeah swagatika also said correctly that u can go for indexing so the Retrieval is faster.
one more option is construct a view/structure and proceed .
regards,
TVK.
Message was edited by: Vikky -
Performance issue: Calling a BAPI PO create in test mode to get error msgs
Hi,
We have an ALV report in which we display purchase orders that got created in SAP, but either got blocked due to not meeting PO Release strategy tolerances or have failed output messages. we are displaying the failed messages even.
We are looping the internal table of eban(PR) & calling bapi po create in test mode to get failed messages.
Now we are facing performance issue in production. What can be the alternate efficient way to get the error msgs with efficiency
Regards,
Ayub H.
Moderator message: duplicate post (different ID, same company...), see below:
Performance issue calling bapi po create in test mode to get error messages
Edited by: Thomas Zloch on Mar 9, 2012Hi Suvarna,
so you need to reduce the number of PO-simulations.
- Likely you checked already, that all EBAN-entries should already be converted into POs. If there would be a large number of "new" EBAN-entries, they don't need to be simulated.
- If it's a temporary problem: give aid to correct the problems (maintain prices or whatever the error-reasons are) Then the amount of not-converted purchase requisitions (PR) should drop, too
- If it's likely, that your volume of open PR will stay high: create a Z-Table with key of EBAN and a counter, simulate (once a day) PO conversions and store the results in the Z-table. In your report you can use the results... if they are "new enough". From time to time new simulations should be done, missing master data might be available.
Maybe users should be allowed to start this 2nd report manually (in background), too -> then they can update the messages after some data corrections themself, without waiting for the result (just check later in online report and do something different in between).
And you might need to explain, PO simulation takes as long as PO creation... there is no easy or fast way around this.
Best regards,
Christian -
Performance issue calling bapi po create in test mode to get error messages
Hi,
We have a report which displays in alv the purchase orders that got created in SAP, but either got blocked due to not meeting PO Release Strategy tolerances or have failed output messages .We are displaying the failed messages too.
We are looping the internal table of eban(purchase requisition) and calling bapi po create in test mode to get failed messages.
Now we are facing performance issue in production.What can be the other effecient way to get the error messages without effecting performance.
Regards,
SuvarnaHi Suvarna,
so you need to reduce the number of PO-simulations.
- Likely you checked already, that all EBAN-entries should already be converted into POs. If there would be a large number of "new" EBAN-entries, they don't need to be simulated.
- If it's a temporary problem: give aid to correct the problems (maintain prices or whatever the error-reasons are) Then the amount of not-converted purchase requisitions (PR) should drop, too
- If it's likely, that your volume of open PR will stay high: create a Z-Table with key of EBAN and a counter, simulate (once a day) PO conversions and store the results in the Z-table. In your report you can use the results... if they are "new enough". From time to time new simulations should be done, missing master data might be available.
Maybe users should be allowed to start this 2nd report manually (in background), too -> then they can update the messages after some data corrections themself, without waiting for the result (just check later in online report and do something different in between).
And you might need to explain, PO simulation takes as long as PO creation... there is no easy or fast way around this.
Best regards,
Christian
Maybe you are looking for
-
Error while creating webservice destination in PI 7.1
Hi, I have a Webdynpro application developed with NWDS 7.1 that is consuming web services from PI 7.1 server. I have exposed RFCu2019s from PI 7.1 as web service using transaction se37 and consumed them in my Webdynpro application. I have to deploy t
-
Adding some new fields for display in SAP Query
I need to add some fields for display in SAP query 01 of infoset /SAPQUERY/AM01. So I have changed the infoset by checking the additional fields which is already in LDB. Then I created the query by copying the 01 of infoset /SAPQUERY/AM01 to Zuser
-
Can't uninstall Itunes so I can reinstall
Here's the deal. I recently took my PC apart to trouble shoot a problem. When I put everything back together my 3rd HD that stores all my programs had it's drive letter changed from D: to E:. Now my itunes was on this drive. When I tried to start it
-
My instagram keeps deleting stuff!!
instagram keeps deleting my photos, comments, and captions. It is also unfollowing people! I know for a fact it can't be the app since I've deleted it, and I also tried making a new account but then it did the same thing! Please help!
-
Mail - How do I edit contacts?
Hi I am not asking how I launch the address bar from the dock. I would like to know how, in mail and looking at my inbox, how I can edit a contact's details? I know this is done in that awfull 'address book' app but how, from mail, do I launch addres