Instalação

Atenção! Antes de seguir o processo de instalação certifique-se de que possui um usuário ativo nas ferramentas de desenvolvimento do Pandora. Caso não possua, entre em contato com a equipe do projeto.

Instalação de Pacotes Básicos no Servidor

O sistema está homologado para rodar em servidores Linux Debian Wheezy 64 Bits com Apache 2.2, PostgreSQL 9.1 e PHP 5.4. No caso da Embrapa Gado de Corte, ele roda em produção em uma máquina virtual XEN 4.1 com este sistema operacional no hospedeiro e na VM.

Inicie o processo instalando alguns pacotes básicos no seu servidor:

aptitude update
aptitude install vim mailutils ntpdate

Configure o ‘ntpdate’ e o servidor SMTP local conforme as características da rede de sua Unidade.

aptitude install build-essential bzip2 subversion apache2 postfix php5 php5-pgsql php5-gd php5-imagick php5-sqlite php5-cli php5-curl php5-mcrypt php5-ldap php-pear php5-dev php-apc xpdf-utils antiword openjdk-7-jre

O Pandora possui suporte nativo aos idiomas português (brasileiro), inglês e espanhol. Para que o suporte a estes locales funcione corretamente no sistema é preciso ativá-los:

dpkg-reconfigure locales

Em seguida, da lista que aparece, selecione as opções:

en_US UTF-8
es_ES UTF-8
pt_BR UTF-8

Instalação do PostgreSQL

Execute o comando:

aptitude install postgresql-9.1

Por fim:

vim /etc/postgresql/9.1/main/pg_hba.conf

Trocar as linhas:

# "local" is for Unix domain socket connections only
local all all peer

Para:

# "local" is for Unix domain socket connections only
local all all trust

Isso fará com que aplicações rodando localmente e acessando o PostgreSQL por sockets Unix não necessitem de autenticação (senha). Em servidores que irão rodar instâncias do Titan (como o Pandora) esta característica é importante para o backup on demand.

/etc/init.d/postgresql restart

Configuração do PHP

Crie as seguintes pastas:

mkdir -p /var/www/pandora
mkdir -p /var/www/log
mkdir -p /var/www/file/pandora/file
mkdir -p /var/www/file/pandora/cache
mkdir -p /var/www/file/pandora/backup
mkdir -p /var/www/file/tmp

Dê o comando:

vim /etc/php5/apache2/php.ini

E edite as diretivas abaixo com os respectivos valores:

open_basedir = /var/www
post_max_size = 64M
upload_tmp_dir = /var/www/file/tmp
upload_max_filesize = 64M
session.save_path = "/var/www/file/tmp"
date.timezone = America/Campo_Grande
sendmail_path = "/usr/sbin/sendmail -t -i"

Configure o APC, adicionando, ao final do php.ini, as seguintes linhas:

[apc]
apc.enabled=1
apc.shm_segments=1
apc.shm_size=32
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/var/www/file/tmp/apc.XXXXXX
apc.enable_cli=1

Em seguida:

gzip -dc /usr/share/doc/php-apc/apc.php.gz > /var/www/pandora/apc.php

Configuração do Apache

Adicionar ao final do arquivo /etc/apache2/apache2.conf as linhas:

ServerTokens ProductOnly
ServerSignature Off

Elas inibem a exibição de informações do servidor em páginas de erro do Apache.

Na configuração do site no Apache não se esquecer de remover a listagem de diretórios:

Options Indexes FollowSymLinks MultiViews

E envie os LOGs para o diretório apropriados:

ErrorLog /var/www/log/pandora-error.log
CustomLog /var/www/log/pandora-access.log combined

Ativar o mod_rewrite:

a2enmod rewrite

Edite a configuração do seu site no Apache (p.e. /etc/apache2/sites-available/default) alterando a linha:

Options FollowSymLinks MultiViews
AllowOverride None all
Order allow,deny
allow from all

Configure o site do Pandora no Apache.

Por fim:

/etc/init.d/apache2 restart

Obtendo a Aplicação

Baixe a head revision (checkout) da aplicação criando uma workcopy no servidor:

svn co https://svn.cnpgc.embrapa.br/pandora/app /var/www/pandora

Crie as seguintes pastas:

mkdir -p /var/www/pandora/titan

Faça também o checkout dos arquivos do framework Titan:

svn co https://svn.cnpgc.embrapa.br/titan/core /var/www/pandora/titan

Crie os links simbólicos necessários:

ln -s /var/www/file/pandora/file /var/www/pandora/file
ln -s /var/www/file/pandora/cache /var/www/pandora/cache
ln -s /var/www/file/pandora/backup /var/www/pandora/backup

Obtendo o Banco de Dados

Entre com o usuário do PostgreSQL e crie o bando de dados da aplicação:

su - postgres
createuser -E -P pandora
createdb -E utf8 -O pandora pandora

Ainda como usuário do PostgreSQL, faça checkout do dump do banco de dados do Pandora e um restore pro SGBD do seu servidor:

mkdir  ~/pandora_db
svn co https://svn.cnpgc.embrapa.br/pandora/db ~/pandora_db
psql -U pandora -d pandora < ~/pandora_db/last.sql
exit

Este é um DUMP do DB em produção livre de dados sensíveis. Ele possui apenas a estrutura do DB, metadados (como tabelas populadas de área de conhecimento, cidades e estados) e alguns dados comuns a todas as Unidades (p.e., convênios de estágio). Também estão disponíveis os seguintes usuários:

  • admin‘: acesso de administrador (super-usuário).
  • gestor‘: acesso a todos os módulos de gestão.
  • estagiario‘: acesso como um “Membro da Comunidade Externa”, exatamente como se fosse utilizado o formulário de cadastro público.
  • supervisor‘: acesso como um supervisor de estágio.
  • sgp‘: acesso como um gestor do SGP (gestão apenas do Módulo de Estágios).
  • sof‘: acesso como um gestor do SOF (gestão apenas do Módulo Orçamentário).

Todos com a senha ‘test‘. Vale lembrar que esta senha apenas funcionará se você não integrar o Pandora ao LDAP da sua Unidade (veja abaixo). Caso faça isso, você deverá inserir estes usuários ao LDAP ou simplesmente apagá-los do DB.

Configurando a Aplicação

Edite o arquivo de configuração:

vim /var/www/pandora/configure/titan.xml

Alterando, conforme mostrado a seguir, os itens destacados:

<?xml version="1.0" encoding="UTF-8"?>
<titan-configuration
	name="PANDORA &bull; Sistema Integrado de Gestão e Pesquisa"
	description="Embrapa&#39;s ERP system automation and process improvement. | pt_BR: Sistema ERP da Embrapa de automatização e melhoria de processos. | es_ES: automatización de Embrapa ERP sistema y mejora de procesos."
	url="http://pandora.cnxxx.embrapa.br/"
	e-mail="cnxxx.pandora@embrapa.br"
	login-url="http://pandora.cnxxx.embrapa.br/titan.php?target=logon"
	core-path="titan/"
	cache-path="cache/"
	doc-path="doc/"
	debug-mode="false"
	session="uma_hash_randomica"
	author="&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0pt; cursor: default;&quot; src=&quot;titan.php?target=loadFile&amp;file=interface/image/cc.png&quot;&gt;&lt;label&gt;&copy; 2011 &curren; &lt;a href=&quot;http://www.cnpgc.embrapa.br/&quot; target=&quot;_blank&quot;&gt;Embrapa Gado de Corte&lt;/a&gt;&lt;/label&gt;"
	language="pt_BR,en_US,es_ES"
	all-sections="false">

	<database
		sgbd="PostgreSQL"
		host="localhost"
		name="pandora"
		user="pandora"
		password=""
		schema="titan"
	/>

	<security
		xml-path="configure/security.xml"
		hash="outra_hash_randomica"
		ldap-xml-path="configure/ldap.xml"
		timeout="3600"
		encrypt-on-client="false"
	/>

	<search
		hash="mais_uma_hash_randomica"
		timeout="15552000"
	/>

	<archive
		xml-path="configure/archive.xml"
		data-path="file/"
	/>

	<business-layer
		xml-path="configure/business.xml"
	/>

	<skin
		logo="logo.png"
		icon="favicon.ico"
	/>

	<mail
		xml-path="configure/mail.xml"
	/>

	<alert
		xml-path="configure/alert.xml"
	/>

	<version-control
		schema="version"
	/>

	<type
		xml-path="configure/type.xml"
	/>

	<log
		db-path="cache/log.db"
		xml-path="configure/log.xml"
	/>

	<schedule
		hash="uma_ultima_hash_randomica"
	/>

	<friendly-url
		change-password="password"
		disable-alerts="alert"
		rss="rss"
	/>

	<backup
		path="backup/"
		validity="86400"
		timeout="86400"
	/>
</titan-configuration>

Agora acerte as permissões:

chown -R root:staff /var/www
find /var/www -type d -exec chmod 775 {} \;
find /var/www -type f -exec chmod 664 {} \;
chown -R www-data:staff /var/www/file
find /var/www/file -type d -exec chmod 755 {} \;
find /var/www/file -type f -exec chmod 644 {} \;

Seu sistema já está acessível pelo navegador.

Por fim, configure o sistema de scheduler jobs do Titan no CRON adicionando as seguintes linhas no arquivo ‘/etc/crontab‘:

0 3 * * * root /usr/bin/wget --no-check-certificate "https://pandora.cnxxx.embrapa.br/titan.php?target=schedule&hash=uma_ultima_hash_randomica&job=daily" -O /dev/null -o /dev/null
5 * * * * root /usr/bin/wget --no-check-certificate "https://pandora.cnxxx.embrapa.br/titan.php?target=schedule&hash=uma_ultima_hash_randomica&job=hourly" -O /dev/null -o /dev/null
* * * * * root /usr/bin/wget --no-check-certificate "https://pandora.cnxxx.embrapa.br/titan.php?target=schedule&hash=uma_ultima_hash_randomica&job=minutely" -O /dev/null -o /dev/null

Repare que é necessário corrigir o endereço URL da aplicação e corrigir o valor da hash colocando o valor setado na diretiva ‘hash‘ da tag ‘schedule‘ do arquivo ‘configure/titan.xml‘.

É imprescindível que o mod_rewrite do Apache esteja funcionando corretamente. Para verificar, tente acessar o ‘titan.xml’ por meio do navegador (p.e., https://pandora.cnxxx.embrapa.br/configure/titan.xml).

Configurando o LDAP

Existem 5 tipos de usuários (atores do sistema) configurados no Pandora:

  • Comunidade Externa: Qualquer usuário que se registre no Pandora por meio do cadastro público;
  • Comunidade Interna: Terceirizados, estagiários, bolsistas ou qualquer pessoa que atue na Unidade mas não seja um funcionário;
  • Assistente;
  • Analista; e
  • Pesquisador.

A definição de cada um destes tipos é configurada no arquivo ‘configure/security.xml‘:

<?xml version="1.0" encoding="ISO-8859-1"?>
<security-mapping>
	<user-type
		label="External Community | pt_BR: Comunidade Externa"
		name="security.community"
		type="public"
		form-modify="modify.xml"
		form-register="register.xml"
		profile="system.home/profile"
		ldap="community"
		register-on-logon="true"
	/>

	<user-type
		label="Internal Community | pt_BR: Comunidade Interna"
		name="security.internal"
		type="private"
		form-modify="modify.xml"
		form-register="register.xml"
		profile="system.home/profile"
		ldap="internal"
	/>

	<user-type
		label="Assistant | pt_BR: Assistente | es_ES: Asistente"
		name="security.assistant"
		type="private"
		form-modify="modify.xml"
		form-ldap="ldap.xml"
		profile="system.home/profile"
		ldap="assistant"
	/>

	<user-type
		label="Analyst | pt_BR: Analista | es_ES: Analistas"
		name="security.analyst"
		type="private"
		form-modify="modify.xml"
		form-ldap="ldap.xml"
		profile="system.home/profile"
		ldap="analyst"
	/>

	<user-type
		label="Researcher | pt_BR: Pesquisador | es_ES: Investigador"
		name="security.researcher"
		type="private"
		form-modify="modify.xml"
		form-ldap="ldap.xml"
		profile="system.home/profile"
		ldap="researcher"
	/>
</security-mapping>

Cada um destes tipos representa grupos de usuários da Unidade (com dados e permissões distintas). Na ocasião da implantação do Pandora na Gado de Corte, o LDAP foi reestruturado em grupos (organizational unit) de forma a seguir esta mesma organização (veja a figura abaixo). Caso não queira integrar o Pandora ao LDAP na sua Unidade, simplesmente apague as linhas em destaque mostradas acima, ou seja, os atributos ‘ldap‘ das tags ‘user-type‘ do arquivo ‘configure/security.xml‘.

O mapeamento dos tipos de usuários definidos no ‘configure/security.xml‘ com o LDAP da Unidade é feito no arquivo ‘configure/ldap.xml‘. Assim, em cada atributo ‘ldap‘ da tag ‘user-type‘ do ‘security.xml‘ há uma tag de configuração correspondente no arquivo ‘ldap.xml‘:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ldap-mapping>
	<ldap
		id="community"
		host="ldap.cnpgc.embrapa.br"
		user="root"
		password=""
		dn="dc=cnpgc,dc=embrapa,dc=br"
		ou="community,ou=people"
		gid="100"
		update="true"
		password-hash="md5">
		<class name="sambaSamAccount" />
		<class name="inetOrgPerson" path="local/ldap/inetOrgPerson/" />
		<class name="qmailUser" path="local/ldap/qmailUser/" />
	</ldap>

	<ldap
		id="internal"
		host="ldap.cnpgc.embrapa.br"
		user="root"
		password=""
		dn="dc=cnpgc,dc=embrapa,dc=br"
		ou="internal,ou=people"
		gid="100"
		update="true"
		password-hash="md5">
		<class name="sambaSamAccount" />
	</ldap>

	<ldap
		id="assistant"
		host="ldap.cnpgc.embrapa.br"
		user="root"
		password=""
		dn="dc=cnpgc,dc=embrapa,dc=br"
		ou="assistant,ou=people"
		gid="100"
		update="true"
		password-hash="md5">
		<class name="sambaSamAccount" />
	</ldap>

	<ldap
		id="analyst"
		host="ldap.cnpgc.embrapa.br"
		user="root"
		password=""
		dn="dc=cnpgc,dc=embrapa,dc=br"
		ou="analyst,ou=people"
		gid="100"
		update="true"
		password-hash="md5">
		<class name="sambaSamAccount" />
	</ldap>

	<ldap
		id="researcher"
		host="ldap.cnpgc.embrapa.br"
		user="root"
		password=""
		dn="dc=cnpgc,dc=embrapa,dc=br"
		ou="researcher,ou=people"
		gid="100"
		update="true"
		password-hash="md5">
		<class name="sambaSamAccount" />
	</ldap>
</ldap-mapping>

Se você quiser que o usuário possa atualizar seus próprios dados e os gestores do sistema possam alterar os dados de qualquer usuário do LDAP utilizando o Pandora é necessário inserir a senha do administrador do LDAP no atributo ‘password‘ da tag ‘ldap‘.

Configurações Adicionais na Interface da Aplicação

Neste ponto seu sistema já está rodando corretamente. São necessárias, no entanto, ajustar algumas configurações adicionais na própria ferramenta. Para isso, acesse o PANDORA com o login e senha de administrador. Vá em “Menu » Configurações do Sistema &raquo Configurações Gerais“. Você verá algo semelhante ao formulário abaixo:

Clique em “Editar” e altere os campos, conforme explicitado abaixo:

  • Módulo de Estágio » Antecedência de Solicitação (em dias): Antecedência mínima, em dias, para candidatar-se a uma oportunidade de estágio.
  • Módulo de Estágio » Período Mínimo (em dias): Período mínimo em dias de duração do estágio.
  • Módulo de Estágio » Alterar o Tipo do Usuário: Configura o sistema para alterar o tipo do usuário quando o estágio tiver início.
  • Módulo de Estágio » Restringir a Data de Início: Configura o sistema para que as datas de ínicio do estágio sejam sempre na primeira ou terceira segunda-feira de cada mês.
  • Módulo de Estágio » e-Mail para Requisição do Correio Corporativo: e-Mail para onde deve ser encaminhada a requisição de criação de e-mail corporativo para estagiários e bolsistas quando do ínicio da vigência do contrato.
  • Página pública institucional de empregados » Logo da Unidade: Resolução recomendada de 207 pixels de largura por 100 pixels de altura.
  • Página pública institucional de empregados » Link do Logo da Unidade: URL para a qual o visitante será remetido ao clicar no logo da Unidade.

Pacotes Adicionais

Caso deseje utilizar o Módulo de Gestão da Qualidade da mesma forma que este módulo é utilizado na Embrapa Gado de Corte, será necessário instalar o pacote ‘swf-tools‘ e o ‘pdf2swf‘. Para isso, siga os seguintes passos:

su -
aptitude update
aptitude install swftools

cd ~/
wget http://swftools.org/swftools-2013-04-09-1007.tar.gz
tar -zxvf swftools-2013-04-09-1007.tar.gz
wget http://www.ijg.org/files/jpegsrc.v7.tar.gz
tar -zvxf jpegsrc.v7.tar.gz
wget http://downloads.sourceforge.net/project/freetype/freetype2/2.3.12/freetype-2.3.12.tar.gz
tar -zvxf freetype-2.3.12.tar.gz

cd ~/jpeg-7/
./configure
make
make install

cd ~/freetype-2.3.12
rm -f config.cache
sudo ranlib /usr/local/lib/libjpeg.a
sudo ldconfig /usr/local/lib
sudo LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
sudo make
sudo make install

cd ~/swftools-2013-04-09-1007
sudo LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
sudo make
sudo make install

Veja mais informações em:

http://designbye.wordpress.com/2010/02/23/installing-swftools-and-pdf2swf-on-ubuntu-linux/

Backup da Aplicação

Para assegurar que não haverá perda de dados em caso de falhas, basta efetuar, periodicamente, o backup do banco de dados e dos arquivos de upload. Recomenda-se também salvar em alguma mídia os arquivos de configurações editados neste tutorial.

Para o backup do banco de dados, execute os comandos:

su - postgres
pg_dump -Fp -O -x pandora > /tmp/pandora.db.YYYYMMDD.sql
gzip pandora.db.YYYYMMDD.sql

Lembre-se de substituir o pósfixo ‘YYYYMMDD’ pelo ano, mês e dia, respectivamente. Grave o arquivo resultante em uma mídia ou storage de backup.

Para o backup dos arquivos de upload, faça:

tar -czf /tmp/pandora.file.YYYYMMDD.tar.gz /var/www/file/pandora/file
tar -czf /tmp/pandora.cache.YYYYMMDD.tar.gz /var/www/file/pandora/cache

O Titan Framework, utilizado na implementação no Pandora, também oferece uma funcionalidade para efetuar backup on demand. Esta funcionalidade está descrita na lista de discussão do framework. Caso tenha seguido na íntegra os passos de instalação descritos neste tutorial, o Pandora já estará apto para o uso desta funcionalidade.

Configurando os WebServices

O Pandora disponibiliza alguns WebServices para interação com outros sistemas da Unidade. Por exemplo, para divulgar na página da Unidade as oportunidades de estágio disponibilizadas no Pandora foi criado um WebService disponibilizado na pasta ‘ws‘. Já há uma implementação de um cliente que acessa este serviço disponível no repositório SVN. Faça checkout do seguinte caminho:

https://svn.cnpgc.embrapa.br/pandora/web/trainee/

Sinta-se a vontade para acoplar este código no portal de sua Unidade. Também é possível acoplá-lo, da forma que está, por meio de um ‘iframe‘ no portal da Unidade (já testado no Liferay, p.e.).

Importando Dados do IDEARE

Para que o sistema funcione corretamente é essencial que a árvore SEG de projetos da sua Unidade esteja carregada no banco de dados. Para fazer a importação destes dados do IDEARE, basta utilizar o ambiente de Business Intelligence da Embrapa, disponível em:

https://bi.sede.embrapa.br/

Há um documento Web Intelligence denominado ‘PANDORA.Importacao_de_projetos_SEG‘, do universo DPD – IDEARE, disponível na pasta pública da Gado de Corte:

Módulo de Eventos

Faça uma cópia deste documento para sua pasta privada. Abra o documento copiado e vá no botão SQL. Lá você encontrará a seguinte query:

SELECT
  substring (dw.dw_dpd.dm_planoacao.cd_seg, 1, 2) || '.' ||
  substring (dw.dw_dpd.dm_planoacao.cd_seg, 3, 2) || '.' ||
  substring (dw.dw_dpd.dm_planoacao.cd_seg, 5, 2) || '.' ||
  substring (dw.dw_dpd.dm_planoacao.cd_seg, 7, 3) || '.' ||
  substring (dw.dw_dpd.dm_planoacao.cd_seg, 10, 2) || '.' ||
  substring (dw.dw_dpd.dm_planoacao.cd_seg, 12, 2),
  dw_template.dm_submissao.ds_titulo_submissao,
  dw_template.dm_submissao.sg_submissao,
  dw_template.dm_submissao.nm_lider,
  dw_template.dm_submissao.nr_matricula_lider,
  dw_template.dm_submissao.nm_unidade_lider,
  dw_template.dm_submissao.dt_inicio_projeto,
  dw_template.dm_submissao.dt_inicio_projeto + cast(dw_template.dm_submissao.qt_meses_duracao || ' month' as interval),
  dw_template.dm_submissao.ds_resumo_projeto,
  case when dw_template.dm_submissao.id_submissao_planogerencial is not null
  then dw_template.dm_submissao.id_submissao_planogerencial else dw_template.dm_submissao.sk_submissao end,
  dw.dw_dpd.dm_planoacao.ds_titulo_planoacao,
  dw.dw_dpd.dm_planoacao.ds_planoacao,
  dw.dw_dpd.dm_planoacao.nr_matricula_responsavel,
  dw.dw_dpd.dm_planoacao.nm_responsavel,
  dw.dw_dpd.dm_planoacao.nm_instituicao_resp,
  case when dw.dw_dpd.dm_planoacao.in_concluido = '1' then 'sim' else 'não' end,
  dw.dw_dpd.dm_atividade_pa.ds_titulo_atividade ,
  dw.dw_dpd.dm_atividade_pa.ds_atividade,
  dw.dw_dpd.dm_atividade_pa.nr_mesinicio,
  dw.dw_dpd.dm_atividade_pa.nr_duracaomeses,
  case when dw.dw_dpd.dm_atividade_pa.in_concluido = '1' then 'sim' else 'não' end,
  dw.dw_dpd.dm_atividade_pa.nm_responsavel,
  dw.dw_dpd.dm_atividade_pa.nr_matricula_responsavel,
  dw.dw_dpd.dm_atividade_pa.nm_instituicao_resp,
  dw_template.dm_submissao.sg_unidade_lider,
  case when (login.cd_unidade in (139006,102004,104000,105007,106005,111005) or login.cd_unidade = dw_template.dm_submissao.cd_unidade_lider)
  then dw.dw_dpd.dm_planoacao.sg_instituicao_resp end,
  dw.dw_dpd.dm_atividade_pa.sg_instituicao_resp,
  dw_template.dm_submissao.sk_submissao
FROM
  (select cd_unidade from dw.dm_empregado where nm_login_bo = @variable('BOUSER'))  login, dw.dw_dpd.dm_atividade_pa
  RIGHT OUTER JOIN dw.dw_dpd.dm_planoacao ON (dw.dw_dpd.dm_atividade_pa.sk_planoacao=dw.dw_dpd.dm_planoacao.sk_planoacao)
  RIGHT OUTER JOIN dw_template.dm_submissao ON (dw.dw_dpd.dm_planoacao.sk_submissao=dw_template.dm_submissao.sk_submissao)
WHERE
  dw_template.dm_submissao.sg_unidade_lider = 'CNPGC' OR
  dw.dw_dpd.dm_planoacao.sg_instituicao_resp = 'CNPGC' OR
  dw.dw_dpd.dm_atividade_pa.sg_instituicao_resp = 'CNPGC';

Altere as referências à ‘CNPGC‘ (linhas em destaque) para a sigla da sua Unidade e salve. Agora execute a consulta.

Após executar, utilize a opção “Salvar no Meu Computador como » CSV (com opções)…“. Selecione o qualificador de texto como aspas duplas (“), o delimitador de colunas como ponto-e-vírgula (;) e o conjunto de caracteres como ‘Unicode (UTF-8)‘.

Para importar os dados do arquivo CSV gerado para do banco de dados do Pandora utilize o script disponível no repositório SVN no caminho ‘https://svn.cnpgc.embrapa.br/pandora/src/income_bi.php‘. A configuração deste arquivo é trivial, bastando alterar o caminho para o CSV e dos dados de conexão com o DB (linhas 5 a 11):

$_file = 'cnpxx.csv';

$_db_host = 'pandora';
$_db_port = '5432';
$_db_name = 'pandora';
$_db_user = 'pandora';
$_db_pass = '';

Importante! Este arquivo utiliza transações e, ao final, nas linhas 368 e 369, há os comandos de ‘$db->commit ();‘ e ‘$db->rollBack ();‘. Por padrão, o ‘commit‘ está comentado. Recomenda-se, por segurança, executar o script desta forma. Caso não retorne erros, comente ‘rollBack‘ (linha 369) e descomente o ‘commit‘ (linha 368) e execute novamente o script para que os dados sejam de fato importados.

Vale citar que este arquivo é autônomo, ou seja, não utiliza nenhum outro arquivo do Pandora. Assim, você pode executá-lo diretamente de seu servidor LAMP local, desde que haja conexão com o DB de produção.

Você pode repetir este procedimento sazionalmente (p.e., uma vez por mês). Este script sempre atuará na base inserindo novos projetos e atualizando os existentes. Atualmente há um erro no cliente SMTP da ferramenta de Web Intelligence (já reportado à equipe responsável). Quando este erro for corrigido o procedimento de atualização da árvore SEG do Pandora será automatizado.

Importando Dados do SIDE

Também é possível (e necessário) importar a árvore do Plano Diretor da Unidade (PDU) para o Pandora para poder utilizar o Módulo de Soluções Técnológicas. Para isto, deve-se acessar o ambiente de Business Intelligence novamente e fazer uma cópia do documento denominado ‘PANDORA.Importacao_do_PDU‘, do universo DPD – SIDE, disponível na pasta pública da Gado de Corte.

Atualize a consulta no documento supracitado e exporte em CSV conforme descrito na importação de projetos. É necessário inserir manualmente na tabela ‘technology.pdu‘ do DB do Pandora os PDUs. Desta forma os Objetivos Estratégicos, Objetivos Específicos (Contribuições) e as Metas serão importados do CSV para o PDU inserido. No caso da Gado de Corte os PDUs foram adicionados por meio das seguintes querys:

INSERT INTO technology.pdu (id, title, bi, unity, year_start, year_end, horizon, _user)
VALUES (2, 'IV Plano Diretor da Embrapa Gado de Corte', 'IV - 2008 a 2011', 1, '2008', '2011', '2023', 3000);

INSERT INTO technology.pdu (id, title, bi, unity, year_start, year_end, horizon, _user)
VALUES (1, 'III Plano Diretor da Embrapa Gado de Corte', 'III - 2004 a 2007', 1, '2004', '2007', '2019', 3000);

Repare que o valor na coluna ‘bi‘ deve corresponder com exatidão à coluna ‘Plano Diretor (PDU)‘ do CSV.

Agora utilize o script disponível no repositório SVN no caminho ‘https://svn.cnpgc.embrapa.br/pandora/src/income_pdu.php‘. Lembre-se de alterar a configuração no próprio arquivo.

Importante! Assim como na importação dos projetos do IDEARE, este arquivo também conta com duas linhas finais de ‘$db->commit ();‘ e ‘$db->rollBack ();‘. Por padrão, o ‘commit‘ está comentado. Recomenda-se, por segurança, executar o script desta forma. Caso não retorne erros, comente ‘rollBack‘ (linha 232) e descomente o ‘commit‘ (linha 231) e execute novamente o script para que os dados sejam de fato importados.

Este arquivo também é autônomo, ou seja, não utiliza nenhum outro arquivo do Pandora. Assim, você pode executá-lo diretamente de seu servidor LAMP local, desde que haja conexão com o DB de produção. Repita este procedimento sazionalmente para manter o PDU atualizado em sua instância do Pandora.