SlideShare a Scribd company logo
BP206 It's Not Herculean: Twelve
                         Tasks Made Easier with IBM® Lotus
                                ®
                         Domino XPages
                         Mike McGarel | Collaborative Solutions Developer
                                        Czarnowski Display Services Inc
                         Paul Withers | IBM Collaboration Solutions Consultant
                                        Intec Systems Ltd




© 2013 IBM Corporation
Agenda

   Introduction
   The Twelve Tasks
   Bonus
   Summary




2   © 2013 IBM Corporation
Mike McGarel

   Working with web technologies for over 13 years

   Working with Notes/Domino since version 4.6

   Corporate developer


   Site developer for MWLUG and SkiLUG




3   © 2013 IBM Corporation
Paul Withers

   IBM Champion 2011-2012, 2013

   Co-Host The XCast

   Co-Author XPages Extension Library




4   © 2013 IBM Corporation
Why This Session?

   XPages is renowned for:
      ●      faster web development
      ●      modern Web 2.0 user interface
      ●      pre-built controls
      ●      UI can be separated from business logic
      ●      greater flexibility of development interface
      ●
             gateway to JavaTM
      ●      extensibility of development platform


   But what's in it for you?




5    © 2013 IBM Corporation
Agenda

   Introduction
   The Twelve Tasks
   Bonus
   Summary




6   © 2013 IBM Corporation
Hercules

      Most popular classical Greco-Roman hero

      Hercules is Latinized form (Heracles or
       Herakles in Greek)

      Son of Zeus and the Alcmene (a mortal)

      Originally called Alcaeus. Herakles means
       “famed because of Hera” (Hera-kleos)

      Given “12 Labours” as punishment


    Image by Bayreuth2009 (Own work) [CC-BY-3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons



7        © 2013 IBM Corporation
First Labour: Nemean Lion




8   © 2013 IBM Corporation
Themes

   Contain resources for entire application, for example:
     ●      style sheets
     ●      JavaScript files


   Can inherit from other themes

   Help to standardize user interface (UI)




9   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Easier to build consistent interfaces and business logic

    Single source of control

    Fewer inline styles means less code

    GOTCHA – cannot set properties required prior to rendering
      ●      e.g. value property for a repeat control

    GOTCHA – can only override runtime bindings
      ●      i.e. #{javascript:...} only, not ${javascript:...}




10   © 2013 IBM Corporation
Sample Theme Code

<theme extends="oneuiv2.1_gold">
    <resource>
        <content-type>text/css</content-type>
        <href>corporate.css</href>
    </resource>
    <control override=”true”>
        <name>Button.Submit</name>
        <property>
            <name>style</name>
            <value>background-color: #0000FF; color: #FFF;</value>
        </property>
    </control>
</theme>

 
11   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    More consistent interfaces

    Single source for controlling formatting

    Fewer inline styles means less code

    GOTCHA – cannot set properties required prior to rendering
       ●      e.g. value property for a repeat control

    GOTCHA – can only override runtime bindings
       ●      i.e. #{javascript:...} only, not ${javascript:...}




12    © 2013 IBM Corporation
Themes




13   © 2013 IBM Corporation
Second Labour: Lernean Hydra




14   © 2013 IBM Corporation
Repeat Controls

    Set datasource
       ●      dominoView
       ●      NotesDocumentCollection
       ●      NotesViewEntryCollection
       ●      Multi-value field
       ●      JavaScript array
       ●      Java collection

    Set number of iterations

    Set “var” and create template for a single iteration
       ●      Compute rendered property for flexibility




15    © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Easier than outputting HTML with @Transform, more flexible than HTML
     in view columns

    Drag and drop to build up a complex layout

    Easier to build and debug than a LotusScript agent

    Allows greater flexibility for data model

    Pagination can easily be added

    GOTCHA – nothing shows if content is a single string


16    © 2013 IBM Corporation
Repeat Controls




17   © 2013 IBM Corporation
Third Labour – Ceryneian Hind




18   © 2013 IBM Corporation
In View Edit




19   © 2013 IBM Corporation
In View Edit

    Build “view” as normal

    Add link / button to edit a row, pass UNID / NoteID to scoped variable and
     refresh

    Render read only version if UNID / NoteID is not for this document

    Render editable version if UNID / NoteID is for this document

    Look at In Place Form in Extension Library




20   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Web 2.0 style editing for small documents

    Less code than InViewEdit in Notes Client

    Easier than classic web (lots of AJAX, iFrames, JavaScript)

    With Repeat Controls, View Panels etc. quick to implement

    GOTCHA – NotesXspViewEntry cannot be edited. Use the
     NotesDocument

    GOTCHA – for new documents set scope to request where possible
      ●      Otherwise second edit updates the same NotesDocument


21   © 2013 IBM Corporation
Fourth Labour – Erymanthian Boar




22   © 2013 IBM Corporation
Design Properties




23   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    All Properties panel on any control

    Copy and paste in Source pane

    Any property can be computed, for maximum flexibility
      ●      Avoids code duplication
      ●      Use dataContexts for further avoidance of code duplication


    GOTCHA – for eventHandler properties, need to use Outline / Source




24   © 2013 IBM Corporation
Fifth Labour: The Auguean Stables




25   © 2013 IBM Corporation
AJAX Partial Page Refresh

    Implemented with a single tick and selecting partial refresh ID

    “Changes” managed in design of XPage
       ●      Rendered properties
       ●      Computed properties
       ●      Data definitions


    Minimal additional coding required

    For additional functionality, look at eventHandler properties – onStart,
     onError, onComplete, execMode, execId




26    © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Classical Domino would need a form with passthru HTML (div and button)
     and JavaScript for an Ajax refresh.

    An alternate would be to call a LotusScript agent

    Notes Client has no partial refresh option
       ●      NotesUIDocument methods can change specific components


    GOTCHA – validation triggers, be aware of JSF lifecycle
       ●      Know what is sent to server, what runs on server, what is sent back




27    © 2013 IBM Corporation
Ajax Partial Page Refresh




28   © 2013 IBM Corporation
Sixth Labour: Stymphalian Birds




29   © 2013 IBM Corporation
Pager Controls

    Many standard options and easily customizable
       ●      Show page number easily with Page {0} of {1}
       ●      Can allow users to select number of items per page
       ●      Can calculate link to last page (starting with version 8.5.2)
       ●      Pager Add Rows control
       ●      Pager Save State control (easily returns to same page)
 

    Built into
       ●      View Panels
       ●      Repeat Controls
       ●      Data Tables
       ●      Dynamic View Panel (Extension Library)
       ●      Data View (Extension Library)
       ●      iNotes ListView (Extension Library)


30    © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Traditional Domino web has nothing out of the box

    Better user experience

    More flexibility for developers




31    © 2013 IBM Corporation
Pager Controls




32   © 2013 IBM Corporation
Seventh Labour: The Cretan Bull




33   © 2013 IBM Corporation
TODOs

    Eclipse editors allow managing of TODOs

    Window > Show Eclipse Views: Tasks

    Also can add FIXME or any other tag

    XPages, Custom Controls, Themes integrate
      ●      SSJS Script Libraries not supported
      ●      Style Sheets not supported
      ●      Java classes supported

    No easy way of doing this in traditional Notes / Domino


34   © 2013 IBM Corporation
Enabling TODOs




35   © 2013 IBM Corporation
TODOs




36   © 2013 IBM Corporation
Eighth Labour: The Horses of Diomedes




37   © 2013 IBM Corporation
Labour 8.5.x: Rescue of Alcestis




38   © 2013 IBM Corporation
Rescue Your Code From The Dead With Local History

    Eclipse-based functionality
 

    Restore From > Local History
 

    Compare With > Local History




39   © 2013 IBM Corporation
Rescue Your Code With Source Control Management (SCM)

    Via plug-in on OpenNTF.org with Domino Designer 8.5.2
 

    Built into Domino Designer 8.5.3

    Your choice of Eclipse-based source control system
      ●      Git
      ●      Mercurial
      ●      SVN




40   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Only available via third-party products

    Third-party tools may offer alternative functionality

    GOTCHA – local history specific to PC

    GOTCHA – be careful with round-tripping of DXL for traditional Notes
     Client design elements




41    © 2013 IBM Corporation
Rescue Code From The Dead




42   © 2013 IBM Corporation
Ninth Labour: The Belt of Hippolyte




43   © 2013 IBM Corporation
Custom Controls

    Reusable within the same XPage

    Custom properties can control instances of the control

    Keep design clean by using Design Definition

    Use Editable Areas as placeholder for content within the Custom Control




44   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    More powerful than subforms
 

    Can contain other custom controls

    Properties are defined on Custom Control
      ●      Cleaner design
      ●      Easier to support




45   © 2013 IBM Corporation
Custom Controls




46   © 2013 IBM Corporation
Custom Control Property Definition Example




47   © 2013 IBM Corporation
Using The Custom Control Property Definition




     <xp:div id="divButtons" styleClass="divButtons"
     style="#{javascript:compositeData.controlStyles}">

            ...

     </xp:div>



48     © 2013 IBM Corporation
Tenth Labour: Geryon's Cattle




49   © 2013 IBM Corporation
Joining Views and Multiple Datasources

    Merge content from multiple documents in a single view

    Merge content from multiple databases

    Display and edit multiple documents on one XPage




50   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Minimize data stored on NotesDocuments

    Minimize views within the database

    More flexible reporting

    Better user-experience

    Build up complex layouts section by section

    GOTCHA – use ignoreRequestParams for secondary NotesDocuments



51    © 2013 IBM Corporation
Joining Views




52   © 2013 IBM Corporation
Eleventh Labour: Apples of The Hesperides




53   © 2013 IBM Corporation
Display data on Mobile devices

    XPages can be displayed without any amendments on mobile devices

    Use responsive design for resolution-specific layout

    Use Extension Library mobile components for tailored content
      ●      New redirect control available


    Third-party products for leveraging XPages skills for offline development




54   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    Leverage existing skills

    Pre-built controls with OS-specific look and feel

    Access data sources as within normal XPages

    GOTCHA – connectivity is not necessarily the same as desktop browser

    GOTCHA – use reloadContent property judiciously

    GOTCHA – slide transitions only available within single XPage



55    © 2013 IBM Corporation
Displaying on Mobile




56   © 2013 IBM Corporation
Twelfth Labour: Cerberus




57   © 2013 IBM Corporation
Inspecting Tools

    Debug Toolbar
      ●      Displays variables and values
      ●      Allows you to easily set timers
      ●      In-built API inspector to test code
      ●      Message logging
      ●      http://www.openntf.org/internal/home.nsf/project.xsp?
             action=openDocument&name=XPage%20Debug%20Toolbar


    XPages Log File Reader
      ●      View console
      ●      View logs
      ●      http://www.openntf.org/internal/home.nsf/project.xsp?
             action=openDocument&name=XPages%20Log%20File%20Reader




58   © 2013 IBM Corporation
Inspecting Tools

    XPages Toolbox
      ●      CPU Profiler
      ●      Runtime monitoring
      ●      Session dumps
      ●      And more...
      ●      http://www.openntf.org/internal/home.nsf/project.xsp?
             action=openDocument&name=XPages%20Toolbox


    Server-Side JavaScript Debugging*

    Java Debugging*


      *Useful session: Debug Server Side Javascript, Java, and XPages Apps
      Using the SSJS Debugger (AD202) Wednesday 4:15pm - 5:15pm

59   © 2013 IBM Corporation
Benefits Over Classic Notes/Domino

    LotusScript debugger, but nothing easy for formula language

    No easy debugging for traditional Domino web




60   © 2013 IBM Corporation
Agenda

    Introduction
    The Twelve Tasks
    Bonus
    Summary




61   © 2013 IBM Corporation
XPages and Social – With XPages You're Not Alone

    Community blog posts, books

    OpenNTF (http://openntf.org) resources
      ●      Sample Applications
      ●      Custom Controls
      ●      XSnippets (http://openntf.org/XSnippets.nsf/home.xsp)
      ●      OSGi plugins
      ●      Libraries to extend Domino Designer


    Import and Export for Domino Designer Plugin
      ●      Easily import resources from OpenNTF
      ●      Easily export to file system or package for OpenNTF




62   © 2013 IBM Corporation
XPages and Social – With XPages You're Not Alone

    Social controls in Extension Library for easy integration with
       ●      IBM Connections
       ●      Sametime
       ●      Twitter
       ●      Facebook
       ●      Dropbox


    Social Plugins
       ●      Like a single control
              to start a Sametime
              chat with any editor
              of the current document




63    © 2013 IBM Corporation
Agenda

    Introduction
    The Twelve Tasks
    Bonus
    Summary




64   © 2013 IBM Corporation
Summary

    Twelve examples of areas where XPages is
      ●      Quicker
      ●      Easier
      ●      More flexible
      ●      Extensible


 ●   Build reusable skills within or beyond Domino

 ●   The learning curve is worth it!




65   © 2013 IBM Corporation
XPages Resources

    XPages.Info (http://xpages.info)
    XPages Forum (http://www-10.lotus.com/ldd/xpagesforum.nsf)
    Notes/Domino Application Development Wiki
     (http://www-10.lotus.com/ldd/ddwiki.nsf)
    YouAtNotes XPages wiki (http://www.xpageswiki.com)
    Notes in 9 (http://www.notesin9.com)
    Stack Overflow (http://stackoverflow.com/questions/tagged/xpages)
    Mastering XPages (IBM Press)
    XPages Extension Library (IBM Press)
    XPages Portable Command Guide (IBM Press)




66   © 2013 IBM Corporation
References (Classical Mythology / Greek Literature)

    Timeless Myths (http://www.timelessmyths.com)
    Family tree of descendants of Perseus, including Hercules (
     http://timelessmyths.com/classical/family3c.html)
    Theoi Greek Mythology (http://www.theoi.com)
    Jason & Medea (http://jasonmedea.net)
    Euripides, Heracles – covers Hercules killing his wife Megara
    Euripides, Alcestis – covers Hercules rescue of Alcestis
    Sophocles, Women of Trachis (Trachiniae) – covers Hercules' death
    Seneca, Hercules Furens – Roman tragedy, covers Hercules killing his
     wife Megara
    Hercules' life also covered in works of Ovid (Metamorphoses),
     Apollodorus, Diodorus Siculus, Hesiod (The Shield of Herakles), Hyginus



67   © 2013 IBM Corporation
References (Popular Culture)

    “Hercules” (Disney animated movie 1997)

    “Hercules: The Legendary Journeys” (TV show 1995 – 1999)

    “The Three Stooges Meet Hercules” (Movie 1962)

    “Jason and The Argonauts” (Movie 1963)

    Countless other movies, TV shows, comic books, and video games




68   © 2013 IBM Corporation
Other Related Sessions
    Debug Server Side Javascript, Java, and XPages Apps Using the SSJS Debugger
     (AD202)
    IBM Domino Designer: Tips and Tricks for Maximum Productivity (AD203)
    How To Develop Great Applications Using XPages Design Patterns (AD204)
    Successfully Delivering XPages Projects - All Things Considered (AD205)
    IBM Lotus Domino XPages: Embrace, Extend, Integrate (AD206)
    IBM Lotus Domino XPages: Beyond Domino Documents and Views (AD207)
    IBM Lotus Domino XPages Performance in a Nutshell (AD208)
    jQuery: The World's Most Popular JavaScript Library Comes to XPages (BP103)
    Deploying and Managing IBM Lotus Domino XPages Applications (BP201)
    XPages Development: Modernize Yourself! (BP202)
    Custom Controls: Powerful, But Not Rocket Science! (BP205)
    Meet the Java Application Server You Already Own - IBM Domino (BP207)
    XPages Blast (BP208)
    In The Land of Social Apps, the API is King (BP209)
 




69    © 2013 IBM Corporation
Other Related Sessions (continued)
    Using a Mobile Approach: Strategies for Mobilizing Your IBM Domino Applications
     (BP210)
    Lessons Learned from the World's Largest XPage Project (BP211)
    Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF
     (BP212)
    XPages Jumpstart (JMP101)
    Extending Your App Arsenal With OpenSocial (JMP102)
    Get the “Jump” on Mobilizing Your IBM Notes and Domino Applications Today! (JMP103)
    Master Class: XPages Performance - Inside Out (JMP401)
    Master Class: Managed Beans and XPages: Your Time Is Now (JMP402)
    Master Class: Reverse Engineering Notes Applications: Separating Truth from Fiction
     (JMP403)
    Buried Treasure: Finding the Hidden Gold in Lotus Notes Data (SHOW104)
    XPages: No Experience Needed (SHOW111)
    Building Your First Mobile Application Using XPages (SHOW112)




70    © 2013 IBM Corporation
“It's Better with XPages” Index
      1.    Themes
      2.    Repeat Controls
      3.    In View Edit
      4.    Design Properties
      5.    AJAX Partial Page Refresh
      6.    Pager Controls
      7.    TODOs
      8.    Local History / Source Control Management
      9.    Custom Controls
     10.    Joining Views
     11.    Mobile
     12.    Inspecting Tools


71     © 2013 IBM Corporation
Questions and Evaluations




     Paul Withers                   Mike McGarel
     ICS Consultant                 Collaborative Solutions Developer
     Intec Systems Ltd              Czarnowski Display Services Inc
     pwithers@intec.co.uk           mcgarelgramming@gmail.com
     www.twitter.com/paulswithers   www.twitter.com/mmcgarel
     http://www.intec.co.uk/blog    www.bleedyellow.com/blogs/
                                        McGarelGramming



72   © 2013 IBM Corporation
Legal disclaimer

     © IBM Corporation 2013. 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.
      Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other
      countries, or both.
      All references refer to fictitious companies and persons and are used for illustration purposes only.




73      © 2013 IBM Corporation

More Related Content

PPTX
dominocamp2022.t1s1.dde.pptx
PPTX
Electron - cross platform desktop applications made easy
PPTX
Docker - Der Wal in der Kiste
PDF
C&S APIs in IBM Notes and Domino
PDF
Chrome & Webkit overview
PDF
OVERVIEW: Chromium Source Tree
PDF
Browsers on Android (Webkit,chromium)
PDF
Mobile Browser Internal (Blink Rendering Engine)
dominocamp2022.t1s1.dde.pptx
Electron - cross platform desktop applications made easy
Docker - Der Wal in der Kiste
C&S APIs in IBM Notes and Domino
Chrome & Webkit overview
OVERVIEW: Chromium Source Tree
Browsers on Android (Webkit,chromium)
Mobile Browser Internal (Blink Rendering Engine)

What's hot (12)

PDF
The Internal Architecture of Chrome Developer Tools
PPTX
What is new in Notes & Domino Deleopment V10.x
PDF
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
PDF
WebKit and Blink: open development powering the HTML5 revolution
PDF
CreateHTTPRequestPipelineASPNetCore
PPT
Visual Studio.NET
PDF
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
PDF
HTTP Potpourri
PPTX
Gwt 2,3 Deep dive
PDF
B14870 solution final
KEY
Titanium appcelerator my first app
PDF
The WebView Role in Hybrid Applications
The Internal Architecture of Chrome Developer Tools
What is new in Notes & Domino Deleopment V10.x
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: open development powering the HTML5 revolution
CreateHTTPRequestPipelineASPNetCore
Visual Studio.NET
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
HTTP Potpourri
Gwt 2,3 Deep dive
B14870 solution final
Titanium appcelerator my first app
The WebView Role in Hybrid Applications
Ad

Similar to BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages (20)

PDF
Twelve Tasks Made Easier with IBM Domino XPages
PDF
What's new in designer
ODP
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
PDF
XPages Blast - Lotusphere 2012
ODP
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
PDF
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
PDF
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
PDF
Rit 8.5.0 platform training slides
ODP
What's new in ibm i notes 9.0
PDF
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
ODP
IBM Lotusphere 2011 AD306 - IBM Lotus Sametime Proxy: A Collaborative Recipe...
PDF
Id101 what's new in ibm lotus® domino® 8.5.3 and beyond final
PDF
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
PDF
Learn everything about IBM iNotes Customization
PDF
Code One 2018 maven
PDF
Ad107 - Enhance Your Existing Applications with XPages
PDF
Connect2013 id506 hadr ideas for social business
PPTX
The Power of Simple: Whats New in BMC Control-M 8
PDF
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
PPTX
Aem hub oak 0.2 full
Twelve Tasks Made Easier with IBM Domino XPages
What's new in designer
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
XPages Blast - Lotusphere 2012
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
Rit 8.5.0 platform training slides
What's new in ibm i notes 9.0
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
IBM Lotusphere 2011 AD306 - IBM Lotus Sametime Proxy: A Collaborative Recipe...
Id101 what's new in ibm lotus® domino® 8.5.3 and beyond final
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
Learn everything about IBM iNotes Customization
Code One 2018 maven
Ad107 - Enhance Your Existing Applications with XPages
Connect2013 id506 hadr ideas for social business
The Power of Simple: Whats New in BMC Control-M 8
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
Aem hub oak 0.2 full
Ad

More from Paul Withers (20)

PDF
Engage 2019: Introduction to Node-Red
PDF
Engage 2019: Modernising Your Domino and XPages Applications
PDF
Engage 2019: AI What Is It Good For
PDF
Social Connections 14 - ICS Integration with Node-RED and Open Source
PDF
ICONUK 2018 - Do You Wanna Build a Chatbot
PDF
IBM Think Session 8598 Domino and JavaScript Development MasterClass
PDF
IBM Think Session 3249 Watson Work Services Java SDK
PDF
GraphQL 101
PDF
GraphQL 101
PDF
OpenNTF Domino API (ODA): Super-Charging Domino Development
PDF
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
PDF
Social Connections 2015 CrossWorlds and Domino
PDF
ICON UK 2015 - ODA and CrossWorlds
PDF
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
PDF
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
PPTX
OpenNTF Domino API - Overview Introduction
PDF
What's New and Next in OpenNTF Domino API (ICON UK 2014)
PDF
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
PDF
Engage 2014 OpenNTF Domino API Slides
PDF
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
Engage 2019: Introduction to Node-Red
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: AI What Is It Good For
Social Connections 14 - ICS Integration with Node-RED and Open Source
ICONUK 2018 - Do You Wanna Build a Chatbot
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 3249 Watson Work Services Java SDK
GraphQL 101
GraphQL 101
OpenNTF Domino API (ODA): Super-Charging Domino Development
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
Social Connections 2015 CrossWorlds and Domino
ICON UK 2015 - ODA and CrossWorlds
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
OpenNTF Domino API - Overview Introduction
What's New and Next in OpenNTF Domino API (ICON UK 2014)
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
Engage 2014 OpenNTF Domino API Slides
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
cuic standard and advanced reporting.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
“AI and Expert System Decision Support & Business Intelligence Systems”
cuic standard and advanced reporting.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Digital-Transformation-Roadmap-for-Companies.pptx
Empathic Computing: Creating Shared Understanding
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
Understanding_Digital_Forensics_Presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Electronic commerce courselecture one. Pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Big Data Technologies - Introduction.pptx
Network Security Unit 5.pdf for BCA BBA.

BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages

  • 1. BP206 It's Not Herculean: Twelve Tasks Made Easier with IBM® Lotus ® Domino XPages Mike McGarel | Collaborative Solutions Developer Czarnowski Display Services Inc Paul Withers | IBM Collaboration Solutions Consultant Intec Systems Ltd © 2013 IBM Corporation
  • 2. Agenda  Introduction  The Twelve Tasks  Bonus  Summary 2 © 2013 IBM Corporation
  • 3. Mike McGarel  Working with web technologies for over 13 years  Working with Notes/Domino since version 4.6  Corporate developer   Site developer for MWLUG and SkiLUG 3 © 2013 IBM Corporation
  • 4. Paul Withers  IBM Champion 2011-2012, 2013  Co-Host The XCast  Co-Author XPages Extension Library 4 © 2013 IBM Corporation
  • 5. Why This Session?  XPages is renowned for: ● faster web development ● modern Web 2.0 user interface ● pre-built controls ● UI can be separated from business logic ● greater flexibility of development interface ● gateway to JavaTM ● extensibility of development platform   But what's in it for you? 5 © 2013 IBM Corporation
  • 6. Agenda  Introduction  The Twelve Tasks  Bonus  Summary 6 © 2013 IBM Corporation
  • 7. Hercules  Most popular classical Greco-Roman hero  Hercules is Latinized form (Heracles or Herakles in Greek)  Son of Zeus and the Alcmene (a mortal)  Originally called Alcaeus. Herakles means “famed because of Hera” (Hera-kleos)  Given “12 Labours” as punishment Image by Bayreuth2009 (Own work) [CC-BY-3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons 7 © 2013 IBM Corporation
  • 8. First Labour: Nemean Lion 8 © 2013 IBM Corporation
  • 9. Themes  Contain resources for entire application, for example: ● style sheets ● JavaScript files  Can inherit from other themes  Help to standardize user interface (UI) 9 © 2013 IBM Corporation
  • 10. Benefits Over Classic Notes/Domino  Easier to build consistent interfaces and business logic  Single source of control  Fewer inline styles means less code  GOTCHA – cannot set properties required prior to rendering ● e.g. value property for a repeat control  GOTCHA – can only override runtime bindings ● i.e. #{javascript:...} only, not ${javascript:...} 10 © 2013 IBM Corporation
  • 11. Sample Theme Code <theme extends="oneuiv2.1_gold"> <resource> <content-type>text/css</content-type> <href>corporate.css</href> </resource> <control override=”true”> <name>Button.Submit</name> <property> <name>style</name> <value>background-color: #0000FF; color: #FFF;</value> </property> </control> </theme>  11 © 2013 IBM Corporation
  • 12. Benefits Over Classic Notes/Domino  More consistent interfaces  Single source for controlling formatting  Fewer inline styles means less code  GOTCHA – cannot set properties required prior to rendering ● e.g. value property for a repeat control  GOTCHA – can only override runtime bindings ● i.e. #{javascript:...} only, not ${javascript:...} 12 © 2013 IBM Corporation
  • 13. Themes 13 © 2013 IBM Corporation
  • 14. Second Labour: Lernean Hydra 14 © 2013 IBM Corporation
  • 15. Repeat Controls  Set datasource ● dominoView ● NotesDocumentCollection ● NotesViewEntryCollection ● Multi-value field ● JavaScript array ● Java collection  Set number of iterations  Set “var” and create template for a single iteration ● Compute rendered property for flexibility 15 © 2013 IBM Corporation
  • 16. Benefits Over Classic Notes/Domino  Easier than outputting HTML with @Transform, more flexible than HTML in view columns  Drag and drop to build up a complex layout  Easier to build and debug than a LotusScript agent  Allows greater flexibility for data model  Pagination can easily be added  GOTCHA – nothing shows if content is a single string 16 © 2013 IBM Corporation
  • 17. Repeat Controls 17 © 2013 IBM Corporation
  • 18. Third Labour – Ceryneian Hind 18 © 2013 IBM Corporation
  • 19. In View Edit 19 © 2013 IBM Corporation
  • 20. In View Edit  Build “view” as normal  Add link / button to edit a row, pass UNID / NoteID to scoped variable and refresh  Render read only version if UNID / NoteID is not for this document  Render editable version if UNID / NoteID is for this document  Look at In Place Form in Extension Library 20 © 2013 IBM Corporation
  • 21. Benefits Over Classic Notes/Domino  Web 2.0 style editing for small documents  Less code than InViewEdit in Notes Client  Easier than classic web (lots of AJAX, iFrames, JavaScript)  With Repeat Controls, View Panels etc. quick to implement  GOTCHA – NotesXspViewEntry cannot be edited. Use the NotesDocument  GOTCHA – for new documents set scope to request where possible ● Otherwise second edit updates the same NotesDocument 21 © 2013 IBM Corporation
  • 22. Fourth Labour – Erymanthian Boar 22 © 2013 IBM Corporation
  • 23. Design Properties 23 © 2013 IBM Corporation
  • 24. Benefits Over Classic Notes/Domino  All Properties panel on any control  Copy and paste in Source pane  Any property can be computed, for maximum flexibility ● Avoids code duplication ● Use dataContexts for further avoidance of code duplication  GOTCHA – for eventHandler properties, need to use Outline / Source 24 © 2013 IBM Corporation
  • 25. Fifth Labour: The Auguean Stables 25 © 2013 IBM Corporation
  • 26. AJAX Partial Page Refresh  Implemented with a single tick and selecting partial refresh ID  “Changes” managed in design of XPage ● Rendered properties ● Computed properties ● Data definitions  Minimal additional coding required  For additional functionality, look at eventHandler properties – onStart, onError, onComplete, execMode, execId 26 © 2013 IBM Corporation
  • 27. Benefits Over Classic Notes/Domino  Classical Domino would need a form with passthru HTML (div and button) and JavaScript for an Ajax refresh.  An alternate would be to call a LotusScript agent  Notes Client has no partial refresh option ● NotesUIDocument methods can change specific components  GOTCHA – validation triggers, be aware of JSF lifecycle ● Know what is sent to server, what runs on server, what is sent back 27 © 2013 IBM Corporation
  • 28. Ajax Partial Page Refresh 28 © 2013 IBM Corporation
  • 29. Sixth Labour: Stymphalian Birds 29 © 2013 IBM Corporation
  • 30. Pager Controls  Many standard options and easily customizable ● Show page number easily with Page {0} of {1} ● Can allow users to select number of items per page ● Can calculate link to last page (starting with version 8.5.2) ● Pager Add Rows control ● Pager Save State control (easily returns to same page)   Built into ● View Panels ● Repeat Controls ● Data Tables ● Dynamic View Panel (Extension Library) ● Data View (Extension Library) ● iNotes ListView (Extension Library) 30 © 2013 IBM Corporation
  • 31. Benefits Over Classic Notes/Domino  Traditional Domino web has nothing out of the box  Better user experience  More flexibility for developers 31 © 2013 IBM Corporation
  • 32. Pager Controls 32 © 2013 IBM Corporation
  • 33. Seventh Labour: The Cretan Bull 33 © 2013 IBM Corporation
  • 34. TODOs  Eclipse editors allow managing of TODOs  Window > Show Eclipse Views: Tasks  Also can add FIXME or any other tag  XPages, Custom Controls, Themes integrate ● SSJS Script Libraries not supported ● Style Sheets not supported ● Java classes supported  No easy way of doing this in traditional Notes / Domino 34 © 2013 IBM Corporation
  • 35. Enabling TODOs 35 © 2013 IBM Corporation
  • 36. TODOs 36 © 2013 IBM Corporation
  • 37. Eighth Labour: The Horses of Diomedes 37 © 2013 IBM Corporation
  • 38. Labour 8.5.x: Rescue of Alcestis 38 © 2013 IBM Corporation
  • 39. Rescue Your Code From The Dead With Local History  Eclipse-based functionality   Restore From > Local History   Compare With > Local History 39 © 2013 IBM Corporation
  • 40. Rescue Your Code With Source Control Management (SCM)  Via plug-in on OpenNTF.org with Domino Designer 8.5.2   Built into Domino Designer 8.5.3  Your choice of Eclipse-based source control system ● Git ● Mercurial ● SVN 40 © 2013 IBM Corporation
  • 41. Benefits Over Classic Notes/Domino  Only available via third-party products  Third-party tools may offer alternative functionality  GOTCHA – local history specific to PC  GOTCHA – be careful with round-tripping of DXL for traditional Notes Client design elements 41 © 2013 IBM Corporation
  • 42. Rescue Code From The Dead 42 © 2013 IBM Corporation
  • 43. Ninth Labour: The Belt of Hippolyte 43 © 2013 IBM Corporation
  • 44. Custom Controls  Reusable within the same XPage  Custom properties can control instances of the control  Keep design clean by using Design Definition  Use Editable Areas as placeholder for content within the Custom Control 44 © 2013 IBM Corporation
  • 45. Benefits Over Classic Notes/Domino  More powerful than subforms   Can contain other custom controls  Properties are defined on Custom Control ● Cleaner design ● Easier to support 45 © 2013 IBM Corporation
  • 46. Custom Controls 46 © 2013 IBM Corporation
  • 47. Custom Control Property Definition Example 47 © 2013 IBM Corporation
  • 48. Using The Custom Control Property Definition <xp:div id="divButtons" styleClass="divButtons" style="#{javascript:compositeData.controlStyles}"> ... </xp:div> 48 © 2013 IBM Corporation
  • 49. Tenth Labour: Geryon's Cattle 49 © 2013 IBM Corporation
  • 50. Joining Views and Multiple Datasources  Merge content from multiple documents in a single view  Merge content from multiple databases  Display and edit multiple documents on one XPage 50 © 2013 IBM Corporation
  • 51. Benefits Over Classic Notes/Domino  Minimize data stored on NotesDocuments  Minimize views within the database  More flexible reporting  Better user-experience  Build up complex layouts section by section  GOTCHA – use ignoreRequestParams for secondary NotesDocuments 51 © 2013 IBM Corporation
  • 52. Joining Views 52 © 2013 IBM Corporation
  • 53. Eleventh Labour: Apples of The Hesperides 53 © 2013 IBM Corporation
  • 54. Display data on Mobile devices  XPages can be displayed without any amendments on mobile devices  Use responsive design for resolution-specific layout  Use Extension Library mobile components for tailored content ● New redirect control available  Third-party products for leveraging XPages skills for offline development 54 © 2013 IBM Corporation
  • 55. Benefits Over Classic Notes/Domino  Leverage existing skills  Pre-built controls with OS-specific look and feel  Access data sources as within normal XPages  GOTCHA – connectivity is not necessarily the same as desktop browser  GOTCHA – use reloadContent property judiciously  GOTCHA – slide transitions only available within single XPage 55 © 2013 IBM Corporation
  • 56. Displaying on Mobile 56 © 2013 IBM Corporation
  • 57. Twelfth Labour: Cerberus 57 © 2013 IBM Corporation
  • 58. Inspecting Tools  Debug Toolbar ● Displays variables and values ● Allows you to easily set timers ● In-built API inspector to test code ● Message logging ● http://www.openntf.org/internal/home.nsf/project.xsp? action=openDocument&name=XPage%20Debug%20Toolbar  XPages Log File Reader ● View console ● View logs ● http://www.openntf.org/internal/home.nsf/project.xsp? action=openDocument&name=XPages%20Log%20File%20Reader 58 © 2013 IBM Corporation
  • 59. Inspecting Tools  XPages Toolbox ● CPU Profiler ● Runtime monitoring ● Session dumps ● And more... ● http://www.openntf.org/internal/home.nsf/project.xsp? action=openDocument&name=XPages%20Toolbox  Server-Side JavaScript Debugging*  Java Debugging* *Useful session: Debug Server Side Javascript, Java, and XPages Apps Using the SSJS Debugger (AD202) Wednesday 4:15pm - 5:15pm 59 © 2013 IBM Corporation
  • 60. Benefits Over Classic Notes/Domino  LotusScript debugger, but nothing easy for formula language  No easy debugging for traditional Domino web 60 © 2013 IBM Corporation
  • 61. Agenda  Introduction  The Twelve Tasks  Bonus  Summary 61 © 2013 IBM Corporation
  • 62. XPages and Social – With XPages You're Not Alone  Community blog posts, books  OpenNTF (http://openntf.org) resources ● Sample Applications ● Custom Controls ● XSnippets (http://openntf.org/XSnippets.nsf/home.xsp) ● OSGi plugins ● Libraries to extend Domino Designer  Import and Export for Domino Designer Plugin ● Easily import resources from OpenNTF ● Easily export to file system or package for OpenNTF 62 © 2013 IBM Corporation
  • 63. XPages and Social – With XPages You're Not Alone  Social controls in Extension Library for easy integration with ● IBM Connections ● Sametime ● Twitter ● Facebook ● Dropbox  Social Plugins ● Like a single control to start a Sametime chat with any editor of the current document 63 © 2013 IBM Corporation
  • 64. Agenda  Introduction  The Twelve Tasks  Bonus  Summary 64 © 2013 IBM Corporation
  • 65. Summary  Twelve examples of areas where XPages is ● Quicker ● Easier ● More flexible ● Extensible ● Build reusable skills within or beyond Domino ● The learning curve is worth it! 65 © 2013 IBM Corporation
  • 66. XPages Resources  XPages.Info (http://xpages.info)  XPages Forum (http://www-10.lotus.com/ldd/xpagesforum.nsf)  Notes/Domino Application Development Wiki (http://www-10.lotus.com/ldd/ddwiki.nsf)  YouAtNotes XPages wiki (http://www.xpageswiki.com)  Notes in 9 (http://www.notesin9.com)  Stack Overflow (http://stackoverflow.com/questions/tagged/xpages)  Mastering XPages (IBM Press)  XPages Extension Library (IBM Press)  XPages Portable Command Guide (IBM Press) 66 © 2013 IBM Corporation
  • 67. References (Classical Mythology / Greek Literature)  Timeless Myths (http://www.timelessmyths.com)  Family tree of descendants of Perseus, including Hercules ( http://timelessmyths.com/classical/family3c.html)  Theoi Greek Mythology (http://www.theoi.com)  Jason & Medea (http://jasonmedea.net)  Euripides, Heracles – covers Hercules killing his wife Megara  Euripides, Alcestis – covers Hercules rescue of Alcestis  Sophocles, Women of Trachis (Trachiniae) – covers Hercules' death  Seneca, Hercules Furens – Roman tragedy, covers Hercules killing his wife Megara  Hercules' life also covered in works of Ovid (Metamorphoses), Apollodorus, Diodorus Siculus, Hesiod (The Shield of Herakles), Hyginus 67 © 2013 IBM Corporation
  • 68. References (Popular Culture)  “Hercules” (Disney animated movie 1997)  “Hercules: The Legendary Journeys” (TV show 1995 – 1999)  “The Three Stooges Meet Hercules” (Movie 1962)  “Jason and The Argonauts” (Movie 1963)  Countless other movies, TV shows, comic books, and video games 68 © 2013 IBM Corporation
  • 69. Other Related Sessions  Debug Server Side Javascript, Java, and XPages Apps Using the SSJS Debugger (AD202)  IBM Domino Designer: Tips and Tricks for Maximum Productivity (AD203)  How To Develop Great Applications Using XPages Design Patterns (AD204)  Successfully Delivering XPages Projects - All Things Considered (AD205)  IBM Lotus Domino XPages: Embrace, Extend, Integrate (AD206)  IBM Lotus Domino XPages: Beyond Domino Documents and Views (AD207)  IBM Lotus Domino XPages Performance in a Nutshell (AD208)  jQuery: The World's Most Popular JavaScript Library Comes to XPages (BP103)  Deploying and Managing IBM Lotus Domino XPages Applications (BP201)  XPages Development: Modernize Yourself! (BP202)  Custom Controls: Powerful, But Not Rocket Science! (BP205)  Meet the Java Application Server You Already Own - IBM Domino (BP207)  XPages Blast (BP208)  In The Land of Social Apps, the API is King (BP209)  69 © 2013 IBM Corporation
  • 70. Other Related Sessions (continued)  Using a Mobile Approach: Strategies for Mobilizing Your IBM Domino Applications (BP210)  Lessons Learned from the World's Largest XPage Project (BP211)  Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF (BP212)  XPages Jumpstart (JMP101)  Extending Your App Arsenal With OpenSocial (JMP102)  Get the “Jump” on Mobilizing Your IBM Notes and Domino Applications Today! (JMP103)  Master Class: XPages Performance - Inside Out (JMP401)  Master Class: Managed Beans and XPages: Your Time Is Now (JMP402)  Master Class: Reverse Engineering Notes Applications: Separating Truth from Fiction (JMP403)  Buried Treasure: Finding the Hidden Gold in Lotus Notes Data (SHOW104)  XPages: No Experience Needed (SHOW111)  Building Your First Mobile Application Using XPages (SHOW112) 70 © 2013 IBM Corporation
  • 71. “It's Better with XPages” Index 1. Themes 2. Repeat Controls 3. In View Edit 4. Design Properties 5. AJAX Partial Page Refresh 6. Pager Controls 7. TODOs 8. Local History / Source Control Management 9. Custom Controls 10. Joining Views 11. Mobile 12. Inspecting Tools 71 © 2013 IBM Corporation
  • 72. Questions and Evaluations Paul Withers Mike McGarel ICS Consultant Collaborative Solutions Developer Intec Systems Ltd Czarnowski Display Services Inc pwithers@intec.co.uk mcgarelgramming@gmail.com www.twitter.com/paulswithers www.twitter.com/mmcgarel http://www.intec.co.uk/blog www.bleedyellow.com/blogs/ McGarelGramming 72 © 2013 IBM Corporation
  • 73. Legal disclaimer © IBM Corporation 2013. 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. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. All references refer to fictitious companies and persons and are used for illustration purposes only. 73 © 2013 IBM Corporation