Accès à un Objet depuis une URL deeplink

4.0
Accès à un Objet depuis une URL deeplink
0.0 0
Tags: #<Tag:0x00007f68296412c8>

#1

Bonjour,
J’aimerais accéder à une enregistrement d’un objectDB grace à un lien qui se trouverai dans un email.
(ex: Alert de type mail qui est envoyé à une date particulière et je propose d’aller directement cliquer sur le lien pour accéder à toutes le informations de l’objet)
J’ai essayé avec :

String url = this.getGrant().getContextURL();

et j’ajoute à ça le resultat de HTMLTool.getFormURL([…])
ensuite je l’ai mis dans une balise < “a href = url target=’_blank’”>Text<"/a"> (en bien écrit)
j’ai bien le lien dans le mail, mais ensuite j’ai une page qui se charge à l’infini.
Voici le type de l’url :
https://app.domain.io/ui/obj/form/MonObjet?inst=MonObjet&row_id=7&action=update

Merci d’avance pour votre aide,
Je reste connectée pour toutes précisions


#2

getContextURL n’est pas nécessairement une publique / visible de l’extérieur, c’est juste le contexte de votre webapp vu de tomcat, et pas forcement le nom DNS souhaité…

en V4 :

  • il y a un paramètre système DIRECT_URL à configurer avec le host publique = https://crm.partenor.simplicite.io
  • et ensuite mettez simplement [DIRECTURL] dans le corps de l’email à envoyer, il sera substitué par l’objet qui poste l’alerte = <a href="[DIRECTURL]">..."

en V3 :

  • le paramètre n’existe pas vous devez le gérer vous même dans un paramètre applicatif
  • et le concatener dans le corps du mail :

soit en dur
https://app.domain.com[DIRECTURL]

soit via un paramètre de votre application :
[EXPR:obj.getGrant().getParameter(“MY_DIRECTURL_HOST”)][DIRECTURL]


#3

Je n’ai pas le paramètre système DIRECT_URL dans ma vm.

Dans mon mail, j’ai fait une balise [URL] que je remplace ensuite par la balise html <"a href…> …

Si je met juste https://crm.partenor.simplicite.io/ui tout ce passe bien, j’accède à ma vm.

Si j’essaye d’accéder au formulaire d’un enregistrement avec
https://app.domain.io/ui/obj/form/MonObjet?row-id=18

ou (grace a HTMLTool.getFormURL( … )
https://app.domain.io/ui/obj/form/MonObjet?inst=the_ajax_MonObjet&row_id=8&action=update

La page charge en boucle

(c’est la même chose si je clique sur les liens depuis le forum)


#4

Si vous n’utilisez pas les mécanisme standard, vous devez ré-implementer la logique de remplacement.
Il faut utiliser un deeplink depuis la page UI qui chargera le site puis la page demandée.

  • Créez le paramètre DIRECT_URL avec le host désiré (ce paramètre n’est pas livré avec une valeur puisque inconnu)
  • puis dans le code qq chose comme :
String link = HTMLTool.getFormURL(this, "nav=new&action=update");
String url = getGrant().getParameter("DIRECT_URL") + HTMLTool.getMainURL("mobile=true&deeplink="+HTTPTool.encode(link));

#5

Ca fonctionne avec cette technique :
soit le DIRECT_URL contient :
https://app.domain.io/ui
soit on va le chercher avec this.getGrant().this.getContextURL()

et ensuite faire comme vous avez dit c’est à dire:
le link avec le getFormURL, puis obtenir l’url

Merci beaucoup