We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Sauvegarde extradata

Guillaume MOTTET · on 11/29/16 at 10:35 AM

Bonjour, 

J'ai ajouté des extradata à la classe Member, voici comment ceci est déclaré dans mon plugin.prop : 

extra.Member.CepacPlugin.filtre1.label: defaultValue

Dans une jsp, je fais appel à une méthode afin d'ajouter mon extradata (label correspond à une string d'un champ texte d'un formulaire): 

Member m = channel.getCurrentLoggedMember();

m.setExtraData("extra.Member.CepacPlugin.filtre1.label", label); 

Apres cela, j'arrive bien a afficher mon extradata via la ligne suivante dans la jsp: 

m.getExtraData("extra.Member.CepacPlugin.filtre1.label");

Et quand je regarde dans le store une ligne est bien créée : 

<member stamp="gmo_66162" id="prod2_64058" op="update" authorDBID="" extraDataMap="%|java.lang.String/extra.Member.CepacPlugin.filtre2.value=java.lang.String/|java.lang.String/extra.Member.CepacPlugin.filtre3.value=java.lang.String/|java.lang.String/extra.Member.CepacPlugin.filtre3.label=java.lang.String/|java.lang.String/extra.Member.CepacPlugin.filtre1.label=java.lang.String/testDunomFiltre|java.lang.String/extra.Member.CepacPlugin.filtre2.label=java.lang.String/|java.lang.String/extra.Member.CepacPlugin.filtre1.value=java.lang.String/http:%2f%2f127.0.0.1:8080%2fjcms%2fjcms%2fsca_5050%2finfos-commerciales?cid%3dprod1_26921&amp;cid%3dsca_5086&amp;cid%3dsca_5072&amp;cid%3dsca_5082&amp;cid%3dsca_5077&amp;cid%3dsca_5084&amp;cid%3dsca_5081&amp;cid%3dsca_5079&amp;cid%3dprod1_26924&amp;cid%3dprod1_26926&amp;cid%3dsca_5095&amp;cid%3dsca_5091&amp;cid%3dsca_5096&amp;cid%3dsca_5100&amp;cid%3dsca_5108&amp;cid%3dsca_5115&amp;cid%3dsca_5122&amp;cid%3dsca_5129&amp;cid%3dsca_5070&amp;tabIndex%3d1" locality="" mdate="1479914144103" opAuthor="j_2" opDelegate="" poBox="" postalCode="" region="" rightFromClassMap="%|java.lang.String/com.jalios.jcms.Content=com.jalios.jcms.DataRight/j_14|java.lang.String/com.jalios.jcms.Form=com.jalios.jcms.DataRight/j_14|java.lang.String/com.jalios.jcms.portlet.PortalElement=com.jalios.jcms.DataRight/j_14" street=""  />

(j'ai simplifié dans cet exemple mais j'ai 5 autres extradata en réalité..., dont trois corresspondent à des urls)

 

Mon probleme est lorsque je redémarre mon serveur Tomcat, l'extrada n'est pas chargé et j'ai la vaeur null qui s'affiche... Ai-je raté quelques chose dans la configuration de l'extradata ? Faut'il lancer un chargement spécifique au démarrage de l'application ? ou autre ?... 

Merci de m'eclairer sur ce point. 

Cordialement, 

Guillaume

12 pts
Kévin Moreau - on 12/1/16 at 2:19 PM
Best answer

Bonjour, 

Il semblerait que vous n'ayez pas copié voter objet avant d'attribuer une valeur à votre ExtraData. 

Voici une documentation (https://community.jalios.com/jcms/jx_59072/fr/developper-avec-les-extradata-et-les-extradbdata), notamment paragraphe 2.1 Usages, où un exemple vous sera montré.

9 pts
Guillaume MOTTET · on 12/2/16 at 3:17 PM

Merci pour votre réponse, j'avais mal interprété cette partie. ( je pensai qu'il falait copier manuellement les extradatas lors de la copie d'un objet...) 

Voici mon code pour ceux que ca interesse : 

Member m = channel.getCurrentLoggedMember();
Member upMember = (Member)m.getUpdateInstance();
Map extraDataMap = m.getExtraDataMap();
if (extraDataMap != null) {
   upMember.setExtraDataMap(new HashMap(extraDataMap));
}

upMember.setExtraData("extra.Member.CepacPlugin.filtre1.label", label);
upMember.performUpdate(m);

0 pts