Unexpected runtime error

The runtime has encountered an unexpected error.

Error source

Page Name:/print.xsp

Exception

com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
Error while executing JavaScript computed expression
Script interpreter error, line=3, col=42: [ReferenceError] 'sessionAsSigner' not found
   at [/server.jss].getExamCode(MICROSOFT 070-535)
   at [/server.jss].initExams()

JavaScript code

   1: function getExamCode(code){
   2: 	var docExamCode,
   3: 		dbExam = sessionAsSigner.getDatabase('', 'ACADEMY/examens.nsf'),
   4: 		vwExam = dbExam.getView('LookupExamencodes');
   5: 	
   6: 	
   7: 	docExamCode = vwExam.getDocumentByKey(code, true);
   8: 	if(!docExamCode) {
   9: 		if(@Left(code,1)==='0'){
  10: 			code = 'MICROSOFT ' + code;
  11: 		} else {
  12: 			code = 'MICROSOFT 0' + code;
  13: 		}
  14: 		docExamCode = vwExam.getDocumentByKey(code, true);
  15: 	}
  16: 		
  17: 	vwExam.recycle();
  18: 	return docExamCode;
  19: } 
  20: 
  21: function initExams(){
  22: 	var exams = course.getItemValue('examenCode'),
  23: 		result = {
  24: 				items : 0,
  25: 				amount : 0.00
  26: 			};
  27: 		
  28: 	for(var i=0,m=exams.length; i<m; i++){
  29: 		if(exams[i] !== ''){
  30: 			var code = exams[i];
  31: 			var examCode:NotesDocument = getExamCode(code);
  32: 			
  33: 			if (!!examCode) {
  34: 				result.amount += examCode.getItemValue('PrijsExamen')[0];
  35: 				result.items = result.items + 1;
  36: 				examCode.recycle();
  37: 			}
  38: 		}
  39: 	}
  40: 	
  41: 	return result;
  42: }
  43: 
  44: function getLogoUrl(){
  45: 	return 'https://www.the-academy.nl/Images/@The%20Academy%20Logo.png/$file/@The%20Academy%20Logo.png';
  46: }
  47: 
  48: function getCurriculumUnid(){
  49: 	var code = course.getItemValue('CursusCode'),
  50: 		cursusvw = database.getView("LookupCurriculumOpCursuscode"),
  51: 		vw = database.getView("#LU-MasterCurriculumCode"),
  52: 		doc, result;
  53: 	
  54: 	try{
  55: 		doc = cursusvw.getDocumentByKey(code, true);
  56: 	}catch(e){
  57: 		// no doc found for code, fail silently for now
  58: 	}
  59: 		
  60: 	if(!!doc){
  61: 		// via cursus halen we de master op, hier staan alle omschrijving velden van de betreffende training
  62: 		var curriculumCode = doc.getItemValueString("CurriculumCode");
  63: 		doc.recycle();
  64: 		doc = vw.getDocumentByKey(curriculumCode, true);
  65: 		if(!!doc){
  66: 			result = doc.getUniversalID();
  67: 			doc.recycle();
  68: 		}
  69: 	}
  70: 	
  71: 	vw.recycle();
  72: 	cursusvw.recycle();
  73: 	return result;
  74: }
  75: 
  76: function getLeervormDescription(){
  77: 	var leervorm, dagen= 0,
  78: 		result= "",
  79: 		code = course.getItemValueString('CursusCode'), 		
  80: 		cursusvw = database.getView("LookupCurriculumOpCursuscode");
  81: 		cursus = cursusvw.getDocumentByKey(code, true);
  82: 	
  83: 	if(cursus === null){
  84: 		// no course found, something is wrong
  85: 		return result;
  86: 	}
  87: 	
  88: 	leervorm = cursus.getItemValueString('Leervorm');	
  89: 	try {
  90: 		dagen = cursus.getItemValue('Lengte')[0];
  91: 	} catch(e) {
  92: 		print("getLeervormDescription: no field Lengte in " + cursus.getNoteID());
  93: 	}
  94: 	cursus.recycle();
  95: 	cursusvw.recycle();
  96: 	
  97: 	
  98: 	switch(leervorm) {
  99: 		case "K": 
 100: 			if(@Left(code,3) === 'MTS'){
 101: 				result = 'Deze normaal 5 daagse trainingen wordt uitgevoerd in 4 verlengde klassikale trainingsdagen verspreid over 2 weken.';
 102: 			} else {
 103: 				result = 'Deze training wordt verzorgd als een klassikale training in %1 dagen';
 104: 			}
 105: 			break;
 106: 			
 107: 		case "B":
 108: 			result = 'Deze training wordt verzorgd als een blended training bestaande uit %1 klassikale lesdagen gecombineerd met zelfstudie. De deelnemer ontvangt een studiewijzer waarin duidelijk aangegeven staat welke onderwerpen klassikaal worden behandeld en welke onderwerpen zelf bestudeerd dienen te worden in de tussenliggende dagen. De trainingsdagen zijn verspreid over een periode van 4 weken.';
 109: 			break;
 110: 	
 111: 		case "O":
 112: 			result = 'Deze training wordt verzorgd in ons Open leercentrum op basis van Individueel begeleid training. In een goed uitgeruste omgeving kunt u in uw eigen tempo aan de slag en een senior docent is beschikbaar om u bij vragen verder te helpen en daar waar nodig individueel uitleg te geven over de onderwerpen die u als moeilijk ervaart.';
 113: 			if (dagen >= 4) {
 114: 				result += 'De %1 trainingsdagen zijn verspreid over 2 weken.';
 115: 			}
 116: 			break;
 117: 			
 118: 		case "E":
 119: 			result = 'Deze training betreft een E-learning product. Na ontvangst van de betaling ontvangt u de benodigde gegevens om toegang te krijgen tot de E-learning omgeving en met uw studie te kunnen starten.';
 120: 			break;
 121: 	}
 122: 	
 123: 	result = result.replace("%1", dagen.toString());
 124: 	return result;
 125: }

Stack Trace