SlideShare a Scribd company logo
1 of 15
Notes til XPage
Hvordan en standard Notes database kan
forvandles til en XPage på 60 minutter …

                                Jakob Majkilde
• Standard Notes database
  •   Få forms
  •   Felter: Names, Dates, RichText etc. samt validering
  •   Mange views
  •   Lotus Script
  •   Full text søgning




Indledning
• OneUI
  • Giver hurtigt et pænt layout
  • Mulighed for genbrug af OpenNTF komponenter
• Extension Library
  • Fordi det er nemmere end at gøre det selv
• Upgrade pack 1
  • Supporteret af IBM
  • Nemmere at installere (end OpenNTF versionen)




Beslutninger
• Køb bogen: XPages Extension Library: A Step-by-Step
  Guide to the Next Generation of XPages Components
• Xpage Debug Toolbar fra OpenNTF installeres
  • Flyt til bunden med css: div.debugToolbar {position:relative
    !important;}
• Fra OpenNTF versionen af Extensions Library hentes
  demo basen: XPagesExt.nsf
• Chrome eller Firebug er et must
• OpenNTF XSnippets




Kom godt i gang
• Lav et theme og aktivér på Application Properties
  • <theme extends="oneuiv2.1_blue”
• Lav en ‘Layout’ Custom Control og indsæt en
  ‘Application Layout’
  • Enable Drop Target på Middle Column Content Area
• Text på Title Bar beregnes: @DbTitle()
• Brug CSS – lad være med at ‘hardcode’ logo m.v.




Layout
• Indsæt en Navigator
  • Alle links åbner samme XPage
  • queryString parameter angiver hvilket view der skal vises
  • Selection er ‘navnet’ på menu punktet – hvis dette matcher
    Navigation Path, så bliver menupunktet vist som ‘selected’
• På Application Layout
  • Navigation Path = content.getUrlParameter( ”view” )




Navigering
Navigering
• Ét Dynamic View kan vise alle views i basen,
  • CustomizerBean retter ‘fejl’ i dynamic view control:
     • Åben docs i read mode i stedet for edit mode
  • View name beregnes dynamisk
  • Collapse all: expandLevel=1
  • Pager




Dynamic View
• Dynamic View: Open document using XPage associated
  with documents forms
  • Der skal laves én XPage per form
  • Launch properties på eksisterende forms skal ændres
• Alternativ: Open document using ‘form.xsp’
  • På ‘form.xsp’ indsættes en ‘Computet Subform’




Dynamic Form
• Basen skal være Full Text Indexeret
• Aktiver ‘Search’ på Application Layout
  • Page name: siden med vores Dynamic View
  • Query parameter name for url:
     • view=viewname&query (viewname kan være et ‘all documents
       view’ eller evt. beregnes til current view)
• På Dynamic View Data sættes et search filter
  • <xp:this.search><![CDATA[#{javascript:context.getUrlPara
    meter("query")}]]></xp:this.search>




Søgning
• Lotus Script kan fint genbruges i en Xpage
  • Script kode lægges i agenter
  • Kaldes ved Open/Save
  • Eller via Ajax kald
• Kun backend Lotus Script. UI funktioner skal kodes om i
  Java Script (Dojo), f.eks. prompt eller dialogbokse
• Bedre performance fås dog med Server Side JavaScript
  eller Managed Beans (Java)
• http://xpages.dk/?p=231




Lotus Script
• Kald en Lotus Script agent fra QuerySaveDocument eller
  PostOpenDocument event
       var agentName:String = ”My Agent Name";
       var agent:NotesAgent = database.getAgent(agentName);
       if (agent != null) {
            agent.runWithDocumentContext(currentDocument.getDocument(true));
       }

• Fra Lotus Script agenten:
  • Set doc = session.DocumentContext




Lotus Script Agenter
• Ajax kald med Dojo, f.eks. fra en knap
      dojo.xhrGet({
                url: ”My Agent Name?openagent",
                preventCache: true,
                handleAs: "text",
                load: function(data) {
                            var targetNode = dojo.byId("#{id:My Return Id}");
                            targetNode.value = data;
                },
                error: function(data) {
                            alert("There has been an error: " + data);
                }
      });
• http://dojotoolkit.org/reference-guide/1.6/dojo/xhrGet.html




Lotus Script via AJAX
• Default opsætning giver Full Admin Access til
  alle Notes developers via SS JavaScript:
  sessionAsSignerWithFullAccess.getDatabase

• Derfor bør XPage access begrænses via Server
  Dokumentet – og alt kode signes inden
  produktion.
• Du får altid svar på Notesnet.dk
• Præsentation, links, download af sample applikation på
  XPages.dk
• Du er altid velkommen til at kontakte mig – se hvordan
  på Majkilde.dk, hvor du også finder Lotus Script tips.




Spørgsmål?

More Related Content

Similar to Notes til XPage på 1 time

Tag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobsTag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobsChristian Dalager
 
Toolmaster.dk - Joomla templates basis kursus
Toolmaster.dk - Joomla templates basis kursusToolmaster.dk - Joomla templates basis kursus
Toolmaster.dk - Joomla templates basis kursusToolmaster.dk
 
Onboarding - Konkrete opgaver til nyansatte
Onboarding - Konkrete opgaver til nyansatteOnboarding - Konkrete opgaver til nyansatte
Onboarding - Konkrete opgaver til nyansatteJes Mandrup
 
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)Per Henrik Lausten
 
TypeScript kata: The TDD Style
TypeScript kata: The TDD StyleTypeScript kata: The TDD Style
TypeScript kata: The TDD StyleRonnie Hegelund
 
Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2vejlebibea
 
Teknisk SEO Med TechSEO360 - Dansk Præsentation
Teknisk SEO Med TechSEO360 - Dansk PræsentationTeknisk SEO Med TechSEO360 - Dansk Præsentation
Teknisk SEO Med TechSEO360 - Dansk PræsentationMicrosystools
 
God performance = God priotering
God performance = God prioteringGod performance = God priotering
God performance = God prioteringDigicure ApS
 
MapInfo Pro og SQL Server - Uden opgaver
MapInfo Pro og SQL Server - Uden opgaverMapInfo Pro og SQL Server - Uden opgaver
MapInfo Pro og SQL Server - Uden opgaverPeter Horsbøll Møller
 
Sådan arbejder du dit digitale design sikkert i mål
Sådan arbejder du dit digitale design sikkert i målSådan arbejder du dit digitale design sikkert i mål
Sådan arbejder du dit digitale design sikkert i målPeytz & Co
 
Inspirationsdag 24. april: Så nemt opgraderer du til XPages
Inspirationsdag 24. april: Så nemt opgraderer du til XPagesInspirationsdag 24. april: Så nemt opgraderer du til XPages
Inspirationsdag 24. april: Så nemt opgraderer du til XPagesNotesnet_dk
 
Proces for udvikle et nyt website
Proces for udvikle et nyt websiteProces for udvikle et nyt website
Proces for udvikle et nyt websitePeytz & Co
 
LAMP for webudviklere | Linux | Appacademy.dk
LAMP for webudviklere | Linux | Appacademy.dkLAMP for webudviklere | Linux | Appacademy.dk
LAMP for webudviklere | Linux | Appacademy.dkKristian Langborg-Hansen
 
Fastlane introduktion (Let's talk Apple)
Fastlane introduktion (Let's talk Apple)Fastlane introduktion (Let's talk Apple)
Fastlane introduktion (Let's talk Apple)Martin Jensen
 
ITU - Social software: 10 Tekniskeelementer
ITU - Social software: 10 TekniskeelementerITU - Social software: 10 Tekniskeelementer
ITU - Social software: 10 TekniskeelementerMorten Gade
 

Similar to Notes til XPage på 1 time (20)

Tag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobsTag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobs
 
Toolmaster.dk - Joomla templates basis kursus
Toolmaster.dk - Joomla templates basis kursusToolmaster.dk - Joomla templates basis kursus
Toolmaster.dk - Joomla templates basis kursus
 
Lamp - Apache | appacademy.dk
Lamp - Apache | appacademy.dkLamp - Apache | appacademy.dk
Lamp - Apache | appacademy.dk
 
Onboarding - Konkrete opgaver til nyansatte
Onboarding - Konkrete opgaver til nyansatteOnboarding - Konkrete opgaver til nyansatte
Onboarding - Konkrete opgaver til nyansatte
 
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
 
TypeScript kata: The TDD Style
TypeScript kata: The TDD StyleTypeScript kata: The TDD Style
TypeScript kata: The TDD Style
 
Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
 
Mvc 1+2 Tech Talk 201003
Mvc 1+2 Tech Talk 201003Mvc 1+2 Tech Talk 201003
Mvc 1+2 Tech Talk 201003
 
Teknisk SEO Med TechSEO360 - Dansk Præsentation
Teknisk SEO Med TechSEO360 - Dansk PræsentationTeknisk SEO Med TechSEO360 - Dansk Præsentation
Teknisk SEO Med TechSEO360 - Dansk Præsentation
 
Angular2 workshop
Angular2 workshopAngular2 workshop
Angular2 workshop
 
God performance = God priotering
God performance = God prioteringGod performance = God priotering
God performance = God priotering
 
MapInfo Pro og SQL Server - Uden opgaver
MapInfo Pro og SQL Server - Uden opgaverMapInfo Pro og SQL Server - Uden opgaver
MapInfo Pro og SQL Server - Uden opgaver
 
Automatiseret GUI-test af Lars Kjølholm, BRF Kredit
Automatiseret GUI-test af Lars Kjølholm, BRF KreditAutomatiseret GUI-test af Lars Kjølholm, BRF Kredit
Automatiseret GUI-test af Lars Kjølholm, BRF Kredit
 
Sådan arbejder du dit digitale design sikkert i mål
Sådan arbejder du dit digitale design sikkert i målSådan arbejder du dit digitale design sikkert i mål
Sådan arbejder du dit digitale design sikkert i mål
 
Wordpress Multisite
Wordpress MultisiteWordpress Multisite
Wordpress Multisite
 
Inspirationsdag 24. april: Så nemt opgraderer du til XPages
Inspirationsdag 24. april: Så nemt opgraderer du til XPagesInspirationsdag 24. april: Så nemt opgraderer du til XPages
Inspirationsdag 24. april: Så nemt opgraderer du til XPages
 
Proces for udvikle et nyt website
Proces for udvikle et nyt websiteProces for udvikle et nyt website
Proces for udvikle et nyt website
 
LAMP for webudviklere | Linux | Appacademy.dk
LAMP for webudviklere | Linux | Appacademy.dkLAMP for webudviklere | Linux | Appacademy.dk
LAMP for webudviklere | Linux | Appacademy.dk
 
Fastlane introduktion (Let's talk Apple)
Fastlane introduktion (Let's talk Apple)Fastlane introduktion (Let's talk Apple)
Fastlane introduktion (Let's talk Apple)
 
ITU - Social software: 10 Tekniskeelementer
ITU - Social software: 10 TekniskeelementerITU - Social software: 10 Tekniskeelementer
ITU - Social software: 10 Tekniskeelementer
 

Notes til XPage på 1 time

  • 1. Notes til XPage Hvordan en standard Notes database kan forvandles til en XPage på 60 minutter … Jakob Majkilde
  • 2. • Standard Notes database • Få forms • Felter: Names, Dates, RichText etc. samt validering • Mange views • Lotus Script • Full text søgning Indledning
  • 3. • OneUI • Giver hurtigt et pænt layout • Mulighed for genbrug af OpenNTF komponenter • Extension Library • Fordi det er nemmere end at gøre det selv • Upgrade pack 1 • Supporteret af IBM • Nemmere at installere (end OpenNTF versionen) Beslutninger
  • 4. • Køb bogen: XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components • Xpage Debug Toolbar fra OpenNTF installeres • Flyt til bunden med css: div.debugToolbar {position:relative !important;} • Fra OpenNTF versionen af Extensions Library hentes demo basen: XPagesExt.nsf • Chrome eller Firebug er et must • OpenNTF XSnippets Kom godt i gang
  • 5. • Lav et theme og aktivér på Application Properties • <theme extends="oneuiv2.1_blue” • Lav en ‘Layout’ Custom Control og indsæt en ‘Application Layout’ • Enable Drop Target på Middle Column Content Area • Text på Title Bar beregnes: @DbTitle() • Brug CSS – lad være med at ‘hardcode’ logo m.v. Layout
  • 6. • Indsæt en Navigator • Alle links åbner samme XPage • queryString parameter angiver hvilket view der skal vises • Selection er ‘navnet’ på menu punktet – hvis dette matcher Navigation Path, så bliver menupunktet vist som ‘selected’ • På Application Layout • Navigation Path = content.getUrlParameter( ”view” ) Navigering
  • 8. • Ét Dynamic View kan vise alle views i basen, • CustomizerBean retter ‘fejl’ i dynamic view control: • Åben docs i read mode i stedet for edit mode • View name beregnes dynamisk • Collapse all: expandLevel=1 • Pager Dynamic View
  • 9. • Dynamic View: Open document using XPage associated with documents forms • Der skal laves én XPage per form • Launch properties på eksisterende forms skal ændres • Alternativ: Open document using ‘form.xsp’ • På ‘form.xsp’ indsættes en ‘Computet Subform’ Dynamic Form
  • 10. • Basen skal være Full Text Indexeret • Aktiver ‘Search’ på Application Layout • Page name: siden med vores Dynamic View • Query parameter name for url: • view=viewname&query (viewname kan være et ‘all documents view’ eller evt. beregnes til current view) • På Dynamic View Data sættes et search filter • <xp:this.search><![CDATA[#{javascript:context.getUrlPara meter("query")}]]></xp:this.search> Søgning
  • 11. • Lotus Script kan fint genbruges i en Xpage • Script kode lægges i agenter • Kaldes ved Open/Save • Eller via Ajax kald • Kun backend Lotus Script. UI funktioner skal kodes om i Java Script (Dojo), f.eks. prompt eller dialogbokse • Bedre performance fås dog med Server Side JavaScript eller Managed Beans (Java) • http://xpages.dk/?p=231 Lotus Script
  • 12. • Kald en Lotus Script agent fra QuerySaveDocument eller PostOpenDocument event var agentName:String = ”My Agent Name"; var agent:NotesAgent = database.getAgent(agentName); if (agent != null) { agent.runWithDocumentContext(currentDocument.getDocument(true)); } • Fra Lotus Script agenten: • Set doc = session.DocumentContext Lotus Script Agenter
  • 13. • Ajax kald med Dojo, f.eks. fra en knap dojo.xhrGet({ url: ”My Agent Name?openagent", preventCache: true, handleAs: "text", load: function(data) { var targetNode = dojo.byId("#{id:My Return Id}"); targetNode.value = data; }, error: function(data) { alert("There has been an error: " + data); } }); • http://dojotoolkit.org/reference-guide/1.6/dojo/xhrGet.html Lotus Script via AJAX
  • 14. • Default opsætning giver Full Admin Access til alle Notes developers via SS JavaScript: sessionAsSignerWithFullAccess.getDatabase • Derfor bør XPage access begrænses via Server Dokumentet – og alt kode signes inden produktion.
  • 15. • Du får altid svar på Notesnet.dk • Præsentation, links, download af sample applikation på XPages.dk • Du er altid velkommen til at kontakte mig – se hvordan på Majkilde.dk, hvor du også finder Lotus Script tips. Spørgsmål?