Oracle Universal Content Management – Hands On


Autor: Denis Abrantes (denis.abrantes@oracle.com)


Bem vindo! Nesta série de tutoriais, iremos configurar o ambiente do Universal Content Management.

O Oracle Universal Content Management (UCM) é uma solução focada em gestão de conteúdo. O objetivo desta solução é gerenciar o conteúdo não-estruturado (ou seja, o conteúdo que não está armazenado em tabelas de bancos de dados) que é importante para o dia-a-dia da empresa: emails, contratos, planilhas, notas fiscais, projetos, imagens, vídeos, desenhos de arquitetura, etc. Segundo os institutos de pesquisa, este conteúdo corresponde à 80% do conteúdo de negócios que existe em um ambiente corporativo, o que é um volume muito maior do que o volume de conteúdo estruturado (ou seja, os dados gerenciados por sistemas de gestão – ERP, CRM, etc). Apesar disso, durante muito tempo não existia uma tecnologia capaz de administrar esta imensa massa de informações. O UCM surgiu para atender à esta demanda.

Dando sequência ao tutorial de Instalação, iremos agora configurar o nosso repositório, definindo os tipos de documentos, regras, fluxos e muito mais. Se você não fez a instalação do UCM, o link abaixo traz este procedimento passo-a-passo:

http://www.oracle.com/technetwork/pt/articles/parte1-087643-ptb.html

Iniciando os Serviços

Se o seu ambiente estiver fora do ar, siga a seguinte sequência para iniciar os serviços:
  • Inicie o banco de dados através do menu Start -> Oracle Database Express Edition -> Start Database.
  • Abra a janela de serviços do Windows, através do menu Start -> Run -> services.msc
  • Selecione o serviço IDC Inbound Refinery Service ibr e clique em Start.
  • Selecione o serviço IDC Content Service ucm e clique em Start.
  • Verifique se o serviço do Apache está no ar; se não estiver, clique em Start.

Usuários e senhas disponíveis:

Usuários  (Nome completo)

Senhas

sysadmin  (System Administrator)

idc


Os demais usuários serão criados ao longo do exercício.


Introdução

Antes de iniciarmos, vamos rever alguns dos principais conceitos do Universal Content Management:

Infraestrutura do UCM


O Content Server é uma aplicação baseada em Java, que usa um banco de dados para armazenar os atributos dos documentos, um motor de busca (que pode ser o próprio banco de dados, ou um motor externo) e o sistema de arquivos para armazenar os documentos. É possível também armazenar os documentos diretamente no banco de dados.

O Content Server oferece múltipla formas de acesso ao conteúdo: usuários finais podem acessar via Web, Windows Explorer (através do protocolo WebDav), sites da Web (desenvolvidos com o Site Studio ou Content Publisher), portais de mercado (através de Portlets) e aplicações diversas, através de APIs de integração e Web Services. O objetivo é que o conteúdo do repositório esteja disponível aos usuários através do maior número possível de interfaces diferentes.

Processo de Armazenamento de Arquivos

 


O processo de armazenamento, também chamado de Checkin, permite que um documento seja carregado no repositório. Este processo pode ser iniciado de várias formas: Copiar e Colar pelo Windows Explorer, um formulário de armazenamento na Web, através de Portal, cliente de Email (Outlook/Lotus Notes), ou até mesmo através de aplicativos customizados, via APIs ou Web Services.
Independente da forma utilizada para publicar este documento, o mesmo processo é realizado quando ele é armazenado. Embora este processo possa ser configurado ou customizado, ele basicamente segue as seguintes etapas:

  • Os metadados são definidos e armazenados no banco de dados
  • O arquivo nativo (formato original) é armazenado na pasta Vault do local de armazenamento
  • O documento é enviado para o módulo de conversão, para que a versão Web seja criada. Uma vez criada, ela será armazenada na pasta Weblayout do local de armazenamento
  • O servidor irá validar se este documento atende algum critério de workflow. Caso atenda, o fluxo de aprovação é iniciado
  • O documento é indexado para que os usuários possam fazer buscas pelo seu conteúdo textual (full-text)
  • Finalmente, o documento é liberado para uso, através das diversas interfaces listadas anteriormente.

Como comentamos, este processo pode variar: nem todos os arquivos terão versão web, e os documentos poderão ser armazenados no banco de dados ao invés da file system.


Arquivos de Configuração e Estrutura de Pastas

O UCM está instalado na pasta C:\oracle\ecm\ucm. Abra esta pasta no Windows Explorer para ver a estrutura dos diretórios.


Estrutura de Pastas do UCM

No processo de check-in, o arquivo é armazenado no diretório vault, em uma subpasta com o nome do Content Type. O arquivo é renomeado com o ID do conteúdo, que é gerado automaticamente pelo UCM.


O diretório weblayout armazena a versão “webviewable” de todos os documentos armazenados no servidor. Um componente de conversão como o PDF Converter é necessário. Caso não haja componente de conversão, uma cópia no mesmo formato do documento é inserida nesta pasta.


Os arquivos de configuração ficam na pasta config. O mais importante é o config.cfg, que pode ser editado em qualquer editor de texto ou via interface web do Content Admin Server:


Naturalmente esta estrutura de armazenamento é configurável: ter um volume muito grande de arquivos na mesma pasta compromete a performance do sistema operacional. As regras dinâmicas de armazenamento podem contornar este problema, inclusive criando novas pastas periodicamente para melhor distribuir os documentos, tudo de forma automática.
Para obter mais detalhes sobre as configurações de sistema, recomendamos a
Documentação Oficial do UCM:

Managing System Settings and Processes: http://download.oracle.com/docs/cd/E10316_01/cs/cs_doc_10/
admin/system/wwhelp/wwhimpl/js/html/wwhelp.htm

Trabalhando com Componentes

Componentes são módulos adicionais que trazem novas funcionalidades ao Content Server. Existem alguns componentes de exemplo disponíveis no website da Oracle: http://otn.oracle.com.

A arquitetura de componentes permite que desenvolvedores acessem as funcionalidades do core do Content Server, criando customizações avançadas que não seriam possíveis através de simples customizações. É possível sobrescrever alguns recursos do Content Server por componentes customizados.
Alguns exemplos de recursos que podem ser customizados:

  • Modificar o HTML exibido após uma requisição de serviço;
  • Modificar ou criar comandos SQL utilizados durante a execução de um serviço;
  • Modificar ou criar métodos Java executados durante um serviço;
  • Adicionar serviços completamente novos, com SQL, Java e templates customizados

Existem componentes disponíveis para download no Metalink, mais detalhes nos notes abaixo:

Note: 459642.1 - Reference Table for Locations of Content Server Published Components (Extras and Misc)

Note: 452978.1 - 10gR3 (10.1.3.3.0 to 10.1.3.3.3) Stellent-Oracle Cross Reference for Oracle Software Delivery Cloud Downloads


Passo 1 – Definir Grupos de Segurança e Atribuições

A segurança do Content Server é dividida em quatro elementos:

  • Security Group: Grupo de conteúdo. Cada arquivo armazenado no servidor é associado a um grupo de segurança. Os usuários ganham acesso aos grupos de segurança através dos perfis.
  • Role: Define as permissões (read, write, delete, admin) que os usuários tem em cada security group. Cada usuário pode ter vários Roles.
  • User: Indivíduo que irá ter acesso às informações do Content Server. Um usuário pode ter diversos Roles e Accounts.
  • Account: Grupo de conteúdo. Funcionalidade opcional que aumenta as funcionalidades de segurança e oferece mais flexibilidade e granularidade do que usar apenas grupos.  Diferente dos grupos, as accounts são associadas diretamente aos usuários. Cada arquivo armazenado no servidor é associado a um grupo e opcionalmente, uma account.

OBS: existem componentes adicionais que implementam controle de acesso granular e regras dinâmicas, mas eles não serão explorados neste exercício.

Modelo de Segurança:

Definindo Configurações de Segurança:

Vamos criar um grupo chamado Contabil e definir as permissões de segurança para este grupo.

  • Na página do Content Server, vá ao menu Administration e clique em Admin Applets
  • Clique no botão User Admin.
  • Vá ao menu Security -> Permissions by Group...
  • Clique em Add Group… e preencha de acordo com as informações abaixo:  

 
  • Clique em OK. Crie um outro grupo chamado Juridico.
  • Clique no botão Close para fechar esta janela.
  • De volta à janela de usuários, vá ao menu Security -> Permissions by Role.
  • Clique em Add New Role… e preencha o nome como leitor:  
  • Crie outra role chamada gerente
  • Para cada Role, vamos definir as seguintes permissões nos grupos: 

Grupo

Role

Permissão

Juridico

Admin

RWDA

Contributor

RW

Leitor

R

Gerente

RWD

Contabil

Admin

RWDA

Contributor

RW

Leitor

R

Gerente

RWD


  • Para isso, selecione os Grupos de Segurança para cada Role e clique no botão Edit Permissions.
  • Confira se as permissões de segurança estão de acordo com a tabela acima.
  • Clique em Close para retornar à tela de User Admin. Clique em Options -> Exit para sair.
  • Antes de criarmos os usuários, precisamos habilitar as Accounts (Contas) no sistema. Para isto:
    • Expanda a aba Administration e clique em Admin Server.
    • Clique no botão ucm e em seguida em General Configuration
    • Na janela Additional Configuration Variables, abra uma nova linha e digite:
      • UseAccounts=true
  • Clique em Save e reinicie o Content Server.
  • Feche todas as janelas abertas.

Passo 2 – Criar Accounts e Usuários

  • Abra o Internet Explorer e acesse o Content Server como sysadmin. Expanda o painel Administration e clique em Admin Applets. Abra o User Admin.
  • Antes de criarmos os usuários, iremos criar as Accounts. Para isto:
    • Clique no menu Security -> Predefined Accounts
    • Clique em Add e defina o nome como Juridico
    • Clique em Add e defina o nome como Contabil
  • Clique em Close.
  • Para criar um usuário, clique no botão Add… , deixe Authorization Type como Local, clique OK e preencha com os seguintes dados:
    • Name: advogado
    • Full Name: Advogado Interno
    • Password e Confirm Password: welcome1
    • E-mail Address: advogado@oracle-ucm.br.oracle.com
  • OBS: O nome do usuário é case sensitive. Para este exercício, manteremos todos em minúsculas.
  • Os campos restantes não precisam ser preenchidos
  • Na aba Roles, clique em Add Role e adicione a role Contributor
  • Na aba Accounts, clique em Add, selecione Juridico, desmarque Delete e Admin e clique OK. Selecione o Default Account como Juridico.
  • Clique OK. O usuário Advogado é criado.
  • Crie outros usuários, conforme a tabela abaixo (defina também as Default Accounts):

Name

Full Name

Password

Email

Role

Account (Default)

contador

Contador

welcome1

contador@…

Contributor

Contabil (RW)

gerjuridico

Gerente Jurídico

welcome1

gerjuridico@…

Gerente

Juridico (RWD)

gercontabil

Gerente Contábil

welcome1

gercontabil@…

Gerente

Contabil (RWD)

assjuridico

Assistente Jurídico

welcome1

assjuridico@…

Leitor

Juridico (R)

asscontabil

Assistente Contábil

welcome1

asscontabil@…

Leitor

Contabil (R)


  • OBS1: Os usuários Assistente não terão Account Default, pois serão somente leitura
  • Clique em Options -> Exit para fechar a janela do User Admin.
  • OBS2: Neste momento você terá diversos usuários com a senha welcome1, e o sysadmin com a senha idc. Talvez seja interessante mudar a senha do sysadmin para welcome1. Você pode fazer isso clicando no link My Profile na barra de links.
  • Opcionalmente, você pode criar contas de email para que os usuários sejam notificados pelos Workflows. Para isso, clique com o botão direito no ícone do ArgoSoft Mail Server Freeware na barra de tarefas (  ) e selecione a opção Users


  • Clique no botão Add New User e preencha com os dados do usuário (senha welcome1)


  • Clique OK. Também é necessário criar um perfil para estes usuários no Outlook. Consulte a documentação do Outlook para obter mais informações sobre este procedimento.
  • Volte ao User Admin e clique na aba Information Fields
  • A tabela Field Info mostra a lista de todos os metadados configurados no servidor.
  • Vamos criar um metadado customizado. Clique no botão Add… que fica abaixo da lista Field Info
  • Coloque o Field Name como Departamento e clique em OK.
  • Na tela de informações, deixe o campo Field Type como Text e marque a caixa de opção Option List
  • Clique no botão Edit. Na caixa de texto que aparecer, digite os seguintes valores, um em cada linha:
    • Juridico
    • Contabil
    • RH
    • Financeiro


  • Clique em OK para fechar esta janela e OK novamente na próxima janela.
  • Com o metadado criado, podemos voltar na aba Users, selecionar o usuário advogado e clicar em Edit…
  • Na tela de edição, podemos ver que agora temos um novo atributo disponível, Departamento. Vamos definir o Departamento deste usuário como Juridico.

  • Clique OK para fechar esta janela.
  • Edite o mesmo atributo para os demais usuários.
  • Volte na aba Information Fields e clique no botão Update Database Design e OK para confirmar.
  • No menu Options, clique em Exit.

Passo 03 – Criando Tokens


Se quisermos criar um critério dinâmico, que se aplique à diferentes cenários, muitas vezes utilizamos ‘Tokens’. Tokens nos permitem definir um passo dinâmico em um workflow, dependendo do valor de um determinado metadado ou informação de um usuário. Por exemplo, ao invés de declarar especificamente o usuário advogado como aprovador, vamos também definir o usuário autor do documento como aprovador. Obviamente, o autor do documento irá variar de acordo com o usuário que submeteu o documento ao repositório. Mas, com o Token, precisaremos criar apenas um workflow e um step.

  • Na tela do Admin Applets, abra o Workflow Admin
  • No menu Options, selecione a opção Tokens…
  • Clique em Add… e defina o nome como Autor
  • Clique no botão Add… ao lado de Users
  • Deixe a seleção em User e digite dDocAuthor no campo Name


  • Clique OK e, na próxima janela, Close.
  • Ainda não iremos criar os Workflows, portanto clique em Options -> Exit.

 

Por enquanto é só. Não perca a continuação deste tutorial!! Veja parte 2