SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
"Marty, You're Just Not Thinking Fourth
Dimensionally": Troubleshooting XPages
Paul Withers / 2nd Feb 2016
Acknowledgements and Disclaimers
Availability. 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.
The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational
purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to
verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM
shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this
presentation 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.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved.
Actual environmental costs and performance characteristics may vary by customer. 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.
Š Copyright IBM Corporation 2015. All rights reserved.
• U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
• IBM, the IBM logo, ibm.com, and IBM Domino are trademarks or registered trademarks of International Business Machines Corporation in the United States,
other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™),
these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be
registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml
About Me
“My name is Darth Vader. I
am an extraterrestrial from
the planet Vulcan”
Why This Session?
• XPages often doesn’t work “as expected”
 Custom Control -> XPage -> Browser
 Browser -> Server -> Browser
 SSJS / CSJS
 State management
 Partial Refresh
• Lots of StackOverflow questions
 Which wouldn’t be referenced here unless many developers hit
the same issues!
Agenda
• Buzz-Quote Bingo!
• Twin Pines Mall / Lone Pine Mall
• Marty’s Family Photo
• Marty McFly and the Tannens
• Power of Love
• Alternate 1985
• Indians!
• It’s Erased!
BuzzQuote Bingo
• http://hermes.intec.co.uk/bttf
• Enter Name and Email
• Click when you hear
• Shout if you win!
Twin Pines Mall / Lone
Pine Mall
Some Questions
• http://stackoverflow.com/questions/32256155/why-does-this-
code-write-out-two-documents/32259533#32259533
• http://stackoverflow.com/questions/24400934/xpages-save-
cancel-actions-scenario
• http://stackoverflow.com/questions/24407003/xpages-unid-of-
documents-why-it-is-changing
• http://stackoverflow.com/questions/21015953/xpages-conflict-
is-created-everytime-a-document-is-saved
1. Retrieve/Create Code in documentId
• ALWAYS use ${…} when calculating properties like
documentId
• Otherwise calculated FOUR times on page load
 If attached to a Panel, TWICE AFTER beforePageLoad
 If attached to XPage, TWICE BEFORE beforePageLoad
• Can’t use scoped variables set in beforePageLoad!
 Always TWICE DURING render response
1a. Timing of Initialisations
• viewScoped variables can’t be set before PAGE LOAD
 Controller frameworks put variable in requestScope and move to
viewScope
• data, dataContexts etc
 attached to XPage / Custom Control - initialised alongside
component
 Attached to Panel – initialised during PAGE LOAD
2. ignoreRequestParams
• ALWAYS use ignoreRequestParams where appropriate
 If no params, computed settings respected
 If params passed, computed settings overwritten
3. Submit Button Type
• DON’T use save=“true” (“Submit” button type)
 Use script, not simple actions
• Greater control, less risk
• You save only what should be saved
• Preparing you for Java / beans / beyond
• Form with single rich text field can cause problems even with
script
Marty’s Family Photo
Some Questions
• http://stackoverflow.com/questions/33259105/xpages-button-
unresponsive-after-4-ajax-calls/33260337#33260337
• http://stackoverflow.com/questions/32628012/xpages-losing-a-
viewscoped-bean-again/32633453#32633453
• http://stackoverflow.com/questions/32482575/xpages-falling-
out-of-server-side-cache/32483154#32483154
• http://stackoverflow.com/questions/33686362/xpages-page-
loosing-context-weird-behaviour
• http://stackoverflow.com/questions/32628012/xpages-losing-a-
viewscoped-bean-again/32633453#32633453
4. Keep Pages In Memory
• XPages is stateful
• Number of component trees restricted for performance
• Dumped xsp.session.timeout minutes after browser closed
 Browser doesn’t tell server session is no longer used!
5. viewState=“nostate”
• viewState=“nostate”
 Don’t store a component tree for this page
 Best practice for XAgents / REST services
6. Explanation of “nostate”
• DataView and nostate
 Toggle expand/collapse is fine
 Navigating to specific pages is fine
 Next / Previous is relative to defaults
 Toggle detail is relative to defaults
• Unless detailsOnClient=“true”
• Details pushed to browser along with rest of content
• “Toggle” is client-side show/hide
Marty and the Tannens
Some Questions
• http://stackoverflow.com/questions/31561306/how-do-i-access-
a-repeat-control-from-the-outside-e-g-via-
csjs/31575723#31575723
• http://stackoverflow.com/questions/27982313/xprepeat-inside-
xedataview/27982614#27982614
• http://stackoverflow.com/questions/34158779/inherit-index-
from-repeatcontrol-in-nested-custom-
controls/34158954#34158954
• http://stackoverflow.com/questions/34652364/slider-in-repeat-
control-and-manipulation-of-text-via-
jouery/34653561#34653561
7. Repeat Controls and Component Tree
• Only one set of components in component tree
• repeatControls=“true” changes behaviour
 x many sets of components
 Hard-wired to specific entries at page load
 Pagers have no effect because of hard-wiring
 Allows “loaded” computations within the repeat, e.g. id’s
• Cannot compute repeatControls=“true” within compositeData
8. Dynamic Content Control
• Only components from current facet exist in component tree
• Component tree dynamically updated
• Better than showing / hiding via rendered property
9. Custom Controls and Scope
• Custom control is inserted into component tree
• Variable names outside custom control available
• As long as same variable used, no need to pass
• Same rules as for any component
 Is variable available by navigating upwards in tree?
 Cannot retrieve variables from another branch
• E.g. different repeat entry, repeat entry from outside repeat
Power of Love
ControllingViewHandler
• Creates component tree for specific XPage
• Runs before beforePageLoad event
• super.createView() loads component tree
• Also creates viewScope
 Not available before call to super.createView()
 Load variables to requestScope before super.createView()
 Move to viewScope after super.createView()
ControllingViewHandler
PhaseListener
• Handles XPages lifecycle
• On page load, only RENDER RESPONSE triggered
• Runs for every partial refresh
 Ensure optimised
 Ensure error handling
• Crucial for identifying why partial refresh is not behaving “as
expected”
PhaseListener
Some Questions
• http://stackoverflow.com/questions/20477153/xpages-server-
validation-errors-havent-been-displayed-to-the-user
• http://stackoverflow.com/questions/28339422/ssjs-onclick-
action-will-not-fire-on-xpage/28340759#28340759
• http://stackoverflow.com/questions/33024777/xpages-how-to-
do-partial-refresh-correctly
• http://www.intec.co.uk/view-isrenderingphase-and-buttons/
• http://www.intec.co.uk/fully-understanding-rendered-property-
and-components-with-events/
10. Understanding Partial Refresh
• Partial Refresh is SIX Phases
10. Understanding Partial Refresh
• 1. RESTORE VIEW
 Get component tree again
• 2. APPLY REQUEST VALUES
 Pass String values from browser to executed component tree
• 3. PROCESS VALIDATIONS
 Run validators AND converters for executed component tree
10. Understanding Partial Refresh
• 4. UPDATE MODEL VALUES
 Convert string values and update executed component tree
• 5. INVOKE APPLICATION
 Run application logic (SSJS / Java)
• 6. RENDER RESPONSE
 Update HTML for executed component tree and post refresh area
11. Conditionally Hidden Save Button
• Set rendered property on button
 For best practice, use view.isRenderingPhase()
 Ensure set to true for other phases or code will not run
• Add partial refresh where appropriate
 Ensure refresh area correct or button will not show
 Ensure disableValidators=“true” or button will not hide again if
invalid
12. Reasons Code May Not Work!
• CSJS returning false – check Firebug for POST event
• Conversion error – 1,2,3,6
• Validation error – 1,2,3,6
• Exec id not including components being used by application
logic
• Exec id not including component triggering application logic
• Event handler not rendered in phase 4
• Refresh area not including errors control
13. Troubleshooting
• Use PhaseListener
• java.util.logging.ConsoleHandler.level manages console
logging of server validation errors, since 8.5.3
 In workspace.configrcpinstall.properties
• ALWAYS including errors control in refresh area
• Be conscious of rendered property
BONUS 1: Data View
• dataCache=“id” setting available on View datasource
• Better for performance, only caches id, not full ViewEntry
(wrapped)
• “var” not available during Apply Request Values
 Compute value only in Render Response
BONUS 2 - Dialog
• To refresh area,
getComponent(“dialog1”).hide(“myRefreshArea”)
 POST
• Run SSJS
• view.postScript - XSP.closeDialog
 GET
• Refresh myRefreshArea
Alternate 1985
14. What Requires Restart Task HTTP?
• Picked up immediately
 Classic design elements
 XPages*
 Custom Controls*
 Java classes*
* Provided not in SCXD - http://www.intec.co.uk/single-copy-xpage-design-
some-learning-and-why-its-not-for-me/
14. What Requires Restart Task HTTP?
• Require “res task http”
 JAR files
• http://stackoverflow.com/questions/30939347/jar-file-changes-in-
lotus-notes-database-not-being-picked-up-by-domino-server
 SCXD
 OSGi plugin*
• http://stackoverflow.com/questions/33233724/while-in-development-
in-xpages-libraries-changes-are-not-picked-up/33234041#33234041
 Servlet / OSGi application*
* Without JRebel https://www.youtube.com/watch?v=EHbVgA2oqD0
Indians!
Question
• http://stackoverflow.com/questions/33190731/value-picker-get-
error-typeerror-resp-is-null-in-xpages/33210520#33210520
15. “Resp is null”
• Understand page load and dynamically
 “resp is null” – options for picker are not available
 Picker is client-side, but values are passed to renderer server-
side
16. SSJS in CSJS
• SSJS in CSJS
 Computed server-side as part of script renderer
 Only re-computed by partial refresh
• To access component values
 Use dojo.byId or variants to access client-side element
 Trigger partial refresh to update SSJS embedded into CSJS
It’s Erased!
Some Questions
• http://stackoverflow.com/questions/24735862/best-practice-for-
storing-datetime-values-in-xpages
• http://stackoverflow.com/questions/34417067/xpages-
notserializableexception-on-
datetime/34417335?noredirect=1#comment56612210_344173
35
• http://stackoverflow.com/questions/33168499/cannot-serialize-
javascript-function/33168732#33168732
17. Domino Objects in Scopes
• Domino objects can’t be stored in scopes.
 DateTimes are the most common culprit
 Use .toJavaDate() to store Java Date
• Similar issues with SSJS functions stored in variables
18. Impact of Persistence Setting
• For Domino objects in scopes, depending on persistence
setting
 Keep pages in memory – value just lost
 Keep pages on disk – error thrown to server, redirect to error
page (fails to display)
 Keep current page in memory – value just lost, error 500 on
navigating
Summary
• Understand ignoreRequestParams
• Avoid simple actions
• Keep Pages in Memory – understand impacts
• Use viewState=“nostate”
• Understand detailsOnClient=“true”
• Understand repeatControls=“true”
Summary
• Understand scope and custom controls
• Understand partial refresh is more than just “partial
refresh”
• Understand SSJS is computed and injected into CSJS
• Use Firebug or comparable tool
• Don’t store Domino objects in scopes
• Understand impact of serialization
Thank You!
Paul Withers
Intec Systems Ltd
IBM Champion
OpenNTF Board Member
@paulswithers
pwithers@intec.co.uk
http://www.intec.co.uk/blog
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017
DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017
DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017panagenda
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergydominion
 
Power Platform Community Monthly Webinar - December 2021
Power Platform Community Monthly Webinar - December 2021Power Platform Community Monthly Webinar - December 2021
Power Platform Community Monthly Webinar - December 2021Robert Crane
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprisedominion
 
DEV-1269: Best and Worst Practices for Deploying IBM Connections – IBM Conne...
DEV-1269: Best and Worst Practices for Deploying IBM Connections  – IBM Conne...DEV-1269: Best and Worst Practices for Deploying IBM Connections  – IBM Conne...
DEV-1269: Best and Worst Practices for Deploying IBM Connections – IBM Conne...panagenda
 
DEV-1268: IBM Connections Adminblast – IBM Connect 2017
DEV-1268: IBM Connections Adminblast – IBM Connect 2017DEV-1268: IBM Connections Adminblast – IBM Connect 2017
DEV-1268: IBM Connections Adminblast – IBM Connect 2017panagenda
 
DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...
DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...
DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...panagenda
 
Naked and afraid Offline Mobile
Naked and afraid Offline MobileNaked and afraid Offline Mobile
Naked and afraid Offline MobileColdFusionConference
 
Adopting Microsoft Stream in Your Organization
Adopting Microsoft Stream in Your OrganizationAdopting Microsoft Stream in Your Organization
Adopting Microsoft Stream in Your Organizationspsnyc
 
Microsoft Program Offerings Webinar_2022.03.29.pdf
Microsoft Program Offerings Webinar_2022.03.29.pdfMicrosoft Program Offerings Webinar_2022.03.29.pdf
Microsoft Program Offerings Webinar_2022.03.29.pdfTechSoup
 
IBM Sametime 9 Installation Woes and Proactive Repairs by Keith Brooks
IBM Sametime 9 Installation Woes and Proactive Repairs by Keith BrooksIBM Sametime 9 Installation Woes and Proactive Repairs by Keith Brooks
IBM Sametime 9 Installation Woes and Proactive Repairs by Keith BrooksKeith Brooks
 
Joomladay Netherlands 2012 - File and document management in Joomla
Joomladay Netherlands 2012  - File and document management in JoomlaJoomladay Netherlands 2012  - File and document management in Joomla
Joomladay Netherlands 2012 - File and document management in JoomlaJoomlatools
 
Microsoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveMicrosoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveThomas GĂślles
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and BeyondESUG
 
BIML: BI to the next level
BIML: BI to the next levelBIML: BI to the next level
BIML: BI to the next levelDavide Mauri
 
Connect 2017 DEV-1420 - Blue Mix and Domino – Complementing Smartcloud
Connect 2017 DEV-1420 - Blue Mix and Domino – Complementing SmartcloudConnect 2017 DEV-1420 - Blue Mix and Domino – Complementing Smartcloud
Connect 2017 DEV-1420 - Blue Mix and Domino – Complementing SmartcloudMatteo Bisi
 
Admin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins SanityAdmin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins SanityKeith Brooks
 
The Anchor Store: Four Confluence Examples to Root Your Deployment
The Anchor Store: Four Confluence Examples to Root Your DeploymentThe Anchor Store: Four Confluence Examples to Root Your Deployment
The Anchor Store: Four Confluence Examples to Root Your DeploymentAtlassian
 
Microsoft 365 for Edu
Microsoft 365 for EduMicrosoft 365 for Edu
Microsoft 365 for EduDennis Bottjer
 
Java/J2EE & SOA
Java/J2EE & SOA Java/J2EE & SOA
Java/J2EE & SOA Edureka!
 

Was ist angesagt? (20)

DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017
DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017
DEV-1185: IBM Notes Performance Boost - Reloaded – IBM Connect 2017
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
 
Power Platform Community Monthly Webinar - December 2021
Power Platform Community Monthly Webinar - December 2021Power Platform Community Monthly Webinar - December 2021
Power Platform Community Monthly Webinar - December 2021
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprise
 
DEV-1269: Best and Worst Practices for Deploying IBM Connections – IBM Conne...
DEV-1269: Best and Worst Practices for Deploying IBM Connections  – IBM Conne...DEV-1269: Best and Worst Practices for Deploying IBM Connections  – IBM Conne...
DEV-1269: Best and Worst Practices for Deploying IBM Connections – IBM Conne...
 
DEV-1268: IBM Connections Adminblast – IBM Connect 2017
DEV-1268: IBM Connections Adminblast – IBM Connect 2017DEV-1268: IBM Connections Adminblast – IBM Connect 2017
DEV-1268: IBM Connections Adminblast – IBM Connect 2017
 
DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...
DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...
DEV-1223: Socialytics: Accelerating IBM Connections Adoption with Watson Anal...
 
Naked and afraid Offline Mobile
Naked and afraid Offline MobileNaked and afraid Offline Mobile
Naked and afraid Offline Mobile
 
Adopting Microsoft Stream in Your Organization
Adopting Microsoft Stream in Your OrganizationAdopting Microsoft Stream in Your Organization
Adopting Microsoft Stream in Your Organization
 
Microsoft Program Offerings Webinar_2022.03.29.pdf
Microsoft Program Offerings Webinar_2022.03.29.pdfMicrosoft Program Offerings Webinar_2022.03.29.pdf
Microsoft Program Offerings Webinar_2022.03.29.pdf
 
IBM Sametime 9 Installation Woes and Proactive Repairs by Keith Brooks
IBM Sametime 9 Installation Woes and Proactive Repairs by Keith BrooksIBM Sametime 9 Installation Woes and Proactive Repairs by Keith Brooks
IBM Sametime 9 Installation Woes and Proactive Repairs by Keith Brooks
 
Joomladay Netherlands 2012 - File and document management in Joomla
Joomladay Netherlands 2012  - File and document management in JoomlaJoomladay Netherlands 2012  - File and document management in Joomla
Joomladay Netherlands 2012 - File and document management in Joomla
 
Microsoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveMicrosoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspective
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and Beyond
 
BIML: BI to the next level
BIML: BI to the next levelBIML: BI to the next level
BIML: BI to the next level
 
Connect 2017 DEV-1420 - Blue Mix and Domino – Complementing Smartcloud
Connect 2017 DEV-1420 - Blue Mix and Domino – Complementing SmartcloudConnect 2017 DEV-1420 - Blue Mix and Domino – Complementing Smartcloud
Connect 2017 DEV-1420 - Blue Mix and Domino – Complementing Smartcloud
 
Admin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins SanityAdmin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins Sanity
 
The Anchor Store: Four Confluence Examples to Root Your Deployment
The Anchor Store: Four Confluence Examples to Root Your DeploymentThe Anchor Store: Four Confluence Examples to Root Your Deployment
The Anchor Store: Four Confluence Examples to Root Your Deployment
 
Microsoft 365 for Edu
Microsoft 365 for EduMicrosoft 365 for Edu
Microsoft 365 for Edu
 
Java/J2EE & SOA
Java/J2EE & SOA Java/J2EE & SOA
Java/J2EE & SOA
 

Andere mochten auch

Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneHoward Greenberg
 
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...Teamstudio
 
What the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business ApplicationsWhat the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business ApplicationsJohn Head
 
Speed geeking-lotusscript
Speed geeking-lotusscriptSpeed geeking-lotusscript
Speed geeking-lotusscriptBill Buchan
 
D8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpages
D8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpagesD8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpages
D8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpagesCERTyou Formation
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMichael Smith
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsTeamstudio
 

Andere mochten auch (7)

Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
 
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
 
What the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business ApplicationsWhat the App? : A Modernization Strategy for Your Business Applications
What the App? : A Modernization Strategy for Your Business Applications
 
Speed geeking-lotusscript
Speed geeking-lotusscriptSpeed geeking-lotusscript
Speed geeking-lotusscript
 
D8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpages
D8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpagesD8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpages
D8 l55g formation-introduction-a-ibm-lotus-domino-8-5-xpages
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
 

Ähnlich wie AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XPages

Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Salesforce Developers
 
The Real Workflow Experience
The Real Workflow ExperienceThe Real Workflow Experience
The Real Workflow ExperienceLaura Farbo
 
IBM Connections Adminblast - Connect17 (DEV 1268)
IBM Connections Adminblast - Connect17 (DEV 1268)IBM Connections Adminblast - Connect17 (DEV 1268)
IBM Connections Adminblast - Connect17 (DEV 1268)Nico Meisenzahl
 
dev@InterConnect workshop - Lean and DevOps
dev@InterConnect workshop - Lean and DevOpsdev@InterConnect workshop - Lean and DevOps
dev@InterConnect workshop - Lean and DevOpsSanjeev Sharma
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyTeamstudio
 
Using Wireframes
Using WireframesUsing Wireframes
Using WireframesMark Calkins
 
Java Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and DeploymentJava Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and DeploymentSalesforce Developers
 
Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015Bryan Yang
 
System hardening - OS and Application
System hardening - OS and ApplicationSystem hardening - OS and Application
System hardening - OS and Applicationedavid2685
 
Polymorphic Table Functions: The Best Way to Integrate SQL and Apache Spark
Polymorphic Table Functions: The Best Way to Integrate SQL and Apache SparkPolymorphic Table Functions: The Best Way to Integrate SQL and Apache Spark
Polymorphic Table Functions: The Best Way to Integrate SQL and Apache SparkDatabricks
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...0xdaryl
 
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good ServerIBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good ServerSerdar Basegmez
 
Secure Salesforce: CRUD / FLS / Sharing
Secure Salesforce: CRUD / FLS / SharingSecure Salesforce: CRUD / FLS / Sharing
Secure Salesforce: CRUD / FLS / SharingSalesforce Developers
 
Radically Simple Management & Assembly of API-based Applications
Radically Simple Management & Assembly of API-based ApplicationsRadically Simple Management & Assembly of API-based Applications
Radically Simple Management & Assembly of API-based Applicationsvinodmut
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerTeamstudio
 
Universal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFestUniversal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFestdarafitzgerald
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 

Ähnlich wie AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XPages (20)

Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
 
The Real Workflow Experience
The Real Workflow ExperienceThe Real Workflow Experience
The Real Workflow Experience
 
Introduction to Apex Triggers
Introduction to Apex TriggersIntroduction to Apex Triggers
Introduction to Apex Triggers
 
Deep Dive into Apex Triggers
Deep Dive into Apex TriggersDeep Dive into Apex Triggers
Deep Dive into Apex Triggers
 
IBM Connections Adminblast - Connect17 (DEV 1268)
IBM Connections Adminblast - Connect17 (DEV 1268)IBM Connections Adminblast - Connect17 (DEV 1268)
IBM Connections Adminblast - Connect17 (DEV 1268)
 
dev@InterConnect workshop - Lean and DevOps
dev@InterConnect workshop - Lean and DevOpsdev@InterConnect workshop - Lean and DevOps
dev@InterConnect workshop - Lean and DevOps
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
 
Using Wireframes
Using WireframesUsing Wireframes
Using Wireframes
 
Java Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and DeploymentJava Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and Deployment
 
Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015
 
System hardening - OS and Application
System hardening - OS and ApplicationSystem hardening - OS and Application
System hardening - OS and Application
 
Polymorphic Table Functions: The Best Way to Integrate SQL and Apache Spark
Polymorphic Table Functions: The Best Way to Integrate SQL and Apache SparkPolymorphic Table Functions: The Best Way to Integrate SQL and Apache Spark
Polymorphic Table Functions: The Best Way to Integrate SQL and Apache Spark
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good ServerIBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
 
Secure Salesforce: CRUD / FLS / Sharing
Secure Salesforce: CRUD / FLS / SharingSecure Salesforce: CRUD / FLS / Sharing
Secure Salesforce: CRUD / FLS / Sharing
 
Radically Simple Management & Assembly of API-based Applications
Radically Simple Management & Assembly of API-based ApplicationsRadically Simple Management & Assembly of API-based Applications
Radically Simple Management & Assembly of API-based Applications
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
 
Universal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFestUniversal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFest
 
IBM Connect 2016: Speaker Session with Teresa Deane, Senior Developer, BCC
IBM Connect 2016: Speaker Session with Teresa Deane, Senior Developer, BCCIBM Connect 2016: Speaker Session with Teresa Deane, Senior Developer, BCC
IBM Connect 2016: Speaker Session with Teresa Deane, Senior Developer, BCC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 

Mehr von Paul Withers

Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedPaul Withers
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Paul Withers
 
Engage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good ForEngage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good ForPaul Withers
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourcePaul Withers
 
ICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a ChatbotICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a ChatbotPaul Withers
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKPaul Withers
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentPaul Withers
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
ICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorldsICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorldsPaul Withers
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityIBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityPaul Withers
 
OpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview IntroductionOpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview IntroductionPaul Withers
 
What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)Paul Withers
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...Paul Withers
 
Engage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API SlidesEngage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API SlidesPaul Withers
 
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenIBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenPaul Withers
 
Embracing the power of the notes client
Embracing the power of the notes clientEmbracing the power of the notes client
Embracing the power of the notes clientPaul Withers
 

Mehr von Paul Withers (20)

Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
Engage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good ForEngage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good For
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open Source
 
ICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a ChatbotICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a Chatbot
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDK
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
ICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorldsICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorlds
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityIBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
 
OpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview IntroductionOpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview Introduction
 
What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)What's New and Next in OpenNTF Domino API (ICON UK 2014)
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...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
 
Engage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API SlidesEngage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API Slides
 
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenIBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
 
Embracing the power of the notes client
Embracing the power of the notes clientEmbracing the power of the notes client
Embracing the power of the notes client
 

KĂźrzlich hochgeladen

Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessEnvertis Software Solutions
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy LĂłpez
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitivaDiego IvĂĄn Oliveros Acosta
 

KĂźrzlich hochgeladen (20)

Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva
 

AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XPages

  • 1. "Marty, You're Just Not Thinking Fourth Dimensionally": Troubleshooting XPages Paul Withers / 2nd Feb 2016
  • 2. Acknowledgements and Disclaimers Availability. 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. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation 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. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. 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. Š Copyright IBM Corporation 2015. All rights reserved. • U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. • IBM, the IBM logo, ibm.com, and IBM Domino are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (ÂŽ or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml
  • 3. About Me “My name is Darth Vader. I am an extraterrestrial from the planet Vulcan”
  • 4. Why This Session? • XPages often doesn’t work “as expected”  Custom Control -> XPage -> Browser  Browser -> Server -> Browser  SSJS / CSJS  State management  Partial Refresh • Lots of StackOverflow questions  Which wouldn’t be referenced here unless many developers hit the same issues!
  • 5. Agenda • Buzz-Quote Bingo! • Twin Pines Mall / Lone Pine Mall • Marty’s Family Photo • Marty McFly and the Tannens • Power of Love • Alternate 1985 • Indians! • It’s Erased!
  • 6. BuzzQuote Bingo • http://hermes.intec.co.uk/bttf • Enter Name and Email • Click when you hear • Shout if you win!
  • 7. Twin Pines Mall / Lone Pine Mall
  • 8. Some Questions • http://stackoverflow.com/questions/32256155/why-does-this- code-write-out-two-documents/32259533#32259533 • http://stackoverflow.com/questions/24400934/xpages-save- cancel-actions-scenario • http://stackoverflow.com/questions/24407003/xpages-unid-of- documents-why-it-is-changing • http://stackoverflow.com/questions/21015953/xpages-conflict- is-created-everytime-a-document-is-saved
  • 9. 1. Retrieve/Create Code in documentId • ALWAYS use ${…} when calculating properties like documentId • Otherwise calculated FOUR times on page load  If attached to a Panel, TWICE AFTER beforePageLoad  If attached to XPage, TWICE BEFORE beforePageLoad • Can’t use scoped variables set in beforePageLoad!  Always TWICE DURING render response
  • 10. 1a. Timing of Initialisations • viewScoped variables can’t be set before PAGE LOAD  Controller frameworks put variable in requestScope and move to viewScope • data, dataContexts etc  attached to XPage / Custom Control - initialised alongside component  Attached to Panel – initialised during PAGE LOAD
  • 11. 2. ignoreRequestParams • ALWAYS use ignoreRequestParams where appropriate  If no params, computed settings respected  If params passed, computed settings overwritten
  • 12. 3. Submit Button Type • DON’T use save=“true” (“Submit” button type)  Use script, not simple actions • Greater control, less risk • You save only what should be saved • Preparing you for Java / beans / beyond • Form with single rich text field can cause problems even with script
  • 14. Some Questions • http://stackoverflow.com/questions/33259105/xpages-button- unresponsive-after-4-ajax-calls/33260337#33260337 • http://stackoverflow.com/questions/32628012/xpages-losing-a- viewscoped-bean-again/32633453#32633453 • http://stackoverflow.com/questions/32482575/xpages-falling- out-of-server-side-cache/32483154#32483154 • http://stackoverflow.com/questions/33686362/xpages-page- loosing-context-weird-behaviour • http://stackoverflow.com/questions/32628012/xpages-losing-a- viewscoped-bean-again/32633453#32633453
  • 15. 4. Keep Pages In Memory • XPages is stateful • Number of component trees restricted for performance • Dumped xsp.session.timeout minutes after browser closed  Browser doesn’t tell server session is no longer used!
  • 16. 5. viewState=“nostate” • viewState=“nostate”  Don’t store a component tree for this page  Best practice for XAgents / REST services
  • 17. 6. Explanation of “nostate” • DataView and nostate  Toggle expand/collapse is fine  Navigating to specific pages is fine  Next / Previous is relative to defaults  Toggle detail is relative to defaults • Unless detailsOnClient=“true” • Details pushed to browser along with rest of content • “Toggle” is client-side show/hide
  • 18. Marty and the Tannens
  • 19. Some Questions • http://stackoverflow.com/questions/31561306/how-do-i-access- a-repeat-control-from-the-outside-e-g-via- csjs/31575723#31575723 • http://stackoverflow.com/questions/27982313/xprepeat-inside- xedataview/27982614#27982614 • http://stackoverflow.com/questions/34158779/inherit-index- from-repeatcontrol-in-nested-custom- controls/34158954#34158954 • http://stackoverflow.com/questions/34652364/slider-in-repeat- control-and-manipulation-of-text-via- jouery/34653561#34653561
  • 20. 7. Repeat Controls and Component Tree • Only one set of components in component tree • repeatControls=“true” changes behaviour  x many sets of components  Hard-wired to specific entries at page load  Pagers have no effect because of hard-wiring  Allows “loaded” computations within the repeat, e.g. id’s • Cannot compute repeatControls=“true” within compositeData
  • 21. 8. Dynamic Content Control • Only components from current facet exist in component tree • Component tree dynamically updated • Better than showing / hiding via rendered property
  • 22. 9. Custom Controls and Scope • Custom control is inserted into component tree • Variable names outside custom control available • As long as same variable used, no need to pass • Same rules as for any component  Is variable available by navigating upwards in tree?  Cannot retrieve variables from another branch • E.g. different repeat entry, repeat entry from outside repeat
  • 24. ControllingViewHandler • Creates component tree for specific XPage • Runs before beforePageLoad event • super.createView() loads component tree • Also creates viewScope  Not available before call to super.createView()  Load variables to requestScope before super.createView()  Move to viewScope after super.createView()
  • 26. PhaseListener • Handles XPages lifecycle • On page load, only RENDER RESPONSE triggered • Runs for every partial refresh  Ensure optimised  Ensure error handling • Crucial for identifying why partial refresh is not behaving “as expected”
  • 28. Some Questions • http://stackoverflow.com/questions/20477153/xpages-server- validation-errors-havent-been-displayed-to-the-user • http://stackoverflow.com/questions/28339422/ssjs-onclick- action-will-not-fire-on-xpage/28340759#28340759 • http://stackoverflow.com/questions/33024777/xpages-how-to- do-partial-refresh-correctly • http://www.intec.co.uk/view-isrenderingphase-and-buttons/ • http://www.intec.co.uk/fully-understanding-rendered-property- and-components-with-events/
  • 29. 10. Understanding Partial Refresh • Partial Refresh is SIX Phases
  • 30. 10. Understanding Partial Refresh • 1. RESTORE VIEW  Get component tree again • 2. APPLY REQUEST VALUES  Pass String values from browser to executed component tree • 3. PROCESS VALIDATIONS  Run validators AND converters for executed component tree
  • 31. 10. Understanding Partial Refresh • 4. UPDATE MODEL VALUES  Convert string values and update executed component tree • 5. INVOKE APPLICATION  Run application logic (SSJS / Java) • 6. RENDER RESPONSE  Update HTML for executed component tree and post refresh area
  • 32. 11. Conditionally Hidden Save Button • Set rendered property on button  For best practice, use view.isRenderingPhase()  Ensure set to true for other phases or code will not run • Add partial refresh where appropriate  Ensure refresh area correct or button will not show  Ensure disableValidators=“true” or button will not hide again if invalid
  • 33. 12. Reasons Code May Not Work! • CSJS returning false – check Firebug for POST event • Conversion error – 1,2,3,6 • Validation error – 1,2,3,6 • Exec id not including components being used by application logic • Exec id not including component triggering application logic • Event handler not rendered in phase 4 • Refresh area not including errors control
  • 34. 13. Troubleshooting • Use PhaseListener • java.util.logging.ConsoleHandler.level manages console logging of server validation errors, since 8.5.3  In workspace.configrcpinstall.properties • ALWAYS including errors control in refresh area • Be conscious of rendered property
  • 35. BONUS 1: Data View • dataCache=“id” setting available on View datasource • Better for performance, only caches id, not full ViewEntry (wrapped) • “var” not available during Apply Request Values  Compute value only in Render Response
  • 36. BONUS 2 - Dialog • To refresh area, getComponent(“dialog1”).hide(“myRefreshArea”)  POST • Run SSJS • view.postScript - XSP.closeDialog  GET • Refresh myRefreshArea
  • 38. 14. What Requires Restart Task HTTP? • Picked up immediately  Classic design elements  XPages*  Custom Controls*  Java classes* * Provided not in SCXD - http://www.intec.co.uk/single-copy-xpage-design- some-learning-and-why-its-not-for-me/
  • 39. 14. What Requires Restart Task HTTP? • Require “res task http”  JAR files • http://stackoverflow.com/questions/30939347/jar-file-changes-in- lotus-notes-database-not-being-picked-up-by-domino-server  SCXD  OSGi plugin* • http://stackoverflow.com/questions/33233724/while-in-development- in-xpages-libraries-changes-are-not-picked-up/33234041#33234041  Servlet / OSGi application* * Without JRebel https://www.youtube.com/watch?v=EHbVgA2oqD0
  • 42. 15. “Resp is null” • Understand page load and dynamically  “resp is null” – options for picker are not available  Picker is client-side, but values are passed to renderer server- side
  • 43. 16. SSJS in CSJS • SSJS in CSJS  Computed server-side as part of script renderer  Only re-computed by partial refresh • To access component values  Use dojo.byId or variants to access client-side element  Trigger partial refresh to update SSJS embedded into CSJS
  • 45. Some Questions • http://stackoverflow.com/questions/24735862/best-practice-for- storing-datetime-values-in-xpages • http://stackoverflow.com/questions/34417067/xpages- notserializableexception-on- datetime/34417335?noredirect=1#comment56612210_344173 35 • http://stackoverflow.com/questions/33168499/cannot-serialize- javascript-function/33168732#33168732
  • 46. 17. Domino Objects in Scopes • Domino objects can’t be stored in scopes.  DateTimes are the most common culprit  Use .toJavaDate() to store Java Date • Similar issues with SSJS functions stored in variables
  • 47. 18. Impact of Persistence Setting • For Domino objects in scopes, depending on persistence setting  Keep pages in memory – value just lost  Keep pages on disk – error thrown to server, redirect to error page (fails to display)  Keep current page in memory – value just lost, error 500 on navigating
  • 48. Summary • Understand ignoreRequestParams • Avoid simple actions • Keep Pages in Memory – understand impacts • Use viewState=“nostate” • Understand detailsOnClient=“true” • Understand repeatControls=“true”
  • 49. Summary • Understand scope and custom controls • Understand partial refresh is more than just “partial refresh” • Understand SSJS is computed and injected into CSJS • Use Firebug or comparable tool • Don’t store Domino objects in scopes • Understand impact of serialization
  • 50. Thank You! Paul Withers Intec Systems Ltd IBM Champion OpenNTF Board Member @paulswithers pwithers@intec.co.uk http://www.intec.co.uk/blog