quinta-feira, 9 de maio de 2013

Criação de aspecto (propriedades customizadas)

Esse segundo post vai tratar de um assunto que ainda traz muitas dúvidas para quem precisa criar metadados (propriedades) customizados no Alfresco. Ainda que se encontre todas as informações necessárias na Wiki, vou buscar resumir como se cria um aspecto e como fazer para mostra-lo no Alfresco Explorer.

Os aspectos basicamente servem para "extender" um tipo de conteúdo já existentes. Pensem neles como uma forma de adicionar metadados adicionais ao documento sendo integrado ao conjunto de metadados do tipo documental que já foi vinculado ao mesmo.

Basicamente, é necessário configurar três arquivos para que o Aspecto apareça no Alfresco. São eles:

- nomexmodel.xml
- nomex-model-context.xml
- web-client-config-custom.xml

O "nomex", colocado no inicio dos dois xml, pode ser trocado para algo que seja referente ao que você vai tratar no seu projeto, assim você consegue facilitar a identificação do que o arquivo irá conter. O primeiro arquivo deverá ser editado para declarar as propriedades, e o segundo deverá ser criado para sinalizar ao Alfresco que foi criado um novo modelo de metadados. O arquivo web-client-config-custom.xml deverá ser editado para que o Alfresco mostre as suas propriedades criadas de forma correta no Alfresco Explorer.

Bom, agora vamos colocar a mão na massa. Abaixo segue o conteúdo do arquivo nomexmodel.xml:

<?xml version="1.0" encoding="UTF-8"?>
<model name="nx:modelodedados" xmlns="http://www.alfresco.org/model/dictionary/1.0">
   <description>Descricao breve do modelo</description>
   <author>Rafael Simoes</author>
   <version>1.0</version>

   <imports>
      <import prefix="d" uri="http://www.alfresco.org/model/dictionary/1.0"></import>
      <import prefix="cm" uri="http://www.alfresco.org/model/content/1.0"></import>
   </imports>

   <namespaces>
      <namespace uri="http://nomex.com/namespaces/nomex/0.1" prefix="nx"></namespace>
   </namespaces>

    <aspects>  

      <aspect name="nx:notafiscal">
         <title>Nota Fiscal</title>
         <properties>
            <property name="nx:nomecliente">
<title>Nome do cliente</title>
<type>d:text</type>
            </property>
            <property name="nx:numero">
<title>Numero</title>
<type>d:int</type>  
            </property>
    <property name="nx:data">
<title>Data</title>
<type>d:date</type>  
            </property>
         </properties>
      </aspect>

   </aspects>

</model>


Basicamente nesse arquivo, tudo o você precisa fazer é declarar o aspecto e suas respectivas propriedades. Essa é a forma mais simples de faze-la, utilizando apenas o a tag type para especificação dos valores que a propriedade criada poderá receber. Há diversos tipos de tipos que vocês poderão usar, e para auxilia-los com isso, clique aqui e veja mais informações.


Continuando, abaixo segue o conteúdo do arquivo nomex-model-context.xml, necessário para que o Alfresco saiba que seu modelo foi criado e possa ser utilizado no repositório:



<?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/nomexmodel.xml</value>
            </list>
        </property>
    </bean>
          
</beans>

Nesse arquivo, tudo o que precisa ser feito é dizer onde o seu arquivo modelo está localizado para que o Alfresco possa busca-lo na inicialização do servidor de aplicação (no meu caso o tomcat).

Por último e não menos importante, pois sem esse arquivo não será possível visualizar o aspecto criado, segue o conteúdo do web-client-config-custom.xml:

<alfresco-config>

   <config evaluator="string-compare" condition="Action Wizards">
     <aspects>
       <aspect name="nx:notafiscal" />
     </aspects>
   </config>   
   
  <config evaluator="aspect-name" condition="nx:notafiscal">
    <property-sheet>
      <separator name="sep01" display-label="Nota Fiscal" component-generator="HeaderSeparatorGenerator"/>
      <show-property name="nx:nomecliente" />
      <show-property name="nx:numero" />
      <show-property name="nx:data" />
    </property-sheet>
  </config> 
  
</alfresco-config>

As propriedades criados no arquivo de modelo nomexmodel.xml, são declaradas dentro desse documento para que seja permitida a visualização das mesmas dentro do Alfresco Explorer. A tag separator é utilizada para definir um cabeçalho para o conjunto de propriedades.

Com isso, tudo o que falta é copiar esses arquivos para o diretório "tomcat/shared/classes/alfresco/extension" e reinicializar o servidor de aplicação para que os novos arquivos criados sejam reconhecidos.


Abaixo segue as imagens do Aspecto já aparecendo para ser utilizado dentro de "Executar ação" e selecionando a ação "Adicionar Aspecto" e depois do aspecto já vinculado ao documento após a execução da ação:


Adicionando o aspecto ao documento 


Visualizando o aspecto adicionado


É isso. Espero que esse post possa ajudar de alguma forma aqueles que ainda possuem dúvidas relacionados a esse tópico.

Grande abraço a todos.


Do Great Work!



4 comentários:

  1. Olá,

    Rafael, será que vc pode me ajudar?

    Eu fiz esse tutorial certinho, mas não consegui fazer funcionar.

    Sera que vc tem um skype ou mensseger para conversarmos?

    Estou precisando dessa solução urgente!!!

    A versao do meu alfresco é a 4.0 community. Funciona esse tutorial nessa versão?

    Se tiver como me ajudar me manda um email para durval.carrasco@hotmail.com

    Abraços e parabéns pela iniciativa do blog.

    ResponderExcluir
    Respostas
    1. Junior, já enviei um email para você há alguns dias mas você ainda não me respondeu. Fiz o passo a passo que descrevi aqui nesse Post e tudo deu certo.

      Se ainda estiver precisando de ajuda, por favor, entre em contato comigo.

      Grande abraço!

      Excluir
    2. Te mandei um e-mail, desculpe pela demora.

      Abraços.

      Excluir
  2. A Infinity consultoria SAP e parceira Microsoft e Oracle está recrutando o seguinte profissional:

    ALFRESCO ADMINISTRATOR
    - Versão: Community
    - Core Java
    - English intermediate
    - Duração: 5 meses
    - Local: São Paulo

    Você possui interesse ou tem alguém?
    Caso positivo qual a sua disponibilidade e taxa?

    Favor enviar o CV atualizado.

    Obrigada!

    Atenciosamente,

    Andressa Gutierrez
    Recrutamento & Seleção
    Tel: +55 11 5070-8333
    E-mail: andressa.gutierrez@infinityit.com.br

    www.infinityit.com.br

    ResponderExcluir