L'exécution d'un lecteur IEG dans un onglet nécessite moins d'efforts que l'exécution dans une boîte de dialogue modale. Le lien 'opening' (ouverture) pointe vers ieg/Screening.do et transmet le paramètre executionID. Screening.do appelle le lecteur IEG. Les paramètres sont les suivants :
Voici un exemple d'UIM de résolution qui ouvre le lecteur IEG dans un onglet :
<?xml version="1.0" encoding="UTF-8"?>
<PAGE PAGE_ID="System_IEGResolver">
<JSP_SCRIPTLET>
<![CDATA[
String scriptID = request.getParameter("scriptID");
String scriptType = request.getParameter("scriptType");
String scriptVersion = request.getParameter(
"scriptVersion");
String schemaName = request.getParameter("schemaName");
String name = request.getParameter("name");
String executionIDParam =
request.getParameter("executionIDParam");
String url = null;
curam.omega3.request.RequestHandler
rh = curam.omega3.request.
RequestHandlerFactory.getRequestHandler(request);
String context = request.getContextPath() + "/";
if (executionIDParam == null) {
// Besoin de vérifier la présence d'erreurs de validation de script
// avant l'exécution du script.
String contextWithUserPreferences = context +
curam.omega3.user.UserPreferencesFactory
.getUserPreferences(
pageContext.getSession()).getLocale() + "/";
curam.interfaces.IEGScriptAdminPkg.
IEGScriptAdmin_checkForScriptErrors_TH
iegScriptAdminCheckForErrors
= new curam.interfaces.IEGScriptAdminPkg.
IEGScriptAdmin_checkForScriptErrors_TH();
iegScriptAdminCheckForErrors.setFieldValue(
iegScriptAdminCheckForErrors.key$scriptID_idx, scriptID);
iegScriptAdminCheckForErrors.setFieldValue(
iegScriptAdminCheckForErrors.key$scriptType_idx,
scriptType);
iegScriptAdminCheckForErrors.setFieldValue(
iegScriptAdminCheckForErrors.key$scriptVersion_idx,
scriptVersion);
iegScriptAdminCheckForErrors.setFieldValue(
iegScriptAdminCheckForErrors.key$schemaName_idx,
schemaName);
//Appel de la méthode.
iegScriptAdminCheckForErrors.callServer();
String errorsPresentInScript =
iegScriptAdminCheckForErrors.getFieldValue(
iegScriptAdminCheckForErrors
.result$errorsExist_idx);
boolean errorsPresent =
Boolean.valueOf(errorsPresentInScript).booleanValue();
if (errorsPresent) {
// En cas d'erreurs, redirection vers la page d'erreur
// de validation.
String redirectTo = contextWithUserPreferences
+ "System_listValidationErrorsForRunPage.do"
+ "?name=" + name
+ "&scriptID=" + scriptID
+ "&scriptType=" + scriptType
+ "&scriptVersion=" + scriptVersion
+ "&schemaName=" + schemaName;
url = redirectTo + "&" + rh.getSystemParameters();
} else {
// Appel de la méthode du script d'exécution et redirection vers le lecteur
// IEG.
curam.interfaces.IEGScriptAdminPkg.
IEGScriptAdmin_runScript_TH iegScriptAdminRunScript
= new curam.interfaces.IEGScriptAdminPkg.
IEGScriptAdmin_runScript_TH();
iegScriptAdminRunScript.setFieldValue(
iegScriptAdminRunScript.key$dtls$scriptID_idx,
scriptID);
iegScriptAdminRunScript.setFieldValue(
iegScriptAdminRunScript.key$dtls$scriptType_idx,
scriptType);
iegScriptAdminRunScript.setFieldValue(
iegScriptAdminRunScript.key$dtls$scriptVersion_idx,
scriptVersion);
iegScriptAdminRunScript.setFieldValue(
iegScriptAdminRunScript.key$schemaName_idx,
schemaName);
//Appel de la méthode.
iegScriptAdminRunScript.callServer();
String executionID = iegScriptAdminRunScript.
getFieldValue(
iegScriptAdminRunScript.result$executionID_idx);
url = context + "ieg/Screening.do?" + "executionID="
+ executionID + "&" + rh.getSystemParameters();
}
} else {
url = context + "ieg/Screening.do?" + "executionID="
+ executionIDParam + "&"
+ rh.getSystemParameters();
}
// Redirection vers la page correcte.
response.sendRedirect(response.encodeRedirectURL(url));
]]>
</JSP_SCRIPTLET>
</PAGE>