SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Overview
This technical article explains personalization concept in Webcenter Portal. It also provides steps to create a scenario
and use it in Webcenter Portal.
Product - Webcenter Portal 11.1.1.8
Personalization
Personalization provides a dynamically derived user experience for your Webcenter Portal. Personalization
evaluates defined sources of input data, generates a decision based on that evaluation, and applies this information to
a declaratively defined Personalization scenario. Personalization in Webcenter Portal is showing recommended
content for respective user for example in an ecommerce application user will see content or get application
navigation flow based on information about a user i.e. his activity/history and personal information targeting the
application experience for that specific user.
It is not same as customization in Webcenter Portal for example changing the number of column in table or setting
color for particular component. It is a programming model using rest and java interfaces to give recommended
content or output. It helps in making the framework more extensible.
Published content targeting is implemented by leveraging WebCenter Personalization Service (aka Conductor).
WebCenter Personalization (P13N) supports delivering targeted content based on both user and application context.
It also provides a run-time and associated design time tools that allow declarative definition of decision flow for the
content targeting.
Personalization Architecture
It is not dependent on any other webcenter products, hence it can be created and used independently.
It runs on Weblogic server. Peronalization is a pluggable architecture and can be used in ADF or any
other web applications like HTML5 and so on.
Conductor
The Conductor is the heart of the Personalization engine, and contains and runs the units of work called scenarios.
Conductor in other words is declarative way of creating of rest based applications. The Conductor executes
scenarios, and provides medium for access to different provider extensions that plug into the Conductor. Conductor
consist of following parts –
Scenarios - A declarative/diagrammatic applications flow (rest based apps) . Scenario is created using the Scenario
Editor in JDeveloper. In scenario simple syntax that allows conditional statement evaluation, resulting in some form
of content being returned to the client. It contains, ‘if then while’ logic including branching as well. It is available
through conductor Java, Rest and EL interfaces. You can also have nested scenarios.
Content can be filtered or manipulated prior to it being returned to the client.
Scenario except returning targeted content, it can also make / change in application flow at runtime for personalized
user experience within the application.
Property Set - organize sets of user or application data, and property definitions to assign a data type to property
data. You can extend the Property Service to access additional user profile data in an enterprise LDAP repository, or
to access additional repositories such as Oracle MDS
Providers - It provides a medium to access external resources within your scenario. It’s a reusable resource for
data or similar type of functionality. You can create a plug-in to get data from database or for content retrieval. It
can be accessible through local java interface. Remote provider can be accessed by local proxy via REST.
We have three out-of-the-box providers i.e. Property Service, Content Server Provider (CMIS) and Activity Graph.
Conductor also supports an extensible architecture that make you implement and access custom providers from
within your Scenarios.
Out-of-the-Box Providers
 Property Service Provider (Integrate property set to provide set of properties)
 CMIS Provider (Get content from CMIS content server)
 Activity Graph Provider (provide access to activity graph engine)
 People Connections Locator (provide user information)
For example
 deliver content from UCM (CMIS Provider)
 make recommendations based on activities in the WebCenter Space (Activity Graph Provider)
 retrieve properties for a given WebCenter profile (People Connections Locator)
You can also write your custom provider. Read more on developer guide.
Create Personalization Scenario
Extend technology scope of you portal application to include WebCenter Personalization (hint – right-click on
the Portal Project and open Project Properties, select WebCenter Personalization and move it to the right panel):
1) P13N Expression Builders require live connection to WCPS, so it is recommended to start
embedded WLS before starting work on P13N artifacts (property namespace, scenarios, etc.). That
will start WCPS service.
2) Add connection to WCPS service (hint – Application Resources > New Connection > URL..)
using the following parameters:
URL Endpoint http://localhost:7101/wcps/api/conductor/resourceIndex
Authentication Basic
Username/Password weblogic/weblogic1
Realm WCPS
Creating properties namespace –
 Create a new Personalization properties namespace (New > Personalization – properties namespace)
and give it a name
Creating scenario –
 Create a new Personalization scenario (New > Personalization – Conductor Scenario) and give it a name (it
is a best practice to use name that describes scenario that you are going to build), e.g.
AgeBasedRecommendation.scenarios_diagram.
After creating properties namespaces and scenario, you will have a project structure as
To build the property map right-click on the root node Property Namespace Definitions and select Create New -
Property Set Definition. Give a name, e.g. ‘userProfile’ to the new set. Follow a similar procedure to create new
Property Definition Mappings. Continue creating your property definition and properties that are shown on the
diagram below to the ‘userProfile’ Property Set:
 In addition to Property Set that is used to create user profile we also create an extra set ‘offerActive’ with a
single property ‘active’ that will be used to enable (active set to true) or disable (false) the P13N scenario.
Follow the same procedure as above to extend the Property Definition with new set ‘offerActive’:
 We want to build a scenario that makes decision based on the information that is stored in the user profile.
To achieve that we need to pass the name of the browsing user to AgeBasedRecommendation scenario as
input parameter. Open scenario diagram; right click on the Start node and select Scenario properties. In the
displayed Scenario Properties wizard open Input Parameters page and add ‘username’ parameter.
 Then we can create a flow inside the scenario. We can add different nodes inside the scenario .i.e.
Node Types
■ Start: The Start node is a root level node that defines where a scenario begins.
■ Return: The Return node halts execution of the scenario, and returns the specified results of evaluation
of an EL expression to the caller.
■ Set Variable: The Set Variable node lets you define a variable that is scoped within the context of the
currently running scenario and initialize it with an expression.
■ Script: Use the Script node to add a script, including ones that use embedded EL expressions, to your
scenario. A script engine can be specified by either the mime type or engine name.
■ Execute: The Execute node invokes a specified EL expression with no expected return value. Similar to
Variable Assignment, only the results of the expression are not stored within the Scenario context.
■ Error Handler: The Error Handler node provides a Java-like Catch/Try construct where you can use the
Try node to test a condition and execute a response depending on the results.
■ Conditional: The Conditional node evaluates an EL expression and executes the contained statements if
the EL expression evaluates to true. Statements within the otherwise block will only execute if all condition
statements evaluate to false.
■ For Each: The For Each node provides looping/iterative functionality over a collection of things.
■ While: Provides looping/iterating functionality as long as a specified EL expression evaluates to true.
■ Raise Error: Raise and throw an error with the specified error message
■ Invoke Provider: Invokes a named implementation of IDataProvider. Results are stored within the
context of the currently running Scenario.
■ Invoke Scenario: Invokes another named Scenario within the same namespace. Results are stored within
the context of the currently running Scenario
Continue creating scenario, we add Invoke provider.
 Scenario nodes are added with empty settings. To configure the Invoke Provider node right-click on it and
select Invoke Provider Properties. When Properties wizard is selected first time for a new scenario,
JDeveloper prompts you to select WCPS (Conductor) connection.
 In this example, I am using default Property Provider – in the Invoke Provider Properties wizard expand
oracle. PropertiesServiceProvider tree and then select GetProperty method with 4 arguments – namespace,
definition, set and property.
 To select namespace, definition or property for the Provider method call, double click in the corresponding
Value field and then open Select dialogue for this field by clicking on the ‘…’ button.
 To control/check if Age Based Recommendation is active, we will use a sub-scenario that will be called
upon from the main scenario. This will be a very simple scenario that reads value of ‘active’ property from
the ‘offerActive’ property set and returns it back to the calling scenario.
 We will create another scenario called offerActive and invoke newly created scenario from
AgeBasedRecommendation scenario.
 To invoke this sub-scenario we will use Invoke Scenario statement in our main scenario. Open
AgeBasedRecommendation scenario, right-click on the Invoke Provider node that you added earlier and the
select and add Invoke Scenario as the next statement. Open Invoke Scenario Properties dialogue, click
Browse… and select offerActive scenario from Scenario Browser. Then enter ‘isActive’ as the name of the
variable that will store value that offerActive scenario returns.
 After Invoke Scenario node add Conditional statement that it checks the value of isActive variable and if it
is not set to ‘true’, terminates the scenario. In our sample scenario we set userType to ‘UNKNOWN’. If
isActive is ‘true’, scenario flow continues to check the age of the logged customer.
 Continue building P13N scenario to create decision flow that is the same as shown on the following
diagram. The Set Variable nodes are used to set (and define, if necessary) a scenario variable (userType in
this scenario). The Conditional node together with Branch (and Otherwise) nodes are used to implement the
if...then…else decision flow. The Return node returns scenario output that has been selected in the
Conditional node
 In this way, we can create flow based P13N scenarios.
Final project structure in Jdeveloper will be like following image
Then we can deploy the personalization file to the server. After P13N scenario is finished and tested .It can be used
in WebCenter application to control displaying of targeted content. WCPS exposes REST API that you can access
from the JavaScript or directly from your custom application. Alternatively, you can use P13N EL expressions that
are made available on WebCenter pages
The expression language can be added in ‘datasource’ parameter of content presenter and then modify its value
attribute by adding a call on your p13n scenario to determine ID of the content that this Content Presenter task flow
will display. The P13N functionality is exposed on WebCenter pages through p14nContext object. The easiest way
to build a P13N EL is to use Expression builder to run a P13N scenario:
In the el, we can call the scenario using this syntax
#{p13nContext.conductor.default.namespaces['p13nApp'].scenario['AgeBasedRecommendation'].withInp
ut[bindings.userNameVariable].results}
Ref- http://docs.oracle.com/cd/E17904_01/webcenter.1111/e10148/jpsdg_personalize.htm#JPSDG6732
About the Author
Vinay Kumar is an Oracle ACE/Principal Consultant and certified Oracle ADF/WebCenter Portal implementation
specialist. An Oracle Fusion Middleware evangelist. Vinay has seven years of experience consulting in Oracle ADF,
Oracle WebCenter Portal/Content.

Más contenido relacionado

La actualidad más candente

Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gatewayKhan625
 
Introduction to mule esb's
Introduction to mule esb's Introduction to mule esb's
Introduction to mule esb's F K
 
Mule real-world-old
Mule real-world-oldMule real-world-old
Mule real-world-oldF K
 
Running mule as worker role on azure
Running mule as worker role on azureRunning mule as worker role on azure
Running mule as worker role on azureSon Nguyen
 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5IBM WebSphereIndia
 
Deployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMCDeployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMCSanjeet Pandey
 
MuleSoft Consuming Soap Web Service - CXF Proxy-Client Module
MuleSoft Consuming Soap Web Service - CXF Proxy-Client ModuleMuleSoft Consuming Soap Web Service - CXF Proxy-Client Module
MuleSoft Consuming Soap Web Service - CXF Proxy-Client ModuleVince Soliza
 
IBM websphere application server types of profiles
IBM websphere application server types of profilesIBM websphere application server types of profiles
IBM websphere application server types of profilesKuldeep Saxena
 
Introduction to JCA and MDB
Introduction to JCA and MDBIntroduction to JCA and MDB
Introduction to JCA and MDBKenji HASUNUMA
 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginnersSindhu VL
 
Websphere Application Server v7
Websphere Application Server v7Websphere Application Server v7
Websphere Application Server v7Chris Sparshott
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere conceptsKuldeep Saxena
 
Database component in mule
Database component in muleDatabase component in mule
Database component in muleRajkattamuri
 

La actualidad más candente (20)

Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Introduction to mule esb's
Introduction to mule esb's Introduction to mule esb's
Introduction to mule esb's
 
Mule real-world-old
Mule real-world-oldMule real-world-old
Mule real-world-old
 
Running mule as worker role on azure
Running mule as worker role on azureRunning mule as worker role on azure
Running mule as worker role on azure
 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5
 
Mule esb 3.8
Mule esb 3.8Mule esb 3.8
Mule esb 3.8
 
Deployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMCDeployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMC
 
Mule soa
Mule soaMule soa
Mule soa
 
WebLogic for DBAs
WebLogic for DBAsWebLogic for DBAs
WebLogic for DBAs
 
MuleSoft Consuming Soap Web Service - CXF Proxy-Client Module
MuleSoft Consuming Soap Web Service - CXF Proxy-Client ModuleMuleSoft Consuming Soap Web Service - CXF Proxy-Client Module
MuleSoft Consuming Soap Web Service - CXF Proxy-Client Module
 
Mule esb
Mule esbMule esb
Mule esb
 
IBM websphere application server types of profiles
IBM websphere application server types of profilesIBM websphere application server types of profiles
IBM websphere application server types of profiles
 
Introduction to JCA and MDB
Introduction to JCA and MDBIntroduction to JCA and MDB
Introduction to JCA and MDB
 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginners
 
Websphere Application Server v7
Websphere Application Server v7Websphere Application Server v7
Websphere Application Server v7
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere concepts
 
Apache ActiveMQ
Apache ActiveMQ Apache ActiveMQ
Apache ActiveMQ
 
Mule esb
Mule esbMule esb
Mule esb
 
Database component in mule
Database component in muleDatabase component in mule
Database component in mule
 
How muleworks
How muleworksHow muleworks
How muleworks
 

Destacado

Oracle WebCenter Solutions
Oracle WebCenter SolutionsOracle WebCenter Solutions
Oracle WebCenter SolutionsReiner Ernst
 
Enterprise 2.0 con Oracle WebCenter
Enterprise 2.0 con Oracle WebCenterEnterprise 2.0 con Oracle WebCenter
Enterprise 2.0 con Oracle WebCenterJaime Cid
 
Oracle web center
Oracle web centerOracle web center
Oracle web centerEast Le
 
Oracle Webcenter Suite Overview
Oracle Webcenter Suite OverviewOracle Webcenter Suite Overview
Oracle Webcenter Suite OverviewEslam Hafez
 
Oracle WebCenter Content User Training
Oracle WebCenter Content User Training Oracle WebCenter Content User Training
Oracle WebCenter Content User Training virkmasood
 
Why do you need a portal?
Why do you need a portal?Why do you need a portal?
Why do you need a portal?Ether Solutions
 
Oracle WebCenter portal
Oracle WebCenter portalOracle WebCenter portal
Oracle WebCenter portalAddvantum
 
Webcenter Portlal training...
Webcenter Portlal training...Webcenter Portlal training...
Webcenter Portlal training...Vinay Kumar
 

Destacado (10)

Oracle WebCenter Solutions
Oracle WebCenter SolutionsOracle WebCenter Solutions
Oracle WebCenter Solutions
 
Enterprise 2.0 con Oracle WebCenter
Enterprise 2.0 con Oracle WebCenterEnterprise 2.0 con Oracle WebCenter
Enterprise 2.0 con Oracle WebCenter
 
Oracle web center
Oracle web centerOracle web center
Oracle web center
 
Oracle Web Center Overview
Oracle Web Center OverviewOracle Web Center Overview
Oracle Web Center Overview
 
Oracle Webcenter Suite Overview
Oracle Webcenter Suite OverviewOracle Webcenter Suite Overview
Oracle Webcenter Suite Overview
 
Oracle WebCenter Content User Training
Oracle WebCenter Content User Training Oracle WebCenter Content User Training
Oracle WebCenter Content User Training
 
Why do you need a portal?
Why do you need a portal?Why do you need a portal?
Why do you need a portal?
 
Oracle WebCenter portal
Oracle WebCenter portalOracle WebCenter portal
Oracle WebCenter portal
 
Webcenter Portlal training...
Webcenter Portlal training...Webcenter Portlal training...
Webcenter Portlal training...
 
Types of web portals
Types of web portalsTypes of web portals
Types of web portals
 

Similar a Personalization in webcenter portal

Murach : How to work with session state and cookies
Murach : How to work with session state and cookiesMurach : How to work with session state and cookies
Murach : How to work with session state and cookiesMahmoudOHassouna
 
Repository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkRepository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkAkhil Mittal
 
Understanding angular js
Understanding angular jsUnderstanding angular js
Understanding angular jsAayush Shrestha
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Mindfire Solutions
 
Coldbox developer training – session 5
Coldbox developer training – session 5Coldbox developer training – session 5
Coldbox developer training – session 5Billie Berzinskas
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010vchircu
 
Knockoutjs databinding
Knockoutjs databindingKnockoutjs databinding
Knockoutjs databindingBoulos Dib
 
Schema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdfSchema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdfseo18
 
what is context API and How it works in React.pptx
what is context API and How it works in React.pptxwhat is context API and How it works in React.pptx
what is context API and How it works in React.pptxBOSC Tech Labs
 
Informatica cloud Powercenter designer
Informatica cloud Powercenter designerInformatica cloud Powercenter designer
Informatica cloud Powercenter designerRameswara Reddy
 
Asset Model Import FlexConnector Developer's Guide
Asset Model Import FlexConnector Developer's GuideAsset Model Import FlexConnector Developer's Guide
Asset Model Import FlexConnector Developer's GuideProtect724migration
 
IBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentIBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentStrongback Consulting
 
quickguide-einnovator-8-spring-cloud
quickguide-einnovator-8-spring-cloudquickguide-einnovator-8-spring-cloud
quickguide-einnovator-8-spring-cloudjorgesimao71
 
Developer's guide to customization
Developer's guide to customizationDeveloper's guide to customization
Developer's guide to customizationAhmed Farag
 
React Hooks Best Practices in 2022.pptx
React Hooks Best Practices in 2022.pptxReact Hooks Best Practices in 2022.pptx
React Hooks Best Practices in 2022.pptxBOSC Tech Labs
 
Rc085 010d-vaadin7
Rc085 010d-vaadin7Rc085 010d-vaadin7
Rc085 010d-vaadin7Cosmina Ivan
 
LearningMVCWithLINQToSQL
LearningMVCWithLINQToSQLLearningMVCWithLINQToSQL
LearningMVCWithLINQToSQLAkhil Mittal
 

Similar a Personalization in webcenter portal (20)

Building richwebapplicationsusingasp
Building richwebapplicationsusingaspBuilding richwebapplicationsusingasp
Building richwebapplicationsusingasp
 
Murach : How to work with session state and cookies
Murach : How to work with session state and cookiesMurach : How to work with session state and cookies
Murach : How to work with session state and cookies
 
Repository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkRepository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity Framework
 
Understanding angular js
Understanding angular jsUnderstanding angular js
Understanding angular js
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)
 
Coldbox developer training – session 5
Coldbox developer training – session 5Coldbox developer training – session 5
Coldbox developer training – session 5
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
 
Knockoutjs databinding
Knockoutjs databindingKnockoutjs databinding
Knockoutjs databinding
 
Schema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdfSchema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus & Hibernate-ORM.pdf
 
Angular Seminar-js
Angular Seminar-jsAngular Seminar-js
Angular Seminar-js
 
Spring Framework-II
Spring Framework-IISpring Framework-II
Spring Framework-II
 
what is context API and How it works in React.pptx
what is context API and How it works in React.pptxwhat is context API and How it works in React.pptx
what is context API and How it works in React.pptx
 
Informatica cloud Powercenter designer
Informatica cloud Powercenter designerInformatica cloud Powercenter designer
Informatica cloud Powercenter designer
 
Asset Model Import FlexConnector Developer's Guide
Asset Model Import FlexConnector Developer's GuideAsset Model Import FlexConnector Developer's Guide
Asset Model Import FlexConnector Developer's Guide
 
IBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentIBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic Investment
 
quickguide-einnovator-8-spring-cloud
quickguide-einnovator-8-spring-cloudquickguide-einnovator-8-spring-cloud
quickguide-einnovator-8-spring-cloud
 
Developer's guide to customization
Developer's guide to customizationDeveloper's guide to customization
Developer's guide to customization
 
React Hooks Best Practices in 2022.pptx
React Hooks Best Practices in 2022.pptxReact Hooks Best Practices in 2022.pptx
React Hooks Best Practices in 2022.pptx
 
Rc085 010d-vaadin7
Rc085 010d-vaadin7Rc085 010d-vaadin7
Rc085 010d-vaadin7
 
LearningMVCWithLINQToSQL
LearningMVCWithLINQToSQLLearningMVCWithLINQToSQL
LearningMVCWithLINQToSQL
 

Más de Vinay Kumar

Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Vinay Kumar
 
Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Vinay Kumar
 
Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Vinay Kumar
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18Vinay Kumar
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18Vinay Kumar
 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Vinay Kumar
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- MadridVinay Kumar
 
Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridVinay Kumar
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Vinay Kumar
 
award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caVinay Kumar
 
award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caVinay Kumar
 
Custom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extensionCustom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extensionVinay Kumar
 
File upload in oracle adf mobile
File upload in oracle adf mobileFile upload in oracle adf mobile
File upload in oracle adf mobileVinay Kumar
 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guideVinay Kumar
 
Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperVinay Kumar
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tipsVinay Kumar
 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - OverviewVinay Kumar
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depthVinay Kumar
 
Oracle Fusion Architecture
Oracle Fusion ArchitectureOracle Fusion Architecture
Oracle Fusion ArchitectureVinay Kumar
 
Incentive compensation in fusion CRM
Incentive compensation in fusion CRMIncentive compensation in fusion CRM
Incentive compensation in fusion CRMVinay Kumar
 

Más de Vinay Kumar (20)

Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...
 
Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20
 
Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18
 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
 
Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug Madrid
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17
 
award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026ca
 
award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026ca
 
Custom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extensionCustom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extension
 
File upload in oracle adf mobile
File upload in oracle adf mobileFile upload in oracle adf mobile
File upload in oracle adf mobile
 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guide
 
Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paper
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tips
 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - Overview
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
 
Oracle Fusion Architecture
Oracle Fusion ArchitectureOracle Fusion Architecture
Oracle Fusion Architecture
 
Incentive compensation in fusion CRM
Incentive compensation in fusion CRMIncentive compensation in fusion CRM
Incentive compensation in fusion CRM
 

Último

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Personalization in webcenter portal

  • 1. Overview This technical article explains personalization concept in Webcenter Portal. It also provides steps to create a scenario and use it in Webcenter Portal. Product - Webcenter Portal 11.1.1.8 Personalization Personalization provides a dynamically derived user experience for your Webcenter Portal. Personalization evaluates defined sources of input data, generates a decision based on that evaluation, and applies this information to a declaratively defined Personalization scenario. Personalization in Webcenter Portal is showing recommended content for respective user for example in an ecommerce application user will see content or get application navigation flow based on information about a user i.e. his activity/history and personal information targeting the application experience for that specific user. It is not same as customization in Webcenter Portal for example changing the number of column in table or setting color for particular component. It is a programming model using rest and java interfaces to give recommended content or output. It helps in making the framework more extensible. Published content targeting is implemented by leveraging WebCenter Personalization Service (aka Conductor). WebCenter Personalization (P13N) supports delivering targeted content based on both user and application context. It also provides a run-time and associated design time tools that allow declarative definition of decision flow for the content targeting. Personalization Architecture
  • 2. It is not dependent on any other webcenter products, hence it can be created and used independently. It runs on Weblogic server. Peronalization is a pluggable architecture and can be used in ADF or any other web applications like HTML5 and so on. Conductor The Conductor is the heart of the Personalization engine, and contains and runs the units of work called scenarios. Conductor in other words is declarative way of creating of rest based applications. The Conductor executes scenarios, and provides medium for access to different provider extensions that plug into the Conductor. Conductor consist of following parts – Scenarios - A declarative/diagrammatic applications flow (rest based apps) . Scenario is created using the Scenario Editor in JDeveloper. In scenario simple syntax that allows conditional statement evaluation, resulting in some form of content being returned to the client. It contains, ‘if then while’ logic including branching as well. It is available through conductor Java, Rest and EL interfaces. You can also have nested scenarios. Content can be filtered or manipulated prior to it being returned to the client. Scenario except returning targeted content, it can also make / change in application flow at runtime for personalized user experience within the application. Property Set - organize sets of user or application data, and property definitions to assign a data type to property data. You can extend the Property Service to access additional user profile data in an enterprise LDAP repository, or to access additional repositories such as Oracle MDS
  • 3. Providers - It provides a medium to access external resources within your scenario. It’s a reusable resource for data or similar type of functionality. You can create a plug-in to get data from database or for content retrieval. It can be accessible through local java interface. Remote provider can be accessed by local proxy via REST. We have three out-of-the-box providers i.e. Property Service, Content Server Provider (CMIS) and Activity Graph. Conductor also supports an extensible architecture that make you implement and access custom providers from within your Scenarios. Out-of-the-Box Providers  Property Service Provider (Integrate property set to provide set of properties)  CMIS Provider (Get content from CMIS content server)  Activity Graph Provider (provide access to activity graph engine)  People Connections Locator (provide user information) For example  deliver content from UCM (CMIS Provider)  make recommendations based on activities in the WebCenter Space (Activity Graph Provider)  retrieve properties for a given WebCenter profile (People Connections Locator) You can also write your custom provider. Read more on developer guide. Create Personalization Scenario Extend technology scope of you portal application to include WebCenter Personalization (hint – right-click on the Portal Project and open Project Properties, select WebCenter Personalization and move it to the right panel):
  • 4. 1) P13N Expression Builders require live connection to WCPS, so it is recommended to start embedded WLS before starting work on P13N artifacts (property namespace, scenarios, etc.). That will start WCPS service. 2) Add connection to WCPS service (hint – Application Resources > New Connection > URL..) using the following parameters: URL Endpoint http://localhost:7101/wcps/api/conductor/resourceIndex Authentication Basic Username/Password weblogic/weblogic1 Realm WCPS
  • 5. Creating properties namespace –  Create a new Personalization properties namespace (New > Personalization – properties namespace) and give it a name
  • 6. Creating scenario –  Create a new Personalization scenario (New > Personalization – Conductor Scenario) and give it a name (it is a best practice to use name that describes scenario that you are going to build), e.g. AgeBasedRecommendation.scenarios_diagram. After creating properties namespaces and scenario, you will have a project structure as To build the property map right-click on the root node Property Namespace Definitions and select Create New - Property Set Definition. Give a name, e.g. ‘userProfile’ to the new set. Follow a similar procedure to create new Property Definition Mappings. Continue creating your property definition and properties that are shown on the diagram below to the ‘userProfile’ Property Set:
  • 7.  In addition to Property Set that is used to create user profile we also create an extra set ‘offerActive’ with a single property ‘active’ that will be used to enable (active set to true) or disable (false) the P13N scenario. Follow the same procedure as above to extend the Property Definition with new set ‘offerActive’:  We want to build a scenario that makes decision based on the information that is stored in the user profile. To achieve that we need to pass the name of the browsing user to AgeBasedRecommendation scenario as input parameter. Open scenario diagram; right click on the Start node and select Scenario properties. In the displayed Scenario Properties wizard open Input Parameters page and add ‘username’ parameter.
  • 8.  Then we can create a flow inside the scenario. We can add different nodes inside the scenario .i.e. Node Types ■ Start: The Start node is a root level node that defines where a scenario begins. ■ Return: The Return node halts execution of the scenario, and returns the specified results of evaluation of an EL expression to the caller. ■ Set Variable: The Set Variable node lets you define a variable that is scoped within the context of the currently running scenario and initialize it with an expression. ■ Script: Use the Script node to add a script, including ones that use embedded EL expressions, to your scenario. A script engine can be specified by either the mime type or engine name. ■ Execute: The Execute node invokes a specified EL expression with no expected return value. Similar to Variable Assignment, only the results of the expression are not stored within the Scenario context. ■ Error Handler: The Error Handler node provides a Java-like Catch/Try construct where you can use the Try node to test a condition and execute a response depending on the results. ■ Conditional: The Conditional node evaluates an EL expression and executes the contained statements if the EL expression evaluates to true. Statements within the otherwise block will only execute if all condition statements evaluate to false.
  • 9. ■ For Each: The For Each node provides looping/iterative functionality over a collection of things. ■ While: Provides looping/iterating functionality as long as a specified EL expression evaluates to true. ■ Raise Error: Raise and throw an error with the specified error message ■ Invoke Provider: Invokes a named implementation of IDataProvider. Results are stored within the context of the currently running Scenario. ■ Invoke Scenario: Invokes another named Scenario within the same namespace. Results are stored within the context of the currently running Scenario Continue creating scenario, we add Invoke provider.  Scenario nodes are added with empty settings. To configure the Invoke Provider node right-click on it and select Invoke Provider Properties. When Properties wizard is selected first time for a new scenario, JDeveloper prompts you to select WCPS (Conductor) connection.
  • 10.  In this example, I am using default Property Provider – in the Invoke Provider Properties wizard expand oracle. PropertiesServiceProvider tree and then select GetProperty method with 4 arguments – namespace, definition, set and property.  To select namespace, definition or property for the Provider method call, double click in the corresponding Value field and then open Select dialogue for this field by clicking on the ‘…’ button.
  • 11.  To control/check if Age Based Recommendation is active, we will use a sub-scenario that will be called upon from the main scenario. This will be a very simple scenario that reads value of ‘active’ property from the ‘offerActive’ property set and returns it back to the calling scenario.  We will create another scenario called offerActive and invoke newly created scenario from AgeBasedRecommendation scenario.  To invoke this sub-scenario we will use Invoke Scenario statement in our main scenario. Open AgeBasedRecommendation scenario, right-click on the Invoke Provider node that you added earlier and the select and add Invoke Scenario as the next statement. Open Invoke Scenario Properties dialogue, click Browse… and select offerActive scenario from Scenario Browser. Then enter ‘isActive’ as the name of the variable that will store value that offerActive scenario returns.  After Invoke Scenario node add Conditional statement that it checks the value of isActive variable and if it is not set to ‘true’, terminates the scenario. In our sample scenario we set userType to ‘UNKNOWN’. If isActive is ‘true’, scenario flow continues to check the age of the logged customer.  Continue building P13N scenario to create decision flow that is the same as shown on the following diagram. The Set Variable nodes are used to set (and define, if necessary) a scenario variable (userType in this scenario). The Conditional node together with Branch (and Otherwise) nodes are used to implement the if...then…else decision flow. The Return node returns scenario output that has been selected in the Conditional node
  • 12.  In this way, we can create flow based P13N scenarios. Final project structure in Jdeveloper will be like following image Then we can deploy the personalization file to the server. After P13N scenario is finished and tested .It can be used in WebCenter application to control displaying of targeted content. WCPS exposes REST API that you can access from the JavaScript or directly from your custom application. Alternatively, you can use P13N EL expressions that are made available on WebCenter pages The expression language can be added in ‘datasource’ parameter of content presenter and then modify its value attribute by adding a call on your p13n scenario to determine ID of the content that this Content Presenter task flow will display. The P13N functionality is exposed on WebCenter pages through p14nContext object. The easiest way to build a P13N EL is to use Expression builder to run a P13N scenario: In the el, we can call the scenario using this syntax #{p13nContext.conductor.default.namespaces['p13nApp'].scenario['AgeBasedRecommendation'].withInp ut[bindings.userNameVariable].results} Ref- http://docs.oracle.com/cd/E17904_01/webcenter.1111/e10148/jpsdg_personalize.htm#JPSDG6732 About the Author Vinay Kumar is an Oracle ACE/Principal Consultant and certified Oracle ADF/WebCenter Portal implementation specialist. An Oracle Fusion Middleware evangelist. Vinay has seven years of experience consulting in Oracle ADF, Oracle WebCenter Portal/Content.