cancel
Showing results for 
Search instead for 
Did you mean: 

Comment récupérer les valeurs possibles d'une propriété à partir d'un WebScript?

amoro
Champ in-the-making
Champ in-the-making

Bonjour à tous!

J'aurais besoin de votre aide s'il vous plait.

J'ai un WebScript fonctionnel qui m'affiche tous les fichiers d'un site avec leurs propriétés ainsi que la valeur de ces propriétés.

Exemple si j'ai un fichier test.pdf dans mon site, mon WebScript affichera bien:

{http://www.alfresco.org/model/system/1.0}name   test.pdf

{http://www.alfresco.org/model/system/1.0}modifier 2016-02-08

{http://www.alfresco.org/model/system/1.0}creator moi

....

...

....

J'ai aussi des propriétés provenant d'un modèle personnalisé qu'on a créé dans l'entreprise, exemple:

{http://www.MonEntreprise.com/model/content/1.0}MaPropPerso valeur1

mais cette propriété personnalisée, lorsqu'on a créé le modèle, on lui a défini plusieurs valeurs possibles. elle peut avoir la valeur1 (dans notre exemple, la propriété personnalisée du fichier test.pdf a comme valeur la valeur1 mais aurait très bien pu avoir la valeur2), la valeur2, la valeur3, la valeur4, etc.......

Ma question est quelle est la ligne de code javascript ou freemarker à écrire dans mon WebScript pour retourner la totalité des valeurs possibles de {http://www.MonEntreprise.com/model/content/1.0}MaPropPerso?

Je sais qu'il y a possibilité de lister les valeurs d'une propriété qui en contienne plusieurs mais je ne sais pas laquelle.

En vous remerciant, cordialement.

4 REPLIES 4

denz
Confirmed Champ
Confirmed Champ

Tiens j'ai trouvé ca pour toi, j'espere que ca t'aidera... J'ai essayé c'est plutot pas mal !

Freemarker template that dumps all properties for a node 

j'ai pris son 2nd code :

<#macro dumpProperties node>
  <#if node.properties??>
  <table>
    <#list node.properties?keys as key>
    <#assign value = node.properties[key]>
    <tr>
      <td>${key}</td>
      <td>
      <#if value?is_date>
        ${value?datetime}
      <#elseif value?is_sequence>
        [
        <#list value as valueValue>
          ${valueValue},
        </#list>
        ]
      <#else>
         ${value}
      </#if>
      </td>
    </tr>
    </#list>
  </table>
  <#else>
    Node doesn't have properties.
  </#if>
</#macro>

<#if space??>
<strong>Properties for 'space':</strong>
<blockquote>
<@dumpProperties space/>
</blockquote>
</#if>

<#if person??>
<strong>Properties for 'person':</strong>
<blockquote>
<@dumpProperties person/>
</blockquote>
</#if>

<#if document??>
<strong>Properties for 'document':</strong>
<blockquote>
<@dumpProperties document/>
</blockquote>
</#if>

<#if companyHome??>
<strong>Properties for 'companyHome':</strong>
<blockquote>
<@dumpProperties companyHome/>
</blockquote>
</#if>

amoro
Champ in-the-making
Champ in-the-making

Merci pour ta réponse! Je vais regarder tout ça et je te redis soit aujourd'hui soit demain! J'espère vraiment être débloqué!

Merci encore!

amoro
Champ in-the-making
Champ in-the-making

J'ai testé ton code et malheureusement ce n'est pas ce que je souhaite....

En fait, ton code fait, ce que mon programme fait pour le moment avec les fichiers, mais avec les variables prédéfinis d'Alfresco.

Exemple,


<#if person??>
<strong>Properties for 'person':</strong>
<blockquote>
<@dumpProperties person/>
</blockquote>
</#if>

Va afficher toutes les propriétés de la variable person ainsi que les valeurs de ces propriétés (pourvu qu'il y en ait sinon rien)

Ce que je souhaite c'est, tu vois le code ci-dessus va afficher, comme je l'ai dit, les propriétés correspondante a la variable person. Ces propriétés sont définies dans un fichier model {http://www.alfresco.org/model/content/1.0}.

Dans ce fichier model, toutes ces propriétés ont un type de variable attendu. Exemple,

{http://www.alfresco.org/model/content/1.0}userName  -> est de type texte

{http://www.alfresco.org/model/content/1.0}sizeCurrent -> est de type nombre

mais moi dans mon modèle d'entreprise la propriété

{http://www.monentreprise.com/model/content/1.0}MaPropPerso -> est de type list et a des <value> définis (valeur1, valeur2, valeur3, etc...) et ne peut pas en avoir d'autre de valeur.

Ce que je demande, je ne pense pas que ça soit difficile je ne sais juste pas quelle ligne de code utilisé, est de pouvoir récupérer dans {http://www.monentreprise.com/model/content/1.0} les valeurs qui ont été définies pour MaPropPerso

sans avoir à lire toutes les propriétés d'une variable comme le fait le code ci-dessus mais de directement le lire dans le modèle {http://www.monentreprise.com/model/content/1.0}

Je pense qu'on est pas loin du but. Je te remercie si tu as des info supplémentaires n'hésite pas

denz
Confirmed Champ
Confirmed Champ

Il va de soit qu'il fallait tester non pas sur le modèle "person" mais sur ton modèle à toi,

Le problème c'est que ca va te sortir les valeurs d'un noeud alfresco existant (répondant à ton modèle) et non pas les valeurs hypothétiques de ton modèles...

Ex : si tu as un noeud alfresco de type MaPropPerso, tu fais :

<#if MaPropPersoEx??>
<strong>Properties for 'MaPropPerso':</strong>
<blockquote>
<@dumpProperties MaPropPersoEx/>
</blockquote>
</#if>

Mais bon ca répond pas complétement à ta demande... pour le reste je seche... (jsuis loin d'être expert...), mais si tu trouves, partage l'info, ca peut interesser beaucoup de gens Smiley Happy