Ayuda personalización del Custom Aspect

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

Ayuda personalización del Custom Aspect

Hola muy buenas a todos.

Estoy intentando implementar Alfresco en una pequeña empresa como ECM corporativo.
Comentar que mi experiencia con Alfresco se reduce a las 3 semanas que llevo "peleándome" con él y que la versión que estoy implementado es la V3 Community.

El caso es que estoy intentado configurar Alfresco para que en los detalles de los items me muestre algunos datos mas que necesito.
Ya he modificado los tres ficheros para la personalización de los content ( CustomModel.xml, custom-model-context.xml y web-client-config-custom.xml) y aparentemente después de refrescar Alfresco, los ha cogido correctamente.

El problema viene a la hora de definir la Rules para que aplique el contenido personalizado que he definido, ya que en la lista de Aspect disponibles no aparece el que yo he configurado en los tres ficheros anteriores … Smiley Surprisedops:

Me falta algún fichero que configurar ??

Cualquier ayuda será muy bien venida.

Gracias y un saludo
ATC
8 Replies
cesarista
Customer

Re: Ayuda personalización del Custom Aspect

Hola:

En web-client-custom-config.xml necesitas declarar el aspecto en cuestión:


   <config evaluator="string-compare" condition="Action Wizards">
      <!– Si queremos que el nuevo tipo aparezca como opción de tipo de contenido en el wizard de reglas de contenido, deberemos incluir lo siguiente –>
      <subtypes>
         <type name="fac:facturae" />
         <type name="ac:acta" />
         <type name="bug:incidencia" />
         <type name="acta:acuerdo" />
         <type name="acta:resolucion" />
         <type name="acta:sesion_consejo" />
      </subtypes>
      <!– Si queremos tener la posibilidad de convertir los espacios existentes tendremos que añadir lo siguiente : –>
      <specialise-types>
         <type name="fac:facturae" />
         <type name="ac:acta" />
         <type name="bug:incidencia" />
         <type name="acta:acuerdo" />
         <type name="acta:resolucion" />
         <type name="acta:sesion_consejo" />
      </specialise-types>
      <!– Si queremos que los aspectos aparezcan como opción en el wizard de reglas de contenido, deberemos incluir lo siguiente –>
      <aspects>
         <aspect name="my:imageClassification"/>
         <aspect name="fac:statusable"/>
         <aspect name="acta:showinbrowser"/>
         <aspect name="bug:assign"/>
         <!–
         <aspect name="cm:storeSelector"/>
         <aspect name="bug:assign"/>
         –>
      </aspects>
      <transformers>
        <transformer name="application/sinadura"/>
        <transformer name="application/xhtml+xml"/>
        <transformer name="application/watermark"/>
      </transformers>
   </config>
atc
Member II

Re: Ayuda personalización del Custom Aspect

Gracias cesarista por la ayuda ..  Smiley Happy

Te pongo lo que actualmente tengo en cada uno de los ficheros, ya que el web-client-custong.config.xml también lo tengo configurado pero no me funciona

En customModel.xls

<?xml version="1.0" encoding="UTF-8"?>

<!– Custom Model –>

<!– Note: This model is pre-configured to load at startup of the Repository.  So, all custom –>
<!–       types and aspects added here will automatically be registered –>

<model name="custom:customModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!– Optional meta-data about the model –>  
   <description>customModel</description>
   <author>ATC</author>
   <version>1.0</version>

   <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 –>
   <!– NOTE: The following namespace custom.model should be changed to reflect your own namespace –>
   <namespaces>
      <namespace uri="custom.model" prefix="custom"/>
   </namespaces>
  
   <aspects>
      <!– Definition of new Content Aspect: Customer Details –>
      <aspect name="custom:CustomerDetails">
         <title>Customer Details</title>
         <properties>
            <property name="custom:CustomerName">
               <title>Customer Name</title>
               <type>d:text</type>
               <protected>false</protected>
               <mandatory>false</mandatory>
               <multiple>false</multiple>
            </property>
            <property name="custom:CustomerContactName">
               <title>Customer Contact Name</title>
               <type>d:text</type>
            </property>
            <property name="custom:CustomerContactPhone">
               <title>Customer Contact Phone</title>
               <type>d:text</type>
            </property>
            <property name="custom:CustomerProjectID">
               <title>Customer Project ID</title>
               <type>d:int</type>
            </property>
            <property name="custom:NewCustomer">
               <title>New Customer</title>
               <type>d:boolean</type>
               <default>true</default>
            </property>
         </properties>
      </aspect>
   </aspects>
     
</model>

En custom-model-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/customModel.xml</value>
            </list>
        </property>
    </bean>
         
</beans>


En web-client-config-custom.xml

<alfresco-config>

   <config evaluator="string-compare" condition="Content Wizards">
      <aspects>
         <aspect name="custom:CustomerDetails"/>
      </aspects>
   </config>
   
   <!– Displays the properties in view details page –>
   <config evaluator="aspect-name" condition="custom:CustomerDetails">
      <property-sheet>
         <separator name="sepCust1" display-label="Customer Details" component-generator="HeaderSeparatorGenerator" />
         <show-property name="custom:CustomerName"/>
         <show-property name="custom:CustomerContactName"/>
         <show-property name="custom:CustomerContactPhone"/>
         <show-property name="custom:CustomerProjectID"/>
         <show-property name="custom:NewCustomer"/>
      </property-sheet>
   </config>

</alfresco-config>

Por mas que lo repaso no veo donde puede estar el problema …
Como comentaba … cualquier ayuda será muy bien recibida ..

Gracias de antemano y un saludo.
ATC
cesarista
Customer

Re: Ayuda personalización del Custom Aspect

Hola:

Te falta declararlo en el Action Wizards. Añade a tu config en el web-client-config-custom.xml lo que te pongo abajo.


  <config evaluator="string-compare" condition="Action Wizards">
      <!– Si queremos que los aspectos aparezcan como opción en el wizard de reglas de contenido, deberemos incluir lo siguiente –>
      <aspects>
         <aspect name="custom:CustomerDetails"/>
      </aspects>
   </config>

Un saludo.

–C.
atc
Member II

Re: Ayuda personalización del Custom Aspect

Gracias nuevamente cesarista por la ayuda …  :wink:

Nada, que no sale la opción "Customer Details" en las opciones del desplegable a la hora de seleccionar las opciones de las reglas de aplicación ..  Smiley Surprisedops:
Estoy algo desesperado ya …..

Un saludo
ATC
cesarista
Customer

Re: Ayuda personalización del Custom Aspect

Hola otra vez  :mrgreen:

Una vez puesto la config que te he comentado más arriba (al final del archivo web-client por ejemplo) y reiniciando el servidor, debería salir el aspecto en un combo (si estas cargando correctamente el tipo de contenido custom definido):

Reglas de contenido :: Acción :: Añadir aspecto


Como curiosidad tienes el archivo example-model-context.xml en tu directorio de extensiones /extension/ ? Si es así, cambialo a example-model-context.xml.orig

Un saludo.

–C.
atc
Member II

Re: Ayuda personalización del Custom Aspect

Muchas gracias cesarista por todo lo que me estás ayudando … así da gusto …  :wink:

Continuo haciendo mis pruebas y teniendo MUY encunta lo que me comentas.
El caso es que mirando el log de Alfresco, me reporta el siguiente mensaje de error … (por lo menos algo es algo, antes no me decía ni esto)

ERROR [org.springframework.extensions.config.BaseConfigService] Input stream invalid - skipped for source: classpath:alfresco/extension/web-client-config-custom.xml' 
org.springframework.extensions.config.ConfigException: 07030001 Failed to parse config stream
   at org.springframework.extensions.config.xml.XMLConfigService.parse(XMLConfigService.java:198)
   at org.springframework.extensions.config.BaseConfigService.appendConfig(BaseConfigService.java:251)
   at org.springframework.extensions.config.BaseConfigService.parse(BaseConfigService.java:281)
   at org.springframework.extensions.config.xml.XMLConfigService.initConfig(XMLConfigService.java:131)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.initRepoConfig(RepoXMLConfigService.java:129)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.resetRepoConfig(RepoXMLConfigService.java:195)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.initConfig(RepoXMLConfigService.java:108)
   at org.alfresco.repo.config.xml.RepoXMLConfigService$1.doWork(RepoXMLConfigService.java:241)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.config.xml.RepoXMLConfigService.onBootstrap(RepoXMLConfigService.java:237)
   at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:294)
   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:858)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:419)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:519)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.dom4j.DocumentException: Error on line 4 of document  : Invalid byte 2 of 4-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 4-byte UTF-8 sequence.
   at org.dom4j.io.SAXReader.read(SAXReader.java:482)
   at org.dom4j.io.SAXReader.read(SAXReader.java:343)
   at org.springframework.extensions.config.xml.XMLConfigService.parse(XMLConfigService.java:164)

Puede ser que me esté diciendo que hay algo que no cumple con el UTF-8 ???
Bufff que perdido ando ..

GRACIAS y un saludo
ATC
cesarista
Customer

Re: Ayuda personalización del Custom Aspect

Hola:

Busca en la línea 4 del web-client-config-custom.xml y quita una tilde o una eñe o similar.

Un saludo.

–C.
atc
Member II

Re: Ayuda personalización del Custom Aspect

Bueno, POR FIN sale mi "Customer Details" en el desplegable !!!
Efectivamente había una "ñ" que no le molaba nada

Mil gracias cesarista por la ayuda prestada  :wink:
Ahora a por el siguiente reto …

Un saludo
ATC