Server Side Java Script – lidt for meget op ad bakke…

Find the bug

Server Side Java Script: Næsten umuligt at debugge 🙁

Se dette eksempel – en simpel @DbColumn i et computet text felt

@DbColumn( @DbName, "(view)", 1)
Her er der en kritisk fejl:
  • Der mangler paranteser efter @DbName()

Men der kommer ingen fejlbeskeder – @DbColumn funktionen returnerer blot ‘undefined’. Samme fejl som hvis jeg havde angivet et ikke eksisterende view – eller lavet en DbLookup med en illegal key. I Log.nsf kommer denne fejl som ikke hjælper meget:

21-11-2011 15:00:25   HTTP JVM: com.ibm.xsp.webapp.FacesServlet$ExtendedServletException: com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
21-11-2011 15:00:25   HTTP JVM: CLFAD0134E: Exception processing XPage request. For more detailed information, please consult error-log-0.xml located in d:/Lotus/Domino/Data/domino/workspace/logs

Der står ikke hvor eller hvad fejlen er – men blot en henvisning til en lokal log fil på serveren som jeg ikke har adgang til.

Konklusion:
  • Med SSJS arbejder du ‘i blinde’ – ofte får du inge hjælp til hvad der er galt
  • I bedste fald kan du fejlsøge med print() statements – men i det viste eksemple vil det ikke hjælpe meget.
  • Personligt vil jeg derfor holde SSJS til et minimun – dvs. kun til simple onliners. Alt andet vil jeg fremover lave i Lotus Script (eller evt. i Java)

Skriv et svar

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

*