SlideShare a Scribd company logo
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 gateway
Khan625
Ā 
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-old
F 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 azure
Son Nguyen
Ā 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5
IBM WebSphereIndia
Ā 
Mule esb 3.8
Mule esb 3.8Mule esb 3.8
Mule esb 3.8
himajareddys
Ā 
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
Sanjeet Pandey
Ā 
Mule soa
Mule soaMule soa
Mule soa
Khasim Saheb
Ā 
WebLogic for DBAs
WebLogic for DBAsWebLogic for DBAs
WebLogic for DBAs
Simon Haslam
Ā 
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
Vince Soliza
Ā 
Mule esb
Mule esbMule esb
Mule esb
charan teja R
Ā 
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
Kuldeep Saxena
Ā 
Introduction to JCA and MDB
Introduction to JCA and MDBIntroduction to JCA and MDB
Introduction to JCA and MDB
Kenji HASUNUMA
Ā 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginners
Sindhu VL
Ā 
Websphere Application Server v7
Websphere Application Server v7Websphere Application Server v7
Websphere Application Server v7
Chris Sparshott
Ā 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere concepts
Kuldeep Saxena
Ā 
Apache ActiveMQ
Apache ActiveMQ Apache ActiveMQ
Apache ActiveMQ
Srushti Patel
Ā 
Mule esb
Mule esbMule esb
Mule esb
Prabhat gangwar
Ā 
Database component in mule
Database component in muleDatabase component in mule
Database component in mule
Rajkattamuri
Ā 
How muleworks
How muleworksHow muleworks
How muleworks
Khadhar Koneti
Ā 

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 Solutions
Reiner Ernst
Ā 
Enterprise 2.0 con Oracle WebCenter
Enterprise 2.0 con Oracle WebCenterEnterprise 2.0 con Oracle WebCenter
Enterprise 2.0 con Oracle WebCenter
Jaime Cid
Ā 
Oracle web center
Oracle web centerOracle web center
Oracle web center
East Le
Ā 
Oracle Web Center Overview
Oracle Web Center OverviewOracle Web Center Overview
Oracle Web Center Overview
Toronto-Oracle-Users-Group
Ā 
Oracle Webcenter Suite Overview
Oracle Webcenter Suite OverviewOracle Webcenter Suite Overview
Oracle Webcenter Suite Overview
Eslam 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 portal
Addvantum
Ā 
Webcenter Portlal training...
Webcenter Portlal training...Webcenter Portlal training...
Webcenter Portlal training...
Vinay Kumar
Ā 
Types of web portals
Types of web portalsTypes of web portals
Types of web portals
sanjeevagarwal123
Ā 

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

Angular Framework ppt for beginners and advanced
Angular Framework ppt for beginners and advancedAngular Framework ppt for beginners and advanced
Angular Framework ppt for beginners and advanced
Preetha Ganapathi
Ā 
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
MahmoudOHassouna
Ā 
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 js
Aayush 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_vs2010
vchircu
Ā 
Knockoutjs databinding
Knockoutjs databindingKnockoutjs databinding
Knockoutjs databinding
Boulos 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.pdf
seo18
Ā 
Angular Seminar-js
Angular Seminar-jsAngular Seminar-js
Angular Seminar-js
Mindfire Solutions
Ā 
Spring Framework-II
Spring Framework-IISpring Framework-II
Spring Framework-II
People Strategists
Ā 
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
BOSC Tech Labs
Ā 
Informatica cloud Powercenter designer
Informatica cloud Powercenter designerInformatica cloud Powercenter designer
Informatica cloud Powercenter designer
Rameswara 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 Guide
Protect724migration
Ā 
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.pptx
BOSC Tech Labs
Ā 
Rc085 010d-vaadin7
Rc085 010d-vaadin7Rc085 010d-vaadin7
Rc085 010d-vaadin7
Cosmina Ivan
Ā 

Similar to Personalization in webcenter portal (20)

Building richwebapplicationsusingasp
Building richwebapplicationsusingaspBuilding richwebapplicationsusingasp
Building richwebapplicationsusingasp
Ā 
Angular Framework ppt for beginners and advanced
Angular Framework ppt for beginners and advancedAngular Framework ppt for beginners and advanced
Angular Framework ppt for beginners and advanced
Ā 
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
Ā 

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 -apacoug20
Vinay 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 yatra20
Vinay Kumar
Ā 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
Vinay Kumar
Ā 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18
Vinay Kumar
Ā 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018
Vinay 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- Madrid
Vinay 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 Madrid
Vinay 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 sangam17
Vinay 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 extension
Vinay Kumar
Ā 
File upload in oracle adf mobile
File upload in oracle adf mobileFile upload in oracle adf mobile
File upload in oracle adf mobile
Vinay Kumar
Ā 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guide
Vinay 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 paper
Vinay Kumar
Ā 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tips
Vinay Kumar
Ā 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - Overview
Vinay Kumar
Ā 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
Vinay Kumar
Ā 
Oracle Fusion Architecture
Oracle Fusion ArchitectureOracle Fusion Architecture
Oracle Fusion Architecture
Vinay Kumar
Ā 
Incentive compensation in fusion CRM
Incentive compensation in fusion CRMIncentive compensation in fusion CRM
Incentive compensation in fusion CRM
Vinay 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

Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
Ā 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
Ā 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
Ā 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
Ā 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
Ā 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
Ā 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
Ā 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
Ā 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
Ā 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
Ā 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
Ā 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
Ā 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
Ā 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
Ā 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
Ā 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
Ā 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢
UiPathCommunity
Ā 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
Ā 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
Ā 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
Ā 

Recently uploaded (20)

Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
Ā 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ā 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
Ā 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
Ā 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
Ā 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Ā 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
Ā 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
Ā 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Ā 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Ā 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Ā 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
Ā 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Ā 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Ā 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Ā 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Ā 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotā„¢
Ā 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Ā 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Ā 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
Ā 

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.