Table des matières

Search

  1. Préface
  2. Introduction
  3. Concepts IDD
  4. Processus d'implémentation
  5. Gestionnaire de configuration IDD
  6. Configuration manuelle d'IDD
  7. Propriétés globales d'IDD
  8. Exigences de plateforme et de dimensionnement
  9. Composants de l'application
  10. Configuration de la sécurité IDD
  11. Sécurité des données
  12. Exemple de configuration de la sécurité basée sur les rôles
  13. Masquage des données
  14. Moteur de flux de travail Siperian BPM
  15. Codes de paramètres régionaux
  16. Dépannage
  17. Glossaire

Guide d’implémentation de Data Director

Guide d’implémentation de Data Director

Action personnalisée avec rappel

Action personnalisée avec rappel

Une action personnalisée peut également inclure un rappel.
Ceci est utile lorsque le processus externe appelé par l'action personnalisée peut modifier des données dans la zone de sujet. Après cette modification, l'action personnalisée peut appeler le rappel pour indiquer à l'application IDD d'actualiser la zone de sujet.
IDD définit une fonction JavaScript nommée refreshObject pour actualiser la zone de sujet. Cette fonction nécessite un paramètre : l'identifiant IDD interne de l'enregistrement modifié. Pour rendre cet identifiant disponible pour les applications externes, la requête HTTP de l'action personnalisée doit le transmettre comme paramètre (dans ce cas, l'application externe peut obtenir cet identifiant d'une requête et le transmettre de nouveau à l'application IDD). Pour ajouter un identifiant d'enregistrement interne à l'URL d'une action, un paramètre d'URL dynamique avec bddParamName='SiperianRowID' doit être ajouté à la définition de l'URL (voir l'exemple d'une définition d'action de rappel plus loin dans cette section).
Lors de l'appel d'une action personnalisée de rappel, IDD ouvre une fenêtre modale contenant l'élément <iframe>, qui affiche la page HTML reçue suite à la requête HTTP de l'action. Cette page HTML permet d'appeler la fonction refreshObject à l'aide du code JavaScript suivant :
var modifiedRecordID = // get modified record ID from HTTP request var opener = window.parent.dialogArguments; opener.refreshObject(modifiedRecordID);
La fenêtre modale où apparaît le résultat de la requête de l'action est accessible depuis JavaScript comme window.parent. Par exemple, une page HTML générée en réponse à une action peut contenir la fonction JavaScript suivante, qui ferme la fenêtre modale de l'action et actualise les vues IDD :
function closeWindowAndRefreshBDD() { var modifiedRecordID = // get modified record ID from HTTP request var opener = window.parent.dialogArguments; opener.refreshObject(modifiedRecordID); window.parent.close(); }
En raison des restrictions de sécurité du navigateur, la page HTML peut appeler la fonction JavaScript définie dans l'application IDD uniquement si cette page est située dans le même domaine que l'application IDD (cette page est servie par le même serveur d'applications que celui où est déployée l'application IDD).
Voici un exemple de l'action de rappel définie pour SubjectArea :
<subjectArea name="Organization" displayName="Organization"> <primaryObject hmEntityTypeUid="Organization"> <subTypeQualifier columnUid="C_PARTY|PARTY_TYPE" filterValue="Organization"/> <layout columnsNum="3"> <column columnUid="C_PARTY|ORGANIZATION_NAME" editStyle="FIELD" required="true"/> … </layout> </primaryObject> <externalLinkAction callback="true" name="organization _callback_action" displayName="Org Callback"> <externalLink name="org_name_google_search_action_link" type="IFRAME" url="http://external/application/url"> <param name="InternalID" bddParamName="SiperianRowID"/> <param name="organization_id" bddParamName="C_PARTY|ROWID_OBJECT"/> </externalLink> </externalLinkChild> … </subjectArea>
Si un utilisateur d'application IDD ouvre une Organisation avec ROWID_OBJECT=1222 puis appelle cette action personnalisée, IDD ouvre une fenêtre modale affichant la page requise depuis l'URL suivante :
http://external/application/url?InternalID=BASE_OBJECT.C_PARTY|1222&organization_id=1222
Cette page peut ensuite appeler la fonction JavaScript refreshObject de l'application IDD avec le paramètre 'BASE_OBJECT.C_PARTY|1222' (il s'agit de l'identifiant interne de l'enregistrement Organisation ouvert), par lequel l'application IDD actualise toutes les vues ouvertes pour cet enregistrement.