Problème d'ajout de nouveaux types de documents

cancel
Showing results for 
Search instead for 
Did you mean: 
lodacom
Member II

Problème d'ajout de nouveaux types de documents

Voilà je dois intégrer de nouveaux type de documents dans Alfresco. J'ai consulté de multiples documents et documentations à ce sujet comme ici ftp://ftp-developpez.com/koossery-tech/tutoriels/java/ecm/alfresco/tutorial-developpement-alfresco-m...  (sur developpez.com). J'ai suivi exactement la procédure qui était conseillée dans cette documentation et je constate qu'il n'y a aucune modification qui s'effectue (problème de config ou autre?). J'ai également essayé de rajouter de nouveaux dossiers dans Alfresco. Y a-t-il d'autres solutions ou est-ce que quelqu'un a suivi cette doc et a réussi? Merci de votre réponse.
42 Replies
lodacom
Member II

Re: Problème d'ajout de nouveaux types de documents

PS: j'aimerais avoir une réponse si quelqu'un lit ce message. Merci de vos réponses encore une fois. Si vous voulez avoir plus de liens que j'ai utilisés je peux vous en donner.
mfcp
Member II

Re: Problème d'ajout de nouveaux types de documents

Salut,
Perso, je n'arrive pas à ouvrir ton lien.
Sinon, à ma connaissance la démarche pour créer un nouveau type est la suivante:
-Création d'un fichier model: NvTypeModel.xml
-Création d'un fichier avec le suffixe "-context.xml" pour indiquer à Alfresco où chercher le model.
-Configuration de l'affichage du fichier via: web-client-config-custom.xml
les 3 fichiers étant placés dans : tomcat\shared\classes\alfresco\extension

Perso, je crée un doissier model (dans extension) où je place tout mes modèles de fichier et de dossier.
Un conseil: je suppose qu'il te donne un exemple dans le lien : commence par faire un copier coller de l'exemple, une fois que ça marche, tu pourras essayer
tes propres models.
Sinon, si tu as vraiment tou bien fait et que ça marche pas, poste aussi le contenu de chacun des 3 fichiers cités ci-dessus, ça peut aider à y voir plus clair.
PS: Faut pas oublier le restart de Tomcat (à chaque modif)
En espérant t'avoir aidé.
lodacom
Member II

Re: Problème d'ajout de nouveaux types de documents

Pour le lien je l'avais mal copie colle… Je vais essayer de faire ce que tu dis. Mais quand je crée un dossier quelconque dans Alfresco ben y veut pas enfin bon. Je te MP si ça te dérange pas après que j'ai essayé… Merci dans tous les cas. Smiley Happy Autre question (bête à mon avis)… Si tu mets tes fichiers xml (NvTypeModel.xml) dans le nouveau dossier model ton -context.xml tu le garde dans extension où tu le mets aussi dans le dossier model même question pour web-client-config-custom.xml (mais celui là y est déjà par défaut dans Alfresco donc une modification suffit apparemment il ne faut pas le mettre dans model si on cré un nouveau dossier ).
lodacom
Member II

Re: Problème d'ajout de nouveaux types de documents

Je met les trois codes:
product-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
   
    <!– ici on enregistre notre modèle  avec les bundles des labels –>   
    <bean id="productContent.dictionaryBootstrap" parent="dictionaryModelBootstrap"
          depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>com/koossery/alfresco/tuto/model/productModel.xml</value>
            </list>
        </property>
        <property name="labels">
         <list>
            <value>com/koossery/alfresco/tuto/model/product-model</value>
         </list>
      </property>
    </bean>

    <bean id="resourceBundlesWebApp" class="org.alfresco.web.app.ResourceBundleBootstrap">
      <property name="resourceBundles">
         <list>
             <value>alfresco.messages.customcontent-webclient</value>
         </list>
      </property>      
    </bean>
         
</beans>

web-client-config-custom.xml

<alfresco-config>
    <config>
      <actions>
         
            <!– action :créer une fiche  produit –>
          <action id="create_product">
             <permissions>
                <permission allow="true">Write</permission>
             </permissions>
             <label-id>create_product</label-id>
             <image>/images/icons/add_product.gif</image>
             <action-listener>#{SaveProductDialog.setupFlagCreate}</action-listener>
             <action>dialog:save_product</action>
          </action>        
         
          <!– action :modifier une fiche  produit –>
          <action id="update_product">
             <permissions>
                <permission allow="true">Write</permission>
             </permissions>
             <evaluator>com.koossery.web.action.evaluator.UpdateProductEvaluator</evaluator>
             <label-id>update-product</label-id>
             <image>/images/icons/update_product.gif</image>
             <action-listener>#{SaveProductDialog.setupContentAction}</action-listener>
             <action>dialog:save_product</action>
             <params>
                <param name="id">#{actionContext.id}</param>
             </params>
          </action>
         
          <!– ici on ajoute l'action 'créer produit' dans le groupe  'browse_create_menu'–>
          <action-group id="browse_create_menu">
             <action idref="create_product" />
          </action-group>        
   
          <!– ici on ajoute l'action 'créer produit' dans le groupe  'document_browse'–>
          <action-group id="document_browse">
             <action idref="update_product" />        
          </action-group>
                      
      </actions>
    </config>

<!– configuration du Dialog–>
   <config> 
      <dialogs>  
          <dialog name="save_product" page="/jsp/extension/content/save-product-dialog.jsp"
                   managed-bean="SaveProductDialog"
                  icon="/images/icons/new_content_large.gif" title-id="save_product_dialog_title"
                  description-id="save_product_description_dialog">               
         </dialog>        
       </dialogs>   
   </config>

   <!– Configuration of Advanced search –>

   <config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <content-types>
         <type name="product:product"/>
         </content-types>
         <custom-properties>
            <meta-data type="product:product" property="product:name" />
         <meta-data type="product:product" property="product:description" />
         <meta-data type="product:product" property="product:ref" />
         <meta-data type="product:product" property="product:prize" />
         <meta-data type="product:product" property="product:stock" />
         </custom-properties>
      </advanced-search>
   </config>

</alfresco-config>

productModel.xml

<?xml version="1.0" encoding="UTF-"?>
<!– Definition of new Model –>
<model name="product:model" xmlns="http://www.alfresco.org/model/dictionary/.">

<!– Optional meta-data about the model –>
<description>Custom Content Model</description>
<author>KOOSSERY TECHNOLOGY (Centre de Compétences Alfresco-jBPM)</author>
<version>.</version>

<!– ici nos imports de modèles M1 –>
<imports>
<!– Import Alfresco Dictionary Definitions –>
<import uri="http://www.alfresco.org/model/dictionary/." prefix="d"/>
<!– Import Alfresco Content Domain Model Definitions –>
<import uri="http://www.alfresco.org/model/content/." prefix="cm"/>
</imports>

<!– ci-dessous notre modèle M2 pour ce projet –>

<!– on définit le namespace de notre modèle M2 –>
<namespaces>
<namespace uri="http://www.koossery-tech.com/model/product/." prefix="product"/>
</namespaces>

<types>
<!– The product type –>
<type name="product:product">
<title>Product</title>
<parent>cm:content</parent>
<properties>
<property name="product:name">
<title>Name</title>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="product:description">
<title>Description</title>
<type>d:text</type>
</property>
<property name="product:ref">
<title>REF</title>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="product:prize">
<title>Prize</title>
<type>d:float</type>
<mandatory>true</mandatory>
</property>
<property name="product:stock">
<title>Stock</title>
<type>d:int</type>
</property>
</properties>

<associations>
<!– ci-dessous l'association qui lie le produit à ses images –>
<association name="product:image">
<target>
<class>product:picture</class>
<mandatory>false</mandatory>
<many>false</many>
</target>
</association>
</associations>

<!– on greffe les aspect/comportements versionable et auditable –>
<mandatory-aspects>
<aspect>cm:versionable</aspect>
<aspect>cm:auditable</aspect>
</mandatory-aspects>
</type>

<!– The product image –>
<type name="product:picture">
<title>Picture</title>
<parent>cm:content</parent>
<properties>
<property name="product:pictureLegend">
<title>Legend</title>
<type>d:text</type>
<mandatory>false</mandatory>
</property>
</properties>
</type>

</types>

</model>
Je restart Tomcat et je dis si ça fonctionne…
lodacom
Member II

Re: Problème d'ajout de nouveaux types de documents

Information confirmée Alfresco n'aime pas qu'on lui rajoute un dossier (y dois y avoir un truc c'est pas possible…). J'ai mis le productModel.xml dans extension.
lodacom
Member II

Re: Problème d'ajout de nouveaux types de documents

Rien à faire il veut rien savoir. J'ai bien rajouté les fichiers comme il fallait il s'obstine (crach  :x )
mfcp
Member II

Re: Problème d'ajout de nouveaux types de documents

Il y a quelques erreurs, notamment pour le chemin des dossiers:
Je te propose d'essayer ce code. Dis toi que tu peux avoir un seul fichier avec le suffixe -context.xml et un seul: web-client-config-custom.xml
mais autant de model que tu veux dépendant du nombre de type de document que tu as.

models-context.xml:


<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
   <!–Registration of new models –>
   <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
      <property name="models">
         <list>
            <value>alfresco/extension/model/scModel.xml</value>
         </list>
      </property>
   </bean>
</beans>

scModel.xml (à placer dans le dossier model):


<?xml version="1.0" encoding="UTF-8"?>
<!–Definition of new Model –>
<model name="sc:somecomodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!–Optional metadata about the model –>
<description>Someco Model</description>
<author>Moi</author>
<version>1.0</version>

<!–Imports are required to allow references to definitions in other models–>
<imports>
   <!–Import Alfresco Dictionary Definitions –>
   <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
   <!–Import Alfresco Content Domain Model Definitions –>
   <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
</imports>

<!–Introduction of new namespaces defined by this model –>
<namespaces>
   <namespace uri="http://www.someco.com/model/content/1.0" prefix="sc" />
</namespaces>

<types>
<!–Enterprisewide generic document type –>

   <type name="sc:doc">
      <title>Someco Document</title>
      <parent>cm:content</parent>
      <associations>
         <association name="sc:relatedDocuments">
            <title>Related Documents</title>
            <source>
               <mandatory>false</mandatory>
               <many>true</many>
            </source>
            <target>
               <class>sc:doc</class>
               <mandatory>false</mandatory>
               <many>true</many>
            </target>
         </association>
      </associations>
      <mandatory-aspects>
         <aspect>cm:generalclassifiable</aspect>
      </mandatory-aspects>
   </type>
   
   <type name="sc:whitepaper">
      <title>Someco Whitepaper</title>
      <parent>sc:doc</parent>
   </type>
</types>

<aspects>
   <aspect name="sc:webable">
      <title>Someco Webable</title>
      <properties>
         <property name="sc:published">
            <type>d:date</type>
         </property>
         <property name="sc:isActive">
            <type>d:boolean</type>
            <default>false</default>
         </property>
      </properties>
   </aspect>
      <aspect name="sc:productRelated">
      <title>Someco Product Metadata</title>
      <properties>
         <property name="sc:product">
            <type>d:text</type>
            <mandatory>true</mandatory>
         </property>
         <property name="sc:version">
            <type>d:text</type>
            <mandatory>true</mandatory>
         </property>
      </properties>
   </aspect>
</aspects>
</model>

webclient-config-custom.xml:

Il faut placer le code ci-dessous entre les balises <alfresco-config> et  </alfresco-config>:


<config evaluator="string-compare" condition="Content Wizards">
   <content-types>
      <type name="sc:doc" />
      <type name="sc:whitepaper" />
   </content-types>
</config>

<!–add webable aspect properties to property sheet –>

<config evaluator="aspect-name" condition="sc:webable">
   <property-sheet>
      <show-property name="sc:published" display-label-id="published"/>
      <show-property name="sc:isActive" display-label-id="isActive" read-only="true" />
      <show-association name="sc:relatedDocuments" />
   </property-sheet>
</config>

<config evaluator="aspect-name" condition="sc:productRelated">
   <property-sheet>
      <show-property name="sc:product" display-label-id="product"/>
      <show-property name="sc:version" display-label-id="version" readonly="true" />
      <show-association name="sc:relatedDocuments" />
   </property-sheet>
</config>

<config evaluator="string-compare" condition="Action Wizards">
<!–The list of aspects to show in the add/remove features action –>
<!–and the has-aspect condition –>
   <aspects>
      <aspect name="sc:webable"/>
      <aspect name="sc:productRelated"/>
   </aspects>
<!–The list of types shown in the issubtype condition –>
   <subtypes>
      <type name="sc:doc" />
      <type name="sc:whitepaper" />
   </subtypes>
<!–The list of content and/or folder types shown in the specialisetype action –>
   <specialise-types>
      <type name="sc:doc" />
      <type name="sc:whitepaper" />
   </specialise-types>
</config>

<config evaluator="string-compare" condition="Advanced Search">
   <advanced-search>
      <content-types>
         <type name="sc:doc" />
         <type name="sc:whitepaper" />
      </content-types>
      <custom-properties>
         <meta-data aspect="sc:webable" property="sc:published" display-label-id="published" />
         <meta-data aspect="sc:webable" property="sc:isActive" display-label-id="isActive" />
         <meta-data aspect="sc:productRelated" property="sc:product" display-label-id="product" />
         <meta-data aspect="sc:productRelated" property="sc:version" display-label-id="version" />
      </custom-properties>
   </advanced-search>
</config>
mfcp
Member II

Re: Problème d'ajout de nouveaux types de documents

Quand je dis qu'il y a des erreurs, ce n'est pas par rapport au tuto, il doit certainement être bien fait.
C'est juste qu'il faudrait ajouter quelques dossiers pour que ça puisse fonctionner chez toi.
Celui que je t'ai envoyé est plus simple
lodacom
Member II

Re: Problème d'ajout de nouveaux types de documents

Pour info j'ai modifié le lien (en haut) il fonctionne maintenant. Pour ton envoi je n'ai rien reçu c'est bizarre. Tu peux renvoyer svp.