SlideShare a Scribd company logo
Transformations: Smart Application Migration to XPages
Tweet about this event
And mention us: @Teamstudio @TLCCLTD
@zeromancer1972
Apr. 21, 2015
@Teamstudio
teamstudio.com
@TLCCLTD
tlcc.com
Courtney Carter
Inbound Marketing Specialist
Teamstudio
Who We Are
• Teamstudio’s background is in creating tools for
collaborative computing in mid-size and large
enterprises, primarily for IBM Notes
• Easy-to-use tools for developers and administrators
• 1600+ active customers, 53 countries
• Offices in US, UK, and Japan
• Entered mobile space in 2010 with Unplugged: easy
mobilization of Notes apps to Blackberry, Android
and iOS
Teamstudio Unplugged
• Your mobile Domino server: take your IBM Notes
apps with you!
• End-users access Notes applications from mobile
devices whether online or offline
• Leverages the powerful technology of XPages
Unplugged Templates
• Continuity – Mobile offline access to
BCM programs
• OneView Approvals – Expense
approvals; anywhere, anytime
• CustomerView – lightweight CRM
framework for field sales and field
service teams
• Contacts – customer information database
• Activities – customer activity log
• Media – mobile offline file storage and access
XControls
• Set of Controls for IBM Domino XPages developers
working on new XPages apps and on app
modernization projects
• Re-write of the Teamstudio Unplugged Controls
project, but adds full support for PC browser-based
user interfaces as well as mobile interfaces
• Enables XPages developers to create controls that
are responsive
• Learn more: teamstudio.com/solutions/xfoundations
Teamstudio Services
• Professional services for modernization, web
enablement, project management, development,
and administration
o Modernization Services
o Unplugged Developer Assistance Program
o Application Upgrade Analysis
o Application Complexity Analysis
o Application Usage Auditing
• http://www.teamstudio.com/solutions/services/
• Teamstudio Blog promotion:
o Subscribe to Teamstudio’s blog before May 31, 2015 and you’ll be automatically
entered to win an iPhone 6!
• DNUG: Jun. 10-11, 2015
o Come see us in Dortmund, Germany
1
#XPages
Your Hosts Today:
Howard Greenberg
TLCC
@TLCCLtd
Transformations - Smart
Application Migration to XPages
Paul DellaNebbia
TLCC
@PaulDN
How can TLCC Help YOU!
2
• Private classes at
your location or
virtual
•XPages Development
•Support Existing Apps
•Administration
• Let us help you
become an expert
XPages developer!
• Delivered via Notes
• XPages
• Development
• Admin
• User
Self-
Paced
Courses
Mentoring
Instructor-
Led
Classes
Application
Development
and
Consulting
Free
Demo
Courses!
Try a FREE XPages Course!!!
3
Introduction to XPages Development course
• Three Hour self paced course
• Has Demonstrations and Activities
• Requires Domino Designer
• Both an 8.5 and 9.0 version
• Perfect for beginners!
Register at www.tlcc.com/admin/tlccsite.nsf/pages/free+course
Great Price
It’s FREE!!!
Upcoming and Recorded Webinars
4
• May 14th App.Next - The Future of Domino App. Development
• www.tlcc.com/xpages-webinar
View Previous Webinars
(use url above)
New Extension Library Release
• New xe:mapValuePicker and xe:collectionValuePicker tags for the Value
Picker Control
– There are two new data providers for the Value Picker
• New inPlaceForm Simple Action
– allows for displaying or hiding an inPlaceForm control
• New Responsive Web Design Functionality
– There are three new controls to be used with the bootstrap theme.
• Carousel Control
• Dashboard Control
• Navbar Control
– New Application Layout configuration focused on a responsive design
• Responsive Design Demonstration Application: ToDo.nsf
• New xsp.properties “suppress” option for dataView control
• New URL Parameters in the REST Calendar Service
5
Download the Extension Library at OpenNTF.org
Asking Questions – Q and A at the end
6
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions pane!
We will answer your questions
verbally at the end of the
webinar
Your Presenter Today:
7
#XPages
Oliver Busse
We4IT
@zeromancer1972
Transformations
Smart Application Migration
A presentation of Oliver Busse @ Engage.UG in March 2015
Broadcasted in the TLCC & Teamstudio Webinar April 21, 2015
Agenda
•About me
•Overview
•Preamble
•Migrate database and user profiles
• Legacy profile documents vs. Java Beans
• Value lists made available over the whole application
•User and environment information
• What can a user see and use?
•Extending Fulltext search to a facetted search
• Filtering your data with meta tags
Oliver Busse
• „Bleeding Yellow“ since 2000
• Working for We4IT Group
• OpenNTF Board Member
• IBM Champion for ICS in 2015
• @zeromancer1972
• www.oliverbusse.com
www.we4it.com
Overview
•What‘s this?
• Transforming & re-using commonly used legacy patterns in
XPages
• Don‘t fear Java 
• Avoid @Formulas in SSJS
• Ideas for best practices
•What‘s it not?
• An XPages Introduction
• A Java beginner‘s guide
• A complete application migration strategy
Preamble
•Why not to use SSJS „excessively“?
• SSJS is interpreted at runtime
• SSJS is compiled at runtime (every time you call it!)
• Compiled SSJS is hard to debug while executed
6#engageug
Migrating database and user profiles
What we find in legacy apps: profile documents
Disadvantages
• You cannot see them without
using tools
• You can edit and create them
only programmatically
• Sometimes replication issues
• Unwanted Caching ;-)
Advantages
• Quick access without using
lookup views
• Caching
What we missed in many cases
DatabaseScript != Global Declarations
Encapsuled, no access from outside
(except Database Events)
Performance-Killer
Numerous usage of those formulas slow down the app
one of many...
Transformation
Item1=Values1
Item2=Values2
Item3=Values3
...
NotesDocument
Key1=ValueMap1
Key2=ValueMap2
Key3=ValueMap3
...
HashMap
NSF-based, view lookup Memory-based, direct access
Ingredients
•Transformation of profile documents to „standard“
documents
1. Create a corresponding lookup view
2. Optional: corresponding forms for maintenance
3. Create the Java Bean classes
4. Define those Bean classes in faces-config.xml
Preparation: Lookup Views
•Key for Database Profiles = dbprofile
•Key for User Profiles = Canonical User Name
•Key for Value Lists = free but unique
Preparation: Java Beans
• 3 Classes:
• DatabaseProfileBean
• AppConfigBean
• UserProfileBean
• The DatabaseProfileBean initializes the document if
it doesn‘t exist
• The UserProfileBean initializes the document when
the user saves it for the first time
faces-config.xml
<faces-config>
<!-- Database Profile Bean -->
<managed-bean>
<managed-bean-name>dbprofile</managed-bean-name>
<managed-bean-class>com.icsug.DatabaseProfileBean
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
<!-- User Profile Bean -->
<managed-bean>
<managed-bean-name>userprofile</managed-bean-name>
<managed-bean-class>com.icsug.UserProfileBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<!-- Application Configuration -->
<managed-bean>
<managed-bean-name>application</managed-bean-name>
<managed-bean-class>com.icsug.AppConfigBean
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
</faces-config>
Digression: Bean Scopes & Lifecycles
•Request
• Lives beginning with the request to creation of the response
•View
• Within a page until changing the page, even during partial
refreshes
•Session
• Per user session
•Application
• During the life time of th application (after 30 minutes it is
dropped by default)
DEMO
17#engageug
User and Environment Information
User and Environment Information
Name variations
Access Level
ACL Options notes.ini variables
Environment
Bean
faces-config.xml: EnvironmentBean
19#engageug
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<!-- Environment Bean -->
<managed-bean>
<managed-bean-name>env</managed-bean-name>
<managed-bean-class>com.icsug.EnvironmentBean
</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
</managed-bean>
</faces-config>
Example: Username Variations
<p>
<xp:label
value="#{javascript:env.userName}"
id="label1">
</xp:label>
</p>
<p>
<xp:label
value="#{javascript:env.commonUserName}"
id="label2">
</xp:label>
</p>
<p>
<xp:label
value="#{javascript:env.abbreviatedUserName}"
id="label3">
</xp:label>
</p>
Example: ACL Options
The delete button is only visible if
the user can delete documents
Even in themes!
22#engageug
<theme
extends="flatly"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="platform:/plugin/com.ibm.designer.domino.style
kits/schema/stylekit.xsd">
<!--
display a submit type button only if user can create documents via ACL
-->
<control>
<name>Button.Submit</name>
<property
type="boolean">
<name>rendered</name>
<value>#{env.createDocuments}</value>
</property>
</control>
</theme>
DEMO
24#engageug
Extending Fulltext-Search to a Facetted Search
Facetted Search
„Faceted search, also called faceted navigation or faceted browsing,
is a technique for accessing information organized according to a
faceted classification system, allowing users to explore a collection of
information by applying multiple filters.“
http://en.wikipedia.org/wiki/Faceted_search
Facetted Search
„Well-known“ Examples
amazing.com cyberharbor
muse
Facetted Search with Domino?
1. Fulltext Search
2. Filtering result from extra meta data
1. Meta data search with facet selection
2. Fulltext Search in results
FacettedSearchBean (Session scoped)
FacetsSearch Term
FacettedSearch
Bean
DocumentCollection
(ArrayList<SearchResultEntry>)
30#engageug
DEMO
Facetted Search: Outlook & Alternatives
•Using OpenNTF API‘s Graph-DB functions
•Using a 3rd party Graph-DB like Apache Solr
31#engageug
Want to get the DEMO?
Grab it from my Bitbucket repo (also contains an NTF):
https://bitbucket.org/zeromancer1972/icsug-2015-demo
It uses the following plugins available on OpenNTF:
XPages Extension Library (9.0.1.07+):
http://extlib.openntf.org/
Bootstrap 4 Xpages:
http://www.openntf.org/main.nsf/project.xsp?r=project/Bootstrap4XPages
OpenNTF Domino API:
http://www.openntf.org/main.nsf/project.xsp?r=project/OpenNTF%20Domino%20
API
32#engageug
Other Resources
http://en.wikipedia.org/wiki/Faceted_search
http://lucene.apache.org/solr/
https://www.focul.net/focul-best-practice-faceted-filtering-xpages-using-java-beans/
Questions????
8
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions panel!
Remember, we will answer your
questions verbally
#XPages
@zeromancer1972
@TLCCLtd
@Teamstudio
@PaulDN
Upcoming Events:
MWLug User Group Meeting, Aug. 19-21, Atlanta
Question and Answer Time!
9
Teamstudio Questions?
contactus@teamstudio.com
978-712-0924
TLCC Questions?
howardg@tlcc.com paul@tlcc.com
888-241-8522 or 561-953-0095
Howard GreenbergPaul Della-Nebbia Courtney CarterOliver Busse

More Related Content

PDF
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
PDF
Move Your XPages Applications to the Fast Lane
PDF
Back from the Dead: When Bad Code Kills a Good Server
PDF
Life in the Fast Lane: Full Speed XPages!, #dd13
PPTX
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
PDF
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
PPTX
[DanNotes] XPages - Beyound the Basics
PDF
XPages: No Experience Needed
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
Move Your XPages Applications to the Fast Lane
Back from the Dead: When Bad Code Kills a Good Server
Life in the Fast Lane: Full Speed XPages!, #dd13
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
[DanNotes] XPages - Beyound the Basics
XPages: No Experience Needed

What's hot (20)

PDF
Marty, You're Just Not Thinking Fourth Dimensionally
PDF
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014
PPTX
Bringing DevOps to the Database
PPTX
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
PDF
How to use the new Domino Query Language
PDF
#DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
PDF
Connect 2014 JMP101: Java for XPages Development
PPTX
XPages and Java (DanNotes 50th conference, November 2013)
PDF
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
PDF
Face Off Domino vs Exchange On Premises
PPTX
Soccnx10: Best and worst practices deploying IBM Connections
PDF
Best Practices for Installing IBM Verse on Premises
PPT
JMP201 Introduction to IBM Lotus Notes and IBM Lotus Domino Integration with ...
PDF
An introduction to configuring Domino for Docker
PDF
Web Performance First Aid
PPTX
Ms vs ibm_v1.3
PPTX
Our take on Domino 10 - a Ytria webinar
PDF
A hitchhiker’s guide to troubleshooting ibm connections
PDF
How adding a further tool can be a good thing
PDF
Linkedin NUS QCon 2009 slides
Marty, You're Just Not Thinking Fourth Dimensionally
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014
Bringing DevOps to the Database
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
How to use the new Domino Query Language
#DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
Connect 2014 JMP101: Java for XPages Development
XPages and Java (DanNotes 50th conference, November 2013)
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
Face Off Domino vs Exchange On Premises
Soccnx10: Best and worst practices deploying IBM Connections
Best Practices for Installing IBM Verse on Premises
JMP201 Introduction to IBM Lotus Notes and IBM Lotus Domino Integration with ...
An introduction to configuring Domino for Docker
Web Performance First Aid
Ms vs ibm_v1.3
Our take on Domino 10 - a Ytria webinar
A hitchhiker’s guide to troubleshooting ibm connections
How adding a further tool can be a good thing
Linkedin NUS QCon 2009 slides
Ad

Viewers also liked (20)

PPTX
How To Make LinkedIn a Marketing Machine
PDF
Doctor bacter anti bacterial paint
PDF
7занятие.лебеди 4
PPTX
Recipe card ideas
ODP
Art History: Neolithic Japan and Mesopotamia
PPSX
Merenje zapremine
PDF
1000n policeheart 1091 - women helpline for emergency rescue
PPTX
Recipe card ideas
PDF
Salehard
PDF
Tempo June-2016
PPTX
Company profile gi sel.rev1
PPT
Levy Information 2013 - Did you know?
PDF
Digital transformation review_7
PPTX
Mood boards
PPTX
John pacing presentation
PPS
Presentasifiqhzakat 091031123617-phpapp02
PPTX
Como crear un voki
PPT
Aers 2010
PPTX
Welcome guys !!!
PPT
Profiles of students coming to Latvia
How To Make LinkedIn a Marketing Machine
Doctor bacter anti bacterial paint
7занятие.лебеди 4
Recipe card ideas
Art History: Neolithic Japan and Mesopotamia
Merenje zapremine
1000n policeheart 1091 - women helpline for emergency rescue
Recipe card ideas
Salehard
Tempo June-2016
Company profile gi sel.rev1
Levy Information 2013 - Did you know?
Digital transformation review_7
Mood boards
John pacing presentation
Presentasifiqhzakat 091031123617-phpapp02
Como crear un voki
Aers 2010
Welcome guys !!!
Profiles of students coming to Latvia
Ad

Similar to Transformations: Smart Application Migration to XPages (20)

PDF
Ask the XPages Experts
PPTX
Transformations - a TLCC & Teamstudio Webinar
PDF
USG Summit - September 2014 - Web Management using Drupal
PDF
Optimus XPages: An Explosion of Techniques and Best Practices
PDF
Everything XControls
PDF
Building Responsive Applications Using XPages
PDF
Domino, Notes, and Verse - Where are We and Whats the Future?
PDF
USG Rock Eagle 2017 - PWP at 1000 Days
PPTX
Branding office 365 with front end tooling
PDF
Java for XPages Development
PPTX
A Beard, An App, A Blender
PPTX
Transformations
PDF
The XPages Mobile Controls: What's New in Notes 9.0.1
PDF
Agileand saas davepatterson_armandofox_050813webinar
PDF
A Notes Developer's Journey into Java
PDF
App.Next - The Future of Domino Application Development
PDF
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
PPTX
CIAOPS Need to Know Office 365 Webinar - December 2017
PDF
AD1545 - Extending the XPages Extension Library
PDF
DbOps, DevOps and Ops
Ask the XPages Experts
Transformations - a TLCC & Teamstudio Webinar
USG Summit - September 2014 - Web Management using Drupal
Optimus XPages: An Explosion of Techniques and Best Practices
Everything XControls
Building Responsive Applications Using XPages
Domino, Notes, and Verse - Where are We and Whats the Future?
USG Rock Eagle 2017 - PWP at 1000 Days
Branding office 365 with front end tooling
Java for XPages Development
A Beard, An App, A Blender
Transformations
The XPages Mobile Controls: What's New in Notes 9.0.1
Agileand saas davepatterson_armandofox_050813webinar
A Notes Developer's Journey into Java
App.Next - The Future of Domino Application Development
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
CIAOPS Need to Know Office 365 Webinar - December 2017
AD1545 - Extending the XPages Extension Library
DbOps, DevOps and Ops

More from Teamstudio (19)

PDF
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
PDF
SmartNSF - 100% Smart - and in Color!
PDF
Understand Usage with Detailed Access Information
PDF
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
PDF
IBM Presents the IBM Notes and Domino Roadmap
PDF
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
PDF
Expanding XPages with Bootstrap Plugins for Ultimate Usability
PDF
Optimus XPages Part 2: The Deep Dive
PDF
Getting Started with the OpenNTF Domino API
PPTX
Understand the True Business Usage of Notes Applications with Usage Auditor
PDF
Using Cool New Frameworks in (Mobile) Domino Apps
PDF
Ask the XPages Experts
PDF
An Introduction to the Model-View-Controller Pattern
PDF
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
PDF
Presenting Data – An Alternative to the View Control
PDF
Mobilize Your Business, Not Just an App
PDF
Tips for Building your First XPages Java Application
PDF
Access Data from XPages with the Relational Controls
PDF
Wireless Wednesdays: Introduction to XControls
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
SmartNSF - 100% Smart - and in Color!
Understand Usage with Detailed Access Information
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the IBM Notes and Domino Roadmap
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Optimus XPages Part 2: The Deep Dive
Getting Started with the OpenNTF Domino API
Understand the True Business Usage of Notes Applications with Usage Auditor
Using Cool New Frameworks in (Mobile) Domino Apps
Ask the XPages Experts
An Introduction to the Model-View-Controller Pattern
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Presenting Data – An Alternative to the View Control
Mobilize Your Business, Not Just an App
Tips for Building your First XPages Java Application
Access Data from XPages with the Relational Controls
Wireless Wednesdays: Introduction to XControls

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPT
Teaching material agriculture food technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
NewMind AI Weekly Chronicles - August'25-Week II
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Assigned Numbers - 2025 - Bluetooth® Document
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
Chapter 3 Spatial Domain Image Processing.pdf
Teaching material agriculture food technology
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Transformations: Smart Application Migration to XPages