Monday May 04, 2015
Thursday Dec 04, 2014
By Asantaga-Oracle on Dec 04, 2014
If your getting started with integrating your application with Oracle Fusion Cloud then I wholeheartedly recommend you read the following resources before starting.. Most of the below is specific to Oracle Sales Cloud because it has App Composer, however much of the below is also applicable to HCM, ERP and other Fusion products..
Some of these are a MUST have read before you start integrating/coding/customizing :-) I've put them here in the order I think would work for most people... Kinda like a getting started check-list
I consider this blog entry an living blog entry, in that I'll be updating it on a regular basis, so make sure you periodically check this location
Top 5 Fusion Integrations Must Reads
1. Familiarise yourself with the Sales Cloud Documentation. Specifically :
- Go through the "User" section, documents like "Using Sales Cloud", "book. If your a techie like me you'll sit there and think, "Hey this is functional why do I need to read this?", well you do.. Even as a technical person, reading through the various user documents like the Using Sales Cloud" bits as an end user helps you understand what the different concepts/topics are.. You'll also understand things like the difference between a Prospect and a Sales Account, territories, assessments and much more.. Its worth a quick read, but do make sure you have a functional consultant to hand to make sure your not building something which can be done by configuration....
- Read through all the books in the "Extensibility" section. The only anomaly here is the "Business Card Scanner mobile App" document. Its a walk-through of how to integrate Sales Cloud with a 3rd party Service to do business card scanning with MAF... Id leave that till last...
- Peruse the Development section, this section contains a number of example use-cases, ie how to create a customer in R8, how to call an outbound service, its a good read....
- Once you've this then look at the "Tasks" section of the docs....Here the curriculum development folk have categorised some of the most common tasks and put short cuts to the documentation detailing how to do this.. e.g. like adding a field to Sales Cloud, calling a soap webservice etc
- Many Sales Cloud integrations involve customizing the Sales Cloud User Interface. The customization could be as simple as adding a few fields to a standard object (like Opportunity), creating new objects (like MyOrder), validation or adding external content to one or many pages.
- If your adding fields make sure you read the "Introduction to SalesCloud Customizations" section.
- If you will be adding validation, triggers or calling webservices from Sales Cloud then make sure you read up on groovy scripting, and specifically the chapter on calling outbound SOAP webservices from groovy.
- Make sure you understand the difference between calling a SOAP Service from groovy and creating an outbound webservice call using object workflows.
- In a nutshell , calling SOAP Services from groovy is a synchronous call, and calling a SOAP Service from a object workflow is a fire-and-forget asynchronous call
- If you need to make sure an outbound webservice call is executed successfully then call the outbound webservice from a groovy script and surround it with an exception handler to catch any errors
- On the subject of groovy be aware that in Sales Cloud you do not have access to the entire groovy language, thus make sure you understand that we only support a number of groovy functions (white-listing) and these are documented at the end of the book , Appendix A Supported Groovy Classes and Methods
- If you think you will be calling SOAP WebServices in Sales Cloud then the "Getting started with WebServices" is a MUST read... This doc goes into details into how to look up the SOAP webservice in Fusion OER, how to create static proxies, querying data and how to perform CRUD operations...
- Get to know Oracle Fusion OER,, its a gold mine of information.......
- Read Arvinds ( A-Team Chronicles Blog ) excellent "Invoking Sales Cloud SOAP Services from external Applications (part 1)" blog entry. This blog entry describes the steps aronud looking up a SOAP service (ie Opportunities) and then how to create a SOAP JAX-WS static proxy using JDeveloper11g. I personally would the JAX-WS Proxy approach (vs the Data Control) and then building Java code around this to support your application.
- Many integrations involve embedding a 3rd party web app into Oracle Sales Cloud as an iFrame or pressing a button in SalesCloud and calling the 3rd party app (either a UI or WebService call) . If your doing this then you'll almost certainly need to pass a "token" to the 3rd party application so it can use that it can call back to Sales Cloud with a key rather than a plain text username/password combo.. We call this key JWT TOKEN and its based on industry standards (http://jwt.io/) . For a starters read my JWT Getting started blog entry and then use the links to read the core documentation
That covers the top 5 areas of integration.. Now for a list of locations where you can get even MORE useful information :
- I worked with Development to get this mini tutorial series done, its excellent but Im obviously not biased eh ;-)
- This is a new document we recently completed based on how to use the new R9 Simplified SOAP TCA Services.. Although the document is targetted at R9 developers, it covers many of the standard topics like how to create a proxy, how to create a create operation etc.. It even has some sample CRUD payloads which are really really useful
- Good friends of mine, they host a fantastic blog, youtube channel and whitepapers for Fusion Developers, another gold mine of information covering customization , extensions and integration code.
- Youtube channel : Not content with an awesome blog the Developer Relations folk even have a you tube channel where they host a collection of short "tutorials", showing all sorts such as "How to add a field to a page" , " How to call a webservice" etc..
- Oracle Fusion Developer Relations Whitepapers
Thats it folks!
If there are blog entries you'd like to see, or specific how to's, then feel free to contact me at email@example.com
Tuesday Jun 10, 2014
By Asantaga-Oracle on Jun 10, 2014
Over the last year or so I've see a lot of partners migrating and integrate their applications with Oracle Sales Cloud. Interestingly I'd say 60% of the partners use the same set of design patterns over and over again. Most of the time I see that they want to embed their application into Oracle Sales Cloud, within a tab usually, perhaps click on a link to their application (passing some piece of data + credentials) and then within their application update sales cloud again using webservices.
Here are some examples of the different use-cases I've seen , and how partners are embedding their applications into Sales Cloud,
NB : The following examples use the "Desktop" User Interface rather than the Newer "Simplified User Interface", I'll update the sample application soon but the integration patterns are precisely the same
Use Case 1 : Navigator "Link out" to third party application
This is an example of where the developer has added a link to the global navigator and this links out to the 3rd Party Application. Typically one doesn't pass any contextual data with the exception of perhaps user credentials, or better still JWT Token.
- Adding Link to Menu Item
- Using JWT Token in Sales Cloud
Use Case 2 : Application Embedded within the Sales Cloud Dashboard
Within the Oracle Sales Cloud application there is a tab called "Sales", within this tab its possible to embed a SubTab and embed a iFrame pointing to your application. To do this the developer simply needs to edit the page in customization mode, add the tab and then add the iFrame, simples! The developer can pass credentials/JWT Token and some other pieces of data but not object data (ie the current OpportunityID etc)
Use Case 3 : Embedding a Tab and Context Linking out from a Sales Cloud object to the 3rd party application
In this usecase the developer embeds two components into Oracle Sales Cloud. The first is a SubTab showing summary data to the user (a quote in our case) and then secondly a hyperlink, (although it could be a button) which when clicked navigates the user to the 3rd party application. In this case the developer almost always passes context specific data (i.e. the opportunityId) and a security token (username password combo or JWT Token). The third party application usually takes the data, perhaps queries more data using the Sales Cloud SOAP/WebService interface and then displays the resulting mashup to the user for further processing. When the user has finished their work in the 3rd party application they normally navigate back to Oracle Sales Cloud using what's called a "DeepLink", ie taking them back to the object [opportunity in our case] they came from.
This image visually shows a "Happy Path" a user may follow, and combines linking out to an application , webservice calls and deep linking back to Sales Cloud.
- Extending a SalesCloud application with a custom button
- Using JWT Token in Sales Cloud
- Extending Oracle Sales Cloud [Opportnity] with a custom tab exposing External Content
- Retrieving Data from Oracle Sales cloud using WebServices
- Coding some groovy script to generate the URLs required (Doc 1571200.1 on MyOracle Support)
- DeepLinking to specific Oracle Sales Cloud Pages (Doc 1516151.1 on My Oracle Support)
Use-Case 4 : Server Side processing/synchronization
This usecase focuses on the Server Side processing of data, in this case synchronizing data. Here the 3rd party application is running on a "timer", e.g. cron or similar, and when triggered it queries data from Oracle Sales Cloud, then it queries data from the 3rd party application, determines the deltas and then inserts the data where required. Specifically here we are calling Oracle Sales Cloud using SOAP/WebServices and the 3rd party application is being communicated to using the REST API, for Oracle Sales Cloud one would use standard JAX-WS WebService calls and for REST one would use the JAX-RS api and perhap the Jackson api for managing JSON objects.. This is a very common use case and one which specifically lends itself to using the Oracle Java Cloud Service as the ideal application server where to host the mediator between the two applications.
- Using JWT Token in Sales Cloud
- Integrating with the Oracle Java Cloud Service
- Retrieving Data from Oracle Sales cloud using WebServices
The above is just a small set of techniques and use-cases which are used today. There are plenty of other sources of documentation and resources available on the internet but to get you started here are a few of my favourite places
- Sales Cloud General Documentation
- Sales Cloud Customize Tab is useful for general customization of Sales Cloud
- Sales Cloud Integration Tab focuses on the 3rd party integration techniques
- Official Oracle Fusion Developer Relations Blog
- Official Oracle Fusion Developer Relations YouTube Channel
Tuesday Jan 03, 2012
By Asantaga-Oracle on Jan 03, 2012
Firstly Happy New Year to you all
Secondly, in late December a friend of mine, who works for an Oracle Partner, asked me questions on how to "correctly" integrate Oracle eBusiness Suite with a 3rd party application, the answer is "it depends".. There are many ways to do integration and depending on what you need to accomplish depends which one is the "best" approach..
It depends on :
- What version of
EBS you are using, if its 12.1.3 then you can use the ISG (integrated Service
Gateway) to call services within EBS as Web services.
- If your on a EBS prior to 12.1.3 (also 11i I guess) then you have something called the Applications SOA Adapter within SOA Suite. This adapter basically acts as a facade between SOA Suite and the Oracle eBusiness Suite PLSQL APIs, quite easy to use and works well.. This adapter is also available in 12.1.3, but its generally recommended to use the previously mentioned ISG Gateway instead.
However beware that the devil is in the detail, it does depend who the 3rd party is and what they are trying to do, you might for example need to use the Oracle Service bus for some complex credential mapping, or maybe the Oracle B2B product is a better fit.. Also consider if its a batch process then perhaps one of the data integration products is a better fit (e.g. ODI)
Finally, what about validating the solution? Does oracle provide validation services?
Yes we do!
If its custom code, or a one off for a client, then the best people do validate the solution is probably Oracle Consulting Services, if you are a partner who are creating a reusable asset then the partner program has a validation program called "Oracle Validated Integration" which provides a number of benefits
Architect & Technology Evangelist - If its middleware,PaaS/SaaS integration then I'm interested
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
- Streamline Oracle Development with Cloud Services
- Calling Fusion SOAP Services from Ruby
- URL Encoding and other from Groovy
- Getting started with Sales Cloud (Updated)
- SalesCloud Payload : How to create a Activity(Task)
- Creating Sales Cloud Opportunity
- Scheduling Processes on Oracle JavaCloud Service SaaS Extensions (JCSSX)
- Sample Payload : Creating a Lead
- Smart watches in the enterprise?
- Getting inaccessible URL when executing REST calls within JCSSX????