Replacement for xApp FIN INVESTM APPROVAL 1.1 - xApp Analytics
Hello All,
We were looking for xApp analytics module "XAPP FIN INVESTM APPROVAL 1.1" for Capital appropriation reports.
Came to know from PAM that SAP's support for this module is ended by May 2009. Also,from Service Market Place > Downloads -> Installations and Upgrades - Entry by Application Group" Composite Applications" - ANALYTIC BLUEPRINTS FROM SAP). Note at end of page states: "SAP xApps Analytics will not be maintained or supported by SAP, nor will SAP provide new versions and/or releases of such SAP xApps Analytics."
May I know is this functionality included in any other product?
Rgds,
Isvarya
Hi!
Are you trying it via the Visual COmposer 7.0?
Similar Messages
-
Double Factory pattern purposal as replacement for Double Check #2
Hi All,
Here is the code for the pattern proposal, its intended as a replacement for double checked locking, which was proved to be broken in 2001. Here is the code...
public class DoubleFactory {
private static Object second_reference = null;
public static Object getInstance() {
Object toRet = second_reference;
if (toRet == null) {
second_reference = CreationFactory.createInstance();
toRet = second_reference;
return toRet;
private DoubleFactory() {}
public class CreationFactory {
private static Object instance = null;
public static synchronized Object createInstance() {
if (instance == null) {
instance = new Object();
return instance;
}Also I have spent several months discussing this with Peter Haggar, who believes that this code is not guaranteed to work. However I have been unable to discern from his message why he believes this will not be guaranteed to work, and I am posting this here to attempt to find a clearer explanation or confirmation that the pattern I am purposing (Double Factory) is guaranteed to work.
Thanks,
Scott
---------------------------- Original Message ----------------------------
Subject: Re: [Fwd: Double Factory replacement for Double Check #2] From:
"Scott Morgan" <[email protected]>
Date: Fri, January 25, 2008 10:36 pm
To: "Peter Haggar" <[email protected]>
Hi Peter,
I appologize if my last response came accross as rude or something. If
my code is not guaranteed to work ok, can you help me understand why. I
am after all looking for a solution for all of us.
If my solution is wrong as you say because the member variables of the
singleton are not up to date. I understand this to mean that the
second_reference pointer is assigned to the memory where the instance
object will get created before the instance object even starts the
creation process (when the jvm allocates memory and then enters the
constructor method of the Singleton). This doesn't seem possible to me.
Can you refrase your statments, to help me understand your points?
If not I am happy to turn to the original wiki for discussion.
Thanks for your effort,
Scott
Thanks for asking my opinion, many times, then telling me I'm
wrong...wonderful. You are a piece of work my friend. For what it'sworth, your email below shows you still don't understand these issues
or what I was saying in my emails. I've been more than patient.
>
All the best. And by the way, your code is not guaranteed to work. It's not just me that's "wrong", it's also the engineers at Sun who
designed Java, the JVM, and the memory model, and countless people who
have studied it. I'm glad you have it all figured out.
>
Peter
"Scott Morgan" <[email protected]>
01/18/2008 12:47 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
Thanks I understand your position now. However am I still believe that
it will work and be safe;
1) the Singleton you show would be fully constructed (having exited theSingleton() method) before the createInstance() method would have
returned.
2) The second_reference could not be assigned until the createInstance()
method returns.
3) So by the time second_reference points to Singleton all of the valueswill be set.
>
>
I do understand that if the createInstance method was not synchronized(at the CreationFactory class level) that my logic would be flawed, but
since there is synchronization on that method these points are true, and
your comments about up-to-date values are not accurate.
>
Cheers,
Scott
>In your listing from your latest email T2 does encounter a sync block
on createInstance.
>>>>
No. T2 will call getInstance and see second_reference as non-null.second_reference was made non-null by T1.
>>
>>>>
What are you exactly are you refering to with the phrase 'up-to-datevalues'?
>>>>
Assume my singleton ctor is thus:
public class Singleton
private int i;
private long l;
private String str;
public Singleton()
i = 5;
l = 10;
str = "Hello";
T2 will get a reference to the Singleton object. However, because youaccess second_reference without synchronization it may not see i as 5,
l as 10 and str as "Hello". It may see any of them as 0 or null. This
is not the out of order write problem, but is a general visibility
problem because you are accessing a variable without proper
synchronization.
>>
Peter
"Scott Morgan" <[email protected]>
01/16/2008 11:38 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
In your listing from your latest email T2 does encounter a sync blockon createInstance.
>>
What are you exactly are you refering to with the phrase 'up-to-datevalues'?
In this code the Singleton should also be
A) non mutable (as in the instance of class Object in the example).
If the singleton was more complex then the code to populate it'svalues
would go inside the sync of createInstance().
B) mutable with synchronization on it's mutator methods.
In your article you mention out of order writes, which doesn't occurin
this code.
Cheers,
Scott
You read it wrong.
- T1 calls getInstance which in turn calls createInstance.
- T1 constructs the singleton in createInstance and returns to
getInstance.
- T1 sets second_reference to the singleton returned in getInstance. -T1 goes about its business.
- T2 calls createInstance.
- T2 sees second_reference as non-null and returns it
- Since T2 accessed second_reference without sync, there is noguarantee
that T2 will see the up-to-date values for what this object refers to.
- Therefore the code is not guaranteed to work.
>>>
If this is not clear:
- Re-read my email below
- Re-read my article
- If still not clear, google on Double Checked Locking and readanything
from Brian Goetz or Bill Pugh.
Peter
"Scott Morgan" <[email protected]>
01/13/2008 05:26 AM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
Thanks for the reply, I don't see how T2 would see the a referenceto
a
partialy initialized object before the createInstance() method had
returned. If T1 was in createInstance() when T2 entered
getInstance(), T2 would wait on the CreationFactory's class monitor to
wait to enter createInstance().
Or in other words in the line of code ....
second_reference = CreationFactory.createInstance();
The pointer second_reference couldn't be assigned to the singleton
instance when the synchronized createInstance() had fully constructed,initialized and returned the singleton instance. Before that the the
second_reference pointer would always be assigned to null. So any
thread entering getInstance() before createInstance() had returned
(for the first time) would wait on the CreationFactory's class monitor
and enter the createInstance() method.
>>>
So T2 will wait for T1.
Cheers,
Scott
PS I think I am writing requirements for my next project :)
Sorry for the delay...been in all day meetings this week.
You are correct...I had been reading your code wrong, my apologies.
My explanations, although correct, did not exactly correspond to your
code.
However, the code is still not guaranteed to work. Here's why:
Assume T1 calls getInstance() which calls createInstance() and returnsthe
singelton. It then sets second_reference to refer to that singleton.
So
far, so good. Now, T2 executes and calls getInstance(). It can see
second_reference as non-null, so it simply returns it. But, there
was
no
synchronization in T2's code path. So there's no guarantee that even
if
T2 sees an up-to-date value for the reference, that it will seeup-to-date
values for anything else, ie what the object refers to...it's
instance data. If T2 used synchronization, it would ensure that it
read
up-to-date
values when it obtained the lock. Because it didn't, it could see
stale
values for the object's fields, which means it could see a partially
constructed object.
>>>>
In the typical double-checked locking, the mistake is to assume theworst
case is that two threads could race to initialize the object. But
the worst case is actually far worse -- that a thread uses an object
which
it
believes to be "fully baked" but which is in fact not.
Peter
"Scott Morgan" <[email protected]>
01/03/2008 06:33 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
Thanks for responding, I am still thinking that your mis
interpreting
the code so I have rewritten it here (Replacing
DoubleFactory.instance with DoubleFactory.second_reference for
clarity). If the T1 burps (gets interrupted) in the createInstance
method it wouldn't have returned so the second_reference pointer
would have never been
assigned
so T2 would just try again upon entering the getInstance method. Orif
it had already entered getInstance it would be waiting to enter
(until T1 releases the lock on CreationFactory.class ) on the
createInstance method.
>>>>
public class DoubleFactory {
private static Object second_reference = null;
public static Object getInstance() {
Object toRet = second_reference;
if (toRet == null) {
second_reference =
CreationFactory.createInstance();
toRet = second_reference;
return toRet;
private DoubleFactory() {}
public class CreationFactory {
private static Object instance = null;
public static synchronized Object createInstance() {
if (instance == null) {
instance = new Object();
return instance;
Does this clear up my idea at all?
second_reference should be always pointing to
null
or
a fully initialized Object
(also referenced by the pointer named 'instance' ), I don't see howit would end up partially initialized.
>>>>
Thanks Again,
Scott
"It" refers to T2.
Your createInstance method is identical to my Listing 2 and is fine
and
will work.
Yes, the problem with your code is in getInstance.
>I don't see how the DoubleFactory getInstance method could bereturning
a partially initialized object at this point. If CreationFactoryalways
returns a fully initialized object and DoubleFactory only assigns a
new
reference/pointer to it how could DoubleFactory getInstance return a
reference/pointer to partially initialized object?
>>>>>>>
>>>>>
The reason it is not guaranteed to work is explained in my previousemails
and in detail in the article. However, I'll try again. Anytime you
access shared variables from multiple threads without proper
synchronization, your code is not guaranteed to work. Threads are
allowed
to keep private working memory separate from main memory. There are
2
distinct points where private working memory is reconciled with main
memory:
- When using a synchronized method or block - on acquisition of thelock
and when it is released.
- If the variable is declared volatile - on each read or write of
that
volatile variable. (Note, this was broken in pre 1.5 JVMs which isthe
reason for the caveat I previously mentioned)
Your createInstance method uses synchronization, therefore, the
reconciliation happens on lock acquisition and lock release. T1 can
acquire the lock in createInstance, make some updates (ie create an
object, run it's ctor etc), but then get interrupted before exiting
createInstance and therefore before releasing the lock. Therefore,
T1
has
not released the lock and reconciled its private working memory withmain
memory. Therefore, you have ZERO guarantee about the state of mainmemory
from another threads perspective. Now, T2 comes along and accesses
"instance" from main memory in your getInstance method. What will
T2
see?
Since it is not properly synchronized, you cannot guarantee that T2sees
the values that T1 is working with since T1 may not have completely
flushed its private working memory back to main memory. Maybe it
did completely flush it, maybe it didn't. Since T1 still hold the
lock,
you
cannot guarantee what has transpired. Maybe your JVM is not usingprivate
working memory. However, maybe the JVM your code runs on does or
will
some day.
Bottom line: Your code is not properly synchronized and is notguaranteed
to work. I hope this helps.
Peter
"Scott Morgan" <[email protected]>
01/03/2008 12:49 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
Thanks for your response, I don't follow what 'it' refers to in
the
phrase 'It can see'. So for the same reason that you state that
example 2 from your article I believe this class CreationFactory to
work flawlessly when a client object calls the createInstance
method.
>>>>>
I see this CreationFactory code as identical to your example 2 doyou agree with this?
>>>>>
public class CreationFactory {
private static Object instance = null;
public static synchronized Object createInstance() {
if (instance == null) {
instance = new Object();
return instance;
}Then my rational in the DoubleFactory class is that it can obtain a
reference/pointer to the fully initialized object returned bycalling the above code. I believe you think that the problem with
my code is
in
the DoubleFactorys getInstance method, is this correct?
I don't see how the DoubleFactory getInstance method could bereturning
a partially initialized object at this point. If CreationFactory
always
returns a fully initialized object and DoubleFactory only assigns a
new
reference/pointer to it how could DoubleFactory getInstance return a
reference/pointer to partially initialized object?
>>>>>
Thanks again,
Scott
public static synchronized Singleton getInstance() //0
if (instance == null) //1
instance = new Singleton(); //2
return instance; //3
This above code is fine and will work flawlessly.
Annotating my paragraph:
T1 calls getInstance() and obtains the class lock at //0. T1 "sees"
instance as null at //1 and therefore executes: instance = new
Singleton() at //2. Now, instance = new Singleton() is made up of
several lines of non-atomic code. Therefore, T1 could be
interrupted
after Singleton is created but before Singleton's ctor isrun...somewhere
before all of //2 completes. T1 could also be interrupted after
//2 completes, but before exiting the method at //3. Since T1 has
not
exited
its synchronized block it has not flushed its cache. Now assume T2
then
calls getInstance().
All still true to this point. However, with your code the nextparagraph
is possible, with the code above, it's not. The reason is that T2
would
never enter getInstance() above at //0 because T1 holds the lock. T2will
block until T1 exits and flushes it's cache. Therefore, the code
above
is
properly thread safe.
It can "see" instance to be non-null and thus
return it. It will return a valid object, but one in which its ctor
has
not yet run or an object whose
values have not all been fully flushed since T1 has not exited itssync
block.
"Scott Morgan" <[email protected]>
01/02/2008 06:10 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
Thanks for the response I understand the rational for inventing
the
double check anti pattern, I am sorry I still don't understand the
difference between your solution #2 and my CreationFactory class.
>>>>>>
From your article figure 2.public static synchronized Singleton getInstance() //0
if (instance == null) //1
instance = new Singleton(); //2
return instance; //3
If I understand your email correctly this figure 2 is also flawed,since...
>>>>>>
T1 calls getInstance() and obtains the class lock at //0. T1 "sees"
instance as null at //1 and therefore executes: instance = new
Singleton() at //2. Now, instance = new Singleton() is made up ofseveral lines of non-atomic code. Therefore, T1 could be
interrupted
after Singleton is created but before Singleton's ctor isrun...somewhere
before all of //2 completes. T1 could also be interrupted after
//2 completes, but before exiting the method at //3. Since T1 has
not
exited
its synchronized block it has not flushed its cache. Now assume T2
then
calls getInstance(). It can "see" instance to be non-null and thus
return it. It will return a valid object, but one in which its
ctor
has
not yet run or an object whose
values have not all been fully flushed since T1 has not exited itssync
block.
So is #2 is also flawed for this reason?
If so please revise your article, since I interpreted #2 as a
plausible
solution recommended by you (which lead me to the DoubleFactory
idea).
If not please help me understand the difference between #2 and my
CreationFactory class.
>>>>>>
Thanks,
Scott
#2 is in Listing 2 in the article. What I meant was to forget the
DCL
idiom, and just synchronize the method...that's what listing 2
shows.
DCL
was invented to attempt to get rid of the synchronization for 99.9%
of
the
accesses.
The solution I outlined in my email is using the DCL idiom, but on
a
1.5
or later JVM and using volatile.
You solution is not guaranteed to work. Here's why:
public class DoubleFactory {
private static Object instance = null;
public static Object getInstance() {
Object toRet = instance;
if (toRet == null) {
instance =
CreationFactory.createInstance();
toRet = instance;
return toRet;
private DoubleFactory() {}
public class CreationFactory {
private static Object instance = null;
public static synchronized ObjectcreateInstance()
//1
if (instance == null) {
instance = new Object(); //2
return instance;
} //3
}T1 calls createInstance() and obtains the class lock at //1. T1"sees"
instance as null and therefore executes: instance = new Object() at//2.
Now, instance = new Object() is made up of several lines of
non-atomic
code. Therefore, T1 could be interrupted after Object is created
but
before Object's ctor is run...somewhere before all of //2
completes.
T1
could also be interrupted after //2 completes, but before exiting
the
method at //3. Since T1 has not exited its synchronized block ithas
not
flushed its cache. Now assume T2 then calls getInstance(). It can"see"
instance to be non-null and thus return it. It will return a
valid object, but one in which its ctor has not yet run or an
object
whose
values have not all been fully flushed since T1 has not exited itssync
block.
The bottom line is that if you are accessing shared variables
between
multiple threads without proper protection, you are open for aproblem.
Proper protection is defined as: proper synchronization pre 1.5,
and
proper synchronization or proper use of volatile 1.5 or after.
Therefore, if you must use the DCL idiom you have one option: -
Use DCL with volatile on a 1.5 or later JVM.
>>>>>>>
You can also forget about DCL and just use synchronization (listing2
in
my article) or use a static field (listing 10 in my article).
I hope this clears it up.
Peter
"Scott Morgan" <[email protected]>
01/02/2008 04:00 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
Re: [Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
I apologies for not understanding but I don't see what is
different
between the solution you purposed...
2) Don't use DCL but use synchronization
and the code that I am putting forward. Perhaps I do just notunderstand
but you seem to be contradicting yourself in this email?
I understand that you are saying in #2 that this will always 'work'
with
out any issues...
public static Object instance = null;
public static synchronized Object getInstance() {
if (instance == null) {
instance = new Object();
return instance;
But first you seem to say in the email that if T1 gets
interrupted
it
may leave the instance pointing to a partially initialized object?
So as far as I understand it the createInstance method in my
CreationFactory class should be successful (always retuning a
fully initialized object) for the same reason #2 is successful.
Please keep in mind that there are two different instancepointers
in
the code I sent you, one is part of the DoubleFactory class and
the other is part of the CreationFactory class.
>>>>>>>
Thanks for your time, just looking for better solutions!
Scott
Scott,
Your solution is not guaranteed to work for various reasons
outlined
in
the article. For example, you can still return from your code apartially
initialized object. This can occur if T1 gets interrupted beforeleaving
the synchronized method createInstance() and T2 calls
getInstance().
T2
can "see" toRet/instance as non-null but partially initialized
since
T1
has not fully flushed its values.
As of 1.5, Sun fixed various issues with the memory model that
were
broken. Double Checked Locking will still break unless you usevolatile
(which was fixed in 1.5). Therefore, the following code works:
volatile Helper helper;
Helper getHelper() {
if (helper == null)
synchronized(this) {
if (helper == null)
helper = new Helper();
return helper;
but the original DCL idiom will not work. So, your options are:
1) Use DCL with volatile (above)
2) Don't use DCL but use synchronization
3) Don't use DCL, but use a static field.
#2 and #3 are outlined in my article from 2002.
Hope this helps,
Peter
"Scott Morgan" <[email protected]>
12/26/2007 04:12 PM
Please respond to
[email protected]
To
Peter Haggar/Raleigh/IBM@IBMUS
cc
Subject
[Fwd: Double Factory replacement for Double Check #2]
Hi Peter,
Thanks for the article on the out of order write problem. Whatdo
you
think of this as a solution?
TIA,
Scott
---------------------------- Original Message----------------------------
Subject: Double Factory replacement for Double Check #2
From: "Scott Morgan" <[email protected]>
Date: Wed, December 26, 2007 2:55 pm
To: [email protected]
Hi Ward,
Here is a pattern submission
Double Factory
Lazy initialization of singletons in accepted for a while usingthe
double check pattern. However it has been discovered that the
double
check pattern isn't thread safe because of the out of order write
problem. This problem occurs when Threads entering the Singleton
Factory method return with a fully constructed, but partially
initialized, Singleton object.
>>>>>>>>
Therefore: It makes sense to look for a way to initializeSingletons
in
a Lazy and Thread Safe manor. The following illustrates a fairly
simple
solution...
package foo;
public class DoubleFactory {
private static Object instance = null;
public static Object getInstance() {
Object toRet = instance;
if (toRet == null) {
instance =
CreationFactory.createInstance();
toRet = instance;
return toRet;
private DoubleFactory() {}
public class CreationFactory {
private static Object instance = null;
public static synchronized ObjectcreateInstance()
if (instance == null) {
instance = new Object();
return instance;
This gets around the out of order write problem because all
Threads
waiting on the CreationFactory's Class monitor will have a fully
constructed and initialized instance when they actually exit the
createInstance method.
>>>>>>>>
>>>>>>>>
During runtime while the Singleton instance is getting created(constructed and initialized) there may be a few Threads waiting
on
the
CreationFactory Class's objects monitor. After that period all
the
Treads
accessing
the Singleton will have unsynchronized reads to the instance,
which
will
optimize execution.
References:
http://www.ibm.com/developerworks/java/library/j-dcl.html
Copyright 2007 Adligo Inc.Scott-Morgan wrote:
Hi All,
Thanks for your comments, here are some more....
jtahlborn you state that
the only way to guarantee that a (non-final) reference assignment is visible across threads is through the use of volatile and synchronized,
From the jvm spec
http://java.sun.com/docs/books/jls/third_edition/html/memory.html
17.4.1 Shared Variables
Memory that can be shared between threads is called shared memory or heap memory.
All instance fields, static fields and array elements are stored in heap memory.
Since both the second_reference and instance fields are both static, they are shared and visible across all threads.Yes, all these things are shared across threads, however, if you keep reading, there is a notion of "correct" sharing. obviously these values may be visible, that's why double-checked locking was used for so long before people realized it was broken. it worked most of the time, except when it didn't, and that's what i'm trying to show. that the only way to correctly share state between threads is via synchronization points, the most common being volatile and synchronized (there are a couple of other less used ones which don't apply here). The articles you linked to below from ibm cover the "visibility" in great depth, this is exactly what i am referring to.
You also state that volatile is a solution, but you seem to rebut your self in stating that the overhead for volatile is almost as great as synchronization.
This article illustrates the solution, and also comments on the overhead of volatile.
http://www.ibm.com/developerworks/library/j-jtp03304/
linked from
http://www.ibm.com/developerworks/java/library/j-dcl.html
volatile is a solution, in that it is correct, and you avoid the appearance of synchronization each time. however, since the semantics of volatile were strengthened in the new memory model, using volatile will perform practically (if not exactly) the same as simply synchronizing each time. the article you link to says exactly this under the heading "Does this fix the double-checked locking problem?".
Also could you be more specific about the example at the end of the jvm memory spec page, like a section number?It's the very last thing on the page, the "discussion" under 17.9, where it mentions that changes to "this.done" made by other threads may never be visible to the current thread. -
Replacement for PageContext in a Servlet?
I have some code (from a third party) that assumes a JSP environment and as such uses the PageContext object that is implicit in each JSP. I'm moving to an all servlet setup and was wondering what I should use as a replacement for the PageContext object?
The only methods of PageContext that my code uses now are get/setAttribute(). Can I simply use Request.get/setAttribute() in my code as a replacement?
ThankspageContext.setAttribute() sets the attribute in 'PAGE' scope unless the overridden api (that includes the scope to be set) is used.
So the answer to your problem depends on how the getAttribute() is called within the jsp page. If your jsps use a tag library like jstl, then the findAttribute() method is called which searches the scope in order (page, request, session, application) and you would be fine since the attributes are now in request scope.
ram. -
Replacement for CRM_INTLAY_GET_HEADER_GUID in WebClient UI
Two years ago we implemented a classic badi for badi definition CRM_PRODUCT_I_BADI. Within the badi we need to determine the transaction header GUID. For the last two years the badi has operated by calling function module CRM_INTLAY_GET_HEADER_GUID to retrieve the header GUID. This function module still works fine if you are processing from within SAPgui. However, if you are processing from within the WebClient UI the function module no longer works because the header GUID is no longer buffered in that function group.
I have resorted to using function module CRM_ORDERADM_H_GET_OB but I am wondering if anyone knows of a more elegant replacement for function module CRM_INTLAY_GET_HEADER_GUID that will work in the WebClient UI? Perhaps something that pulls the header GUID out of the BOL core? Thanks.Paul,
Technically when you are in the BADI's you are below the BOL layer and have to use the one order API function modules. I prefer using the OW modules instead of the OB, and technically I believe you are supposed to use OW instead.
The CRM_ORDERADM_H_READ_OW is probably your best bet down in that layer.
Thank you,
Stephen -
Replacement for ClarisDraw?
Can anyone recommend a good replacement for ClarisDraw as a general drawing program? My PPC must run in Classic to use it, of course, and I would like eventually to minimize the number of apps that need to run under Classic. It still works fine, but the print function has quit (don't know why), so I have to save a document as a PICT file, then convert in GraphicConverter to JPEG in order to print. And then I have to keep the original ClarisDraw document if I want to edit it later.
Is CorelDraw anywhere near as good a program as ClarisDraw? Any other candidates for Mac OS X 10.4.10?I think I've found it. After fooling around with the Demo version of EasyDraw, I just couldn't get comfortable with it. Today I tried the demo version of Intaglio and it just felt right. It's a whole lot more like ClarisDraw than EasyDraw was. http://www.purgatorydesign.com/Intaglio/
-
Hi,
I need the replacement for the keyword LOCAL......
some how i found the replacement (by my own) but it is not working properly...
the replacement is data declaration for the local...
Example program for local...
REPORT ZTEST_LOCAL_EXAMPLE.
DATA text TYPE string VALUE 'Global text'.
WRITE / text. " Global text
PERFORM subr1.
WRITE / text. " Global text
FORM subr1.
LOCAL text.
*data text type string. "replacement for local
text = 'Text in subr1'.
WRITE / text.
PERFORM subr2 USING text.
WRITE / text.
ENDFORM.
FORM subr2 USING para TYPE string.
LOCAL para.
para = 'Text in subr2'.
WRITE / text.
ENDFORM.
Here it is local statement and the replacement statement... but the replacement is not working properly....
Thanks
vishnu. ROutput
Global text
Text in subr1
Text in subr2
Text in subr1
Global text
Output with replacement
Global text
Text in subr1
Global text
Text in subr1
Global text
Looks fine to me. What do you expect?
matt -
Can anyone recommend a replacement for a VPN Cisco 3005 that will also tie into Active Directory so that users of the VPN can change their AD accounts while using the VPN. Total of <100 users.
ThanksRay,
The Cisco ASA 5510 should suit your needs. The ASA is the replacement for the 300 series concentrators. You should be fine integrating active directory using ACS server with the ASA.
http://www.cisco.com/en/US/products/ps6120/prod_models_comparison.html
HTH,
Mark -
Replacement for TABLE_FROM_BLOCK
Is there any replacement for the procedure TABLE_FROM_BLOCK in 10g or not?
as this procedure give error on 10g and works fine in 6i..
thanks in advance for commentingwhat does this built-in do ?
It's still a reserved word, but no hint in the help of 10g -
1st Generation 2 Gbyte Motherboard Replacement for Model No.A1137 needed, please...
Quote from: vernonion on 27-August-08, 09:51:53
Everything is not working fine, and a pop with sparks is not a normal result from turning on a power supply. If you got it from Tiger send it back and get this one.
I talked to the rep earlier, but I had to go to a meeting. When I called him back he said he was on the phone with Intel to make sure my CPU would work with that board. I know it will work so I have no clue why he called them. He didn't seem to concerned about the PSU though. I told him that the PSU popped and made sparks and it didn't phase him at all. I already told him I wanted to exchange the RAM with different kind and I wanted a new PSU. When I give him the new RAM and the PSU I want I will give this one a try.
Thank you for your help. -
We currently have a HP OfficeJet J6400 All-in-One Printer. It works fine and we are happy with it. However, our platforms are changing. We both have iPhones, iPads and iPods. We need to migrate to an Air Printer in order to make better use of our technology. It's a pain to have to send something to another platform (laptop) and then print.
My question is, which HP with Air Print would be a good replacement for the J6400. We still want all the features of an All-in-One.
Thanks,
Jim
This question was solved.
View Solution.Hello jghannah
For a list of AirPrint printers check the right hand side of this page.
I personally think either the Officejet 6500A Plus or the Officejet Pro 8600 would be perfect for your upgrade. They share a similar design to that of the Officejet 6400 series. They all have Airprint as well. For a good comparison between them check out the following link: Officejets with Airprint Comparison
Don't forgot to say thanks by giving "Kudos" to those that help solve your problems.
When a solution is found please mark the post that solves your issue. -
FCP X --Replacement for Current version of FCP???
I am getting the feel that FCP X is a FC express replacement and not a replacement for the true Professional Suite of products.
Am I wrong???
I am using FCP version 6 now on a 2 year old IMAC 23". (Intel I-5) 4 gig ram
Thankshughmass wrote:
...snip...
Apple didn't kill their product, they made it alive and accessible and cheap. I suspect whole industries will be changing and jobs lost, as ordinary folks can make decent commercials and quick video for broadcast.
...snip...
Apple lifted the Prosumer market up, it didn't lower the Final Cut Standards. I think...time will tell.
Yeah, I kinda don't see that. Did the availability of inexpensive word processing give rise to hundreds of new Hemingways or Bukowskis or Vonneguts? Did the unavailability of desktop video deny us Lynch or Almodovar or Soderburgh or Tarantino? The tool isn't what makes the content great.
If FCP-X lacks Pro features like EDL support, tape deck control (but tape is dead! not), no track assignments, no OMF support, no XML support, no proxy edit support (offline/online workflow), questionable Plugin support... it is doomed in the professional world.
Sure, consumers will have gotten a great tool for taking their DSLR cameras and putting something pretty on YouTube or Vimeo... but all those silly pro features I listed above? Those are all critical for producing broadcast television.
If the June release lacks those features, it no longer has the right to be called Final Cut Pro - Final Cut X(press) maybe, but not pro. I'm sure it'll be fine for wedding videos and other end-to-end video production. But Apple won't be able to brag that the next Coen Brother's film was cut with it. You won't see nationally broadcast television commercials edited with it. Nor will it take hold in episodic TV.
Yes, whole industries may change... back to Avid that is.
I hope I'm wrong.
Patrick -
I bought a Macbook Unibody back in 2010, and until now the system is still working perfectly fine, probably because I keep on updating my software version, currently I am on Mac OS X 10.8.2 (Mountain Lion)...I don't have issues with it.
I bought this Macbook in Japan, the keyboard version is on Japanese (with US alphabets) becaue I was studying Kanji back then, and apparently I am now living here in the Philippines and some of my keyboard keys are lost and they were taken off by my naughty niece (LOL, couldn't blame her though... she's just 2 years old)... now I am looking for a replacement. I couldn't find Japanese version of Top Case replacements here in Manila... now I kinda realized I might as well use a US version moving forward.
Now my question is re: Top Case keyboard replacement for Macbook Unibody A1342 (US version), would it be compatible w/my Macbook if originally it had a Japanese version?
Thanks in advance for all the help & informations. I would really appreciate it before I buy a replacement.
Have a good one guys! ^_^)Ybut it has been dropped a bit.
Translation - It has been dropped multiple times.
All the problems are likely related. Better get it to an Apple service rep and be aware that any warranty does not cover abuse of the product. -
QuickJog 1.0 - Shuttle/Jog Replacement for Premiere CS6... almost
quickJog 1.0 - "fixing what Adobe broke in CS6"
a shuttle/jog replacement for Premiere/Prelude CS6
* see below for download links and instructions *
Introduction
I'll waste no time in expressing my opinion on this one: I loved the jog control in previous versions of Premiere, and a small part of my heart died when I realised that those beloved controls couldn't be reinstated in CS6 (though an ever larger chunk died when I realised that Q and W don't work by default in Prelude... ).
JKL is great as a concept, but in practice, not very responsive - it's difficult to make precise jumps in speed quickly, and I'd hate to log footage in CS6 using the JKL keys alone.
It was whilst reading through a different thread on the forums that I had an idea. Why not just jog with the middle mouse button? REAPER uses a similar idea to great effect for scrubbing.
And so the journey began.
Installing/using quickJog
Pre-requisites
Glovepie is only available for Windows. The script, therefore, only works on Windows.
Sorry Mac users.
To use quickJog, you'll need to download the following:
GlovePie, from glovepie.org. Doesn't matter whether you grab the version with or without emotiv support, as long as it's a recent version
The quickJog script, from bit.ly/getQuickJog (unreserved thanks go to Creative Inlet Films for hosting this)
A mouse with a middle-mouse button/clickable scroll wheel
You'll also need to ensure:
The JKL keys have not been re-mapped in Premiere. This is essential, as quickJog 'presses' the JKL keys to alter the jog speed in Premiere.
Installation/usage
Is currently as simple as...
Start Glovepie
From the File menu, select Open...
Navigate to wherever you unzipped the quickJog script. Open it.
Click the Run button
Click the [ .] button at the end of the menu bar to minimise Glovepie to the system tray
To shuttle, click on the program monitor, source monitor or trim monitor, and scroll the mouse wheel. This functionality is built-into Premiere. You can hold Shift for bigger jumps.
To jog, click and hold the middle-mouse button over the source monitor, program monitor, or timeline, and move left or right to increase/decrese the jog speed (just like the old jog slider).
QuickJog tracks the position of the mouse itself, not the position of your mouse cursor, so don't worry about the cursor touching the edge of your screen.
Keep your eyes on the video, not the mouse!
To exit, right-click the glovePie icon, and select Exit.
quickJog works in Prelude too, which is pretty cool.
Links/Misc
HOW AWESOME WOULD SOME EXTRA BITS OF INFORMATION BE FOR THE WORLD? Like information on how to tweak the configuration variables??
Pretty awesome, I'd say James. Have you thought about actually writing this section, then?
Paha! Don't be crass.
Aww.I stand humbly informed!
In hindsight, I'm not surprised that the JKL keys are a popular choice amongst editors (especially for those who've moved across from other NLEs), but it does rest somewhat uncomfortably in my heart. It feels like Adobe have replaced the pedals and gearstick in my car with a keyboard: not great for those moments when a child runs into the road.
The Shuttle Pro (and Bella to my knowledge?) controllers emulate left/right arrow keypresses to do their work, making the playback 'glitchy' during shuttle operations - I don't like that. I didn't particularly like the feel of the Shuttle Pro when I tried it either. I do like controllers like this (I have one), but have been working for some time on interfacing between the Sony 9-pin protocol and Premiere.
As such, my intermediate preference has been to use a graphics tablet (with a keyboard) for NLE work - hence why having the jog/shuttle controls on screen was so darn useful! Now that I have quickJog mapped to the stylus eraser, edits are much faster.
Quick aside: Huge commendations on just how much can be mapped to keyboard shortcuts in Premiere, huzzah! -
New Macbook a good replacement for 12" Powerbook?
I think, besides the inch in display difference, that the new macbook WOULD HAVE made a GREAT GREAT GREAT replacement for users loving or wanting the portability, yet pro versatility of the old 12" Powerbooks. I think however that Apple has missed the mark in one BIG BIG WAY! Firewire. People who wanted something like the 12" powerbook wanted the power of the Macbook Pro in a smaller package. Apple hit the nail on the head with incorporating the same graphics performance, by using aluminum, by making it lighter, and by putting in the illuminated keyboard (only in the 2.4 model though). But on the last detail, they missed it. Firewire. there is no workaround. period. Why preload the systems with iMovie when you can't import video from MOST modern digital camcorders? WITHOUT EVEN introducing a new port with adapters (like they did with the Display Port). I think I would've sold my old macbook pro and had instantly purchased the new macbook if Apple had just included that one VITAL port. I would even prefer them putting it in the place of one of the two USB ports. But without being able to import video from my NEW minidv, there is just no way i could buy that macbook and call myself a proud mac owner. What kind of digital hub would that be? Isn't your slogan "works right out of the box."...? what do you guys think about the new macbook being a 12" powerbook replacement??
I have the same situation. I wanted to upgrade from my 12" Powerbook and would move up to the 13" screen of the new MacBook (15" is much too big for my needs). Another family member has the 15" Powerbook and has always liked my smaller size. I was ready to order 2 of the 13" MacBooks and was then stunned to see that Firewire was missing. I have a Sony DV camcorder for movies. It appears Apple expects me to use my old Powerbooks to input the video into iMovie and then transfer it over to my new MacBook. This is not the cutting edge Apple Computer Company that I have been a customer of for 25 years.
If Apple wants to add firewire to the new MacBooks, develop a USB / Ethernet to firewire adapter, or add a 13" MacBook Pro (w/ firewire) to the line-up, they will have a customer. Otherwise, I will hold onto my old Powerbooks until this is corrected. -
APEX Listener as a replacement for modplsql ?
Will APEX Listener ever be, or is it able to be now, a replacement for modplsql driven applications that are not APEX. It seems that it already takes care of everything needed to be a full scale modplsql replacement... In all honesty looking to see if it is possible to reduce the future licensing load on some of my clients if they wanted to build more redundancy into their front-end web applications. They wouldn't be reducing what they pay, as they are still in for the Forms installs in app server, but they are inhibited on their redundancy growth outward since adding new licenses to cover these new servers would be cost prohibitive. This is mainly a third-party product (SGHE's Self-Service Banner) that is driven off of modplsql, so rewrite isn't an option.
Thanks for your input,
-RichardAs of the last EA version, it depends on which modplsql features your application uses. The main modplsql features that are not yet supported are:
Basic database authentication - The listener must be configured with a single username and password and cannot dynamically change the database connection at run time.
Multiple DADS - Each listener is configured for one and only one database connection. However, there is a way to install multiple copies of the listener, and configure each for a different database connection.
Dynamic parameter passing - There must be a one to one relationship between fields on an HTML form (or query string variables in the URL) and the non-defaulted parameters of the called procedure. Name and Value arrays, with the "!" before the procedure name in the URL are not supported.
CGI environment variables in the DAD.
Oracle MAY support some or all of these features in the production version, or in some future version. We can probably influence this by telling Oracle what we want - but no guarantees. Kris Rice tells me that the APEX Listener was written to be extendable, so once Oracle gives us some documentation of how to extend it, some enterprising programmer may add some of these features as an extension.
Maybe you are looking for
-
How do I set calendar to always start in Month view?
My Ipod Touch calendar always seems to revert to Day view, even when I go into Month view and then turn it off. Next time I open it, it's back in Day view. I prefer to have it open in Month view, and I can't see any option or setting that would do th
-
Have a Mac G3, Labview 5.1, OS 8.1. Using it for lab data acquisition. Just purchased another G3(used) and it has OS9.1. I would like to configure this new G3 such that if the old one blows up, I an just plug this one in and continue normal operation
-
ive recently updated my IOS, which deleted my music and apps, and it is now not allowing me to press sync, any help?
-
We are looking at changing all the printers within our company. Rather than removing the old printers and installing the new printers on each Mac, is there an easy way to roll out the changes on all machines? I was considering setting up all the new
-
COM: "Add Connection Point" does not generate Fire_* methods (VS2010)
I'm currently attempting to implement a COM component with event support using connection points. I've followed the general instructions given in http://msdn.microsoft.com/en-us/library/9h7xedd1%28VS.80%29.aspx and http://msdn.microsoft.com/en-us/mag