Friday, August 23, 2013

Connect OSB to UCM using OWSM




For this example we are using basic header security to make the connection

11. Open EM, you need to add the proper credentials.



2. Click on "add a Key" using a user name and password from UCM (as an example weblogic)




3.      On Service bus create a new business service pointing to the URL

4.      On  the policies tab add “oracle/wss_username_token_client_policy” policy



5.      Finally on the security tab add the credential that was added in step 2



6.      Finally you should be able and connect to UCM from OSB.

Wednesday, August 21, 2013

Oracle eBusiness Custom Business Events Setup

Frequently integrations between Oracle eBusiness and any other partners are made old school. The following explanation shows how how to push Oracle BES (Business Events) into a custom queue and from there any Middleware technology could pick it up.

As an example we are creating a custom BES labeled as salamanderinc.apps.glcode.update.

Steps to accomplish this are as follow
1 - Create custom Oracle AQ where custom events land
2 - Create custom package/procedure to generate event payload and post to custom Oracle AQ
3 - Within eBusiness console and with workflow admin rights do
3.1 - Create custom event such as

3.2 - Create group and assign previous event to the group



3.3 - Create agent

3.4 - Create subscription for the event group


3.5 - Test the event within the console









Friday, August 16, 2013

Cisco integration and Oracle UWQ using OSB

Cisco and UWQ both work with http messages. Basically an interchange of POST between the platforms. Cisco Agent Descktop and Oracle UWQ.

1. First we are going to create a business service that will be in charge of posting messages to UWQ
Define the  following characteristics in our business service

General >> Service Type: Messaging Service
Messaging >> Request : Text
                      Response: None
Transport >> http
HTTP Transport >> Please make sure that use chunked streaming Mode is unchecked (it will not POST otherwise)


2. We are going to configure Cisco Workflow Administrator to raise an action every time the agent answers the phone.

Using the following parameters
protocol: http
method: POST
host: [host name of you OSB instance]
pot: [port of you OSB server, default is 8011]
path: [full path of the proxy we will create in step 3, example /CiscoIntegration/CiscoUWQHandler]

3. Create a proxy in Service Bus with the following information

General >> Service Type= Messaging Service
Messaging >> Request = Text
                       Response = Text
Transport >> Get All Headers = Yes

First We are going to create a pipeline and add an stage in the request side

Assign this a query to a variable called "sendData"

<CCTSDK>
<event name="{ fn:tokenize( (fn:tokenize($CiscoMessage, '&amp;')[2]) , '=')[2]}">
<data name="occtSourceID" value="1"/>
<data name="occtANI" value="{ fn:tokenize( (fn:tokenize($CiscoMessage, '&amp;')[1]) , '=')[2]}"/>
</event>
</CCTSDK>

This will transform the cisco post in a message that UWQ will understand


Now you need to capture the address of he Cisco Agent desktop assign the following variable to "clientAddress"

$inbound/ctx:transport/ctx:request/http:client-address/text()

Create a publish to the business created in step 2 adding the following

Routing Options to the uri previously captured fn:concat('http://',$clientAddress,':8888//')

and replace the body with the variable sendData, using Repalce node contents













Thursday, July 25, 2013

CHeck and remove WF_BPEL_Q consumers

How to Check your current consumers

select *
from
APPS.AQ$_WF_BPEL_QTAB_S 

How to Delete a WF_BPEL consumer



DECLARE
   subscriber       sys.aq$_agent;
begin subscriber := sys.aq$_agent('<CONSUMER_NAME>', NULL, NULL);
dbms_aqadm.remove_subscriber(queue_name => 'WF_BPEL_Q', subscriber => subscriber);
end;

Tuesday, July 23, 2013

Import a project from BPEL console

How to build a project from bpel export

IN ENTERPRISE MANAGER

1. Export BPEL code




IN JDEVELOPER

1. Create a new empty SOA project and import the code from Enterprise Manger



2. In case you have WSDLand JCA adapters. Open all your WSDL adapters related to JCA adapters and add a line at the very beginning of the wsdl file, as an example:

<?binding.jca getMyData_db.jca?>

3. In case you have JCA adapters that are reading tables. Open all the properties file and add the DTD reference a top of each properties file


<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

4.      In case you have events or WSDL attaches to MDS. Open the resource palette to relink all missing objects from MDS, do the following steps

a.      Create a new connection

b. Add your MDS connection

c. Open the palette and relink them



Monday, December 17, 2012

Obtain responsibility and applicaiton

SELECT FURGA.USER_ID
, FU.USER_NAME
, FURGA.RESPONSIBILITY_ID
, FRTL.RESPONSIBILITY_NAME
, FURGA.RESPONSIBILITY_APPLICATION_ID
, FA.APPLICATION_SHORT_NAME
, FURGA.SECURITY_GROUP_ID
, FSG.SECURITY_GROUP_KEY
, FURGA.START_DATE
, FURGA.END_DATE
, FURGA.CREATED_BY
, FUCB.USER_NAME
, FURGA.CREATION_DATE
, FURGA.LAST_UPDATED_BY
, FULUB.USER_NAME
, FURGA.LAST_UPDATE_DATE
, FURGA.LAST_UPDATE_LOGIN
, FULUL.USER_NAME
FROM
FND_USER_RESP_GROUPS_ALL FURGA,
FND_USER FU,
FND_USER FUCB,
FND_USER FULUB,
FND_USER FULUL,
FND_APPLICATION FA,
FND_RESPONSIBILITY_TL FRTL,
FND_SECURITY_GROUPS FSG
WHERE
FURGA.USER_ID = FU.USER_ID (+)
AND FURGA.CREATED_BY = FUCB.USER_ID (+)
AND FURGA.LAST_UPDATED_BY = FULUB.USER_ID (+)
AND FURGA.LAST_UPDATE_LOGIN = FULUL.USER_ID (+)
AND FURGA.RESPONSIBILITY_APPLICATION_ID = FA.APPLICATION_ID (+)
AND FURGA.RESPONSIBILITY_ID = FRTL.RESPONSIBILITY_ID (+)
AND FRTL.LANGUAGE = 'US'
AND FURGA.SECURITY_GROUP_ID = FSG.SECURITY_GROUP_ID (+)
AND UPPER(fu.user_name) LIKE UPPER('&username%')
ORDER BY START_DATE;

 


Obtain responsibility for a user



SELECT SUBSTR(user_name,1,15) AS username,
b.responsibility_key,
b.responsibility_name name, TO_CHAR(a.responsibility_id) id
FROM fnd_user_resp_groups a,
fnd_responsibility_vl b,
fnd_user u
WHERE a.user_id = u.user_id
AND a.responsibility_id = b.responsibility_id
AND a.responsibility_application_id = b.application_id
AND SYSDATE BETWEEN a.start_date AND NVL(a.end_date,SYSDATE+1)
AND UPPER(u.user_name) LIKE UPPER('&username%')