Producer and Consumer Issue

Hi,
Do we need to consume all the portles of the producer from portal admin console?
or is there a way to use the .Portal file directly as all the portlets of the producer are consumed already?
Edited by: user8894463 on Dec 15, 2009 2:34 PM

Hi
1. In 10.x (not sure about 9.x), from Workshop IDE, we can create like Standalone Books and Pages that can be Consumed as Whole on the Consumer side. From IDE, right click project and select New -> Other -> Expand Weblogic Portal and you should see "Book", "Page". Once this is done, you can add all your portlets on these stuff. Now on Consumer Side, when you register the Producer, you do See these Books and Pages. So if you consume full Book or Page, you will get all the Portlets also. This is very handy instead of creating and consuming "n" number of portlets on consumer manually. Also if your consumer portal is created from Workshop IDE, you can choose above menu option and select "Remote Book" or "Remote Page" and this asks for Remote Producer URL and consume that entire book or page. All that matters is on Producer side, you will not create Books and Pages in .portal file. Instead use the first above option like Create New Other -> Book or Page.
2. By default, when you register Producer, it just shows list of all Portlets from Producer. It is upto you on Consumer side, what portlets to consumer or not and create corresponding proxy portlets. By default, all portlets created from WLP are Remotely consumable.
The concept of creating standalone Books and Pages and consuming them as a whole on Consumer side is really cool.
HTH
Ravi Jegga
Edited by: Ravi Jegga on Dec 15, 2009 6:25 PM

Similar Messages

  • Business Package on Producer and Consumer in a FPN

    Hi Gurus,
       I need to know if we need to install the Same Business packages on both the producer and consumer or is it enough to install the Business Package only on the producer....
    Regards!

    Whats your scenario, typically one would go about installing business packages and other content on the producer or multiple producers and federate it with a consumer portal and provide access via the consumer.
    For example if you have a box which hosts ESS content, another box which hosts BI content and you have a global portal which is the box which all the end users will be accessing, then you simly have to install BP for ESS on the ESS box, create BI content on the BI box and display all this content via the consumer (global portal).
    Hope this helps.
    Good Luck!!
    GLM

  • Producer and Consumer  JMS Connections

    Hello,
    I am writing a JMS provider and I notice that Flex creates a
    JMS connection for a Producer and another JMS connection for a
    Consumer in my test application. Is this normal behavior for Flex
    or do I have a problem with my provider that is causing this?
    Thanks,
    Chris Shafer, George Weiss Associates

    If your goal is to have one JMS Consumer which receives
    messages and broadcasts them to Flex clients, you can do this
    without using the JMS adapter. Write some Java code either as a
    "message driven bean" or using the JMS apis directly to grab the
    JMS messages. You can then convert these messages to flex messages
    and send them to an ActionScriptAdapter flex messaging destination.
    See the Feed.java sample for the code necessary to do this. The
    trickiest part of this is getting the JMS messages in the first
    place. We are working on packaging up our JMS consumer apis so you
    can do this more easily in a future release.

  • Drawback of putting producer and consumer in one loop. [Ethernet IP]

    The "Create Assembly Instance" exapmple vi have two separte loops. One for the input (producing data) and the other for the output (consuming data). Would it be possible to combine everything into one loop? Are there any drawbacks to using one loop for the input and the output?
    and i know one drawbacks will be that both consumer and producer will have to have the same rate.. 

    That's an interesting piece of code.  It's not so much a producer/consumer as it is two separate loops handling input and output.  Take a look at this link to see what producer/consumer is: http://www.ni.com/white-paper/3023/en/  You can also find the code by going to File->New and opening the "From Template" folder under VI.
    What controls your state machine?  With events not being possible on a RT system, I'd expect you'd have some form of polling.  Polling would still use a time period between polls.  Granted, the network requirement would definitely break determinism, as you've already noted.  If you're doing this, why not put it into a timed loop?  Timed loops aren't always determinstic.  That's why there is a "Finished Late?" terminal.  It's not the loop that makes the code deterministic, it's the way you put your program together. By moving it into a timed loop, you gain the ability to give it a priority.  I'll explain why this is important in a minute.
    You're welcome to combine the two into a single loop if you still meet your timing requirements.  That's a design choice that is up to you.  I don't know what your other Ethernet/IP "stuffs" is, but I'd likely combine this into my output loop if possible.  I'm assuming it has something to do with the data you care to send.
    The overhead from the loop isn't enough to worry about the worload on the CPU.  Ultimately, the code within the loop determines how rough you're being on the CPU.  That's true in one loop or in four loops.  Splitting code into multiple loops just lets you prioritize code.  If everything is in a single loop, it all must run before the next iteration.  If your code is split into ten loops, as an example, only what is inside each loop must be run on that loop's iteration.  Using priority, as you've mentioned, ensures you determine which loop runs first.  Let's say that loop completes and gives the other loops time to run on the CPU.  Before they complete, the loop wants to run again.  The CPU will go back to that loop and run.  By splitting the loops up, you've ensured this piece of your code will run even if the CPU can't handle processing all of the code within that period.  Rather than hurting determinism, you've aided it.  The parts of your code that you aren't worried about being deterministic happen when the CPU has time for them.  The parts that you NEED to be deterministic happen deterministically and push those other parts of the code out of the way.
    Looking at the example code you're showing, I'd really want to know what it is you plan to do with the code and what you need to be deterministic.  I'd assume you plan to read the data, process it, and send a corresponding output.  If you need ALL of this to be deterministic, I'd put it within a single loop or use queues to send data from the input loop (commented as consumer) to the output loop (commented as producer).  This decision would really just depend on how fast you care to acquire data and how deterministic you desire the output to be.  Without using the queues, you create something called "race conditions."  When you send an output, is that related to the newest input or one before it?  You simply cannot tell.  
    Jeff B.
    Applications Engineer
    National Instruments

  • Thread Producer and Consumer

    Hi
    I have an array that keeps Integer into it. what is wrong with this problem i cant fix it. Thread Consumer never start.
    Producer class: Putting nr 1 to 50 int into array eg. 1-2-3-4-5-6-7-8-9-10.....
    Consumer class : removing 50 down to nr 10 from array 50-49-48-47...
    Main Class : Threads creator and starter.
    How can i let Thread P start before C. and when P is finnish it call C, and then C when its done it wakes up P and running like that for life. HOWWW Plz help
    MAIN CLASS:
    import java.util.ArrayList;
    public class Main {
    static ArrayList<Integer> list = new ArrayList<>();
    public static void main(String[] args) {
    Thread p = new Thread(new Producer());
    Thread c = new Thread(new Consumer());
    p.start();
    c.start();
    PRODUCER CLASS:
    public class Producer extends Main implements Runnable{
    @Override
    public void run() {
    while (true) {
    // Tilføjer cornflakes til arrayListen hvis < 10
    if (list.size() <= 10) {
    for (int i = list.size(); i < 50; i++) {
    list.add(i);
    System.out.println("p : " + list.size());
    try {
    Thread.sleep(100);
    } catch (InterruptedException ex) {
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }// end Forloop
    }// end if
    }// end while
    Consumer CLASS
    public class Consumer extends Main implements Runnable {
    @Override
    public synchronized void run() {
    while (true) {
    // Tilføjer cornflakes til arrayListen hvis < 10
    for (int i = list.size(); i > 10; i--) {
    list.remove(i);
    System.out.println("c : " + i);
    try {
    Thread.sleep(100);
    } catch (InterruptedException ex) {
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }// end Forloop
    }// end while
    }

    That's a reason for failure in general by the way - trying to do stuff without understanding stuff. Its best avoided in the future - first learn and learn well, then code. Then when you have problem with said code, come here and ask for help. Not before that, a forum is not a personal information service or substitute teacher.

  • FPN - Producer and consumer support stack synchronication?

    We have BI portal as a producer portal to a consumer portal (corporate portal). Both are on support stack 13 at the moment. We need to apply support stack 14 to the BI portal. Do we need to apply the same support stack to the consumer portal? Is there support documentation that contains this information?
    Thanks.

    Rich,
    We were on SP13 on both CP and PP but we ffound at least one problem when we upgraded BI PP to sp14 and CP is still on SP13. I am not certain that this problem is because of SP synchronization but I do suspect. We are looking at patching CP to SP14 and see if the problem dissapears.
    Yes, as per SAP both CP and PP can be on different SPs.
    Regards,
    Kiran

  • Will the memory leak for queue when used in producer and consumer mode in DAQ to transfer different sized array.

    In the data acquisition, I use one loop to poll data from hardware, another loop to receive the data from polling loop sent by queue.
    But everytime the size of the transferred data array may not be the same, so the system may assign different array size and recycle very frequently.
    Will it cost memory leak. Or will it slow down the performance, since the array size is not fixed, so every time need to create a new sized array.
    Any suggestion or better method. 
    Solved!
    Go to Solution.

    As i understand your description, your DAQ-loop acquires data with the setting '-1' for samples to read at the DAQmx read function. This results in the different array sizes.
    Passing those arrays directly to a queue is valid and it does not have significant drawback in performance (at least as far as i know) and it definetly does not leak memory.
    So the question is more or less:
    Is it valid that your consumer receives different array sizes for analysis? How does your consumer handle those arrays? 
    hope this helps,
    Norbert 
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • JMS producer and consumer as Web service?

    Q:WSI17-Does Weblogic support JMS producers and consumers as Web service? And could
    it be Topic or Queue?

    A<WSI-17> The message style web services can be producers, consumers or both. Additionally,
    both Point to Point (Queue) and Publish/Subscribe (Topic) domains are supported.
    See the documentation at http://edocs.bea.com/wls/docs61/webServices/develop.html#1031913.
    "Elie Dagher" <[email protected]> wrote:
    >
    Q:WSI17-Does Weblogic support JMS producers and consumers as Web service?
    And could
    it be Topic or Queue?

  • BOM that needs to produce and consume same component

    If I have a process in which I am mixing powders in a closed system with dust control (large vacuum) what would you recommend for the following scenario?
    As I make the final blended powder, I am salting back in a variable amount of powder which has been "reclaimed" from the dust collection system.  While I am salting back in this reclaim, I will also be collecting more powder into the reclaim system, which will also get "salted" back into the process.
    In order to handle ordering additional raw materials (the base powders), I need to recognize the fact that a portion of the raw materials will be collected into the dust collector to become reclaim, but I am also USING previously collected reclaim.
    Can you structure a BOM like so?
    Alt BOM 01:
    ComponentMaterial  A         272.5 KG
    ComponentMaterial  B          272.5 KG
    ComponentMaterial  C          272.5 KG
    ComponentMaterial  D         272.5 KG
    ComponentMaterial  E          -90      KG
    ComponentMaterial  E          125      KG
    Alt BOM 02:
    ComponentMaterial  A         272.5 KG
    ComponentMaterial  B          272.5 KG
    ComponentMaterial  C          272.5 KG
    ComponentMaterial  D         272.5 KG
    ComponentMaterial  E          -90      KG
    ComponentMaterial  E          55        KG
    Does that make sense?

    yes this makes sense. it should work.

  • Send data from producer to consumer

    Hi,
    I am trying on a sampe project with weblogic as both producer and consumer. I could send the data from consumer to producer to using Interceptors. Now, my requirement is to send data from producer back to consumer. I can do this using SimpleStateHolder, but I want a generic way like passing information in cookies/HTTP Request Headers from producer...etc and to retrieve them at consumer. This is because in my actual implementation the producer will be websphere.
    So, please can anyone tell me how to send data from producer to consumer ???
    Thanks,
    Anu

    Hello Anu,
    I believe WLP 10.2 requires some patches to get the consumer
    interceptor to properly access cookies coming from the producer, so
    that is probably why you aren't seeing the cookies. After reading your
    use-case, I don't think you will need to get these patches to get your
    use-case to work, but if you are still interested in the patches, I can
    find out the details for you.
    The reason the redirect code you posted isn't working is because the
    response has already been committed during the getMarkup operations and
    it is too late to redirect the page to a different URL, so the redirect
    is being ignored.
    The good news is that the functionality you want should all be fairly simple to implement.
    When the user opens the remote portlet, makes a selection and then
    submits it, the first thing that will happen is a WSRP
    BlockingInteraction call to the producer, to let the remote portlet
    know that a user has interacted with it. This happens before the
    GetMarkup operation, during a time when it is still legal to redirect
    to a different URL. In fact, the portlet on the producer is allowed to
    send a response indicating that the page should be redirected to a
    different URL.
    So in your remote portlet, you can have it look at the form values that
    were submitted during the BlockingInteraction call, and if the user
    selected the particular value that should be redirected to another
    portlet, the remote portlet can request a redirect. The only problem
    here is that your remote portlet doesn't know the URL to the portlet it
    wants to redirect to on the consumer side, but you can handle that in
    an interceptor on the consumer.
    So, rather than implement the IGerMarkupInterceptor, use the IBlockingInteractionInterceptor. For example:
    public sampleInterceptor implements IBlockingInteractionInterceptor
    // Other methods need to be implemented to do nothing...
    public Status.PostInvoke postInvoke(<code>IBlockingInteractionRequestContext requestContext,
    IBlockingInteractionResponseContext responseContext)</code>
    String redirectUrl = responseContext.getRedirectURL();
    if(redirectUrl != null)
    // The producer portlet wants to redirect- substitute the right consumer URL
    PageURL pageUrl =
    PageURL.createPageURL(requestContext.getHttpServletRequest(),
    requestContext.getHttpServletResponse),
    "voipTrunk_portal_page_11_page_12_page_13");
    responseContext.setRedirectURL(pageUrl.toString());
    This should be all that you need to do on the consumer side. It will
    automatically redirect for you to the URL you set in the interceptor,
    since the producer portlet requested a redirect.
    On the producer side, you will need to have the portlet send the
    redirect request during the BlockingInteraction operation. How you do
    this depends on what portlet type you are using and what producer you
    are using. For example, in WLP using a JSP portlet, you would need to
    use a backing file on the portlet, and have that class implement the
    JspBacking class:
    http://edocs.beasys.com/wlp/docs102/javadoc/com/bea/netuix/servlets/controls/content/backing/JspBacking.html
    Then, in the handlePostbackData method you would look for the special value and redirect if it exists, such as:
    public boolean handlePostbackData(HttpServletRequest request, HttpServletResponse response)
    String paramValue = request.getParameter("paramName");
    if((paramValue != null) && (paramValue.equals("specialValue"))
    // Need to send a redirect request
    PortletBackingContext pbc = PortletBackingContext.getPortletBackingContext(request);
    pbc.sendRedirect("http://anyUrlWillWork");
    return(true);
    return(false);
    Since the consumer interceptor is changing the redirect URL, any
    redirect URL the producer sends will work- it just needs to look like a
    valid, absolute URL to pass some simple checks on the producer.
    Backing files are documented here: http://e-docs.bea.com/wlp/docs102/portlets/building.html#wp1077130
    As I mentioned before, different portlet types and producers would do
    this differently. For example, I don't think WebSphere has backing
    files, and in JSR168 portlets a backing file is not needed- you would
    do the equivalent code in the JSR168 portlet's processAction() method
    (using javax.portlet.ActionResponse.sendRedirect(String URL) to send
    the redirect request). JSR168 portlets should work in both WLP and
    WebSphere, but I don't know the details of the portlet type you want to
    use on the WebSphere producer; if it isn't a JSR168 portlet, WebSphere
    must have some way equivalent to the backing file's handlePostbackData
    method to participate in a WSRP BlockingInteraction operation and
    request a redirect.
    No cookies or headers are required though, so I don't think you would
    need the patches to WLP 10.2 for the interceptor dealing with cookies.
    Hope this helps,
    Kevin

  • Weblogic Producer and Sun Portal as Consumer

    Hi,
    I am trying to have Weblogic 8.1SP4 as a producer and Sun Portal 2005Q1 as consumer.
    I have deployed my JSR 168 compliant portlet application on Weblogic. When i try 2 register a WSRP consumer in Sun Portal using the WSDL URL generated by Weblogic it throws a
    java.io.FileNotFoundException: http://hostip:port/TestPortalProject/wlp_wsrp_v1_bindings.wsdl.
    Any suggestions on why such an exception is thrown?
    Regards,
    Mukta

    This is a known issue. The work-around is to deploy copy the imported
    files from wsrp-common.jar's schema/src dir to the root of your webapp.
    Subbu
    Mukta Shetye wrote:
    Hi,
    I am trying to have Weblogic 8.1SP4 as a producer and Sun Portal 2005Q1 as consumer.
    I have deployed my JSR 168 compliant portlet application on Weblogic. When i try 2 register a WSRP consumer in Sun Portal using the WSDL URL generated by Weblogic it throws a
    java.io.FileNotFoundException: http://hostip:port/TestPortalProject/wlp_wsrp_v1_bindings.wsdl.
    Any suggestions on why such an exception is thrown?
    Regards,
    Mukta

  • Consumer Producer and FPN

    I have a layered portal approach, one for internal use, one for external customers and one for vendors. With multiple WD for java apps, and webservices deployed can a portal serve as both producer and comsumer becuase of our approach.
    Thanks Mikie

    can a portal serve as both producer and comsumer
    yes it is, a consumer can produce the content aswell
    jo

  • IQ826t Restart and Heating Issue

    One thing I definitely do not like the HP's support especially when they will not allow us to buy a 7 Upgrade from Vista nor will they support something (even when I find their glitches and they admit after telling me it was just the OS).. On Repair work, I had to ship it out and this will be my 2-3 time to do repair on this PC in the past 3 years (and I have to wait a week for the repair to be done...)
    Besides that, IQ826t, Win 7 Ultimate SP1
    All Drivers are up to date with HP website (utilizing Win 7 64 bit drivers and Firmware is up to date). AVG update/scan (no issue - confirmed even rootkit).. Malwarebyte - Scan and no issue
    Disk Cleanup, Disk Defragmentation done on a monthly and quarterly schedule
    Biggest Issue:
    I am getting a crash with Win 7 0x124 Stop Error Message (happens periodically and even after a reboot)
    Never had this issue until May and the upgrade to Win 7 was done last year with SP1 update done on March (so it is not an issue with the OS as HP support personnel seems to think... I proved them the issue with Windows Update History, The  Bluescreen error code on my error code reader)..  This machine under warranty and I had issues with it constant (even in Vista)
    They state that it is the OS.. Again, if that was the case, I would think it would happen right away like my Toshiba on SP1 upgrade... That was not the case in the matter.  I have a firmware reset (default settings) and the issue persist..
    The Error Code relates always HAL.dll or ntoskrnl.exe
    One if hardware compatiblity and the other is an OS kernel exe file.. And this usually checking knowledge base relates to hardware failing due to 1) Compatibility (which HP website confirms is not the case) 2) OS corruption (which is not the case checking on safe mode and this happening STILL 3) Heat Issue (which I believe is the issue and was been documented on the Internet
    What I am noticing is the unit is extremely HOT (vent is almost burning when it has been off and just turned on).. I wonder if the hardware pieces are literally melting to destruction since I can't just open it up (they state it will void my warranty)
    The Symptoms before the Crash (happens any time.. Even right after a power up)
    If you are playing audio or video, you will start to hear jitters and sound seems to echo itself .. Video would start to lag and become choppy..  Systems start to slow down and things seem to run very slow.. I have seen the power light on the PC start on but the touchscreen just go black (will not restart sometimes)..
    Minor Issues (but could be related)
    1) When running PC Hardware Diagnostic, they will come up with an error code in the past and that was warranted for a motherboard replacement (of course, they ship the box to the wrong location and I was in the middle of my wedding so I get to it now).. It was pertaining to PCI Express Status ICH9 PCI Express Root Port  where it will generate an error code... Now, running the diagnostic... I will not get any error but PCI Express Root Port 3 & 5 do not show up on the diagnostic... Wouldn't that obvious show something that is a problem when there are 6 ports (which on the previous diagnostic that I can't grab past logs shows that). That is not warranted for a warranty work? Just a note, I got the fail test code (which was intermittent but keep happening and the tech support would not look at previous case.. Port 4 failed and a fatal device code)
    2) Blu-Ray player will not run and their answer is that it is your Blu-Ray until they realize that I ran it on 3 different Blu-Ray player standalone, different Blu-Ray, and confirm DVD will work.. They still think it is a software issue until they can't deny my point when it will not read the Blu-Ray no matter what (they took control and confirmed it).. They believe the HP SmartDVD software was failing because of Win 7 and not Vista (even when I downgrade and confirm it works, I stated the software is the issue...  Lone and behold, 2 months later they had an update that they refuse to admit I was RIGHT on the matter and done 15 hours of troubleshooting that they were wrong about)
    3) Wireless Keyboard and Mouse lost connectivity even if the battery is not low... Just stop typing or omit letters.. This is considering the keyboard is literally in front of the touchscreen
    4) Touchscreen is sensitive when it wants to be but won't in other... Constant issues there
    This is why I have so much issue with support.. They seem to show that they will do anything to deny the issue.. Heck, I am a computer technian calling on the issue.. It ain't like I didn't troubleshoot on the matter... But they think we are all morons and when I prove them wrong, they will use any excuse to honor warranty... That is why it is amazing..

    Look in your Settings > App Manager.
    Tap Device Monitor.
    Tap the Battery tab.
    At the upper right, tap "Since Last Charge" to change to "Last 48 Hours".
    What apps or processes are consuming the most battery power?
    ALSO, in setting up your new Z30, are you syncing many contacts or calendar data from a connected email account?
    Social accounts such as Facebook or Twitter?
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Podcast Producer and Internet Explorer

    I've configured Podcast Producer on 10.6.8, and it is working fine - items are processed from the Capture software through to PcP2 and Xgrid, and are then uploaded to a Wiki.
    The issue is with clients using Internet Explorer (any version) and their ability to play audio files uploaded from Capture or through the web interface of the wiki. Videos work fine, but whatever code is used to upload just audio files to the wiki cannot be interpreted by IE. I know that 10.6.8 was meant to address some of these issues, but I am just not sure how to proceed.
    Has anyone had a similar experience?
    Cheers
    Kieran

    Not sure if this will fix your problem, but I was having the same problem until I looked at the specs for XGrid, it has to run on an Intel Mac. This is where you can get the specs:
    http://docs.info.apple.com/article.html?artnum=306737
    Here is what is in the doc:
    Podcast Capture requirements
    Any Mac running Mac OS X 10.5 Leopard
    iSight camera (built-in or external) or FireWire DV camcorder
    Podcast Producer Server requirements
    Any Mac running Mac OS X Server version 10.5 Leopard
    Xsan for optional cluster file services
    Podcast Producer Xgrid rendering requirements
    Any Intel-based Macintosh Server or Intel-based desktop Mac (a Mac Pro, for example)
    Mac OS X 10.5 Leopard or Mac OS X Server version 10.5 Leopard
    At least 1 GB of memory (RAM) plus 512 MB of additional RAM per processor core
    At least 50 GB of available disk space
    Xsan for optional cluster file services
    Quartz Extreme-enabled video chipset
    Note: Quartz Extreme support can be verified in the Graphics section of Apple System Profiler.
    Note: If a system is providing multiple Podcast services (for example, Podcast Producer and Podcast Producer Xgrid rendering), the system needs to meet both requirements.

  • How to change Purchase Order currency after Good receipt and Good issue?

    Hi,
    I've a PO created last year. The PO currency has been entered wrongly.
    My store colleague has been performed good received and consumed it.
    Now, I am not able to change PO currency to correct one, due to this message:-
    Currency can no longer be changed
    Message no. 06489
    Diagnosis
    As a basic rule, the currency cannot be changed if there has already been a goods receipt against a document.
    If the document contains external service and/or limit items, or if an invoicing plan has been assigned to an item, the currency cannot be changed following the receipt of an invoice either.
    If external service items exist, the currency also cannot be changed if services that have actually been performed have already been recorded or if the item in question has been assigned to a preventive maintenance (servicing) plan.
    Is there anyway to change PO currency after Good receipt and Good issue? Thanks !

    Diagnosis
    As a basic rule, the currency cannot be changed if there has already
    been a goods receipt against a document.
    If the document contains external service and/or limit items,
    or if an invoicing plan has been assigned to an item,
    the currency cannot be changed following the receipt of an invoice either.
    If external service items exist, the currency also cannot be changed if
    services that have actually been performed have already been recorded or
    if the item in question has been assigned to a preventive maintenance (servicing) plan.
    Answer in question itself,need to cancel all documents of wrong currency in order of LIFO,
    Create a new purchase order.

Maybe you are looking for