Pré-renseignement des scripts à l'aide des données capturées

Il est possible de pré-renseigner les valeurs que pourra voir l'utilisateur afin celui-ci ait juste besoin de confirmer ou de modifier les réponses.

Par exemple, nous pouvez pré-renseigner le nom et la date de naissance d'un utilisateur dans une page Détails personnels sous réserve que l'utilisateur s'est déjà connecté et qu'une autre base de données contient les détails personnels.

Le magasin DS peut être pré-renseigné avant le démarrage d'une exécution de script comme suit :

Figure 1. Fragment de code pour pré-renseigner le magasin DS
...
Datastore ds = null;

try {
  // ouverture du magasin de données et création de l'entité racine
  ds = DatastoreFactory.newInstance().openDatastore(schemaName);
} catch (NoSuchSchemaException e) {
  throw new AppException(IEG.ID_SCHEMA_NOT_FOUND);
}

final EntityType appType = ds.getEntityType("Application");
final Entity rootElement = ds.newEntity(appType);

ds.addRootEntity(rootElement);
    
final EntityType personType = ds.getEntityType("Person");
final Entity person = ds.newEntity(personType);
    
person.setAttribute("firstName", "TestFirstName");
person.setAttribute("lastName", "TestLastName");
person.setAttribute("dateOfBirth", "19700101");
//...
    
rootElement.addChildEntity(person);

L'entité racine peut ensuite être utilisée pour créer une nouvelle exécution de script comme suit :

Figure 2. Création d'une exécution de script
...

// création de l'exécution de script
final IEGRootEntityID rootEntityID = new IEGRootEntityID();
rootEntityID = rootElement.getUniqueID();
final IEGRuntime runtimeAPI = new IEGRuntime();
final IEGScriptExecutionIdentifier executionIdentifier =
  runtimeAPI.createScriptExecutionExistingRootEntity(
    iegScriptID, schemaName, rootEntityID);

Le lecteur IEG peut ensuite être exécuté à l'aide de la nouvelle exécution de script comme suit :

Figure 3. Demarrage du lecteur IEG
<?xml version="1.0" encoding="UTF-8"?>
<PAGE PAGE_ID="IEGScriptLauncher">
  <JSP_SCRIPTLET>
    <![CDATA[
curam.omega3.request.RequestHandler rh =
  curam.omega3.request.RequestHandlerFactory.getRequestHandler(
    request);

String context = request.getContextPath() + "/";
     
String url =
  context + "ieg/Screening.do?" + "executionID=" + executionID
    + "&" + rh.getSystemParameters();

// Redirection vers la page correcte.
response.sendRedirect(response.encodeRedirectURL(url));
    ]]>
  </JSP_SCRIPTLET>
</PAGE>

Notez qu'il est uniquement possible de pré-renseigner le magasin de données DS, et non les questions de contrôle ou d'autres informations de script car elles sont stockées dans l'exécution de script et non dans le magasin de données DS. Cela signifie qu'il n'est pas possible de pré-renseigner les données affichées dans la première section du script et de démarrer à la deuxième section. La première section s'affiche et l'utilisateur peut confirmer les données pré-renseignées.