Olá a todos,
Neste blog, quero explicar como projetamos o Arquivamento no C4C (disponível desde 2011, consulte esta
Informação do Produto) e como funciona (não imediatamente após ativá-lo nas Configurações do Negócio?).
Também com uma atualização para a versão 2208:
Como experimentamos em alguns sistemas de clientes com uma carga pesada, otimizamos o desempenho.
Vamos começar com a ativação:
Como já mencionado na
Informação do Produto, você deve primeiro escolher nas Configurações do Negócio para quais Objetos de Negócio deseja ativar o Arquivamento juntamente com alguns períodos de retenção.
Falaremos mais tarde sobre esses períodos de retenção.
Agora isso tem a seguinte consequência:
- Cedo todas as manhãs, são ativados 2 trabalhos para o Arquivamento.
- Cada trabalho trabalha em todos os Objetos de Negócio ativados consecutivamente.
- O primeiro trabalho Move2Archive busca potenciais candidatos, verifica-os pela aplicação correspondente, move aqueles verificados para o arquivo e os elimina do banco de dados local.
- O outro trabalho DeleteFromArchive finalmente exclui os dados do arquivo.
- Esses temas se aplicam a cada Objeto de Negócio individualmente: 2 trabalhos por Objeto de Negócio habilitado.
Isso significa que se você ativar o Arquivamento à tarde, terá que esperar até a manhã seguinte para ver um resultado potencial.
Mas, quais são os resultados?
Agora precisamos discutir os Períodos de Retenção (eles são bem explicados no blog mencionado anteriormente, mas permita-me repetir):
- Período de Retenção Antes do Arquivamento: Isso define a "idade" do registro. Quanto tempo não foi alterado (para os técnicos: a Data da Última Alteração ?), dando uma boa estimativa de que esse registro não está mais em uso.
- Período de Retenção Antes da Exclusão: Normalmente definido por requisitos legais para manter os dados por motivos de verificação.
Este período começa quando os dados são excluídos localmente.
Me perguntaram sobre os valores máximos e mínimos para os períodos de retenção.
O mínimo é fácil: 0. Isso significa que cada registro é um candidato para o Arquivamento.
O máximo é mais complicado: Tecnicamente é MAXINT (mais de 2 bilhões de dias), mas o sistema de calendário falhará com um número tão grande.
Portanto, limitamos a 50.000 dias, o que corresponde a mais de 137 anos.
Então, o trabalho Move2Archive coleta todos os registros "antigos" e os arquiva. Esses candidatos são submetidos a algumas verificações de negócios definidas e implementadas individualmente para cada Objeto de Negócio. Na maioria dos casos, eles verificam pelo menos os valores de status como Concluído, Fechado, ... Claro, podem ser ainda mais sofisticados.
Atualização: para alguns Objetos de Negócio, essas verificações de negócios podem ser desativadas.
São explicadas com mais detalhes em este blog separado.
A verificação de negócios não apenas devolve as instâncias verificadas, mas também adiciona objetos dependentes relevantes para o arquivamento (RDO) como documentos de preços para cotações. Esses RDO não podem existir por si só. Eles precisam da instância verificada como uma espécie de âncora. Portanto, não apenas coletamos os dados do objeto âncora, mas também do RDO e os colocamos juntos no arquivo. Também são excluídos juntos, tanto do inquilino local quanto do arquivo.
Esta primeira parte do trabalho "Coletar e Verificar" é executada no máximo por uma hora. Após esse tempo (ou antes, se todas as instâncias verificadas), essas instâncias verificadas são encaminhadas para uma segunda parte "Arquivar e Excluir". A experiência nos mostra que podemos verificar entre 80.000 e 120.000 instâncias durante essa hora.
Agora, todos os dados de uma determinada instância verificada juntamente com seu RDO são coletados, transformados em JSON, colocados em um arquivo ZIP e enviados para o arquivo. Isso inclui também os anexos.
A propósito, o "arquivo" é atualmente um bucket S3 no Centro de Dados correspondente. Este bucket não é acessível diretamente.
Em seguida, atualizamos o status do Arquivamento dos objetos para Arquivado, para que você saiba que o processo de Arquivamento foi concluído.
Finalmente, a instância será excluída do inquilino local, pois agora existem no arquivo.
Isso acelerará a pesquisa padrão e limpará a lista de resultados.
Esta segunda parte do trabalho é executada até que todas as instâncias entregues sejam arquivadas e excluídas. Normalmente, isso é alcançado antes do dia seguinte. Mas se esta segunda parte ainda estiver em execução quando o primeiro trabalho do dia seguinte for agendado, esse novo trabalho será interrompido imediatamente para permitir que o trabalho do dia anterior seja concluído.