SlideShare a Scribd company logo
1 of 12
Download to read offline
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.

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

More from 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
 

More from 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
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 

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.