Questions about PO creation / update / cancel interfaces

Hi there,
An E-Business Suite 11.5.10.2 customer wants to use the 11i PO creation / update / cancel interfaces in order to manage Purchase Orders created from a 3rd party system.
I've been through the 'Oracle Purchasing Open Interfaces' guide (115mfgapi.pdf), but it's still unclear to me whether:
1/ It is possible or not to add a new PO line to an existing PO through the interfaces ? If yes, how do one do that: what interface ? sample code ?
2/ It is possible or not to change the distribution (= accounting information) of an existing PO line ? If yes, ...
3/ It is possible or not to reject the full PO document if a single line fails during the PO creation ? Same for a batch of POs: reject the full batch if a single PO fails ?
4/ Is it possible or not to cancel a PO line even if the shipment already occured ? And even if the payment already occured ? Are there some controls here ?
Thanks for your help,
Kind regards - Hugues

1. Answer is YES. You can add a line to an existing standard purchase order by choosing the UPDATE. This can be done through Purchase Documents Open Interface.
I can not give an example. It's quite long to write it. But You should use Open interface user guide to find nessesary columns. Just insert new row with status UPDATE and try to import
2. Think You can NOT.
3. Answer is YES. You can do it. Use "Cancel PO API". Function name is PO_Document_Control_PUB.control_document ().
For technical details read Open interface UG.
You must create exception to be avoid problems if some lines can not be canceled.
4. Answer is YES. You can do it if there's still expected quantity to recive.
boldJust from UG:*bold* :)
bold1. Purchase Order Change APIs. bold
boldThe APIs enable you to do the following*bold*:
- Record Acceptance/Rejection in Oracle Purchasing
- Update quantity, price, and promise date on standard purchase orders or releases in Oracle Purchasing
boldSo only qty, promissed date, price*bold*
boldRead next*bold*:
Line Level Validation and Update: This logic occurs when LINE_NUM is not null
and SHIPMENT_NUM is null.
1. No update occurs if the line status is FINALLY CLOSED or CANCELLED.
2. The new quantity or price value must be positive.
3. If updating quantity, the new quantity must be greater than or equal to the
greater of total quantity_received of all shipments and total quantity_billed
of all shipments for this line. After the update takes place, the new quantity
will be prorated at the shipment level and for each shipment the quantity is
prorated at the distribution level if applicable.
4. If updating price, no update occurs if a receipt has been created against one
of the line’s shipments and it's been accrued upon receipt. No update
occurs if an invoice has been created against one of the line’s shipments.
After a price update takes place, price changes are rolled down to the
shipment level for standard POs. No price update occurs for a release if the
Price Override flag on the blanket purchase agreement Line is No.
boldSummary:*bold*
boldYou can update qty if still there's a qty to receive (Expected) and if PO still is not canceled*bold*
boldEXAMPLE:*bold*
Usage Example
set serveroutput on;
-- After the API completes, do not forget to commit if the result is 1
-- and rollback if the result is 0.
DECLARE
l_result NUMBER;
l_api_errors PO_API_ERRORS_REC_TYPE;
BEGIN
-- This needs to be changed according to your environment setup.
FND_GLOBAL.apps_initialize ( user_id => 1318, resp_id => 50578, resp_appl_id => 201 );
-- Record an acceptance of Y for PO 1261.
l_result := PO_CHANGE_API1_S.record_acceptance(
x_po_number => 1261,
x_release_number => null,
x_revision_number => 0,
x_action => 'NEW',
x_action_date => null,
x_employee_id => 588,
x_accepted_flag => 'Y',
x_acceptance_lookup_code => 'On Schedule',
x_note => 'All valid',
x_interface_type => 'APITEST',
x_transaction_id => null,
version => '1.0');
IF (l_result <> 1) THEN
-- Handle the errors in the PO_INTERFACE_ERRORS table.
END IF;
-- Change the quantity to 5 on line 1, shipment 1 of PO 1263.
l_result := PO_CHANGE_API1_S.update_po (
x_po_number => 1263,
x_release_number => 1,
x_revision_number => 1,
x_line_number => 1,
x_shipment_number => 1,
new_quantity => 5,
new_price => NULL,
new_promised_date => NULL,
launch_approvals_flag =>'Y',
update_source => NULL,
version => '1.0',
x_override_date => NULL,
x_api_errors => l_api_errors,
p_buyer_name => null
IF (l_result <> 1) THEN
-- Display the errors
FOR i IN 1..l_api_errors.message_text.COUNT LOOP
dbms_output.put_line ( l_api_errors.message_text(i) );
END LOOP;
END IF;

Similar Messages

  • A logical question about why we update firmware

    just being real here
    we all like the latest and greatest products, especially mobiles, and we all know they have their share of isues. but yet still we buy even though the device we owned previously worked fine or almost something like 90%.
    the question is why do we buy these devices, then depend on firmware updates that sometimes improves speed, or maybe add a couple apps, but doesn't solve the bugs. why do we even bother to update. do we have to. if our phone is working ok, why go through the update process, lose all our installed apps, and then start encountering problems we never had before.
    it is just a strange price we pay for technology. remember before firmware updates were available, our phones worked great. no worrying about wi-fi connection problems, or camera bugs, or widgets not loading, or phone constantly crashing and rebooting on its own. why can't we get a phone that works 100%, especially when we shell out up to $600us or sometimes more.
    when i new update is released i am hesitant to go through it, but in the end still do. sad but true. so the question is, WHY?
    Message Edited by coopere on 06-Jul-2009 05:13 PM
    everything happens for a reason
    check out my blog @ http://mycellife.blogspot.com/

    Good question ;-)
    That question is more philosophical than mobile-related I think. That´s how people work and that´s how our market system works. People always want to have the newest gadgets, the latest technologies etc. Sometimes they´re better, sometimes not, but whether a product succeeds in the marketplace is not always about quality.
    Demand creates offerings. If there wasn´t any demand for newer mobiles, there wouldn´t be any.
    Regards,
    Hendikoischnur
    IT will paint our future - either green or black
    * ecosia, the eco-friendly search engine (powered by Yahoo/Bing/WWF);
    * Searching for pics online? Try ecocho.eu or treehoo.com
    * For those who don´t want to miss Google: Try znout.de - it´s Google running on green energy
    * CO2-free chatting: Try Jabber-server.de (running on 100% waterpower)

  • Question about working with an audio interface

    Hi
    I just bought an audio interface (tascam us-122l) and i have logic express 8 installed, so i've connected my guitar and my keyboard (via MIDI) to the audio interface, and i've read the user's manual but i still don't know how things work...
    Is it possible to use the built-in speakers on my imac as a sort of "amplifier". So when i play on my guitar or keyboard, i can hear what i'm playing trough my imac.
    This is what i did so far;
    - installed the drivers and updated the firmware
    - system preferences > sound > input and clicked on my audio interface (US-122L)
    - LE8 > preferences > audio > devices > and i selected the US-122L as device
    This might be a stupid question but i just want to record songs.
    Thnx anyway.

    Logic audio preferences assumes you want to use your interface as an output for monitor speakers - the standard way and the best way given that your internal spekers will be neither loud enough or good enough to act as great monitors. If you don't have speakers you will be able to hear what you have recorded through headphones connected to your interface. If you want to listen from imac speakers or audio out you do indeed need to change to "built in input" - this is just a name logic uses to refer to your imacs internal sound card (including input and output).
    To separate the input and output for different devices you need to set up your aggregate device, which you should be able to do, though you say you can't.

  • Question about creating and updating new columns in a table

    Hi, I have a couple of questions that would love some answers to
    Please bear in min that questions relate to datawarehouse / Just large tables with say about 50 million records
    1) How do you create new columns in a big table
    2) how do you update the new columns
    3) would you create an index on a column in a table with 200m rows when the only two possible values are stored in the column (e.g.Y, N) - give your resason
    my aswers to these would be
    1) simple alter table ...
    2) simple update statements
    3) No need to create an index
    I might be wrong on these in the context of datawarehouse
    cheers
    css_jay99

    If the number of Y vs. N is about 50/50, you only have to parse through 50% of the
    overall amount of columns.Fnord. If the ratio of Y to N was 1:20 then the index would be useful for searching for values of Y only. Or if the column is nullable and the bulk of the entries were null then it might be useful. But a 50/50 split? FTS is much more effective.
    So, it does depend on the data distribution, but in most cases such an index would never be used (or should never be used).
    Cheers, APC

  • A question about Job Creation

    Hi Expert,
    By JOB_OPEN, JOB_SUBMIT, JOB_CLOSE, we can schedule a job.
    When the first two FMs is executed, the job is still in 'scheduled' status. Only when the FM JOB_CLOSE is executed, the job will be in 'released' status.
    In my applicaiton, I need to check the job status. If the job is in 'scheduled' status, I think that the job creation is not successsful; Otherwise, the job creation is successful.
    But the issue is, if job is in 'scheduled' status, how can I know whether all three FMs is executed in the job creation or only JOB_OPEN and JOB_SUBMIT are executed while JOB_CLOSE still not starts?
    In the later case, the applicaiton should wait some time and check the job later.
    Thanks for your support
    Best Regards, Johnney.

    Hi,
    Suppose there two APIs.
    In API1, there are four steps:
    1. call FM JOB_OPEN
    2. call FM JOB_SUBMIT
    3. Save the Jobname and Jobcount in the DB
    4. CAll JOB_CLOSE
    in  API2, there are two steps:
    1. get the Jobname and Jobcount from the DB
    2. Call FM BP_JOBLIST_STATUS_GET to get the job status.
    API1 and API2 are executed asynchronically. Consider the following case:
    After STEP3 is executed(STEP4 has not yet been started), the API2 starts to run. Now the job status that API2 get is 'Scheduled'.
    This is not correct, because the job creation is still not finished. The API2 should wait some time and check later.
    So my question, is how API2 know that the job creation is not finished.
    Thanks & Best Regards, Johnney.

  • Three questions about the creation of secondary indexes in ODS design mode

    1. When we right click the Indexes folder in ODS design to select Create to create the Index folder 010, a small window pops up with a check box called "Unique", do we have to check this checkbox to create folder 010?
    2. If we would like to include 3 InfoObjects into the secondary indexes, then how many folders we need to create? Need to create 3 folders like 010, 020, and 030 and place the 3 InfoObj. into the 3 folder respectively or create only one folder 010 and place all the 3 InfoObj. into this one folder 010?
    3. In SAP documentation titled "BW Performance Tuning" about the Indices, it says "If the (uncompressed) F fact table is small, it is usually faster to drop the secondary (bitmap) indices before the load and build them up after the load"
    Someone here says secondary index is only for ODS other than for cubes, but from the above statement, F fact table is related to cubes, then how to explain it? Also the above statement is talking above the variant in process chain that when you bring in a variant to load data to cube, then the drop index and generate index variants will be automatically created, does it refer to this? And what's bitmap index?
    Thanks in advance and we will continue to give you reward points!

    Hi Kevin,
    Cube has Secondary index's. The index's that we find in the Manage of the Cube are the Secondary Index's. Please check the following link for more information.
    http://help.sap.com/saphelp_erp2004/helpdata/en/80/1a6473e07211d2acb80000e829fbfe/frameset.htm
    Also, to know about Unique indexes, use the following link
    http://help.sap.com/saphelp_erp2004/helpdata/en/9b/c743f5b40711d194f900a0c929b3c3/frameset.htm
    "The indexes displayed are the secondary indexes of the F and E fact tables for the InfoCube. The primary indexes and those defined by the user are not displayed. " (SAP help).
    This should answer your questions.
    Regards,
    Praveen.

  • Question about 1.1 update for ipod

    i've been reading a lot about the update for ipod... but in some pages/forums, say that the problems appear only with the ipod 5G 60Gb...
    i´m about to buy a black 5G ipod 30 Gb... i want to know if i should update it with 1.1 (2006-01-10)/b] or don´t do it at all...
    thank you
    -gomeeeta
    btw: what are really the improvements with the new update?
      Windows XP   amd

    that't not true. the clock feature is now quite different. Ie, it has Adelaide in the option. This would be really useful if the time wasn't incorrect and there is now no way to set the time manually. Would be nice if it synced with the computer when it was connected, but, looks like im just gjust going to have to be half an hour out until it gets fixed in the next version. It could be something to do with the daylight savings options, but either way, it's still annoying that you cant set it manually

  • Some questions about various software updates...

    Hi guys,
    I have a couple of questions regarding some of the updates.
    Is there such a thing as save as now? If so, how do I use it?
    What is the deal with this versions thing, I'm not sure I fully understand it?
    How can I tell mail to purge certain folders on my IMAP e-mail account?
    How can I remove my name from the top right corner of the screen?
    Thanks

    Here is a good article on "Versions"
    http://www.macworld.com/article/161192/2011/07/lion_versions_auto_save_resume.ht ml
    No more save as now.  Save.
    >User&Groups>Log-in Options (unlock the lock)
    control click and drag it off?
    imap:  http://mail.google.com/support/bin/answer.py?answer=78892

  • Question about Raid Driver Update V1.3.8.0

    Hi.
    Can anyone tell me whats the deal or what are the advantages of doing an update to the RAID driver Toshiba Windows XP MCE 1.3.8.0 ?
    Also had another problem..i tried to install the refered driver and it made an error..my raid version is still the one i had prior and couldnt install this version.
    Any help would be cool.
    thanks

    As far as I know the RAID driver need to be installed at the begging of the OS installation.
    Unfortunately there are no any official documents about the corrections and advantages of any updates.
    But I believe the newer driver could be compatible with more motherboards and controller.

  • Question about Classes, Abstract  Classes and Interfaces.

    I have been experimenting with Classes, Abstract Classes and Interfaces and wonder if anyone can explain this to me.
    I was looking for a way to assign a value to a variable and then keep it fixed for the session and have devised this.
    First I create an abstract class like this:
    public abstract class DatabaseConnection {
    private static String ServerName = null;
    public static void setServerName(String serverName) {
              ServerName = serverName;
         public static String getServerName() {
              return ServerName;
    }and then I created an interface
    public interface DatabaseAccess {
         String servername = DatabaseConnection.getServerName();
    }And finally the class itself with some test lines in it so I could see what was going on:
    public class CreateDatabase extends DatabaseConnection implements DatabaseAccess {
         public static void main (String args[]){
              new CreateDatabase();
         public CreateDatabase(){     
              setServerName("Server Name 1");
              System.out.println ("Before update ");
              System.out.println ("ServerName from Interface           = " + servername);
              System.out.println ("ServerName from Abstract Class = " + getServerName());
              System.out.println ("After update ");
              setServerName("Server Name 2");
              System.out.println ("ServerName from Interface           = " + servername);
              System.out.println ("ServerName from Abstract Class = " + getServerName());
              System.out.println ("==========================");
    }The output I get from the above is:
    Before update
    ServerName from Interface           = Server Name 1
    ServerName from Abstract Class = Server Name 1
    After update
    ServerName from Interface           = Server Name 1
    ServerName from Abstract Class = Server Name 2
    ==========================I also tried this in another class which calls the above class to see if I get the same effect
    public class CheckDatabaseAccess {
         public static void main (String args[]){
              new CreateDatabase();
              CreateDatabase.setServerName("Server 3");
              System.out.println("CreateDatabase "+CreateDatabase.servername);
              CreateDatabase.setServerName("Server 4");
              System.out.println("CreateDatabase "+CreateDatabase.servername);
              CreateDatabase.setServerName("Server 5");
              System.out.println("CreateDatabase "+CreateDatabase.servername);
    }The output of which is this:
    Before update
    ServerName from Interface           = Server Name 1
    ServerName from Abstract Class = Server Name 1
    After update
    ServerName from Interface           = Server Name 1
    ServerName from Abstract Class = Server Name 2
    ==========================
    CreateDatabase Server Name 1
    CreateDatabase Server Name 1
    CreateDatabase Server Name 1Can anyone explain why I appear to only be able to change or set the ServerName only the once?
    Is this the correct way to do it? If it is it's exactly what I am looking for, a way to set the value of variable once in a session and then prevent it being changed.
    Or is there a better way of doing this.
    What I want to use this for is for example, storing the accesses to a database on a server. I won't know what server the database will be stored on nor what the database is called so I create an INI file which stores this information in encrypted format, which is set by the database administrator. It occurs to me I can use this method to then retrieve that data once and once only from the INI file and use that throughout the life of the session to access the database.
    Any help appreciated
    Regards
    John

    Not gonna read all of it, but this jumps out:
    public abstract class DatabaseConnection {
    private static String ServerName = null;
    public interface DatabaseAccess {
         String servername = DatabaseConnection.getServerName();
    }You have two completely separate variables (with two different names, for that matter, since you were inconsistent in your capitalization, but it wouldn't make a difference if they did have the same name with the same case). And the one in the interface is implicitly public, static, and final.
    Anytime you refer to "servername" through a reference of type DatabaseAccess, it refers to the one declared in the interface.
    Anytime you refer to "ServerName" inside the DatabaseConnection class, it refers to the one declared in that class.

  • Questions about master-detail update and delete!!

    I have created a view object with two entity objects.
    These two entity objects map master-detail tables in DB.
    I want to update both tables when the user input, and delete the record in detail table (keeping master table unchanged) when the user click delete button.
    How can I do?

    did you figure this out? i have created VO made out of two updatable EOs and update works fine. But still have issue with deletion!

  • Satellite A100-599 - question about display driver update

    Hi,
    I have a Satellite A100-599 with a NVIDIA 7600go graphic card and I have Bioshock like most of you the game crashes because of some problems with the graphic card drivers, no pb...in the meantime NVIDIA released some new patches to the Forceware and after I rechecked the Toshiba driver support database I saw a new release in the Display driver list for WinXp.
    One of them seems to be from 13/09/2007. I downloaded the drivers, installed them and after I checked the driver details in the Device manager list and to my surprise the details said the drivers are from 2006. I reinstalled the drivers and the same thing appeared. I checked the XML that was in the drivers archive and surprise ...the drivers are really the old ones from 2006. So my question is this: Do you have any Display Drivers for my model that work for Bioshock :D
    Regards,Marian

    I dont know if WE have. I think it would be took some long time to ask every single user: hey, do you have some drivers for blackmodjo? Ah, come on, please. Just a little bit of them... ;)
    No, I have a better idea. Its like cooking a meal. The ingredients: DriverCleaner Pro and the website www.laptopvideo2go.com and .... ta ta ta TAAAA a lot of patience
    To get some good "bio"shocked meal just follow this receipt:
    Go to
    http://www.laptopvideo2go.com/
    read before you do anything (YES, even before you continue BREATHING) the FAQ-section on that site (RECOMMENDEDRECOMMENDEDRECOMMENDED)
    and then download the drivers. Do it, yes...
    Then download drivercleaner by searching for it on www.google.com and THEN, read their Manual before doing anything else (Ok, you can continue breathing..)
    After reading their manual you will something like:
    1. Starting program, doing something, restarting machine
    2. starting in safe mode, starting that program, removing..yadayadayada
    3. Installing new driver
    3. Playing Bioshock
    4...
    5..no..6. Thanking me and giving me your first born.. ;)
    So, by cutting away around 40% of my humoristic stuff and following the constructive technical instructions from me you will be able to play bioshock.
    Greets :)

  • Question about user creation.

    So I've created using the Wiki article https://wiki.archlinux.org/index.php/Users_and_groups here.
    I've created a user and gave it a password and added to the wheel, and it works fine. I can login and it starts X and everything, however there is no file structure within the home/username directory. I always see on Arch Wiki and other ones about editing X rc files and what not, and they're referring to ~/.xinitrc or something similar.
    However my X files are located in the root place still. Is this something I should be taking into consideration and changing? I don't want to get further down the road and then have something be setup wrong. As of right now the only folders in my user folder are Desktop and Downloads, and I created those. I'm just wondering if there is something I'm supposed to do to transfer my X server and Window Manager stuff from the root positions to the user level. If running these from a root point is an okay thing to do I'm fine with that, I'm just under the impression I'm not supposed to do that.

    jasonwryan wrote:Don't run X as root. Follow the xinitrc wiki article and move all the files you need to run X as your user to their ~.
    Alright. Thanks for the link, should I follow that as a general rule of thumb(Although I can't see myself really installing anything else as root in the future)? Right now my Display Manager and Window Manager as both installed under root as well, and a couple other things I believe.

  • A question about Arch package search web interface

    If a dependency or a 'Required By' package is in [testing] or [community-testing] it's marked as such e.g. 'foo (testing)'.
    pygtk 2.24.0-3 is in [extra] and should depend on packages in [extra]. One if its dependencies, pygobject2-devel, is both in [extra] and in [testing] http://www.archlinux.org/packages/?sort … =&limit=50
    pygtk should depend on the one in extra and pacman pulls it all right, but according to the web interface http://www.archlinux.org/packages/extra/i686/pygtk/ it depends on the one in testing. When you click (or mouse over) on 'pygobject (python2-gobject2)' you go to http://www.archlinux.org/packages/testi … -gobject2/ even though it's not marked as a [testing] package.
    Why is it so? Is it a bug?

    It may be a glitch related to package foo providing bar, like systemd providing libsystemd.
    Another example of a package in [extra] depending on a package in [testing] instead of the one in non-testing repo: http://www.archlinux.org/packages/extra … tsservice/
    accountsservice 0.6.25-1 depends on systemd 194-4 instead of systemd 194-3.
    Bug reported: https://bugs.archlinux.org/task/32018

  • Question About the New Update Due out this Month

    Hi I would like to know when Apple, does come out with the New update this month will it be for the New iPhone, do out on June 9th,2008 or for the People who have the Old iPhone, that will then be out dated?
    Thanks
    Lisa*

    Firmware update 2.0 will be for all existing iPhones, and for all iPod Touch(es), but iPod Touch owners must pay a nominal fee for the update due to accounting reasons.
    Firmware update 2.0 will likely be pre-installed on the 2nd generation iPhone. If not, it can be installed as an update the same as for the first generation iPhone.
    Updates for the first generation iPhone will not stop after the 2nd generation iPhone is released. Both will be running the same operating system, with the only hardware difference we know for certain included with the 2nd generation iPhone is a 3G chipset making it a 3G phone.
    The first generation iPhone will not become outdated when the 2nd generation iPhone is released. There are some people in the U.S. that don't live in an area where at&t has 3G network coverage, and where at&t doesn't have plans to add 3G network coverage this year or the next.
    You purchase a new computer this week, and a new and improved version of the same computer model is released within 6 months or a year. This doesn't make the computer you purchased this week outdated. The same applies to the iPhone.

Maybe you are looking for

  • How can i export an 44100Hz audio file to a 43200Hz one?

    Just exactly as the title says.

  • Firmware upgrade, then lost

    Hi, Quickly following automatic firmware upgrade on 1 week old Time capsule, network is now lost. Airport set up utility can't find Time Machine .. others experience the same problem? TM feels hot .. perhaps overheated due to firmware upgrade. Soluti

  • Very slow create, image is local

    All Installed the VM template for Oracle 10g, seemed successful (using Oracle VM Manager) Trying to create VM from the template and its really slow. The create has been running for 1/2 hr so far and the stats below are pretty constant over this perio

  • How to set role which can issue only one command

    I am thinking about setting role, which will be allowed to issue olny one command. I have created role test. Which has the following entries in the following files: /etc/user_attr test::::profiles=OneCommand;type=role /etc/security/exec_attr OneComma

  • Mac Mini upgrade question

    I have a mac mini 2.1 running snow leopard and doesn't appear to support mountain lion and I want to know if there's a way that I can download Mac OS X Lion.