Business events messages
Hi everyone,
I´m lookin for a way to administrate the business events messages, if it is a way to administrate or monitoring it, please tell me how.
Any clue will be a great advance.
Any pointers ?
Thanks,
Vijay
Similar Messages
-
Unable to configure Oracle Applications Adapter to capture Business Event
Hi All,
I am new to SOA and BPEL so please bare that in mind when reading and responding to this post.
I am attempting to trigger BPEL from an EBS business event as per the SOA gateway developers guide.
I am working on EBIZ R12.1.2, 11g weblogic, Jdev 11g release 1
Step 1. I have enabled the business event oracle.apps.per.api.employee.create_employee and created a subscription from the integration repository which I can see from the business events subscription window.
Step 2. I have created a new SOA project in JDev with an empty composite and added a BPEL process and called it createOrsResource.
Step 3. Following this I opened the BPEL process and added in an applications adapter and set this up to interact with the WSDL that I got from going through the adapter configuration wizard (i.e. selected the business event detailed above).
I then tried to compile and got the following error:
Error: Load of wsdl "createEmployeeEvent.wsdl with Message part element undefined in wsdl [file:/D:/jdev_home/mywork/IntegrationApplication/integrationExample/createEmployeeEvent.wsdl] part name = WF_EVENT_T type = {http://xmlns.oracle.com/xdb/APPS/createEmployeeEvent}WF_EVENT_T" failed
This is obviously something to do with the business event message type that materialized when I selected the business event in the Adapter Config Wizard.
I went back into the Apps Adapter and checked the config, when I clicked next .. next .. next etc... through the wizard just before hit the schema definition page I got the following error:
null file is either missing or is corrupt.
This schema defines the stricture of wf event. Wizard would not be able
to edit the service
Also when I tried to add an assign activity using the WF_EVENT_T as an input to another variable I got the following WF_EVENT_T node in the left mapping window:
Exception: Unable to parse schema APPS_WF_EVENT_T_createEmployeeEvent.xsd
Can anyone point me in the right direction???
KeithTapas123 wrote:
Hi Osama,
Database is working perfectly fine in my machine. Please let me know the procedure to fix the client issue , if you know.
Thanks.It is not - else you would not have posted this thread. Home version architecture differs significantly from Professional version and higher, especially in the area of User Access Control. It is tough enough to try and solve issues on certified/supported OS versions/hardware, let alone on uncertified/unsupported ones ;-)
http://en.wikipedia.org/wiki/Windows_7_editions
http://docs.oracle.com/cd/E11882_01/install.112/e24187/pre_install.htm#CIHIAGFG
Pl use a supported OS version
HTH
Srini -
Business Event System in Workflow
Hi,
I am having difficulties with the Business Event System (BES).
Actually, I've read the Oracle documentation about BES. Still I don't understand much.
There are little documentation about the BES, and I still get blank point.
Here are my questions :
1. What the Business Event System is?
2. Some of documentations show that using the BES, the workflow can interact with
different system.
What does 'different system' mean?
Does it mean to another computer (perhaps Client Server type)?
Or to another system (like headquarter which has several branches) located in
different location?
Or to another database service in the same computer (perhaps ORCL and ORCL2)?
Or with another database applications (i.e Microsoft SQL Server, MySQL)?
3. How do we use the BES?
How do we define BES?
Where do we use the BES?
Is it using PL/SQL?
Or the BES itself is a PL/SQL which is inside a procedure or function or trigger (used
to manipulate the database)?
What does the BES look like? Is it a PL/SQL code, an e-mail, or ...?
4. Some documentations said that using the Event (with Receive type) as a start node
(in Workflow Builder), the process will wait and respon <u>until</u> a Business
Event is detected?
How do we interact with BES?
How do we know what kind of BES to start the process?
Do we use the Oracle Advanced Queuing?
Is it using an e-mail to start the Event?
5. There is a statement from the "Feature Overview Oracel9i Application Server : Oracle Workflow" (from Oracle site)
"Business event messages from Oracle Workflow can be placed on or received from Oracle9i Advanced Queues, providing support for Oracle Net as well as HTTP and HTTPS communication protocols."
and
"The Business Event System uses Oracle Advanced Queuing to propagate messages between communication points on systems, called agents, using a specified protocol. Events received from external systems are processed by an agent listener that runs on the agent's queue."
Actually what the Advanced Queuing is?
Is it the mechanism of scheduling activites such as sending a message?
Is it use to start the Workflow Background Engine periodically?
What does the Events received from external system is? Is it an e-mail?
If it is True, so the workflow process could be start using an e-mail?
6. There is also a documentation stated that the Event can be raised using the PL/SQL WF_EVENT.Raise() API.
The Event also could be launch using the Workflow Home Page (Workflow monitor) in Event link?
So what does the BES is used for, if the Event could be launch using a PL/SQL?
Is the process of raising the Event called BES?
Such as a procedure to manipulate database tables that consist the WF_EVENT.Raise().
What is Generate Function is?
7. What Agent is?
What Subscription is?
What Event group is?
8. Perhaps there is a guide book of using the Business Event System?
Any light would be grateful.
Many many thanks,
BuntoroHi
I am in exactly the same position...
Have queued up my events using wf_event and the subscription is putting them in WF_OUT ok.
So, I guess that WF_OUT is a multisubscriber queue, so when we register with it in BPEL it asks for us to identify ourselves using the consumer and/or correlation ID.
However, I'm with you in that I have no idea how to specify the consumer.
There is a CORRID column in WF_OUT and I'm banking on that being the correlation ID at the moment....
I'll let you know if I crack it!
Chris -
APPS Adapter (ESB) error while reading standard business event
Hi,
I tested the sample services on TEST (myhost:7780) to consume the standard business event (oracle.apps.ar.hz.PartySite.create). Following exceptions are logged in j2ee log files (Section-1). The business event message is also rejected (see section-2).
Does anyone in this forum ever faced this issue OR any idea to address this issue more correctly.
If you want I can provide the sample service deatail in email.
J2ee Logs (Section-1)
<MESSAGE>
<HEADER>
<TSTZ_ORIGINATING>2007-09-28T19:15:08.676-04:00</TSTZ_ORIGINATING>
<COMPONENT_ID>tip</COMPONENT_ID>
<MSG_TYPE TYPE="WARNING"></MSG_TYPE>
<MSG_LEVEL>1</MSG_LEVEL>
<HOST_ID>myhost</HOST_ID>
<HOST_NWADDR>212.112.194.34</HOST_NWADDR>
<MODULE_ID>esb.server.service.impl.inadapter</MODULE_ID>
<THREAD_ID>80</THREAD_ID>
<USER_ID>oracle</USER_ID>
</HEADER>
<CORRELATION_DATA>
<EXEC_CONTEXT_ID><UNIQUE_ID>212.112.194.34:69270:1191017705321:68</UNIQUE_ID><SEQ>7043</SEQ></EXEC_CONTEXT_ID>
</CORRELATION_DATA>
<PAYLOAD>
<MSG_TEXT>Caught PCRetriableResourceException, reject/retry the message</MSG_TEXT>
<SUPPL_DETAIL><![CDATA[ORABPEL-12600
Generic error.
java.lang.NullPointerException
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(ESBListenerImpl.java:368)
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(ESBListenerImpl.java:295)
at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:293)
at oracle.tip.adapter.apps.AppsMessageEndpointImpl.onMessage(AppsMessageEndpointImpl.java:89)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.doRaise(AQActivationSpecDequeuer.java:375)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.raiseInboundInteraction(AQActivationSpecDequeuer.java:314)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.raise(AQActivationSpecDequeuer.java:246)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.run(AQActivationSpecDequeuer.java:225)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819)
at java.lang.Thread.run(Thread.java:595)
Please create a Service Request with Oracle Support.
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(ESBListenerImpl.java:388)
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(ESBListenerImpl.java:295)
at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:293)
at oracle.tip.adapter.apps.AppsMessageEndpointImpl.onMessage(AppsMessageEndpointImpl.java:89)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.doRaise(AQActivationSpecDequeuer.java:375)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.raiseInboundInteraction(AQActivationSpecDequeuer.java:314)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.raise(AQActivationSpecDequeuer.java:246)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.run(AQActivationSpecDequeuer.java:225)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(ESBListenerImpl.java:368)
... 12 more
]]></SUPPL_DETAIL>
</PAYLOAD>
</MESSAGE>
<MESSAGE>
<HEADER>
<TSTZ_ORIGINATING>2007-09-28T19:15:08.677-04:00</TSTZ_ORIGINATING>
<COMPONENT_ID>tip</COMPONENT_ID>
<MSG_TYPE TYPE="ERROR"></MSG_TYPE>
<MSG_LEVEL>1</MSG_LEVEL>
<HOST_ID>myhost</HOST_ID>
<HOST_NWADDR>212.112.194.34</HOST_NWADDR>
<MODULE_ID>esb.server.service.impl.inadapter</MODULE_ID>
<THREAD_ID>80</THREAD_ID>
<USER_ID>oracle</USER_ID>
</HEADER>
<CORRELATION_DATA>
<EXEC_CONTEXT_ID><UNIQUE_ID>212.112.194.34:69270:1191017705321:68</UNIQUE_ID><SEQ>7043</SEQ></EXEC_CONTEXT_ID>
</CORRELATION_DATA>
<PAYLOAD>
<MSG_TEXT>Exception in onMessage. Rejecting the message now</MSG_TEXT>
<SUPPL_DETAIL><![CDATA[java.lang.NullPointerException
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.recordException(ESBListenerImpl.java:324)
at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(ESBListenerImpl.java:299)
at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:293)
at oracle.tip.adapter.apps.AppsMessageEndpointImpl.onMessage(AppsMessageEndpointImpl.java:89)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.doRaise(AQActivationSpecDequeuer.java:375)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.raiseInboundInteraction(AQActivationSpecDequeuer.java:314)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.raise(AQActivationSpecDequeuer.java:246)
at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.run(AQActivationSpecDequeuer.java:225)
at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819)
at java.lang.Thread.run(Thread.java:595)
]]></SUPPL_DETAIL>
</PAYLOAD>
</MESSAGE>
Reject Message Section-2
<WF_EVENT_T xmlns="http://xmlns.oracle.com/xdb/APPS">
<PRIORITY xmlns="">50</PRIORITY>
<SEND_DATE xmlns="">2007-09-28T19:13:22.000-04:00</SEND_DATE>
<RECEIVE_DATE xmlns="">2007-09-28T19:15:08.000-04:00</RECEIVE_DATE>
<CORRELATION_ID xmlns=""></CORRELATION_ID>
<PARAMETER_LIST xmlns="">
<PARAMETER_LIST_ITEM>
<NAME>USER_ID</NAME>
<VALUE>1395</VALUE>
</PARAMETER_LIST_ITEM>
<PARAMETER_LIST_ITEM>
<NAME>RESP_ID</NAME>
<VALUE>50360</VALUE>
</PARAMETER_LIST_ITEM>
<PARAMETER_LIST_ITEM>
<NAME>RESP_APPL_ID</NAME>
<VALUE>660</VALUE>
</PARAMETER_LIST_ITEM>
<PARAMETER_LIST_ITEM>
<NAME>SECURITY_GROUP_ID</NAME>
<VALUE>0</VALUE>
</PARAMETER_LIST_ITEM>
<PARAMETER_LIST_ITEM>
<NAME>ORG_ID</NAME>
<VALUE>103</VALUE>
</PARAMETER_LIST_ITEM>
<PARAMETER_LIST_ITEM>
<NAME>PARTY_SITE_ID</NAME>
<VALUE>217048</VALUE>
</PARAMETER_LIST_ITEM>
</PARAMETER_LIST>
<EVENT_NAME xmlns="">oracle.apps.ar.hz.PartySite.create</EVENT_NAME>
<EVENT_KEY xmlns="">oracle.apps.ar.hz.PartySite.create112538</EVENT_KEY>
<EVENT_DATA xmlns=""></EVENT_DATA>
<FROM_AGENT xmlns="">
<NAME>WF_BPEL_QAGENT</NAME>
<SYSTEM>ECSTST2.ARROW.COM</SYSTEM>
</FROM_AGENT>
<TO_AGENT xmlns=""/>
<ERROR_SUBSCRIPTION xmlns="">okUY5xyheOjgMCOCKYkzaQ==</ERROR_SUBSCRIPTION>
<ERROR_MESSAGE xmlns=""></ERROR_MESSAGE>
<ERROR_STACK xmlns=""></ERROR_STACK>
</WF_EVENT_T>
Thanks in Advance.
--KBHi
I've recently had issues with the Apps Adapter for event listening when i upgraded to 10.1.3.3
There have been problems with the way the namespace is derived. I applied patch 6267726 and now it works great!
When I create a new listener for an event, a new xsd is created, specific to the name of the adapter process in EBS and henceforth the payload has that specific namespace attached. For example:
http://xmlns.oracle.com/xdb/APPS/ListenForOrganizationCreate
Events then get raised that reflect that namespace. XSL transformations then need to reflect that namespace in your routing rules.
It may be that the XSLT mappings are expecting a different namespace than you are receiving..
Give the patch a try if you are on 10.1.3.3 and then try and rebuild a process from scratch to see if it works.
Chris -
Disabled business event subscription but still getting error messages
We have been getting the issue described in MOS note 1149193.1 (ORA-01403: NO DATA FOUND in oracle.apps.cs.sr.serviceRequest.created On Creating And Updating SRs) - the fix is to disable the subscription against the business event.
I have done this in our production system but we are still getting the error sent to Sysadmin - do I need to do anything else to get the system to pick up the changes to the business event (bounce apache, managers, etc)
Thanks.
AndrewHi;
After changes you are hitting same error message?
You can try to close apps services(al) than retest issue. If you still have problem than please sr by using ORA-01403: NO DATA FOUND in oracle.apps.cs.sr.serviceRequest.created On Creating And Updating SRs [ID 1149193.1] as reference
Regard
Helios -
Enqueue JMS message to JMS advanced queue and raise business event.
Hi,
I am needing guidance on how to raise a business event with a JMS message type and enqueue it to an outbound queue WF_JMS_OUT from a PL/SQL stored procedure. I'm on version 11.5.10.2.
I found an Oracle tutorial "Oracle Workflow and Java Messaging Service (JMS) Tutorial" which describes some of this but it mentions scripts to create the queues, listen for events, etc. and I can not find these (they are not included in the document).
Any guidance, links or sample code, greatly appreciated!
Cheers
GrahamI tried in the same way. But i got error in OSB.
The error message is "Failed to lookup connection factory CustomConnectionFactory"
CustomConnectionFactory -- This is my connection factory name.
Do i need to make any jndi configurations in weblogic?
Thank you. -
Business Event not triggering the SOA BPEL Process with OA Adapter
Hello Gurus,
I am working on Business event "oracle.apps.per.api.employee.create_employee" and the event is getting triggered when creating an employee from EBS.
The message has come till WF_BPEL_QTAB(I could seeit) and in "READY" status.We have a SOA BPEL Process that is subscribed to the event "oracle.apps.per.api.employee.create_employee" using OA Adapter.
The issue is that the SOA BPEL process is not getting triggered and it is not dequeing the message from WF_BPEL_Q.
Please let me know if I have missed any steps on SOA BPEL side.
Note: Agent Listener is up and running.
Thanks,
SunilOfcourse, I subscribed to the business event using BPEL. Ideally the instances should be created and I should be able to receive the standard payload.
Yes the JNDIs are correct. We have other business events working in the same fashion and we are using same JNDI. -
Business Event not triggering the PLSQL procedure.. What to do?
We need to call a plsql procedure when the GL Approval workflow has ended with approval. I thought i could do this by customizing the relevant business event.
We are on EBS 12.1.3 with RDBMS : 11.2.0.3.0.
I saw that the business event oracle.apps.gl.Journals.journal.approve was disabled currently. I enabled it and created a subscription for it. Subscription was a PLSQL procedure. Currently, for test purpose only thing it is doing is to insert a row into a table.
Business Event Subscription settings:
System: ORDEBS.SYSTEM.COM
Triggering Event
Source Type:Local
Event Filter: oracle.apps.gl.Journals.journal.approve
Execution Condition
Phase: 100
Status: Enabled
Rule Data: Message
Action Type:Custom
On Error: Stop and Rollback
Action
PL/SQL Rule Function: XX_GL_APPROVE_BE_PKG.Get_Attributes
Priority: Normal
Documentation (Not sure what value to be given for these. I went with the below values.)
Owner: Company Name
Owner Tag: Custom Schema
Using the below query i can see that the business event is getting called when the approval happens (One row added each time approval happened). But I cant see any rows in the table where it should insert a row. What could be going wrong? How can i verify that the procedure has been called?
select * from WF_DEFERRED where corrid ='APPS:oracle.apps.gl.Journals.journal.approve'
Procedure:
CREATE OR REPLACE PACKAGE BODY APPS.XX_GL_APPROVE_BE_PKG
AS
PROCEDURE Get_Attributes
IS
BEGIN
INSERT INTO xx.xx_test_table VALUES ('From BE');
COMMIT;
END Get_Attributes;
END XX_GL_APPROVE_BE_PKG;Thanks Alejandro. Now this is working.
Changes i made:
1. Added the WFERROR workflow as a subscription to this event. So i could see that the function i am calling from the event did not have proper signature.
2. Changed the function signature to have standard parameters like:
CREATE OR REPLACE PACKAGE BODY XX_GL_APPROVE_BE_PKG
AS
function subscription(p_subscription_guid in raw,
p_event in out nocopy wf_event_t) return varchar2 is
l_result varchar2(20);
begin
insert into xxvtv.xxvtv_test_table values ('From BE');
commit;
exception
when others then
wf_core.context('XX_GL_APPROVE_BE_PKG','function subscription', p_event.getEventName(), p_event.getEventKey());
wf_event.setErrorInfo(p_event, 'ERROR');
return 'ERROR';
end subscription;
END XX_GL_APPROVE_BE_PKG;
3. Changed the owner name and owner tag both to the custom schema name (XX) -
Training and Event Management -- Business Event Follow Up
Hi Experts,
I have firmly booked the event in PV12 transaction.
When I am doing follow up through transaction PV15, I am getting error message event not started yet.
Please advise.
Regards,
IFFHi ,
You can only do follow-up of Business event on or after the date that the Business event has been scheduled to take place, and has been firmly booked.
Such as if the Buseiness event is for 30 th Dec 2011, you can do follow-up on 30th Dec 2011 or after this date.
Regards,
Soomra -
Badi and Business event( Urgent)
Hi experts,
I am new to badi and business event 1120P. Please post how this business event exactly comes in to picture in this badi. also how to find this business event?
And also Post the logic or code. The requirement is given below . Pls Post the solution. Its very urgent.
Enhancement Summary
Two user exits are needed to determine the correct G/L Account and Cost Center on Shipment Cost documents and post the Material Group on the Accounting document. BADI_SCD_ACCTG and Business Event 1120P can be used to accommodate the new functionality.
Business Process
Specific G/L Accounts and Cost Centers have to be determined to post on the Shipment Cost document. This is needed to provide accurate management reporting capabilities on shipments for Sales Order or Stock Transfer Order. A new custom table must be created which contains the following information: Distribution, Mode of Transport, Account, Cost Center Material group. Distribution is an identifier here if this shipment originated from an SO or STO.
There are no screens involved in this enhancement.
Components
Table: ZTABLE1
Field Data Element Type Length Description
MANDT MANDT CLNT (key) 3 Client
DISTRIBUTION Z_DISTRIBUTION CHAR (key) 1 Distribution
MOT ZZDEF_MOT CHAR (key) 2 Mode of Transportation
MATKL MATKL CHAR (key) 9 Material group
SAKNR SAKNR CHAR 10 G/L Account Number
KOSTL KOSTL CHAR 10 Cost Center
This table gets updated manually by the FI team.
Values for Distribution are:
1 = Primary Distribution to Refinery
2 = Primary and Secondary Excluding refinery
All entries must be checked against SAP config and master tables
User exit BADI BADI_SCD_ACCTG will be used to determine the correct G/L Account, Cost Center and Product Group based on Distribution and Mode of Transport. This BADI gets called only when a new Shipment Cost document get created.
Once the BADI determined the new values it populates field c_vfkn-sakto with the G/L account, field c_vfkn-kostl with the Cost Center and exports the Product group to memory.
There is no field on the Shipment Cost Document to store the Product group. Therefore another mechanism must be used to get the Product Group on the accounting document.
Business Event 1120P can be used to import the Product group out of memory and put it on BSEG-MATNR. Structure BSEG_SUBST must be enhanced with field MATNR for this purpose.
Function, Rules, Exits Description of Functionality, Rules, Exits
BADI_SCD_ACCTG Business Add-In for Shipment Cost Account Assignment
Business Framework Business Event 1120P can be used to import the Product Group from memory and to populate field BSEG_SUBST-MATNR.
This event gets called from different places. It needs to be ensured that it only populates the value when it was called from BADI_SCD_ACCTG.
Custom Table A look-up Table needs to be maintained for Distribution, Mode of Transport, G/L Account, Cost Center and Material Group
Transaction code To maintain the new table
Append Structure To enhance structure BSEG_SUBST with MATNR
Business Add-In BADI_SCD_ACCTG can be used to determine the account assignments for a shipment cost item to set the G/L Account and Cost Center. All data needed to determine the new information gets provided in this BADI.
Logic:
Determine if STO or SO based on Document Category from internal table I_REFOBJ-VTRLP field VGTYP If is C then Distribution type is Sales Order (Primary and Secondary Excluding Refinery 2 ) else we need to check the receiving plant. If the receiving plant (I_REFOBJ-VTRLK field WERKS) is a refinery the Distribution type is Primary (1) else its a (Primary and Secondary Excluding Refinery 2 ). Refineries can be identified via Function Module ZPLANTCLASSIFICATION. The plant must be passed into Import Parameter IP_SAPPLANT and field INT_PLANTCHAR-ATNAM must be looked up with value SAPTYPE. If it exists and field ATWRT contains RFY, the plant is a refinery.
Product Group can be determined from the Material master through Material group field MARA-MATKL.
Mode of Transport will be passed in the BADI in VTRLK-OIC_MOT.
Select single entry from table ZTABLE1based on Distribution, Mode of Transport and Material Group. If nothing gets selected, error message No entry exists in table ZTABLE1for Distribution (distribution), MOT (MOT) & Mat. Group (material group) should be triggered.
Move ZTABLE1-SAKNR to c_vfkn-sakto and ZTABLE1-KOSTL to c_vfkn-kostl
The Material group must be exported to memory in BADI_SCD_ACCTG
The Material group must be imported from memory in Business Event BP1120P
Free Memory in Business Event BP1120P
This is VI01 Creation of Freight Cost Item screen
and also code for function module ZPLANTCLASSIFICATION below
FUNCTION zplantclassification .
""Local interface:
*" IMPORTING
*" REFERENCE(IP_SAPPLANT) LIKE AUSP-OBJEK OPTIONAL
*" REFERENCE(IP_CPSPLANT) LIKE AUSP-ATWRT OPTIONAL
*" REFERENCE(IP_SISLOC) LIKE AUSP-ATWRT OPTIONAL
*" EXPORTING
*" VALUE(EP_SAPPLANT) LIKE AUSP-OBJEK
*" VALUE(EP_CPSPLANT) LIKE AUSP-ATWRT
*" VALUE(EP_SISLOC) LIKE AUSP-ATWRT
*" VALUE(EP_OWNERSHIP) LIKE AUSP-ATWRT
*" VALUE(EP_SMISTYPE) LIKE AUSP-ATWRT
*" VALUE(EP_SPOTREF) LIKE AUSP-ATWRT
*" VALUE(EP_SUBTYPE) LIKE AUSP-ATWRT
*" VALUE(EP_SUPPLYREGION) LIKE AUSP-ATWRT
*" VALUE(EP_TYPE) LIKE AUSP-ATWRT
*" VALUE(EP_DISTAREA) LIKE AUSP-ATWRT
*" VALUE(EP_GEOGAREA) LIKE AUSP-ATWRT
*" VALUE(EP_HMF) LIKE AUSP-ATWRT
*" VALUE(EP_IATACODE) LIKE AUSP-ATWRT
*" VALUE(EP_IRSTCN) LIKE AUSP-ATWRT
*" VALUE(EP_OPSAREA) LIKE AUSP-ATWRT
*" VALUE(EP_PLANTSTAT) LIKE AUSP-ATWRT
*" VALUE(EP_PORTCODE) LIKE AUSP-ATWRT
*" VALUE(EP_REFAREA) LIKE AUSP-ATWRT
*" VALUE(EP_SAPTYPE) LIKE AUSP-ATWRT
*" VALUE(EP_MFGWARRANTY) LIKE AUSP-ATWRT
*" VALUE(EP_USERTYPE) LIKE AUSP-ATWRT
*" VALUE(EP_TRMCENTER) LIKE AUSP-ATWRT
*" VALUE(EP_TRANSCENTER) LIKE AUSP-ATWRT
*" VALUE(EP_FEIN) LIKE AUSP-ATWRT
*" TABLES
*" INT_PLANTCHAR STRUCTURE ZPLANTCLASSIFICATION OPTIONAL
*" EXCEPTIONS
*" NO_OBJEK_FOUND
*" NO_CPSPLANT_FOUND
*" NO_SISLOC_FOUND
*" NO_INPUT_FOUND
*" VALID_PLANT_NO_CHARACTERISTIC
*" ONE_TO_MANY_ISSUE
*" PLANT_NOT_FOUND_ZDEF_DELPLANT
*" UNKNOWN_ERRORS
FM Name: ZPLANTCLASSIFICATION
Created By : SYUB *
Description : Function Module to retrieve plant characteristics *
The function module has two capabilities:
1. Retrieve only the necessary characteristics
2. Retrieve the whole characteristics into an internal table.
Parameter Description *
In the future, if there is a new characteristic added to the
plant classification tables, the characteristic has to be added
to the list of the export parameters and the loop statement.
TABLES: ausp, cabn, ksml, zdef_delplant.
DATA: ws_objek LIKE ausp-objek,
ws_countchar TYPE i,
ws_countplant TYPE i.
*Internal table for SAP plant
DATA: BEGIN OF int_plant OCCURS 0,
plant LIKE ausp-objek,
END OF int_plant.
*sap plant code is the input parameter.Move objek, atnam, and atwrt to
*internal table PLANTCHAR using inner join of AUSP, CABN, and KSML to
*synch up the internal characteristic numbers throughout the 3 tables.
IF NOT ip_sapplant IS INITIAL.
SELECT auspobjek cabnatnam ausp~atwrt
INTO CORRESPONDING FIELDS OF TABLE int_plantchar
FROM ksml AS ksml
INNER JOIN cabn AS cabn
ON cabnatinn = ksmlimerk
INNER JOIN ausp AS ausp
ON ausp~objek = ip_sapplant
AND auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'.
*Checking the existence of ip_sapplant in the table, if it doesn't
*exist, raise the exception else if it exists, check if it has
*characteristic values.
IF sy-subrc NE 0.
RAISE no_objek_found.
ELSE.
DESCRIBE TABLE int_plantchar LINES ws_countchar.
IF ws_countchar LT 2.
RAISE valid_plant_no_characteristic.
ENDIF.
ENDIF.
*cps plant code is the input parameter. Move objek from table AUSP to
*ws_objek using inner join of CABN and AUSP to match up the internal
*characteristic numbers from the 2 tables.
ELSEIF NOT ip_cpsplant IS INITIAL.
SELECT ausp~objek
INTO TABLE int_plant
FROM ausp AS ausp
INNER JOIN cabn AS cabn
ON cabn~atnam = 'OLDCODE'
WHERE auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'
AND ausp~atwrt = ip_cpsplant.
*Checking the existence of ip_cpsplant in the table
IF sy-subrc EQ 0.
*Counting the number of SAP plants in the internal table int_plant
DESCRIBE TABLE int_plant LINES ws_countplant.
*Moving the values of objek, atnam, and atwrt to PLANTCHAR using objek
*from ws_objek.
IF ws_countplant EQ 1.
LOOP AT int_plant.
SELECT auspobjek cabnatnam ausp~atwrt
INTO CORRESPONDING FIELDS OF TABLE int_plantchar
FROM ksml AS ksml
INNER JOIN cabn AS cabn
ON cabnatinn = ksmlimerk
INNER JOIN ausp AS ausp
ON ausp~objek = int_plant-plant
AND auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'.
ENDLOOP.
*If there more than one SAP Plants, then raise an exception.
ELSEIF ws_countplant GT 1.
RAISE one_to_many_issue.
ENDIF.
ELSE.
SELECT SINGLE werks FROM zdef_delplant
INTO ws_objek
WHERE cpsloc = ip_cpsplant.
SELECT auspobjek cabnatnam ausp~atwrt
INTO CORRESPONDING FIELDS OF TABLE int_plantchar
FROM ksml AS ksml
INNER JOIN cabn AS cabn
ON cabnatinn = ksmlimerk
INNER JOIN ausp AS ausp
ON ausp~objek = ws_objek
AND auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'.
if sy-subrc ne 0.
raise plant_not_found_zdef_delplant.
endif.
ENDIF.
*cps plant code is the input parameter. Move objek from table AUSP to
*ws_objek using inner join of CABN and AUSP to match up the internal
*characteristic numbers from the 2 tables.
ELSEIF NOT ip_sisloc IS INITIAL.
SELECT ausp~objek
INTO TABLE int_plant
FROM ausp AS ausp
INNER JOIN cabn AS cabn
ON cabn~atnam = 'SISLOC'
WHERE auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'
AND ausp~atwrt = ip_sisloc.
*Checking the existence of ip_sapplant in the table
IF sy-subrc EQ 0.
DESCRIBE TABLE int_plant LINES ws_countplant.
*Moving the values of objek, atnam, and atwrt to PLANTCHAR using objek
*from ws_objek.
IF ws_countplant EQ 1.
LOOP AT int_plant.
SELECT auspobjek cabnatnam ausp~atwrt
INTO CORRESPONDING FIELDS OF TABLE int_plantchar
FROM ksml AS ksml
INNER JOIN cabn AS cabn
ON cabnatinn = ksmlimerk
INNER JOIN ausp AS ausp
ON ausp~objek = int_plant-plant
AND auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'.
ENDLOOP.
*If there more than one SAP Plants, then raise an exception.
ELSEIF ws_countplant GT 1.
RAISE one_to_many_issue.
ENDIF.
ELSE.
SELECT SINGLE werks FROM zdef_delplant
INTO ws_objek
WHERE sisloc = ip_sisloc.
SELECT auspobjek cabnatnam ausp~atwrt
INTO CORRESPONDING FIELDS OF TABLE int_plantchar
FROM ksml AS ksml
INNER JOIN cabn AS cabn
ON cabnatinn = ksmlimerk
INNER JOIN ausp AS ausp
ON ausp~objek = ws_objek
AND auspatinn = cabnatinn
AND ausp~mafid = 'O'
AND ausp~klart = 'Z01'.
if sy-subrc ne 0.
raise plant_not_found_zdef_delplant.
endif.
ENDIF.
ELSE.
*Checking if there is an input parameter entered.
RAISE no_input_found.
ENDIF.
Modified 7/30 by RFOR to validate SAP plant is in plant master
data: wa_t001w like t001w.
read table int_plantchar.
SELECT SINGLE * from t001w into wa_t001w where
werks = int_plantchar-objek.
if sy-subrc ne 0.
raise NO_OBJEK_FOUND.
endif.
*Moving all the characteristic values to the export parameters
LOOP AT int_plantchar.
MOVE int_plantchar-objek TO ep_sapplant.
CASE int_plantchar-atnam.
WHEN 'OLDCODE'.
MOVE int_plantchar-atwrt TO ep_cpsplant.
WHEN 'SISLOC'.
MOVE int_plantchar-atwrt TO ep_sisloc.
WHEN 'OWNERSHIP'.
MOVE int_plantchar-atwrt TO ep_ownership.
WHEN 'SMISTYPE'.
MOVE int_plantchar-atwrt TO ep_smistype.
WHEN 'SPOTREF'.
MOVE int_plantchar-atwrt TO ep_spotref.
WHEN 'SUBTYPE'.
MOVE int_plantchar-atwrt TO ep_subtype.
WHEN 'SUPPLYREGION'.
MOVE int_plantchar-atwrt TO ep_supplyregion.
WHEN 'TYPE'.
MOVE int_plantchar-atwrt TO ep_type.
WHEN 'DISTAREA'.
MOVE int_plantchar-atwrt TO ep_distarea.
WHEN 'GEOGAREA'.
MOVE int_plantchar-atwrt TO ep_geogarea.
WHEN 'HMF'.
MOVE int_plantchar-atwrt TO ep_hmf.
WHEN 'IATACODE'.
MOVE int_plantchar-atwrt TO ep_iatacode.
WHEN 'IRSTCN'.
MOVE int_plantchar-atwrt TO ep_irstcn.
WHEN 'OPSAREA'.
MOVE int_plantchar-atwrt TO ep_opsarea.
WHEN 'PLANTSTAT'.
MOVE int_plantchar-atwrt TO ep_plantstat.
WHEN 'PORTCODE'.
MOVE int_plantchar-atwrt TO ep_portcode.
WHEN 'REFAREA'.
MOVE int_plantchar-atwrt TO ep_refarea.
WHEN 'SAPTYPE'.
MOVE int_plantchar-atwrt TO ep_saptype.
WHEN 'MFG_WARRANTY'.
MOVE int_plantchar-atwrt TO ep_mfgwarranty.
WHEN 'USER_TYPE'.
MOVE int_plantchar-atwrt TO ep_usertype.
WHEN 'TERMINALCENTER'.
MOVE int_plantchar-atwrt TO ep_trmcenter.
WHEN 'TRANSPORTATIONCENTER'.
MOVE int_plantchar-atwrt TO ep_transcenter.
when 'FEIN'.
move int_plantchar-atwrt to ep_fein.
ENDCASE.
ENDLOOP.
ENDFUNCTION.
Pls help me out from this problem its very urgent.
Thankshi SK ,
process like this .
in BADI
method.
1.Here u have to put ur logic based on the Requirement.
2.then u have to call BTE like this
<b>call function 'OPEN_FI_PERFORM_00001020_E'
tables
t_bseg = xbseg
t_bkpf = xbkpf.</b>
3.Update Ztables.
endmethod.
this is sample logic only.First get logic of TS then u will come to know how to do?
regards
prabhu -
Error while raising business event
Hi all,
While trying to raise my business event throw "Raise in JAVA" button i get the following error.*Exception occured in Java Raise - Exception when Invoking Web Service -> oracle.apps.fnd.wf.bes.InvokerException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: For input string: ""*
What could be the reason for this error?
Thanks and regards,
PradeepHi,
Please see
Unable To Call Web Service From A Deployed OA Framework Page [ID 848795.1]
javax.xml.soap.SOAPException Error While Invoking SOA Webservice From R12 Server [ID 1467361.1]
Thanks -
Business Event when Sales Order is Booked....Custom Business Requirement
Hello,
I have business requirement like when a sales order line is booked/ Item is Received in Inventory/ Line is Cancelled , I need to update quantity,price for that customer and item# in a custom table.
So what is the best approach to do it..Is it making use of business events or Alerts or any other approach?
If business events, can you please tell me what are the business events and how to find out event parameters for the following
1. When Sales order Line is Booked
2. When Item is Received in Inventory
3. When Account Alias Receipt is Done in Inventory
Please advise.
Thanks,
SridharCheck these links
https://forums.oracle.com/thread/2337912
https://forums.oracle.com/thread/976272
https://forums.oracle.com/message/2427841
I don't recommend alert as the alert is fired during every record update. If you have modified the OM workflow, then you can achieve your requirement by adding a new node/function in the workflow to update the custom table.
Thanks
Shree -
Any business event is available in OM post creation of order
Hi Every one,
Once the order is booked, i would like to sync up this order into the 3rd party System. I was looking for the business events provided by oracle.
Show/Change Sales Order - A business event (oracle.apps.ont.oi.show_so.create) can be raised to trigger generation of a SHOW SO or CHANGE SO XML message. The value of one of the event parameters determines which of the two messages will be generated. The SHOW SO message contains status information about an order and can be generated on demand or as a result of changes to an existing sales order. The CHANGE SO message is used to notify the buyer of changes to a sales order and can be raised as a result of status or attribute changes on a sales order.
Can we use the above business event for my case. Please suggest.
Thanks.You cannot use that as that event is specifically raised when you have used order import (OI) for the XML integration. If you are entering the order from the front end then you have two options:
1. Have a node in header level workflow that raises the integration message the way you want it.
2. Or use ASO order feedback concept. I like this one as this gives you what ever even you need to send to the third party systems. It has information about entire order (all tables information). I have some information in this link , but you can find lot more in documentation and support site.
Thanks
Nagamohan -
XSL Errors When Using AQ Adapter with EBS Business Events
I am triggering a BPEL process with an Oracle EBS Business Event. After receiving the event, I am trying to perform an XSL transformation to extract parameters from the event. However, I keep getting XSL errors because the BE field ERROR_SUBSCRIPTION comes in containing invalid XML characters (#).
It seems that BPEL or EBS do not properly escape the XML input. Is that a bug, or is there a way to work around this. I know I could filter the XML input in some way, but that seems likely to be more brittle to any future changes to the EBS BE message types.Adding to the above post, how will the PL/SQL program which triggers the Business Event ensure that the complete data is enqueued in the queue in form of XML?
What will be the additional logic to send complete data in the XML format? -
Business Event Does Not Appear in ESS Portal
Hi People,
I would like to ask for assistance on this problem:
A user created a business event in the SAP system. But she canu2019t make a booking in this course through the ESS portal because the course canu2019t be found upon searching it. She always got this error message: u201Crestrictions, or use a different search termu201D. We already provided her a number of workaround solutions like using different search terms, changing the field period to all, etc. but still she canu2019t see this course in the portal to make a booking.
Can you help me on this?
Thanks in advance!Amir ,
Check this link , I t will help you
http://help.sap.com/saphelp_nw04s/helpdata/en/1e/62eae2357c4596bda2476d0a6503e3/frameset.htm
Set the property "Add to Favourites" to Yes
Portal Content -> Content provided by SAP -> End user Content -> Standard Portal User -> Default Framework page ---> Edit Object
Open the Page Title Bar -> Search for the property -> Show 'Add to Browser Favorites'
and set this property to Yes.
Now refresh the page. It will show this option.
Koti Reddy
Maybe you are looking for
-
Use a web browser as the source for the vision assistant
I want to access an ip camera over the internet and then use its video feed to do some processing with the vision assistant. I was wondering if someone could tell me if this is possible and how can it be done. what I have so far is an application tha
-
When holding on a link, why don't I have the option to open in a new tab?
I'm trying to open PDFs and PowerPoint though my school website angel. When getting to the link that opens the power point or PDF, my classmates are able to hold on the link and get options one of which is to open In a new tab. I do have the option t
-
In Bank Statement Processing I do not find a way to match lines with documents, or to make an external reconciliation if the bank statement line and the BP currencies are differents. When I am choosing such a customer, its documents do not appear. No
-
Question related to XMLDigitalSignature
Hi, I've a basic dumb question. I've an XML which contains some sender related info, with digital signed information. XML has Certificate included in it. I'm able to validate signature. But my basic question and concern which may be dumb... With send
-
Help with stopping KeyListerner
Hi there, I need help with stopping KeyListener{}. Ive made this applet, which functions in a game. Once the player has achieved the goal, i have a results message appear. but if you hold UP arrow key, the message flashes and the image keeps moving,