This content has been marked as final. Show 4 replies
We mainly make use of e-commerce gateway technique to send a copy of po to the vendors.
Hope you are still watching this thread.
I dont have an answer to your question. Just a question to you.
You say "We are sending POs out through xml gateway as cXML"
How are you acheiving this? Is it a standard functionality or have you written code to accomplish this?
If you want to send a copy of an XML PO to an additional entity. this is very straightforward to do as long as you are familiar with Workflow Builder and raising/receiving events and setting up event subscriptions. I'll try to provide a basic outline here in this forum, but you should also look at the seeded workflow which receives the XML PO event from the PO Approval workflow and prepares/generates the XML PO to get more insight into the mechanics. But, it is very simple and easy once you have an understanding of those concepts.
First, for this example, let's assume that you want to send a copy of every PO (for all suppliers) to an additional entity instead of sending a copy of certain PO's to another entity under certain circumstances. This way you can start with something broad that works as a baseline and then if you need to constrain it, it will be easier to do so once you have something that works and you can understand. This will be helpful also in instances where you may be integrating with a Warehouse Management System, a 3rd Party Logistics Provider, etc. so let's start there. To constrain further, you will add in a function to the workflow that can check other values (such as inventory org, DFF's, etc.) and then result in either a subsequent action to continue or just end the workflow without sending a copy.
OK, so let's get started!
1. You should setup the Trading Partner in the XML Gateway for the additional entity who will receive the copies of the XML PO. This can be either another Supplier or Internal type. make note of the Party_id and the Party_site_id, we'll use them later.
2. There is a seeded event called oracle.apps.po.event.xmlpo which is raised from the main PO Approval workflow. This event should also have a seeded subscription that will check the Trading Partner setup to see if the supplier is enabled to receive XML PO's and, if so, will generate and send it out according to the TP setup in the XML Gateway. You will be creating an additional subscription to this event that will fire after (at a later phase than) the XML PO is generated and sent to the PO supplier.
3. You have some flexibility with this next step depending on how you want to constrain the data and if your flow could have several decision points, but this is a simplified example.
*Create a subscription to the event that adds static subscription parameters such as the ecx_party_site, ecx_party_site_id, and ecx_party_type as well as any other static values . This will allow you to easily change these at the subscription level instead of hard-coding into pl/sql or being obfuscated otherwise in code.The ecx_transaction_type, ecx_transaction_subtype etc. should already be populated by the seeded subscription, but you should verify.
*create a custom workflow that will be launched by the subscription. The workflow process will receive the event details, generate the TP XML according to the TP setup, then followed by the Workflow Send activity, then end. Be sure to set the node attributes of each activity properly. I can issue a follow-up response to this thread if anyone needs help there, but you should be able to use other examples from seeded workflows to reverse-engineer this.
*NOTE: some seeded events will create an event key that is not-unique and will require you to 'sandwich' in a subscription that will create a correlation ID. If this happens to you and you need advice on how to do that (the WF developers guide should have straightforward instructions though) we can handle in a separate thread.
That's my advice in a nutshell - I hope that it is helpful!
Sr. Principal Consultant
K & M Consulting
Incase of inbound messages where exactly the code to trigger event will be written