segunda-feira, 11 de novembro de 2013

Activiti + Alfresco Community

Pessoal,

Hoje estou aqui para passar como consegui fazer funcionar a integração do Activiti com o Alfresco Community que já estava instalado no servidor.

Como todos devem ter percebido, o Alfresco Community não vem com o "activiti-admin", pois este (ao menos até onde sei) somente é disponibilizado no bundle da instalação do Alfresco Enterprise. Porem, ao verificar no banco de dados, como já era de se esperar, podemos ver que todas as tabelas relacionas ao Activiti estão criadas, pois a integração independe do deploy do Activiti Explorer e REST.

Sem mais enrolar,  vamos a pratica dos passos que segui para que essa integração funcione com o Alfresco Community:

1 - Na base de dados do Alfresco, verifiquei qual a versão que o Alfresco está utilizando do Activiti, que no meu caso é a 5.11.

2 - Após verificar a versão, fiz o download dos WARS (Explorer e REST) na página de download do Activiti, e copiei ambos para o diretório WEBAPPS.

3 - Iniciei o TOMCAT para fazer o deploy dos novos WARS copiados para a pasta WEBAPPS.

4 - No arquivo db.properties de ambos (Explorer e REST - Localizado dentro de WEB-INF/classes), configurei o banco de dados, apontando para a base que o Alfresco estava utilizando (no meu caso, em postgreSQL). Para facilitar a minha vida, abri o arquivo alfresco-global.properties e copiei todos os dados de lá.

5 - Copiei o JDBC que estava na minha pasta LIB do Alfresco para dentro da pasta LIB de ambos (Explorer e REST - Localizado dentro de WEB-INF).

Após seguir esses passos, consegui com sucesso iniciar o TOMCAT e utilizar o Activiti normalmente.

Espero ter ajudado. Qualquer coisa que precisarem, email ou mensagem por aqui!

Do great work!

quinta-feira, 7 de novembro de 2013

Expiração de tickets(alf_ticket) - Alfresco

Fala Pessoal,

Fiquei um tempo sem postar alguma coisa aqui, mas eu realmente estava muito enrolado com trabalhos a fazer. Acredito que agora que as coisas acalmaram, vou conseguir postar mais coisas aqui.

 Nesse post, vou passar para vocês uma forma de configurar o tempo de expiração dos tickets gerados pelo Alfresco, o chamado "ALF_TICKET" ou apenas "TICKET" quando se utiliza o "wcservice".

Depois de algumas horas estudando uma forma de forçar uma expiração do ticket do usuários logado no Alfresco por se tratar de um requisito de projeto, encontrei no forum do Alfresco (clique aqui para ir até o post) uma forma simples e rápida de faze-lo. Basta criar o arquivo "custom-authentication-services-context.xml" dentro do diretorio "<alfresco>/tomcat/shared/classes/alfresco/extension". Para visualiza-lo, clique aqui.

Explicando as propriedades do XML:

validDuration - O valor dessa propriedade é referente ao tempo de expiração do ticket dos usuários. Nesse XML de exemplo está configurado para que o ticket expire em 1 minuto (PT1M). Os valor aceitos para essa propriedade são:

 * P valor literal para iniciar a expressão
 * nY número inteiro de anos seguido pelo literal Y
 * nM número inteiro de meses seguido pelo literal M
 * nD número inteiro de dias seguido pelo literal D
 * T valor literal que separa data e tempo
 * nH número inteiro de horas seguido pelo literal H
 * nM número inteiro de minutos seguido pelo literal M
 * nS número inteiro de segundos seguido pelo literal S
ticketsExpire - Propriedade boleana que diz se o ticket expira ou não.

expiryMode - Aqui será necessário dizer qual a condição para que o ticket expire. As condições possíveis são:

AFTER_INACTIVITY - O ticket irá expirar se o usuário deixar de realizar ações no Alfresco por um determinado periodo de tempo (validDuration).

AFTER_FIXED_TIME -  O ticket irá expirar quando o período de tempo determinado (validDuration) for finalizado.

DO_NOT_EXPIRE -  Não expira mesmo após o periodo de tempo configurado (validDuration) terminar.

oneOff - Propriedade boleana que se configurada como "true", permite que apenas um único usuário utilize o ticket.

É isso galera. Espero que tenha ficado bem entendido. Qualquer dúvida que tiverem, podem ficar a vontade em comentar o post ou me enviar email que responderei sempre que for possível.

Grande abraço a todos.

Do Great Work!

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!



sexta-feira, 19 de abril de 2013

Primeiro post - Todos se ajudando = Todos ganhando...

Primeiramente deixa eu me apresentar.

Me chamo Rafael Simões Candido Gomes, trabalho com Alfresco a pouco mais de 4 anos, e com desenvolvimento web a quase 6 anos. Estou criando esse blog para postar conteúdos que possam ajudar a comunidade Alfresco com alguns tutoriais, relatos de problemas que já passei e como os resolvi, assim como passar alguns conhecimentos de web que obtive durante esses anos de estudo.

Espero estar sempre contribuindo da melhor maneira possível e espero que todos troquem informações de forma a criarmos uma certa interatividade para o Blog.

Essa era uma idéia minha e do Denys Santos já de muito tempo atrás, mas infelizmente não tinha colocado em prática. Gostaria de aproveitar o post para agradecer ao Denys, um excepcional profissional, com grande conhecimentos em Alfresco e que tenho certeza que irá nos ajudar muito quando começar a postar seus conhecimentos aqui tambem.

Grande abraço a todos!