Exécution du lecteur IEG dans un onglet

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 :

Figure 1. UIM de résolution pour ouvrir le lecteur IEG
<?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 + "&amp;" + 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>