Récupération du row_id dans un hook front

Bonjour,

A l’affichage d’un formulaire, je crée une url pour appeler une GED. Le lien entre le formulaire et la GED contient le row_id.

Dans un 1er temps j’ai créé un attribut calculé qui récupère le row_id et je l’utilise dans le script.

Ensuite je me suis dit que je pouvais peut-être récupérer le row_id à chaque chargement d’un formulaire.
En cherchant dans les différents POST je croyais avoir trouvé une solution, mais ça ne marche pas, ma variable “row” reste indéfinie.
Voici le script :

(function(ui) {
    // Is it the responsive UI ?
    if (!ui) return;
    // Ajax services with current grant, menu, texts...
    var app = ui.getAjax();
 
    Simplicite.UI.hooks.ParticipationEvenement = function(o, cbk) {
    	try {
            // In the example hooks will be available on main instance only
            if (o.isMainInstance()) {
                console.log("ParticipationEvenement loading...");
                // object UI parameters = clone of the globals properties
                var p = o.locals.ui;
                // When object form is loaded in the container ctn
                
				o.locals.ui.form.onload = function(ctn, obj) {
					try {
						var app = $ui.getAjax(); // services, user rights, parameters...
						var row = $ui.getAjax().getBusinessObject("MyObject").getRowId();//récupère le row_id
					 
						//lien avec la GED : 3re lettres de la table suivi du row_id
						var table = "eve"; //table evenement
						var noDossier = table + row ; // lien complet à mettre dans l'url
						var token = obj.getFieldValue("ParticipationEvenementToken");
						
						console.log("token reçu : "+token);
						console.log("dossier reçu : " + noDossier);
						console.log("Table = " + table);
						console.log("row id : "+row);
						
						if (noDossier) {
							var url = app.sysparams.VDL_GED_PARTICIPATION_URL  + "?numero=" + noDossier +"&_token="+token;
							console.log("URL GED participation calculée... : "+url);
							
							var iframe = $('<iframe frameborder="0" name="dossier" scrolling="yes" style="width: 100%; height: 300px; border: solid 1px gray"/>');
							$('#divdossier').html(iframe.attr("src", url));
						}
					}
					catch(ex) { 
						/* iframe not supported ? */
						app.error("Le contenu ne peut pas être affiché "+e.message);
					}
				}
        	}
    	}
				
		catch(ex) { 
			/* iframe not supported ? */
			app.error("Error in Simplicite.UI.hooks.myObject: "+e.message);
		}		 
		finally {
            // Required callback when hooks are loaded
            cbk && cbk();
        }
    };
})(window.$ui);

Merci de m’éclairer sur mon erreur.

Fabrice

Bonjour,

L’objet ParticipationEvenement (qui ne s’appelle surement pas “MyObject”) est passé en paramètre du hook, il suffit de faire un obj.getRowId() sauf s’il s’agit d’un autre objet à récupérer.

o.locals.ui.form.onload = function(ctn, obj) {
	try {
		var row = obj.getRowId();
...					 

plus loin vous faites d’ailleurs une lecture d’un champ sur cet objet.

obj.getFieldValue("ParticipationEvenementToken")

merci. C’est tout bon.
Bonne journée.