JOB para executar em uma determinada pasta

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

JOB para executar em uma determinada pasta

Boa tarde,

Tenho a necessidade de informar um determinado grupo de usuário quando arquivos de uma pasta específica não sofrer alterações por mais de 3 meses (ou pelo período que eu definir). 

Encontrei caminhos por meio de add-ons aqui mas é pago.  Existe alguma maneira de fazer isso por meio de script? Procurei na documentação oficial mas nada que pudesse me servir de fato.

Poderiam me ajudar, por gentileza?

Att,

Raquel Ballero

6 Replies
tfdsimoes
Established Member

Re: JOB para executar em uma determinada pasta

Olá,

Se percebi bem o teu problema, que é ter um aviso de email de x em x tempo quando um grupo de utilizadores ou utilizador que esta responsável por um ficheiro não o modificar\actualizar. O que te posso aconselhar, pode não ser a melhor solução mas a mim parece a mais indicada, é criar um aspecto personalizado em Afresco que identifique o documento e ter a pasta com uma regra que verifique o tempo que o documento esta sem ser revisto.

raquel_ballero
Active Member II

Re: JOB para executar em uma determinada pasta

Olá Thiago,

Você teria algum material de fácil entendimento de como criar um aspecto personalizado? Pois com as regras atuais não consigo configurar um cenário onde eu verifique um documento em período e sim somente e uma data fixa.

Também imaginei a criação de um JOB, porém também não consegui achar nenhum material de como proceder.

Ex:

Eu gostaria de um aspecto onde eu possa cadastrar um validade = 3 meses, desta forma eu poderia verifica a data de modificação ou da criação do documento e cada 3 meses.

Raquel

tfdsimoes
Established Member

Re: JOB para executar em uma determinada pasta

Olá,

Tive a pesquisar um pouco e não existe nada que possa ser aproveitado no Alfresco, terás de fazer tudo desde do zero.

Deixo aqui uns bons tutoriais About the Alfresco Developer Tutorial Series | ECM Architect , para caso não percebas muito ou mesmo nada de como fazer alterações em Alfresco. Desses tutoriais os que te iriam interessar seria Working With Custom Content Types in Alfresco | ECMArchitect | Alfresco Developer Tutorials  que fala em Content Model e também este Implementing Custom Behaviors in Alfresco | ECMArchitect | Alfresco Developer Tutorials  para a regra\acção que vai ter a pasta.

douglascrp
Advanced II

Re: JOB para executar em uma determinada pasta

Boa tarde.

Uma maneira simples de conseguir o resultado que você espera, ao meu ver, seria o seguinte:

Criar um aspecto contendo um campo do tipo número, como "revisar após X meses". Nesse campo, os usuários informariam que precisam revisar a cada 6, ou 12 meses por exemplo.

Criar uma ação agendada que, a partir do resultado de uma busca usando o recurso de date math (Search using date math | Alfresco Documentation ) que o Alfresco oferece, enviar os avisos como você quer.

Você poderia, por exemplo, calcular algo como "retorne todos os documentos cuja data de modificação é maior que HOJE - X meses.

"TYPE:'ns:customType' AND cm:modified:[NOW-5MONTH]"

Para desenvolver essa ação agendada, você pode usar o material disponível aqui  

raquel_ballero
Active Member II

Re: JOB para executar em uma determinada pasta

Olá Douglas, boa tarde!

Muito obrigado, vou pesquisar sobre essa alternativa.

Na verdade eu estava tentando por outro meio. Criei um script que faz esse trabalho, mas ele somente seria disparado através de uma regra de pasta, e isso é um problema pois se não houver alterações na pasta a regra não seria disparada. Segue:

var folder = companyhome.childByNamePath("Teste");

if (folder !== null) {
     var files = folder.children;

     for (i=0; i<files.length; i++) {
          var file = files[i];
          var modifiedDate = file.properties.modified;
          var currentDate = new Date();
          var limitDate = new Date(new Date(modifiedDate).setMonth(modifiedDate.getMonth()+3));

          print('file: ' + file.name);
          print('modifiedDate: ' + modifiedDate);
          print('limitDate: ' + limitDate);

          // Verifica se não foi alterado por mais de 3 meses
          if (limitDate < currentDate) {
               var reviewFolder = space.childByNamePath('REVISAR');
               if (reviewFolder == null && space.hasPermission('CreateChildren')) {
                    // Cria a pasta de revisão
                    reviewFolder = space.createFolder('REVISAR');
               }
               file.move(reviewFolder);
          }
     }
}
print('\nSUCCESS!');

Obrigada.

Raquel

douglascrp
Advanced II

Re: JOB para executar em uma determinada pasta

Realmente, para o problema que você descreveu, o que você precisa é algo agendado, preferencialmente executando 1 vez ao dia, sem depender de ação de usuários.

Nesse caso, o negócio é usar mesmo as ações ou jobs agendados.