segunda-feira, 27 de fevereiro de 2012

ADempiere: Usuários


Após a instalação, muitas pessoas me procuram com dúvidas com relação as funcionalidades e no uso do ADempiere. Um dos primeiros passos para entender o funcionamento do Adempiere, é entender algumas questões com relação aos usuários do Adempiere.

O ADempiere tem um forte controle de acesso, onde as permissões às funcionalidades são definidas por grupos de usuários e empresas (lembrando que o Adempiere é multi-empresa).

Com a instalação inicial são criados 4 usuários:

  • System (senha: System): Tem permissão de administração do sistema mas não tem acesso aos dados das empresas. Para criação de janelas, tabs e campos, esse usuário deve ser usado.

  • SuperUser (senha: System): Tem as mesmas permissões do usuário System mas também pode acessar dados das empresas.

  • GardenAdmin (senha: GardenAdmin): Usuário administrador da empresa GardenWorld, que é criada na instalação padrão do Adempiere. Pode criar usuários/grupos da empresa e definir permissões. Além do acesso às funcionalidades do Adempiere.

  • GardenUser (senha: GardenUser): Esse usuário tem acesso restrito às funcionalidades do sistema, dentro da empresa GardenWorld.

Como o Adempiere é bastante flexível, as permissões podem ser definidas de várias formas, criando-se diversos grupos/usuários e definindo-se as permissões relacionadas

Então, se deseja olhar as funcionalidades do sistema, use os usuários GardenAdmin e GardenUser. Para acesso a administração do sistema, use os usuários System e SuperUser.

Quer aprender mais? Acesse http://cursoadempiere.conceptia.com.br

sexta-feira, 24 de fevereiro de 2012

ADempiere: instalar no Debian/Ubuntu

O processo de instalação do ADempiere (e ADempiere LBR) no Debian e derivados é bem simples. Mas antes de dar sequência:

1) Já instalou alguma coisa antes no Debian/Ubuntu?
2) Entende de comandos básicos de shell para Debian/Ubuntu?
3) Sabe usar apt-get?
4) Sabe usar sudo ou su?
5) Sabe usar o nano ou vi ou pico?

Se você respondeu não a qualquer uma das perguntas anteriores ou não faz ideia do que se trata, considere:

1) Contratar um profissional com conhecimento básico em Linux E/OU
2) Aprenda sobre os conceitos acima (extenso material no Google)

Nada impede de seguir os passos adiante mas digamos que sem os pré-requisitos acima, a instalação pode ser um pouco mais complicada. Aí dependerá basicamente do quanto você quer tentar e/ou pesquisar.

Observações:

  • Os comandos abaixo podem ser diferentes dependendo da versão que você instalar de Java e PostgreSQL.
  • Em caso de erros, ler a mensagem de erro ajuda em 100% dos casos

Vamos lá!

0) Abra o terminal

1) Instalar Java JDK: 
sudo apt-get install sun-java6-jdk
2) Instalar PostgreSQL: 
sudo apt-get install postgresql
3) Configurar arquivo postgresql.conf (não esquecer que fazer uma cópia de segurança do arquivo original): 
descomentar a linha listen_adresses e mudar os valores para ficar como 
listen_addresses = '*' 
4) Mudar o arquivo pg_hba.conf para aceitar conexões e  não exigir senha (não esquecer que fazer uma cópia de segurança do arquivo original)
As operações nesse item são necessárias porque geralmente na instalação padrão do PostgreSQL no Debian/Ubuntu o usuário postgres não vem com senha definida. Então primeiro abrimos o acesso para depois mudarmos a senha. 

Uma outra opção (mais fácil até) seria fazer o login como o usuário postgres na máquina e entrar no banco. Se usar essa opção, ignore as ações 4.1 a 4.4
root@fernando:/home/curso# su postgres
postgres@fernando:/home/curso$ psql
psql (8.4.11)
Digite "help" para ajuda.
postgres=# \q

4.1) mudar linha 
local   all         postgres                          ident
para 
local   all         postgres                          trust
4.2) mudar linha 
local   all         all                          ident
para 
local   all         postgres                          trust
4.3 mudar linha
host    all         all         127.0.0.1/32          md5
para
host    all         all         127.0.0.1/32          trust
4.4 Adicionar linha (apenas se quiser adicionar acesso de qualquer máquina de qualquer IP ao banco de dados)
host    all         all         0.0.0.0/0          trust 
Obs: mais adiante mudaremos essas opções de trust para md5

5) Reiniciar o banco
/etc/init.d/postgresql restart
6) Mudar senha do usuário postgres

psql -U postgres template1
#alter role postgres with password 'suasenha';
\q (para sair)

7) Criar usuário adempiere (pelo prompt):
createuser -U postgres -P adempiere 
Obs: deixar o usuário adempiere como superuser

8) Criar linguagem plpgsql no banco (pelo prompt)
createlang -U postgres plpgsql template1
Obs: em algumas distribuições pode ser que esse comando não seja necessário

9) Criar banco adempiere (pelo prompt)
createdb -U adempiere adempiere
10) Importar dump do LBR (pelo prompt)
psql -U adempiere -d adempiere -f arquivodump
Obs: em arquivodump indicar o nome e caminho completo do arquivo do dump do ADempiere.

11) Descompactar o ADempiere (se for o ADempiere 3.6.0 , é o arquivo Adempiere_360LTS.zip) na pasta que desejar instalar 
usualmente na / ou /usr/local ou /opt

root@fernando:/# unzip Adempiere_360LTS.zip 

12) Copiar o arquivo do LBR
copiar o arquivo customization.jar para a pasta lib da pasta do ADempiere
cp /home/curso/Downloads/customization.jar /Adempiere/lib
Obs: o comando acima supõe que o customization.jar está na pasta Downloads e que o ADempiere foi descompactado na pasta /.

Obs2: a pasta ADempiere deve estar com as permissões de execução. Na dúvida execute 
chmod -R 755 /Adempiere
13) Executar o instalador e preencher os campos que aparecem na janela(supondo que está instalado no /usr/local)

13.1) Com Gerenciador Gráfico

cd /usr/local/Adempiere
./RUN_setup.sh
13.2) Sem gerenciador gráfico

Copie no diretório raiz do ADempiere o seguinte arquivo:
root@fernando:/Adempiere# cp AdempiereEnvTemplate.properties AdempiereEnv.properties
Você deve editar esse segundo arquivo e alterar os parâmetros de acordo com seu ambiente.

Depois de alterar os parâmetros execute o instalador:
root@fernando:/Adempiere# ./RUN_silentsetup.sh
14) Mudar o arquivo pg_hba.conf para aceitar conexões de qualquer IP e exigir senha: 
Mudar todas as linhas de onde estiver trust para md5. Deve ficar mais ou menos assim (exemplo da minha máquina):

# Database administrative login by UNIX sockets
local   all         postgres                          trust
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all         0.0.0.0/0          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
15) Reiniciar o banco (pelo prompt)
/etc/init.d/postgresql restart

16) Testar o Servidor de aplicação (pelo prompt)

Inicie o servidor de aplicação
root@fernando:/Adempiere/utils# ./RUN_Server2.sh
Ao final do processamento deve aparecer uma mensagem como


12:37:10,143 INFO  [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 1m:34s:336ms
17) Usar

Acesse o endereço no browser conforme o que foi configurado na instalação (http://ip-host:porta/). No nosso caso foi
http://fernando:8088/
O resultado tem que ser algo como:




Agradecimentos a Peter Fill pela revisão.










quinta-feira, 23 de fevereiro de 2012

ADempiere: Rede

Como falado em posts anteriores, o ADempiere funciona no modo cliente-servidor. Obviamente que se tudo (aplicação cliente e servidor) é executado na mesma máquina, a preocupação com a rede é minimizada. Mas se estamos pensando em uma estrutura mais usual, no qual podemos ter uma máquina hospedando a aplicação servidora e mais umas duas máquinas com a aplicação cliente, a rede é algo fundamental.

No post anterior mostramos que a importância do banco de dados para o ADempiere vai além de ser um repositório de dados. Por isso, a comunicação da aplicação cliente com o servidor é muito mais frequente do que muitas aplicações. Dessa forma, uma estrutura de rede tem que ser a mais otimizada possível. Já vi lugares em que empresas tinham a falsa impressão de que para a aplicação funcionar de maneira adequada bastaria investir em um servidor potente. Mesmo que a aplicação seja acessada apenas via browser (ou seja, tudo sendo executado no servidor) uma rede com boas condições ainda é fundamental.

Pense num caso mais simples: imagine que sua empresa usa uma planilha que está compartilhada em rede. Ou seja, o arquivo da planilha está no servidor e você abre-a em sua máquina através de um compartilhamento de rede. Se a rede estiver lenta por qualquer motivo, o acesso a planilha ficará prejudicado, concorda? Pois é, se para uma planilha já é assim, imagine um ERP com as suas várias transações?

Muitas vezes, um usuário pode avaliar uma aplicação negativamente porque ela está lenta. Claro que um usuário não vai avaliar se a lentidão é causada pela lentidão na rede, por um cabo malfeito ou uma rede sem fio estruturada de forma errada. Para o usuário é aplicação que é ruim. Ele vai comparar com aquela planilha que está gravada na máquina dele e que funciona corretamente, sem lentidão.

Por isso, em qualquer projeto de implantação, a rede deve ser analisada em detalhes para que problemas alheios ao ADempiere não prejudiquem o uso da aplicação e o projeto de implantação.

Quer aprender mais? Acesse http://cursoadempiere.conceptia.com.br

terça-feira, 21 de fevereiro de 2012

ADempiere: Banco de Dados

Como uma aplicação de software em geral, o banco de dados é também fundamental ao ADempiere. No entanto, a relação da aplicação com o banco de dados talvez seja mais profunda do que outras aplicações, como explicarei mais adiante. Antes vale a pena comentar sobre o histórico do ADempiere.

O sistema original, Compiere, foi desenvolvido por um ex-funcionário da Oracle. Segundo algumas publicações, Jorg Janke tinha um  cargo de liderança na Oracle. Independente disso, o fato do pai da aplicação ter saído da empresa responsável pelo principal sistema gerenciador de banco de dados do mundo talvez explique essa relação da aplicação com o banco de dados.

Apenas das várias melhorias e novos módulos introduzidos no ADempiere, o core da aplicação ainda é parecidíssimo com o Compiere. E nem poderia ser diferente visto a grande ferramenta que o Compiere é. Algumas pessoas podem questionar de quais funcionalidades estamos falando. Mas na verdade me refiro ao fato de que a própria aplicação é construída por ela mesma, na maior parte das funcionalidades. E aí está a principal ligação do ADempiere com o banco de dados.

Além dos dados de transações, como pedidos, clientes, produtos, etc, o banco de dados da aplicação contém definições da própria aplicação. Por exemplo: todas as janelas (não formulários, mas explicarei a diferença futuramente) são definidas dentro de tabelas do banco de dados. Isso quer dizer que cada campo e suas características (tipo, tamanho, se é obrigatório ou não, etc) é definido como um registro do banco de dados.

Isso vale para os demais elementos do sistema, como janelas, relatórios, abas, tipos de dados, etc. A grande sacada do JJ foi criar uma aplicação que monta as janelas dinamicamente a partir do que está definido no banco de dados. Para quem conhece banco de dados, recomendo uma olhada nas tabelas AD_Window, AD_Tab, AD_Field, por exemplo.

Por conta dessa relação com o banco de dados, fica fácil perceber a importância de se ter um banco de dados que seja rápido em um servidor igualmente rápido. Além de uma rede interna (ou externa se o banco de dados estiver localizado fora) bem rápida.

Claro que não entro do mérito de PostgreSQL ou Oracle. Ou do recém incluído MySQL. Independente  do gerenciador de banco de dados, uma administração eficiente do banco de dados é fundamental para bom uso da aplicação.

Quer aprender mais? Acesse http://cursoadempiere.conceptia.com.br

segunda-feira, 13 de fevereiro de 2012

Curso ADempiere em março!


A Conceptia abriu uma turma do treinamento de ADempiere - Uso no mês de março. Esse curso será realizado em São Paulo.

Esse curso é destinado aqueles que desejam aprender a usar e implantar o ADempiere. Não há pré-requisitos técnicos para os alunos que farão esse curso.

Como novidade dessa turma, além das 24 hs de treinamento presencial, os alunos terão grátis mais 8 horas de consultoria virtual, que poderão ser utilizadas tanto para tirar dúvidas no ADempiere bem como apoio no desenvolvimento do seu projeto de implantação.

Inscrições e Maiores informações: http://cursoadempiere.conceptia.com.br

ADempiere: Servidor de Aplicação

O servidor de aplicação do ADempiere é um elemento importante no ADempiere. Ele é instalado quando é executado o RUN_Setup.sh (ou bat, se Windows) e tem as funções principais:

  • Acesso Web
  • Download da Versão Client
  • Usar Versão Client Java WebStart
  • Processamento Contabilidade
  • Gerenciamento de Processos
  • Relatórios Jasper
Cada processo só vai funcionar corretamente com o servidor de aplicações iniciado (executar utils/RUN_Server2.sh - ou bat) Falaremos de cada um a seguir:


Acesso Web
Além da versão que pode ser instalada na estações, o ADempiere também pode ser acessado via browser. Com isso não é necessário que nada seja instalado na estação, apenas obviamente, ter acesso a rede.

A vantagem de uso da versão Web é que tudo é processado pelo servidor, assim não é necessário ter grandes configurações de hardware nas estações.

Download da Versão Client
Considero a função menos importante do servidor de aplicação, visto que para instalar nas estações o recomendado é a versão com Java WebStart. Mesmo assim, em alguma situação pode ser que a versão com WebStart não sirva e por isso o download da versão client para ser instalada manualmente se faz necessário.

Usar Versão Client Java WebStart 
Função importante e necessária para instalar o ADempiere nas estações. A vantagem dessa versão é que a estação não precisa ser atualizada automaticamente. Quando a aplicação for iniciada na estação, há uma verificação se no servidor há uma versão mais nova. Caso exista, ocorre a atualização automática.

Processamento Contabilidade
Os lançamentos contábeis só são efetuados com o servidor de aplicação iniciado. Assim, se contabilidade é fundamental na sua implantação, ter o servidor de aplicação rodando é requisito fundamental.


Gerenciamento de Processos
Imagine que você necessite de um processo que todo dia de manhã verifique os aniversariantes do dia e envie um e-mail de parabéns? Essa execução de processos agendamentos (bem como acompanhamento do mesmo) é feita pelo servidor de aplicação.

Relatórios Jasper
Os relatórios que são feitos usando o JasperReports precisam estar acessíveis para as estações. Existem algumas estratégias e o uso do servidor de aplicação é uma delas.

Como pode perceber existem várias funcionalidades do servidor de aplicação do ADempiere. Embora para funcionar a maior parte das funcionalidades ele não seja necessário, é importante ter sempre o servidor iniciado.

Quer aprender mais? Faça o curso conosco: http://cursoadempiere.conceptia.com.br