IPC complex routine
Hi everybody,
I want to refer to another pricing conditions in my IPC routine (OvervriteConditionValue method)
I have three pricing conditions (320,330,340) and I want to calculate a new one referred to these three (the addition of these).
My code is the following:
case 660:
for(int step=320;step<=340;step+10)
int counter = 0;
BigDecimal ZPar=PricingConstants.ZERO;
IPricingCondition condicion=((IPricingItemUserExit)prItem).findPricingCondition(step,counter);
BigDecimal Res=prCondition.getConditionRate().getValue();
ZPar= ZPar.add(Res);
return ZPar;
I want return the addition of 320330340 pricing conditions.
¿Is this the way? It seems not to work fine.
Thank you very much friends.
Message was edited by: Javier Merino Vivar
I have a similar problem. Were you able to solve it? if yes can you share the solution?
Similar Messages
-
IPC Pricing routine for Product Family Margin in Quotation is not working
Hi,
I am working on the IPC Pricing Routine to calculate Item's Product Family Margin in the Quotation.
Process followed:
Step 1: Created a Group condition ZPFM for Product Family Margin and assigned to the pricing procedure.
Step 2: Created a Value Routine to determine ZPFM's Condition Rate and Condition Value.
Logic:
1. Collect (Sum Of) the Cost (ZSVC) and the Subtotal 3 of the items which are in same Material Group.
2. Assign the ZPFM Condition Value = Sum of Subtotal 3 - Cost.
Issue: The condition value for ZPFM is calculating correct for all line items except the last item. I am getting some junk value always to the last item. If I delete the last time, again next last item is giving wrong value. The calculation value in the routine debugging log (SM53) is showing correct value. However, assigning the wrong value. No other routines have been assigned to this condition type in the pricing procedure.
Routine Code:
package stanley.pricing.userexits.val;
import java.math.BigDecimal;
import com.sap.spe.pricing.customizing.PricingCustomizingConstants;
import com.sap.spe.pricing.transactiondata.PricingTransactiondataConstants;
import com.sap.spe.pricing.transactiondata.userexit.IPricingConditionUserExit;
import com.sap.spe.pricing.transactiondata.userexit.IPricingItemUserExit;
import com.sap.spe.base.logging.UserexitLogger;
import com.sap.spe.pricing.transactiondata.userexit.ValueFormulaAdapter;
//import com.sap.spe.pricing.transactiondata.userexit.IPricingCondition;
public class Z_CondValueRoutine730 extends ValueFormulaAdapter{
private static UserexitLogger uelogger =
new UserexitLogger(Z_CondValueRoutine730.class);
public BigDecimal overwriteConditionValue(IPricingItemUserExit pricingItem,
IPricingConditionUserExit pricingCondition) {
// Variable Declarations.
BigDecimal conditionValueZCVC=PricingTransactiondataConstants.ZERO;
BigDecimal conditionValueZCVCAccrual=PricingTransactiondataConstants.ZERO;
BigDecimal subTotal3=PricingTransactiondataConstants.ZERO;
BigDecimal subTotal3Accrual=PricingTransactiondataConstants.ZERO;
if(pricingCondition.getConditionTypeName().equalsIgnoreCase("ZPFM")){
IPricingItemUserExit[] prItems;
prItems = pricingItem.getUserExitDocument().getUserExitItems();
String materialGroup = pricingItem.getAttributeValue("MATL_GRP");
uelogger.writeLogDebug(" Material Group :"+materialGroup);
for (int i=0;i<prItems.length;i++){
String materialGroup1 = prItems[i].getAttributeValue("MATL_GRP");
if (materialGroup1.equalsIgnoreCase(materialGroup)){
subTotal3 = prItems[i].getSubtotal(PricingCustomizingConstants.ConditionSubtotal.SUBTOTAL_3).getValue();
subTotal3Accrual = subTotal3Accrual.add(subTotal3);
IPricingConditionUserExit[] conditionsForCumulation = prItems[i].getUserExitConditions();
for (int j = 0; j < conditionsForCumulation.length; j++) {
if(conditionsForCumulation[j].getConditionTypeName()==null) {
continue;
else if ( conditionsForCumulation[j].getConditionTypeName().equalsIgnoreCase("ZCVC")){
conditionValueZCVC = conditionsForCumulation[j].getConditionValue().getValue();
conditionValueZCVCAccrual = conditionValueZCVCAccrual.add(conditionValueZCVC);
BigDecimal conditionValueZPFM=PricingTransactiondataConstants.ZERO;
conditionValueZPFM = subTotal3Accrual.subtract(conditionValueZCVCAccrual);
BigDecimal conditionRateZPFM=PricingTransactiondataConstants.ZERO;
conditionRateZPFM = conditionValueZPFM.multiply(new BigDecimal ("100"));
conditionRateZPFM = conditionRateZPFM.divide(subTotal3Accrual,7,BigDecimal.ROUND_FLOOR);
uelogger.writeLogDebug(subTotal3Accrual+"-"+conditionValueZCVCAccrual+" = "+conditionValueZPFM);
uelogger.writeLogDebug("Condition Rate :"+conditionRateZPFM);
pricingCondition.setConditionRateValue(conditionRateZPFM.setScale(2,BigDecimal.ROUND_HALF_UP));
pricingCondition.setConditionValue(conditionValueZPFM.setScale(2,BigDecimal.ROUND_HALF_UP));
return null;
return null;Hi,
I think you should change xkwert variable instead of komv-kwert.
Standard routines does the same.
Aslo check in SPRO settings that routine is attached and
getting triggered by putting break-point.
Regards,
Vishal -
Hi All,
I am a java developer new to SAP and IPC CRM pricing, the below subtotal routine is already implemented in ECC,we need to implement the same in CRM.
FORM FRM_KONDI_WERT_906.
*{ INSERT SE1K900344 1
if xkomv-kinak na 'AKLMXZ'.
komp-ZZWI1 = xkwert.
alternative solution if formula is used several times:
add xkwert to komp-ZZWI1.
endif.
*} INSERT
ENDFORM.
Please help on this.
Regards
SabarinathanI am a java developer new to SAP and IPC CRM pricing
Writing IPC pricing exits requires not just Java. It requires basic understanding of SD pricing and CRM / IPC pricing.
IF
you have
Java knowledge AND
SD Pricing knowledge AND
CRM / IPC Pricing knowledge
THEN
DO
IPC exit programming happily.
ELSEIF
you have time
_Please_ get some basic knowledge in the above items.
ELSE
Engage someone who knows the stuff.
ENDIF -
Hi all,
I have created new pricing user routines. I am trying to create the JAVA code by myself, so can anyone helps me letting me know how the following code would be in Java?:
Data: va_value type type komp-wavwr,
wa-xkomv like xkomv.
if sy-subrc = 0.
clear wa_xkomv.
read table xkomv into wa_xkomv with key KSCHL = 'ZPCO'
if wa_xkomv-KBETR = 0.
clear wa_xkomv.
read table xkomv into wa_xkomv with key KSCHL = 'VPRS'.
wa_value= wa_xkomv-kwert.
else.
wa_value = wa_xkomv-kwert.
endif.
endif.
xkwert= komp-kzwi3-va-va_import.
Should I use jave methods to get that information for the tables or a connection to the database and a select?
Thanks,Hi Max:
Thanks very much for your quick response.
Following your instrucctions, we understand that we can use getConditionTypeName()to check as follows:
prCondition.getConditionTypeName() == "ZPCO"
But we I'm not sure how I could check the followinf sentence: if wa_xkomv-KBETR = 0.
Thanks in advance.
Abel -
CRM ISA b2b Vs ECC ISA b2b - IPC and BADI
Experts,
1. In CRM ISA b2b - We use CRM_COND_COM_BADI to implement the userexit logics and to populate custom attributes. What is the equivalent BADI or procedure in ERP scenario assuming I am using IPC in both the scenarios.
2. in CRM ISA b2b scenario, we have item and header BADI's like crm_isa_basket_head...What is thew equivalent BADI/Procedure in ERP ISA b2b scenario.
Thanks,
BalaHello Bala,
Regarding your first question, AFAIK, the userexit logic of pricing should be developed in IPC pricing routines and uploaded to the SAP system with appropriate userexit assignment.
About the second question, I am not very clear on what is the requirement? Do you want to modify certain data before a document is actually created/simulated in the SAP system? In this case, there are some enhancement points in the FM SD_SALESDOCUMENT_CREATE. This is what I used to modify/add/delete some data before the basket data is simulated or created as a quotation/order in the SAP ECC system.
Pradeep -
hi
I got the assignment to display the ipc component like subtotal,fright charges in jsp page of isa.(SAP E-Commerce
5.0) . But I am not able to find how to do it. the arrangement of the system is as given below.
ECC 6.0 as sap R/3 and sap b2b isa framework (SAP E-Commerce 5.0) as the front end.
I am a java programmer so I dont have that much idea about the architecture.
I tried to create object of type TcpDefaultDocument
by importing the following class.
<%@ page import
="com.sap.spc.remote.client.object.imp.tcp.TcpDefaultIPCDocument" %>
and calling the following method on that object
getSubtotal(PricingCustomizingConstants.ConditionSubtotal.SUBTOTAL_1)
but there I am getting the problem with the constructor.
Is IPC component is available in ISA frame work or we have to use
IPC seperatly in web server. what is the class we will have to import to that we can create the objects
or we wil have to create a seperate BOM.
Thanking in great anticipation.
Edited by: akmishra.1 on Jun 16, 2011 6:45 PMHello Bala,
Regarding your first question, AFAIK, the userexit logic of pricing should be developed in IPC pricing routines and uploaded to the SAP system with appropriate userexit assignment.
About the second question, I am not very clear on what is the requirement? Do you want to modify certain data before a document is actually created/simulated in the SAP system? In this case, there are some enhancement points in the FM SD_SALESDOCUMENT_CREATE. This is what I used to modify/add/delete some data before the basket data is simulated or created as a quotation/order in the SAP ECC system.
Pradeep -
Extension or upgrade of JavaDoc for com.sap.ipc.*
Hi,
I had downloaded the CRM Javadoc from sap Services Marketplace.
Javadoc had descriptions of the packages linked to
---e-sevices
---icss
--- And few for ISA
Please can anyone share the javadoc extension for IPC maily pricing.
package is com.sap.ipc.*
Thanks
EktaHi Ekta,
You will find the javadoc for IPC java routines with the jar file which you need to download from CRM using transaction
/n/SAPCND/UE_DEV.Start the doc with this url PRC_UE_CUSTOMER/api_doc/index.html.
Hope this helps you.
Regards,
Arshi -
I am a new guy for jvmti, I am trying to use jvmti to trace the behaviour of the program. I have several questions:
1. When I catch the step events, I can get the current location of the code, is it possible to map it into source code or byte code?
2. If I want to be informed when the thread call sleep(), notify(), suspend(), resume(), what should I do?
3. By the event-JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, I can easily know when the threads call the primitive "entermonitor" ,however, how can I know when the thread call "exitmonitor"?
4. I am also interested in the context switch of the threads. I can keep checking the step events to get the information. However, it is too costly. Is there any other more suitable way to do that?
Thanks!Hi
1) I don't think u can fill the data in the infocube with out disturbing the data in the infocube , my better approach to fill the historical data for the infocube is
i)Take the back up of the data in another infocube and run the full load.
ii)Don't add the Enhanced fields in the infocube , just create the DS for that enhanced with some primary field in the infocube and then create another infoprovider which has enhanced field and primary field in that infoprovider and on the multiprovider on the top of the infocube(old which has data ) and infoprovider ( which has enhanced field and primary field) and now create the creaete the report on the top of the multiprovider.
Hope u understoodl
3)U have to check which process type is taking long time(let say that DTP is taking long time , then u have to check whether there exists any complex routine , if yes optimize the code ) . This way u have to check for each and every process step which is taking long time.
4) Can u explain 4th question with an example data.
Hope u got it,
Thanx & Regads,
RaviChandra -
Write Optimized DSO Duplicate records
Hi,
We are facing problem while doing delta to an write optimized data store object.
It gives error "Duplicate data record detected (DS <ODS name> , data package: 000001 , data record: 294 )
But it can not have an duplicate record since data is from DSO and
we have also checked in PSA the particular record and there we couldn't find the duplicate record.....
There is no much complex routine also.....
Have any one ever faced this issue and got the solution? Please let me know if yes.
Thanks
VJRavi,
We have checked that there is no duplicate records in PSA.
Also the source ODS has two keys and target ODS is having three Keys.
Also the records that it has mentioned are having Record mode "N" New.
Seems to be issue with write-ptimized DSO.
Regards
VJ -
ODS to CUBE loading - taking too much time
Hi Experts,
I am loading data from R/3(4.7) to BW (3.5).
I am loading with option --> PSA and then Data Target (ODS ).
I have a selection criteria in Infopackage while loading from standard Datasource to ODS.
It takes me 20 mins to load 300K records.
But, from ODS to Infocube ( update method: Data Target Only), it is taking 8 hours.
The data packet size in Infopackage is 20,000 ( same for ODS and Infocube).
I also tried changing the data packet size, tried with full load , load with initialization,..
I tried scheduling it as a background job too.
I do not have any selection criteria in the infopackage from ODS to Cube.
Please let me know how can I decrease this loading time from ODS to Infocube.Hi,
To improve the data load performance
1. If they are full loads then try to see if you make them delta loads.
2. Check if there are complex routines/transformations being performed in any layer. In that case see if you can optimize those codes with the help of an abaper.
3. Ensure that you are following the standard procedures in the chain like deleting Indices/secondary Indices before loading etc.
4. Check whether the system processes are free when this load is running
5. try making the load as parallel as possible if the load is happening serially. Remove PSA if not needed.
6. When the load is not getiing processed due to huge volume of data, or more number of records per data packet, Please try the below option.
1) Reduce the IDOC size to 8000 and number of data packets per IDOC as 10. This can be done in info package settings.
2) Run the load only to PSA.
3) Once the load is succesfull , then push the data to targets.
In this way you can overcome this issue.
Ensure the data packet sizing and also the number range buffering, PSA Partition size, upload sequence i.e, always load master data first, perform change run and then transaction data loads.
Check this doc on BW data load perfomance optimization
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1955ba90-0201-0010-d3aa-8b2a4ef6bbb2
BI Performance Tuning
FAQ - The Future of SAP NetWeaver Business Intelligence in the Light of the NetWeaver BI&Business Objects Roadmap
Thanks,
JituK -
I am having a problem with my program as I am not getting the
desired frame rate due to all the code that is getting executed per
tick. So I have some questions about director and lingo as to which
way actually executes faster.
1. Multiple
ExitFrame calls vs a single
ExitFrame call.
I have alot of sprites in my app. Almost all of them have an
ExitFrame handler.
Question: is it faster to have each sprite handle it's own
ExitFrame routine and do code specific to that sprite or is
it faster to have one generic
ExitFrame to loop through and execute code for each sprite?
2. Puppeted sprites vs Non-Puppeted sprites.
I have a alot of sprites in my program. To make life ALOT
easier, I simply allocated a good chunk of sprite channels to sole
use of "dynamically created sprites". My program can have hunders
of puppeted sprites from any given moment to the next.
Question: Does director progress faster or slower depending
on if a sprite is puppeted or not? Or is there any difference at
all?
3. Checking to see if a variable is set before setting it.
I have only recently come into the Director/Lingo world of
programming. I am originally a VB programmer for almost a decade.
In visual basic, I have noticed that the code executes faster if
you don't do unneeded variable assignments by checking to see if it
was already set.
Example: In visual basic, let's say you have an array of 1000
elements, some elements are already set, some are not.
for i = 1 to 1000
var(i) = i
next
The above code executes fast, but if you are doing that very
very often, it can be a bottle neck.
the below code, while doing the exact same thing, actually is
faster.
for i = 1 to 1000
if var(i) <> i then var(i) = i
next
In VB, it's faster to do a check of a variable than it is to
do the assignment when it's not needed. Now granted, this is a poor
example, usually I am dealing with much more complex routines, but
the basic principle of what I am trying to get across is the same.
Question: in Director/lingo, would it speed up the execution
of code to do a variable check before the assignment, or is the
very act of adding the check going to slow the down the execution?
Anyone have any ideas about these? Or anyone have any other
tips about stupid little things to speed up execution of
code?>
1. Multiple
ExitFrame calls vs a single
ExitFrame
> call.
You should consider dropping the exitframe approach, in favor
of an oop
model.
OOP is not faster, as a dual core processor is not faster
than a single core
one running at double the speed. In fact, the second should
be faster, since
there is no synchronization penalty. However, it is much
smoother. Same with
oop, you have a penalty, since you are using more objects,
but the objects
can be smart enough to adjust the number of instructions they
execute as
required.
If you e.g. have objects whose coordinates can be calculated
and stored
inside the object, you don't have to update the stage each
time an object
moves. You can do that once, for all objects in set
intervals. Long as the
interval is large enough to handle all intermediate
processing and
updatestage cost, you'll have a very smooth movie.
>
2. Puppeted sprites vs Non-Puppeted sprites.
Puppeting does not affect performance -or at least it
shouldn't. The number
of sprites, and number of behaviors attached to each sprite
does. However,
even when there is a very large number of sprites active, the
procedure
should be a joke for any modern cpu. What does cost, is
redrawing the
sprites. So, if it's image sprites we are talking about, you
should perhaps
consider a single bitmap member you should use as a buffer,
and imaging
lingo for drawing each frame. The mouse click events can be
evaluated by
keeping a list of virtual sprite positions. Even if not
familiar with the
above, the time you'll invest in learning what is required,
will be rewarded
with a significant -up to times x- performance increase.
>
3. Checking to see if a variable is set before setting it.
You can create a simple lingo benchmarking script to get your
answers. As a
general principle, the less commands the faster. Though not
really into VB
(I find c++ and lingo to be a killer combination), I can
assume why this is
happening: when setting a variable, vb is executing some code
to evaluate
what the value was, and what -if anything- has to be
released. Though
nowhere documented, it seems that several years ago, someone
in the director
dev team was smart enough to take this matter into account
when creating the
object that is known as a lingo variable (64bit internally,
btw). So,
director doesn't suffer slow variable release - releasing
what shouldn't be
released that is.
> Anyone have any ideas about these? Or anyone have any
other tips about
> stupid
> little things to speed up execution of code?
You know, a few years ago, lingo performance/speeding up
director was a
regular discussion issue in this list. This is not the case
anymore. And
though I can guess a couple reasons why, I found none to be
qualified as an
explanation.. Not in my book at least. Case you have any more
questions, I'd
be happy to answer. Building a site with director performance
hints /
optimizing lingo code is high in my to do list.
"DaveGallant" <[email protected]> wrote in
message
news:[email protected]...
>I am having a problem with my program as I am not getting
the desired frame
> rate due to all the code that is getting executed per
tick. So I have some
> questions about director and lingo as to which way
actually executes
> faster.
>
>
1. Multiple
ExitFrame calls vs a single
ExitFrame
> call.
>
> I have alot of sprites in my app. Almost all of them
have an
>
ExitFrame
> handler.
> Question: is it faster to have each sprite handle it's
own
>
ExitFrame
> routine and do code specific to that sprite or is it
faster to have one
> generic
>
ExitFrame to loop through and execute code for each sprite?
>
>
2. Puppeted sprites vs Non-Puppeted sprites.
>
> I have a alot of sprites in my program. To make life
ALOT easier, I simply
> allocated a good chunk of sprite channels to sole use of
"dynamically
> created
> sprites". My program can have hunders of puppeted
sprites from any given
> moment
> to the next.
> Question: Does director progress faster or slower
depending on if a sprite
> is
> puppeted or not? Or is there any difference at all?
>
>
3. Checking to see if a variable is set before setting it.
>
> I have only recently come into the Director/Lingo world
of programming. I
> am
> originally a VB programmer for almost a decade. In
visual basic, I have
> noticed
> that the code executes faster if you don't do unneeded
variable
> assignments by
> checking to see if it was already set.
>
> Example: In visual basic, let's say you have an array of
1000 elements,
> some
> elements are already set, some are not.
>
> for i = 1 to 1000
> var(i) = i
> next
>
> The above code executes fast, but if you are doing that
very very often,
> it
> can be a bottle neck.
> the below code, while doing the exact same thing,
actually is faster.
>
> for i = 1 to 1000
> if var(i) <> i then var(i) = i
> next
>
> In VB, it's faster to do a check of a variable than it
is to do the
> assignment
> when it's not needed. Now granted, this is a poor
example, usually I am
> dealing
> with much more complex routines, but the basic principle
of what I am
> trying to
> get across is the same.
>
> Question: in Director/lingo, would it speed up the
execution of code to do
> a
> variable check before the assignment, or is the very act
of adding the
> check
> going to slow the down the execution?
>
>
>
> Anyone have any ideas about these? Or anyone have any
other tips about
> stupid
> little things to speed up execution of code?
> -
Need user-exit/BADI for my requirement in transaction CRMD_ORDER...
Hello Experts,
I was just given a development task under CRM module. The transaction that I would enhance
would be CRMD_ORDER. What I need to do is that I need to check the customer class
in table CRMM_BUT_FRG0041-classific if it falls under 09. If true, then search for the
condition exclusion from the table PRCC_EXCL_PROC for a given combination and by checking the
fields KAUGR1 and KUAGR2. If found, then bypass this exclusion for customer class 09 so that it will
be given a trade discount and bypass the pricing procedure.
Hope you can help me guys as I am fairly new to CRM module. Thank you and take care!Hi,
You will have to put the required Logic there and test.
But what I feel is you need to use IPC Pricing routines, which are assigned in the Pricing Procedure. They are java routines.
According to my understanding, you will have to first check the customer class from table CRMM_BUT_FRG0041. If it is 09 than u read the condition exclusion groups, the condition type assigned and bypass it.
Wish it helps.
Regards,
Shalini Chauhan -
Achieving Clean-Looking (non-pixelated) Graphics in iMovie
Here's my situation... Please help if you can!
I made a short movie to be played as the "auto-play" movie in my iDVD project. This movie is about a minute long, and includes several titles, as well as one logo. Because of the limited titling options in iMovie, I created my titles/logo in Illustrator, imported them into Photoshop, and saved them as high-res jpgs. I then imported the jpgs into iMovie to be used as clips.
Here's the problem: Everything I try seems to result in jagged graphics in iMovie -- especially, and importantly, my logo. I have tried copying different sizes of the vector art in Illustrator before "placing" in Photoshop. I have tried saving the jpg files in different resolutions from Photoshop. When I look at the resulting jpgs in Photoshop or Preview, etc., they all look clean and "high-res." Why then, don't they look good in iMovie, and what can I do?
Here's what I've also tried: I have saved the vector art as a .swf file from Illustrator. I can open it in Flash or Flash Viewer and it looks great. Since iMovie doesn't allow .swf files, I think I need a way to export the .swf as a Quicktime movie. Since I don't have QT Pro, I'm sorta stuck. I'm willing to pay for it, but I'm nervous that it won't work well, since I tried using the Quicktime export feature of the trial version of MediaEdit Pro, and it didn't look good.
Does anyone have any thoughts on 1) how to best achieve clean graphics in iMovie, 2) if my theoretical QT Pro solution would produce a good (great?) result, and 3) if there are any other options besides the complex routine I described above?
Many thanks in advance for your help...
-JasonIf you pressed the Create iDVD Project button in the iDVD tab of iMovie, the jaggies may have been added by iMovie when it rendered the images. There's info about that bug and workarounds here:
http://discussions.apple.com/thread.jspa?threadID=194962&tstart=0
Karl -
Still not understanding Swing Double buffering
I'm writing a custom JComponent like
class Custom extends JComponent {
protected void paintComponent(Graphics g) {
//slow complex routine
}As the display does not often change I thought I could improve performance with my own off-screen rendering
class Custom extends JComponent {
private Image screenImage= null;
private void doOffscreen() {
BufferedImage backimage = defaultgc.createCompatibleImage(getSize().width, getSize().height);
final Graphics2D g2 = backimage.createGraphics();
slow complex routine
screenimage = backimage;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (screenimage != null) {
g.drawImage(screenimage, 0, 0, null);
}What does adding
class Custom extends JComponent {
public Custom() {
setDoubleBuffering(true);
}get me ? Or can I use the SWING double buffer to render to ?
I'm guessing what it will do is render my screen image into yet another image and then switch this in.
I feel I'm missing something :(I've run your code and it seems to work well,
however it is in constant update mode where as my application usually only changes as a part of user interactionActually, that doesn't matter, since when you want the screen to update, you just call "repaint()" from any place that has visibility in your application. The real wonderful thing about offscreen rendering is: that when you have to have an update done, it paints immediately is a very optimized code--a one line paint/paintComponent routine, since the image is pre-rendered, no waiting.
The offscreen rendering approach lends very well to animation loops, adhoc graphic updates, and pretty much any other animation schemes I've been able to come up with.
There is really only one concern that I have in offscreen renderings: it is possible that you would be able to catch the offscreen image being rendered so only a partial image would be present on the screen. I cannot make it do this so I can notice it happen in any animation loop or continuous update scenario that I've been able to test.
I can force it to happen noticeably in code if I purposefully artificially extend the animation times far beyond what they may normally take and unreasonably make multiple tick cycles to the animation and update delays. This is like running a film in ultra slow motion--frame by frame, but under normal conditions (full speed animations), I cannot force any noticeable flaw in the output of an offscreen rendering scheme.
I've pumped that program that I posted up to 10,000 objects and it still ran--no flicker what so ever, but yes, it was a little jerky since I'm doing 1600x1200 and 10,000 images on a 2.4 GHz AMD under Solaris x64, but at the 1,000 object mark as posted, it works fine. -
Hello All,
What are the Data Load Tuning ways from R/3 to BW we can possibly do, please help.
Thanks,
SumanHi,
To improve the data load performance
1. If they are full loads then try to see if you make them delta loads.
2. Check if there are complex routines/transformations being performed in any layer. In that case see if you can optimize those codes with the help of an abaper.
3. Ensure that you are following the standard procedures in the chain like deleting Indices/secondary Indices before loading etc.
For eg
1) Create Index
2) Delete Index
3) Aggregate Creation on Info Cube
4) Compressing Info Cube data
5) Rollup Data to Aggregates
6) Partitioning infoCube
7) Load Master data before loading Transactional Data
8) Adjusting Datapackage size
https://forums.sdn.sap.com/click.jspa?searchID=10049032&messageID=4373697
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3a699d90-0201-0010-bc99-d5c0e3a2c87b
4. Check whether the system processes are free when this load is running
5. Try making the load as parallel as possible if the load is happening serially. Remove PSA if not needed.
6. Goto manage ODS -> activate -> activate in parallel -> increase the number of processes from there.for direct access try TCode RSODSO_SETTINGS
7. Remove Bex Reporting check box in ODS if not required.
8. When the load is not getiing processed due to huge volume of data, or more number of records per data packet, Please try the below option.
1) Reduce the IDOC size to 8000 and number of data packets per IDOC as 10. This can be done in info package settings.
2) Run the load only to PSA.
3) Once the load is succesfull , then push the data to targets.
In this way you can overcome this issue.
Ensure the data packet sizing and also the number range buffering, PSA Partition size, upload sequence i.e, always load master data first, perform change run and then transaction data loads.
Use InfoPackages with disjoint selection criteria to parallelize the data export.
Complex database selections can be split to several less complex requests.
Number Range Buffering Performance
/thread/754694
Check this oss note : 130253.Review the oss note 857998 and 130253. The first note tells you how to find the dimensions and infoobjects that needs number range buffering.
Check this doc on BW data load perfomance optimization
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1955ba90-0201-0010-d3aa-8b2a4ef6bbb2
BI Performance Tuning
Business Intelligence Journal Improving Query Performance in Data Warehouses
http://www.tdwi.org/Publications/BIJournal/display.aspx?ID=7891
Achieving BI Query Performance Building Business Intelligence
http://www.dmreview.com/issues/20051001/1038109-1.html
SAP Business Intelligence Accelerator : A High - Performance Analytic Engine for SAP Ne tWeaver Business Intelligence
http://www.sap.com/platform/netweaver/pdf/BWP_AR_IDC_BI_Accelerator.pdf
BI Performance Audit
http://www.xtivia.com/downloads/Xtivia_BIT_Performance%20Audit.pdf
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10564d5c-cf00-2a10-7b87-c94e38267742
https://websmp206.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000689436&
Thanks,
JituK
Maybe you are looking for
-
Refresh ADF view data (Jdev 10.1.3.3.0) after database changes
Hi, I have created a JSP 'search' page that displays some search criteria for restricting the data that is displayed. The user enters the criteria and presses the 'Excute' button to display only those rows that meet the entered search criteria. This
-
Goods Recipts for Limit item SC
Hi, When we create shopping cart with limit item and choose the "confirmation and invoice option" during the Limit SC creation the backend PO is created with item category 'D'. The service PO is created, but there is no data updated in service tab at
-
Adobe not allowing import of XML file captured from Media Express through Black Magic capture card
I have been going crazy trying to find a way to import the XML files to fix the digitized look Adobe capture gave my footage. Someone help me These are not XML from Final Cut. They are files saved from Media Express, a Black magic design program used
-
Change Customer master Address Data using Structure biadd2 in report rfbide00.?
hello i want to change Customer Master Address Data using using RBIDE00 report program but when i execute the report it will accept input from batch file but the same is not getting updated in customer master . please help me to resolve this
-
How to apply extra storage once purchased on iphone
how to apply extra storage once purchased on iphone