SlideShare a Scribd company logo
1 of 43
© 2012 IBM Corporation
BP103 IBM Lotus Domino
XPages Blast!
Matt White | Consultant | London Developer Co-op
Tim Clark | Technical Services Manager | GSX
Friday, 20 January 12
• Consultant with
• Lead Developer with
• Creator of XPages101.net
• IBM Champion
| © 2012 IBM Corporation
Matt White
2
Friday, 20 January 12
| © 2012 IBM Corporation
Tim Clark
• Technical Services Manager for GSX
• Founder of ‘The X Cast‘ podcast about XPages
• 17+ years at Lotus/IBM in technical roles
3
Friday, 20 January 12
| © 2012 IBM Corporation
Products we’re using
• IBM Lotus® Domino® Server 8.5.3
- If we use other versions for a tip we’ll highlight it
• IBM Lotus® Notes® 8.5.3
• IBM Lotus® Domino Designer® 8.5.3
4
Friday, 20 January 12
| © 2012 IBM Corporation
Agenda
• Development Tips
• Configuration Tips
• Client Side Tips
• Server Side Tips
• Extension Library Tips
5
Friday, 20 January 12
| © 2012 IBM Corporation
1. Turn on Debugging
• The first thing to enable when developing a new XPages application
• Go to Application Properties -> XPages -> Display XPage runtime error page
• Don’t forget to save the Application Properties
• When you get an error you will see something like this:
• Don’t forget to disable it when going live!
6
Friday, 20 January 12
| © 2012 IBM Corporation
2. Error Logging - Console
• You have two options to send messages to the server:
print(String);
_dump(object);
• Both are useful in development, but bad practice in production
• In Notes Client use: Help -> Support -> View Trace
• Also helpful is the XPages Log File on the server: C:Program FilesIBMLotusDominodata
IBM_TECHNICAL_SUPPORT
• Bonus Tip: Mark Leusink has released a project to OpenNTF which will display the output of print and dump
statements in a debug toolbar
7
Friday, 20 January 12
| © 2012 IBM Corporation
3. Error Logging - OpenLog
• A great solution for logging in your production applications
- LotusScript
- Java™
- Server Side JavaScript
• Free downloads from OpenNTF
- http://www.openntf.org/projects/pmt.nsf/ProjectLookup/OpenLog
- http://www.openntf.org/projects/pmt.nsf/ProjectLookup/TaskJam
- http://www.openntf.org/projects/pmt.nsf/ProjectLookup/XPages+Help
• To add Server Side JavaScript support copy OpenLogXPages script library from TaskJam
• To add XPages Java support copy the class from the XPages Help application written by Paul Withers
• But you can also make use of Java logging frameworks
- Julian Robichaux and Mark Myers session SHOW114 has more information on this:
- Write Better Java Code: Debugging, Logging, and Unit Tests
8
Friday, 20 January 12
| © 2012 IBM Corporation
4. Debugging Java
• You can step through Java when running XPages
• First add the following lines to notes.ini on server:
; Enabling Java debug
JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
JrnlEnbld=0
• Restart the server
• In Designer, go to the Java Perspective
• Choose Run -> Debug Configurations…
• Create a new “Remote Java Application”
9
Friday, 20 January 12
| © 2012 IBM Corporation
4. Debugging Java
• Now you can step through your code line by line
• Add a breakpoint in your Java code
• First time you run the code you’ll be prompted to switch into Debug Perspective
• If you get “Source Not Found” click the “Edit Source Lookup Path” button
• Then Add a Java Project and locate your application from the list
10
Friday, 20 January 12
| © 2012 IBM Corporation
5. Show Local Server Console
• If you don’t have a local server you can still see print / _dump results
• First close Notes and Domino Designer
• Open a DOS command prompt and go to the Notes program directory
• Type nhttp –preview
• Hit return and enter password
11
Friday, 20 January 12
| © 2012 IBM Corporation
6. Performance Profiling
• If your XPage isn’t performing as well as you’d like, download the XPages Toolbox application from OpenNTF
- http://www.openntf.org/projects/pmt.nsf/ProjectLookup/XPages%20Toolbox
• It offers processor and memory profiling options
• You can even identify the individual blocks of code which are taking too long to load
12
Friday, 20 January 12
| © 2012 IBM Corporation
7. Source Control Enablement
• With the release of 8.5.3 we can now use Apache Subversion as a source control tool
• Niklas Heidloff has written two great articles:
- To set up SVN: http://bit.ly/svnconfig
- To use SVN: http://bit.ly/svnuse
• But not limited to SVN, I use GIT which is largely considered a more modern source control system
• Download the EGit For Domino Designer project from OpenNTF
- http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=EGit%20for%20IBM%20Domino%20Designer
• Follow the instructions for setting up GIT in Windows
- (good example at http://bit.ly/gitsetup)
• Using the EGit tool is then very similar to SVN
• For more detail:
- Declan Lynch’s session Source Control For The
IBM Lotus Domino Developer (AD102)
13
Friday, 20 January 12
| © 2012 IBM Corporation
8. CGI Variables
• To get at information about the current page / user / browser “facesContext” is your friend
• For example
facesContext.getExternalContext().getRequest().getRemoteAddr()
returns the IP address of the current user
• Thomas Gumz wrote a script library which makes it easier to access the variables.
• It can be downloaded here: http://bit.ly/cgivariables
• Syntax to use is:
var cgi = new CGIVariables()
print(cgi.REMOTE_ADDR);
14
Friday, 20 January 12
| © 2012 IBM Corporation
9. Disable Theme
• If you don’t want to use any IBM provided CSS then create a blank theme and apply it to the application
• Even the simplest page will go from requiring 3 css files to none
15
Friday, 20 January 12
| © 2012 IBM Corporation
10. Disable Dojo
• If you don’t want to use Dojo in your site
• It might be a static website for example or use a different JavaScript framework
• Switch to Package Explorer and locate the xsp.properties file in WebContentWEB-INF and add the following
line:
xsp.client.script.libraries=none
• The source of the page is now:
16
Friday, 20 January 12
| © 2012 IBM Corporation
11. Disable Form
• Continuing the theme of removing default settings. If your page doesn’t need to interact with the server you can
also disable the supporting fields
• In the XPage set the “createForm” property to false
17
Friday, 20 January 12
| © 2012 IBM Corporation
12. Custom Properties
• Custom controls can be more flexible and re-usable
• By adding parameters, known as Custom Properties to them the same custom control can be used multiple
times in different ways
• You can create as many properties as needed in the Property Definition tab
18
Friday, 20 January 12
| © 2012 IBM Corporation
12. Custom Properties
• To access custom properties inside the custom control use the compositeData object
• When adding a custom control to the XPage the Custom Properties tab can be populated with the settings
19
Friday, 20 January 12
| © 2012 IBM Corporation
13. Resource Bundles
• Rather than using profile documents or reference data documents and views, resource bundles allow quick
access to configuration settings
• Create a new file with a “.properties” extension:
• In your Server Side JavaScript you can then use the syntax settings.getString(“key”)
20
Friday, 20 January 12
| © 2012 IBM Corporation
14. Read and Edit on Same Page
• If you have multiple document bindings on the same XPage, you can control the mode of documents
individually
• Set the ignoreRequestParams property in the data settings to true and then manually set the Default Action of
the binding to the mode desired
• Remember that most containers can have data bound to them
- You don’t have to set up data binding at the XPage or Custom Control level
- Panels can be especially useful to bind data to
21
Friday, 20 January 12
| © 2012 IBM Corporation
15. Session Timeouts
• In Application Properties you can set how long the sessionScope and applicationScope variables will be kept in
memory
• Make sure Session Timeout is set to longer than the Session length for authenticated users
• Or make sure that you manage your sessionScope variables properly!
22
Friday, 20 January 12
| © 2012 IBM Corporation
16. Access Fields in the Client
• If you are generating the IDs of fields in Server Side JavaScript use:
getClientId(“myfield”)
• To access the field in Client Side Javascript use:
“{#id:myfield}”
- When the HTML for the page is generated you will see
• Or you can use dojo.query to find fields using CSS classes as an identifier
- To get hold of all elements on a page with a specific CSS class assigned:
dojo.query(".myclass")
- And that can be extended like so:
dojo.query(".myclass").forEach(function(node, index, arr){
//Do something with each element having selected it
});
23
Friday, 20 January 12
| © 2012 IBM Corporation
17. Access Fields on the Server Side
• To access a field using Server Side JavaScript use:
getComponent(“myfield”)
• When accessing field values after clicking submit you need to know the difference between getSubmittedValue
and getValue
- All to do with when validation runs
- The order of fields on the XPage is important
• To get the value before validation has run use:
getComponent(“myfield”).getSubmittedValue()
• And after validation has run use:
getComponent(“myfield”).getValue()
24
Friday, 20 January 12
| © 2012 IBM Corporation
18. Controlling Partial Refreshes
• You can write your own Client Side JavaScript to force a partial refresh of an element on the page:
- XSP.partialRefreshGet("#{id:mypanel}",
{params: {’$$xspsubmitvalue’: dojo.byId("#{id:inputText1}").value}});
• To access the submitted value on the server side use:
- context.getSubmittedValue();
• Using this technique you can even chain partial refreshes together:
- XSP.partialRefreshGet("#{id:mainpanel}", {
params: {
'$$xspsubmitvalue': dojo.byId("#{id:inputText1}").value
},
onComplete: function () {
XSP.partialRefreshGet("#{id:secondpanel}");
}
});
25
Friday, 20 January 12
| © 2012 IBM Corporation
19. Building URLs
• Although classic URLs still work, it’s best to use the XPages format URLs
- They will work in the Notes Client as well as the browser
- They perform better
• For attachments:
- http://myserver.com/mydb.nsf/xsp/.ibmmodres/domino/OpenAttachment/mydb.nsf/[UNID]/MyField/myfile.xls
• For Dojo resources:
- http://myserver.com/.ibmxspres/dojoroot/dojox/image/resources/Lightbox.css
26
Friday, 20 January 12
| © 2012 IBM Corporation
20. Extended Application Settings
• There are some settings which are hidden away in the Package Explorer view
• From the Window menu, choose Open Perspective -> XPages
• Switch to the Package Explorer view and locate the file:
- WebContentWEB-INFxsp.properties
• It has a whole lot of settings which include all of the XPages properties from the Application Settings
• But you can also change other things
- doctype
- Extension Library settings such as which XPages should be treated as mobile pages
- Dojo Version
- and many more
• It’s worth investigating all the options
27
Friday, 20 January 12
| © 2012 IBM Corporation
21. Dojo Widgets
• To use a Dojo Widget:
- Find the widget you want to use on http://dojotoolkit.org
- Add the Dojo Resource to the XPage
• Now we need to tell the XPage to enable parseOnLoad and load the dojoTheme
28
Friday, 20 January 12
| © 2012 IBM Corporation
21. Dojo Widgets
• Next you add the control and set its Dojo Type
• When we preview the XPage the Dojo Widget will be automatically initialized
29
Friday, 20 January 12
| © 2012 IBM Corporation
22. XPages as Agents
• If you want to output non HTML data from your XPage it’s a very simple process
- Also known as XAgents or Headless XPages
• Set your XPage rendered property to false
• In the afterRenderResponse event use code in this format
30
Friday, 20 January 12
| © 2012 IBM Corporation
23. Export to Excel
• Uses the XAgents technique
• Change the content type to “application/vnd.ms-excel”
• Output the Excel file as XML (works only with Excel 2003 or later)
31
Friday, 20 January 12
| © 2012 IBM Corporation
24. SSJS and JSON
• There are built in functions to work with JSON in Server Side JavaScript
• To test a string to see if it is valid JSON, use
- isJson(mystring)
• To parse a JSON string use
- fromJson(mystring)
• To convert an object to JSON use
- toJson(myobject)
32
Friday, 20 January 12
| © 2012 IBM Corporation
25. Multiple NSFs
• You are not restricted to using data from the same database that the XPage is in.
• You can compute the database name and the Form or View name in your data binding
• To save more manual work
- create the XPage in the database that contains the data
- copy the XPage to the place it will run once binding is set up
- Now change the binding to point to the database where the data is
33
Friday, 20 January 12
| © 2012 IBM Corporation
26. Relational Databases
• Along the same lines it has never been easier to use non Domino data in your applications
• JDBC can be set up easily in your application without using Extension Library
• Copy the JDBC Driver .jar file to
- ..lotusdominoxspsharedlib
• Now create a Java class in your application to connect to the database
34
Friday, 20 January 12
| © 2012 IBM Corporation
26. Relational Databases
• Now inside a repeat control on our XPage we can access the relational database
35
Friday, 20 January 12
| © 2012 IBM Corporation
27. Navigation Rules
• If you have a workflow application or the flow of pages in your application changes then consider user
Navigation Rules
• In the XPage create different rules and give them a name
• Now in your buttons you can simply decide on the rule to use in the action property when they are clicked
• In this case the action is stored in a viewScope variable which is calculated elsewhere
36
Friday, 20 January 12
| © 2012 IBM Corporation
28. Extension Library - Widgets
• The Extension Library is a free download from OpenNTF at http://extlib.openntf.org
• At the simplest level it provides > 60 controls which can be dragged onto your XPages to cover everything from
Dialogs and Tooltips to JDBC connections
• To use, make sure the Extension Library is installed on the server and in Domino Designer
• Drag the control onto the XPage
• Save and deploy, simple as that
- See also my other session BP115 - Deploying and Managing Your XPages Applications
- We talk about the “simple as that” for an hour, but that’s for admins!
• As of December 2011 there is also the choice to use Upgrade Pack 1
• This is the officially supported version of the Extension Library
- You just need to decide which best suits your needs
37
Friday, 20 January 12
| © 2012 IBM Corporation
29. Extension Library - JDBC
• Much easier to implement than the manual approach
• Still need to copy the relevant jar file into your file system but to a different location:
..dominodatadominoworkspaceapplicationseclipseplugins
• Then you need to create a .jdbc file which defines the connection
• Now in your XPage you can set up a jdbcQuery data source in the same way you would a view or document
• Set the connection name to the name of the .jdbc file you just created and provide the sqlQuery
38
Friday, 20 January 12
• In your view control adding a column name is simple
• Once you’ve added columns to the view, it just works
- You can even add sorting to columns and the query will be adjusted automatically to reflect what column the
user clicks on
• One other interesting thing is the new @Formulas available:
- @JdbcDbColumn
- @JdbcUpdate
| © 2012 IBM Corporation
29. Extension Library - JDBC
39
Friday, 20 January 12
| © 2012 IBM Corporation
30. Extension Library - Mobile Controls
• The middle ground between no mobile interface and a native app is a mobile web design
• Built into Extension Library they are very easy to use
• Drag on a SinglePageOutline control and then add content inside
• You can add forms and views and static content
• Works well out of the box for iOS and Android
- Blackberry needs a little more work
40
Screenshots courtesy of Vigilus LLC
Friday, 20 January 12
| © 2012 IBM Corporation
Related Sessions
• Session BP115: Deploying and Managing Your IBM Lotus Domino XPages Applications
- Warren Elsmore and Matt White
• Session AD102: Source Control For The IBM Lotus Domino Developer
- Declan Lynch
• Session AD104: IBM Lotus Domino XPages Made Social
- Philippe Riand
• Session AD106: IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
- Stephan Wissel
• Session AD107: IBM Lotus Domino XPages Meets Enterprise Data - Relational++
- Andrejus Chaliapinas
• Session AD108: The Grand Tour of IBM Lotus Notes and Domino 8.5.3 Upgrade Pack 1's XPages Capabilities
- Martin Donnelly
• Session AD109: Ready, Set, Go! How IBM Lotus Domino XPages Became Mobile
- Eamon Muldoon
• Session AD110: IBM Lotus Domino XPages Go Zoom!
- Darin Egan
• Session AD111: The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages
- Stephan Wissel
41
Friday, 20 January 12
| © 2012 IBM Corporation
Questions?
• Matt White
- matthew.white@fclonline.com
- @mattwhite
- mattwhite.me
• Tim Clark
- tim@tc-soft.com
- @timsterc
- blog.tc-soft.com
42
Friday, 20 January 12
| © 2012 IBM Corporation
43
Legal disclaimer
© IBM Corporation 2012. All Rights Reserved.
The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without
warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising
out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers
or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.
References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at
any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor
shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both.
Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Friday, 20 January 12

More Related Content

What's hot

Yes, It's Number One it's TOTP!
Yes, It's Number One it's TOTP!Yes, It's Number One it's TOTP!
Yes, It's Number One it's TOTP!Keith Brooks
 
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014John Dalsgaard
 
Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...boxuno
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMichael Smith
 
Optimizing Browser Rendering
Optimizing Browser RenderingOptimizing Browser Rendering
Optimizing Browser Renderingmichael.labriola
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedHoward Greenberg
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesDanilo Ercoli
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressDanilo Ercoli
 
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!Craig Schumann
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeDanilo Ercoli
 
Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginnersSingsys Pte Ltd
 
Lessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage projectLessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage projectMark Roden
 
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Kathy Brown
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch
 
Creating Dashboards with the SAS Information Delivery Portal
Creating Dashboards with the SAS Information Delivery PortalCreating Dashboards with the SAS Information Delivery Portal
Creating Dashboards with the SAS Information Delivery Portalsimienc
 
BP101: A Modernized Workflow w/ Domino/XPages
BP101: A Modernized Workflow w/ Domino/XPagesBP101: A Modernized Workflow w/ Domino/XPages
BP101: A Modernized Workflow w/ Domino/XPagesedm00se
 

What's hot (20)

Yes, It's Number One it's TOTP!
Yes, It's Number One it's TOTP!Yes, It's Number One it's TOTP!
Yes, It's Number One it's TOTP!
 
Html5
Html5Html5
Html5
 
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
 
Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
 
Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3Up to Speed on HTML 5 and CSS 3
Up to Speed on HTML 5 and CSS 3
 
Optimizing Browser Rendering
Optimizing Browser RenderingOptimizing Browser Rendering
Optimizing Browser Rendering
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPress
 
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginners
 
Html5
Html5Html5
Html5
 
CDNs para el SharePoint Framework (SPFx)
CDNs para el SharePoint Framework (SPFx)CDNs para el SharePoint Framework (SPFx)
CDNs para el SharePoint Framework (SPFx)
 
Lessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage projectLessons learned from the worlds largest XPage project
Lessons learned from the worlds largest XPage project
 
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 
Creating Dashboards with the SAS Information Delivery Portal
Creating Dashboards with the SAS Information Delivery PortalCreating Dashboards with the SAS Information Delivery Portal
Creating Dashboards with the SAS Information Delivery Portal
 
BP101: A Modernized Workflow w/ Domino/XPages
BP101: A Modernized Workflow w/ Domino/XPagesBP101: A Modernized Workflow w/ Domino/XPages
BP101: A Modernized Workflow w/ Domino/XPages
 

Viewers also liked

Webinar GSX Monitor and Analyzer v10.1 for Domino
Webinar GSX Monitor and Analyzer v10.1 for DominoWebinar GSX Monitor and Analyzer v10.1 for Domino
Webinar GSX Monitor and Analyzer v10.1 for DominoGSX Solutions
 
IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)Austin Chang
 
Got Problems? Let's Do a Health Check
Got Problems? Let's Do a Health CheckGot Problems? Let's Do a Health Check
Got Problems? Let's Do a Health CheckLuis Guirigay
 
Logging Wars: A Cross-Product Tech Clash Between Experts
Logging Wars: A Cross-Product Tech Clash Between Experts Logging Wars: A Cross-Product Tech Clash Between Experts
Logging Wars: A Cross-Product Tech Clash Between Experts Benedek Menesi
 
ConnectED2015: IBM Domino Applications in Bluemix
ConnectED2015: 	IBM Domino Applications in BluemixConnectED2015: 	IBM Domino Applications in Bluemix
ConnectED2015: IBM Domino Applications in BluemixMartin Donnelly
 
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...Keith Brooks
 
Recursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidadeRecursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidadeNeuza Pedro
 
Brian's Program Testimonials - Part 2
Brian's Program Testimonials - Part 2Brian's Program Testimonials - Part 2
Brian's Program Testimonials - Part 2Prof Brian Peskin
 
Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...
Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...
Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...ProductCamp Boston
 
Amit Gupta -Resume
Amit Gupta -ResumeAmit Gupta -Resume
Amit Gupta -ResumeAmit Gupta
 
Human Behavior online: a Psychologist's perspective - Nathalie Nahai
Human Behavior online: a Psychologist's perspective - Nathalie NahaiHuman Behavior online: a Psychologist's perspective - Nathalie Nahai
Human Behavior online: a Psychologist's perspective - Nathalie NahaiBrandwatch
 
Character Cakes Brochure • Bengawan Solo
Character Cakes Brochure • Bengawan SoloCharacter Cakes Brochure • Bengawan Solo
Character Cakes Brochure • Bengawan SoloToolbox Design
 
10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелторmayperl
 
Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)
Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)
Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)ProductCamp Boston
 
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012TEST Huddle
 

Viewers also liked (20)

MetaVis/GSX Management & Monitoring
MetaVis/GSX Management & MonitoringMetaVis/GSX Management & Monitoring
MetaVis/GSX Management & Monitoring
 
Webinar GSX Monitor and Analyzer v10.1 for Domino
Webinar GSX Monitor and Analyzer v10.1 for DominoWebinar GSX Monitor and Analyzer v10.1 for Domino
Webinar GSX Monitor and Analyzer v10.1 for Domino
 
IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)IBM Lotus Domino Domain Monitoring (DDM)
IBM Lotus Domino Domain Monitoring (DDM)
 
Got Problems? Let's Do a Health Check
Got Problems? Let's Do a Health CheckGot Problems? Let's Do a Health Check
Got Problems? Let's Do a Health Check
 
Logging Wars: A Cross-Product Tech Clash Between Experts
Logging Wars: A Cross-Product Tech Clash Between Experts Logging Wars: A Cross-Product Tech Clash Between Experts
Logging Wars: A Cross-Product Tech Clash Between Experts
 
ConnectED2015: IBM Domino Applications in Bluemix
ConnectED2015: 	IBM Domino Applications in BluemixConnectED2015: 	IBM Domino Applications in Bluemix
ConnectED2015: IBM Domino Applications in Bluemix
 
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
Domino Domain Monitoring, Letting Admins Sleep Later and Stay at Pubs Longer ...
 
Recursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidadeRecursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidade
 
Brian's Program Testimonials - Part 2
Brian's Program Testimonials - Part 2Brian's Program Testimonials - Part 2
Brian's Program Testimonials - Part 2
 
Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...
Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...
Lunchtime presentation: Intersections of Product Management - C.Todd Lombardo...
 
Amit Gupta -Resume
Amit Gupta -ResumeAmit Gupta -Resume
Amit Gupta -Resume
 
Roadmap to Recovery
Roadmap to RecoveryRoadmap to Recovery
Roadmap to Recovery
 
Playlistify The Next Web
Playlistify The Next WebPlaylistify The Next Web
Playlistify The Next Web
 
Human Behavior online: a Psychologist's perspective - Nathalie Nahai
Human Behavior online: a Psychologist's perspective - Nathalie NahaiHuman Behavior online: a Psychologist's perspective - Nathalie Nahai
Human Behavior online: a Psychologist's perspective - Nathalie Nahai
 
Character Cakes Brochure • Bengawan Solo
Character Cakes Brochure • Bengawan SoloCharacter Cakes Brochure • Bengawan Solo
Character Cakes Brochure • Bengawan Solo
 
Bhutan Tour Package
Bhutan Tour PackageBhutan Tour Package
Bhutan Tour Package
 
EAGaminiFonseka
EAGaminiFonsekaEAGaminiFonseka
EAGaminiFonseka
 
10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор
 
Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)
Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)
Succeeding with Customer Advisory Boards - Jim Berets (ProductCamp Boston 2015)
 
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
 

Similar to XPages Blast! Development Tips

Twelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTwelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTeamstudio
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience NeededKathy Brown
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011Tim Clark
 
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPagesBP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPagesPaul Withers
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Slobodan Lohja
 
The TIMES Cloud Service
The TIMES Cloud ServiceThe TIMES Cloud Service
The TIMES Cloud ServiceIEA-ETSAP
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsStrongback Consulting
 
ICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance BoostICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance BoostChristoph Adler
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/SESUG
 
TIMES cloud Service TIMES/MIRO App
TIMES cloud Service  TIMES/MIRO AppTIMES cloud Service  TIMES/MIRO App
TIMES cloud Service TIMES/MIRO AppIEA-ETSAP
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...Alkacon Software GmbH & Co. KG
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - ReloadedEngage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloadedpanagenda
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Christoph Adler
 
Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopBill Buchan
 
MongoDB Charts Meetup - 7-24-2018
MongoDB Charts Meetup - 7-24-2018MongoDB Charts Meetup - 7-24-2018
MongoDB Charts Meetup - 7-24-2018Jay Gordon
 
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...Klaus Bild
 
Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1asim78
 

Similar to XPages Blast! Development Tips (20)

Twelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTwelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPages
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011
 
What's new in designer
What's new in designerWhat's new in designer
What's new in designer
 
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPagesBP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
 
ABP.pptx
ABP.pptxABP.pptx
ABP.pptx
 
Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021Intro to SpringBatch NoSQL 2021
Intro to SpringBatch NoSQL 2021
 
The TIMES Cloud Service
The TIMES Cloud ServiceThe TIMES Cloud Service
The TIMES Cloud Service
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS Applications
 
ICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance BoostICONUK 2018 - IBM Notes V10 Performance Boost
ICONUK 2018 - IBM Notes V10 Performance Boost
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
 
TIMES cloud Service TIMES/MIRO App
TIMES cloud Service  TIMES/MIRO AppTIMES cloud Service  TIMES/MIRO App
TIMES cloud Service TIMES/MIRO App
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - ReloadedEngage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
 
Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshop
 
MongoDB Charts Meetup - 7-24-2018
MongoDB Charts Meetup - 7-24-2018MongoDB Charts Meetup - 7-24-2018
MongoDB Charts Meetup - 7-24-2018
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...
 
Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

XPages Blast! Development Tips

  • 1. © 2012 IBM Corporation BP103 IBM Lotus Domino XPages Blast! Matt White | Consultant | London Developer Co-op Tim Clark | Technical Services Manager | GSX Friday, 20 January 12
  • 2. • Consultant with • Lead Developer with • Creator of XPages101.net • IBM Champion | © 2012 IBM Corporation Matt White 2 Friday, 20 January 12
  • 3. | © 2012 IBM Corporation Tim Clark • Technical Services Manager for GSX • Founder of ‘The X Cast‘ podcast about XPages • 17+ years at Lotus/IBM in technical roles 3 Friday, 20 January 12
  • 4. | © 2012 IBM Corporation Products we’re using • IBM Lotus® Domino® Server 8.5.3 - If we use other versions for a tip we’ll highlight it • IBM Lotus® Notes® 8.5.3 • IBM Lotus® Domino Designer® 8.5.3 4 Friday, 20 January 12
  • 5. | © 2012 IBM Corporation Agenda • Development Tips • Configuration Tips • Client Side Tips • Server Side Tips • Extension Library Tips 5 Friday, 20 January 12
  • 6. | © 2012 IBM Corporation 1. Turn on Debugging • The first thing to enable when developing a new XPages application • Go to Application Properties -> XPages -> Display XPage runtime error page • Don’t forget to save the Application Properties • When you get an error you will see something like this: • Don’t forget to disable it when going live! 6 Friday, 20 January 12
  • 7. | © 2012 IBM Corporation 2. Error Logging - Console • You have two options to send messages to the server: print(String); _dump(object); • Both are useful in development, but bad practice in production • In Notes Client use: Help -> Support -> View Trace • Also helpful is the XPages Log File on the server: C:Program FilesIBMLotusDominodata IBM_TECHNICAL_SUPPORT • Bonus Tip: Mark Leusink has released a project to OpenNTF which will display the output of print and dump statements in a debug toolbar 7 Friday, 20 January 12
  • 8. | © 2012 IBM Corporation 3. Error Logging - OpenLog • A great solution for logging in your production applications - LotusScript - Java™ - Server Side JavaScript • Free downloads from OpenNTF - http://www.openntf.org/projects/pmt.nsf/ProjectLookup/OpenLog - http://www.openntf.org/projects/pmt.nsf/ProjectLookup/TaskJam - http://www.openntf.org/projects/pmt.nsf/ProjectLookup/XPages+Help • To add Server Side JavaScript support copy OpenLogXPages script library from TaskJam • To add XPages Java support copy the class from the XPages Help application written by Paul Withers • But you can also make use of Java logging frameworks - Julian Robichaux and Mark Myers session SHOW114 has more information on this: - Write Better Java Code: Debugging, Logging, and Unit Tests 8 Friday, 20 January 12
  • 9. | © 2012 IBM Corporation 4. Debugging Java • You can step through Java when running XPages • First add the following lines to notes.ini on server: ; Enabling Java debug JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000 JrnlEnbld=0 • Restart the server • In Designer, go to the Java Perspective • Choose Run -> Debug Configurations… • Create a new “Remote Java Application” 9 Friday, 20 January 12
  • 10. | © 2012 IBM Corporation 4. Debugging Java • Now you can step through your code line by line • Add a breakpoint in your Java code • First time you run the code you’ll be prompted to switch into Debug Perspective • If you get “Source Not Found” click the “Edit Source Lookup Path” button • Then Add a Java Project and locate your application from the list 10 Friday, 20 January 12
  • 11. | © 2012 IBM Corporation 5. Show Local Server Console • If you don’t have a local server you can still see print / _dump results • First close Notes and Domino Designer • Open a DOS command prompt and go to the Notes program directory • Type nhttp –preview • Hit return and enter password 11 Friday, 20 January 12
  • 12. | © 2012 IBM Corporation 6. Performance Profiling • If your XPage isn’t performing as well as you’d like, download the XPages Toolbox application from OpenNTF - http://www.openntf.org/projects/pmt.nsf/ProjectLookup/XPages%20Toolbox • It offers processor and memory profiling options • You can even identify the individual blocks of code which are taking too long to load 12 Friday, 20 January 12
  • 13. | © 2012 IBM Corporation 7. Source Control Enablement • With the release of 8.5.3 we can now use Apache Subversion as a source control tool • Niklas Heidloff has written two great articles: - To set up SVN: http://bit.ly/svnconfig - To use SVN: http://bit.ly/svnuse • But not limited to SVN, I use GIT which is largely considered a more modern source control system • Download the EGit For Domino Designer project from OpenNTF - http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=EGit%20for%20IBM%20Domino%20Designer • Follow the instructions for setting up GIT in Windows - (good example at http://bit.ly/gitsetup) • Using the EGit tool is then very similar to SVN • For more detail: - Declan Lynch’s session Source Control For The IBM Lotus Domino Developer (AD102) 13 Friday, 20 January 12
  • 14. | © 2012 IBM Corporation 8. CGI Variables • To get at information about the current page / user / browser “facesContext” is your friend • For example facesContext.getExternalContext().getRequest().getRemoteAddr() returns the IP address of the current user • Thomas Gumz wrote a script library which makes it easier to access the variables. • It can be downloaded here: http://bit.ly/cgivariables • Syntax to use is: var cgi = new CGIVariables() print(cgi.REMOTE_ADDR); 14 Friday, 20 January 12
  • 15. | © 2012 IBM Corporation 9. Disable Theme • If you don’t want to use any IBM provided CSS then create a blank theme and apply it to the application • Even the simplest page will go from requiring 3 css files to none 15 Friday, 20 January 12
  • 16. | © 2012 IBM Corporation 10. Disable Dojo • If you don’t want to use Dojo in your site • It might be a static website for example or use a different JavaScript framework • Switch to Package Explorer and locate the xsp.properties file in WebContentWEB-INF and add the following line: xsp.client.script.libraries=none • The source of the page is now: 16 Friday, 20 January 12
  • 17. | © 2012 IBM Corporation 11. Disable Form • Continuing the theme of removing default settings. If your page doesn’t need to interact with the server you can also disable the supporting fields • In the XPage set the “createForm” property to false 17 Friday, 20 January 12
  • 18. | © 2012 IBM Corporation 12. Custom Properties • Custom controls can be more flexible and re-usable • By adding parameters, known as Custom Properties to them the same custom control can be used multiple times in different ways • You can create as many properties as needed in the Property Definition tab 18 Friday, 20 January 12
  • 19. | © 2012 IBM Corporation 12. Custom Properties • To access custom properties inside the custom control use the compositeData object • When adding a custom control to the XPage the Custom Properties tab can be populated with the settings 19 Friday, 20 January 12
  • 20. | © 2012 IBM Corporation 13. Resource Bundles • Rather than using profile documents or reference data documents and views, resource bundles allow quick access to configuration settings • Create a new file with a “.properties” extension: • In your Server Side JavaScript you can then use the syntax settings.getString(“key”) 20 Friday, 20 January 12
  • 21. | © 2012 IBM Corporation 14. Read and Edit on Same Page • If you have multiple document bindings on the same XPage, you can control the mode of documents individually • Set the ignoreRequestParams property in the data settings to true and then manually set the Default Action of the binding to the mode desired • Remember that most containers can have data bound to them - You don’t have to set up data binding at the XPage or Custom Control level - Panels can be especially useful to bind data to 21 Friday, 20 January 12
  • 22. | © 2012 IBM Corporation 15. Session Timeouts • In Application Properties you can set how long the sessionScope and applicationScope variables will be kept in memory • Make sure Session Timeout is set to longer than the Session length for authenticated users • Or make sure that you manage your sessionScope variables properly! 22 Friday, 20 January 12
  • 23. | © 2012 IBM Corporation 16. Access Fields in the Client • If you are generating the IDs of fields in Server Side JavaScript use: getClientId(“myfield”) • To access the field in Client Side Javascript use: “{#id:myfield}” - When the HTML for the page is generated you will see • Or you can use dojo.query to find fields using CSS classes as an identifier - To get hold of all elements on a page with a specific CSS class assigned: dojo.query(".myclass") - And that can be extended like so: dojo.query(".myclass").forEach(function(node, index, arr){ //Do something with each element having selected it }); 23 Friday, 20 January 12
  • 24. | © 2012 IBM Corporation 17. Access Fields on the Server Side • To access a field using Server Side JavaScript use: getComponent(“myfield”) • When accessing field values after clicking submit you need to know the difference between getSubmittedValue and getValue - All to do with when validation runs - The order of fields on the XPage is important • To get the value before validation has run use: getComponent(“myfield”).getSubmittedValue() • And after validation has run use: getComponent(“myfield”).getValue() 24 Friday, 20 January 12
  • 25. | © 2012 IBM Corporation 18. Controlling Partial Refreshes • You can write your own Client Side JavaScript to force a partial refresh of an element on the page: - XSP.partialRefreshGet("#{id:mypanel}", {params: {’$$xspsubmitvalue’: dojo.byId("#{id:inputText1}").value}}); • To access the submitted value on the server side use: - context.getSubmittedValue(); • Using this technique you can even chain partial refreshes together: - XSP.partialRefreshGet("#{id:mainpanel}", { params: { '$$xspsubmitvalue': dojo.byId("#{id:inputText1}").value }, onComplete: function () { XSP.partialRefreshGet("#{id:secondpanel}"); } }); 25 Friday, 20 January 12
  • 26. | © 2012 IBM Corporation 19. Building URLs • Although classic URLs still work, it’s best to use the XPages format URLs - They will work in the Notes Client as well as the browser - They perform better • For attachments: - http://myserver.com/mydb.nsf/xsp/.ibmmodres/domino/OpenAttachment/mydb.nsf/[UNID]/MyField/myfile.xls • For Dojo resources: - http://myserver.com/.ibmxspres/dojoroot/dojox/image/resources/Lightbox.css 26 Friday, 20 January 12
  • 27. | © 2012 IBM Corporation 20. Extended Application Settings • There are some settings which are hidden away in the Package Explorer view • From the Window menu, choose Open Perspective -> XPages • Switch to the Package Explorer view and locate the file: - WebContentWEB-INFxsp.properties • It has a whole lot of settings which include all of the XPages properties from the Application Settings • But you can also change other things - doctype - Extension Library settings such as which XPages should be treated as mobile pages - Dojo Version - and many more • It’s worth investigating all the options 27 Friday, 20 January 12
  • 28. | © 2012 IBM Corporation 21. Dojo Widgets • To use a Dojo Widget: - Find the widget you want to use on http://dojotoolkit.org - Add the Dojo Resource to the XPage • Now we need to tell the XPage to enable parseOnLoad and load the dojoTheme 28 Friday, 20 January 12
  • 29. | © 2012 IBM Corporation 21. Dojo Widgets • Next you add the control and set its Dojo Type • When we preview the XPage the Dojo Widget will be automatically initialized 29 Friday, 20 January 12
  • 30. | © 2012 IBM Corporation 22. XPages as Agents • If you want to output non HTML data from your XPage it’s a very simple process - Also known as XAgents or Headless XPages • Set your XPage rendered property to false • In the afterRenderResponse event use code in this format 30 Friday, 20 January 12
  • 31. | © 2012 IBM Corporation 23. Export to Excel • Uses the XAgents technique • Change the content type to “application/vnd.ms-excel” • Output the Excel file as XML (works only with Excel 2003 or later) 31 Friday, 20 January 12
  • 32. | © 2012 IBM Corporation 24. SSJS and JSON • There are built in functions to work with JSON in Server Side JavaScript • To test a string to see if it is valid JSON, use - isJson(mystring) • To parse a JSON string use - fromJson(mystring) • To convert an object to JSON use - toJson(myobject) 32 Friday, 20 January 12
  • 33. | © 2012 IBM Corporation 25. Multiple NSFs • You are not restricted to using data from the same database that the XPage is in. • You can compute the database name and the Form or View name in your data binding • To save more manual work - create the XPage in the database that contains the data - copy the XPage to the place it will run once binding is set up - Now change the binding to point to the database where the data is 33 Friday, 20 January 12
  • 34. | © 2012 IBM Corporation 26. Relational Databases • Along the same lines it has never been easier to use non Domino data in your applications • JDBC can be set up easily in your application without using Extension Library • Copy the JDBC Driver .jar file to - ..lotusdominoxspsharedlib • Now create a Java class in your application to connect to the database 34 Friday, 20 January 12
  • 35. | © 2012 IBM Corporation 26. Relational Databases • Now inside a repeat control on our XPage we can access the relational database 35 Friday, 20 January 12
  • 36. | © 2012 IBM Corporation 27. Navigation Rules • If you have a workflow application or the flow of pages in your application changes then consider user Navigation Rules • In the XPage create different rules and give them a name • Now in your buttons you can simply decide on the rule to use in the action property when they are clicked • In this case the action is stored in a viewScope variable which is calculated elsewhere 36 Friday, 20 January 12
  • 37. | © 2012 IBM Corporation 28. Extension Library - Widgets • The Extension Library is a free download from OpenNTF at http://extlib.openntf.org • At the simplest level it provides > 60 controls which can be dragged onto your XPages to cover everything from Dialogs and Tooltips to JDBC connections • To use, make sure the Extension Library is installed on the server and in Domino Designer • Drag the control onto the XPage • Save and deploy, simple as that - See also my other session BP115 - Deploying and Managing Your XPages Applications - We talk about the “simple as that” for an hour, but that’s for admins! • As of December 2011 there is also the choice to use Upgrade Pack 1 • This is the officially supported version of the Extension Library - You just need to decide which best suits your needs 37 Friday, 20 January 12
  • 38. | © 2012 IBM Corporation 29. Extension Library - JDBC • Much easier to implement than the manual approach • Still need to copy the relevant jar file into your file system but to a different location: ..dominodatadominoworkspaceapplicationseclipseplugins • Then you need to create a .jdbc file which defines the connection • Now in your XPage you can set up a jdbcQuery data source in the same way you would a view or document • Set the connection name to the name of the .jdbc file you just created and provide the sqlQuery 38 Friday, 20 January 12
  • 39. • In your view control adding a column name is simple • Once you’ve added columns to the view, it just works - You can even add sorting to columns and the query will be adjusted automatically to reflect what column the user clicks on • One other interesting thing is the new @Formulas available: - @JdbcDbColumn - @JdbcUpdate | © 2012 IBM Corporation 29. Extension Library - JDBC 39 Friday, 20 January 12
  • 40. | © 2012 IBM Corporation 30. Extension Library - Mobile Controls • The middle ground between no mobile interface and a native app is a mobile web design • Built into Extension Library they are very easy to use • Drag on a SinglePageOutline control and then add content inside • You can add forms and views and static content • Works well out of the box for iOS and Android - Blackberry needs a little more work 40 Screenshots courtesy of Vigilus LLC Friday, 20 January 12
  • 41. | © 2012 IBM Corporation Related Sessions • Session BP115: Deploying and Managing Your IBM Lotus Domino XPages Applications - Warren Elsmore and Matt White • Session AD102: Source Control For The IBM Lotus Domino Developer - Declan Lynch • Session AD104: IBM Lotus Domino XPages Made Social - Philippe Riand • Session AD106: IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere - Stephan Wissel • Session AD107: IBM Lotus Domino XPages Meets Enterprise Data - Relational++ - Andrejus Chaliapinas • Session AD108: The Grand Tour of IBM Lotus Notes and Domino 8.5.3 Upgrade Pack 1's XPages Capabilities - Martin Donnelly • Session AD109: Ready, Set, Go! How IBM Lotus Domino XPages Became Mobile - Eamon Muldoon • Session AD110: IBM Lotus Domino XPages Go Zoom! - Darin Egan • Session AD111: The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages - Stephan Wissel 41 Friday, 20 January 12
  • 42. | © 2012 IBM Corporation Questions? • Matt White - matthew.white@fclonline.com - @mattwhite - mattwhite.me • Tim Clark - tim@tc-soft.com - @timsterc - blog.tc-soft.com 42 Friday, 20 January 12
  • 43. | © 2012 IBM Corporation 43 Legal disclaimer © IBM Corporation 2012. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Friday, 20 January 12