Brug LotusScript på dine XPages

Hvorfor bruge LotusScript på XPages når SSJS eller Java preformer langt bedre?

  • LotusScript kan debugges – det kan SSJS ikke.
  • Genbrug af eksisterende LotusScript biblioteker og forretningslogik
Du kan bruge LotusScript på flere måder:
  1.  Lav en LotusScript agent og kør den på dit XPage dokument – f.eks. ved save eller load. Se hvordan i dette indlæg: XPages and Calling Agents Using an In-Memory Document
  2. Lav et AJAX kald til en LotusScript agent (mere info om retur værdier her)
Eksempel: QuerySave agent
  1. Lav en ny LotusScript agent.
  2. I agent properties: Sæt target = “none” og check i ‘Run as Web User
  3. Check rettigheder på server dokumentet: Signer skal være inkluderet i ‘Sign agents or XPages to run on behalf of the invoker’
  4. Brug session.documentContext for at få fat i ‘In Memory XPage dokumentet’
    Set doc = session.documentContext
Sådan kaldes agenten; nedenstående kode er indsat i event ‘querySaveDocument’ på en XPage eller Custom Control:
var agentName:String = "save";
var agent:NotesAgent = database.getAgent(agentName);
if (agent != null) {
	agent.runWithDocumentContext(currentDocument.getDocument(true));
}

Bemærk at getDocument(true) kaldes med en parameter – det er for at sikre at dokumentet er opdateret med brugerens ændringer.

Eksempel: Kald LotusScript med AJAX

En anden mulighed er at køre din LotusScript agent med et AJAX kald. Her et eksempel hvor agenten køres ved klik på en knap og resultatet skrives i subject feltet på formen:

  • Indsæt et ’subject’ felt på din XPage
  • Indsæt en knap og skriv følgende kode i knappen OnClick event (Client Side Java Script):
    dojo.xhrGet({
    	url: "ajax?openagent",
    	preventCache: true,
    	handleAs: "text",
    	load: function(data) {
    		var targetNode = dojo.byId("#{id:subject}");
    		targetNode.value = data;
    	},
    	error: function(data) {
    		alert("There has been an error: " + data);
    	}
    });

Ovenstående kode kalder en agent med navnet ‘ajax’ Agenten returnere data via almindelige Print statements. Retur værdien overføres tilsidst til subject feltet. Se også dojo.xhrGet.

Links:

2 tanker om "Brug LotusScript på dine XPages"

  1. Pingback: Server Side Java Script – lidt for meget op ad bakke… | XPages.dk

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

*