1 Customizando o Fusion. 1.1 Conhecendo os principais objetos do Fusion NeoObject InstantiableEntityInfo

Tamanho: px
Começar a partir da página:

Download "1 Customizando o Fusion. 1.1 Conhecendo os principais objetos do Fusion. 1.1.1 - NeoObject. 1.1.2 - InstantiableEntityInfo"

Transcrição

1

2 Sumário 1 Customizando o Fusion Conhecendo os principais objetos do Fusion NeoObject InstantiableEntityInfo EntityWrapper PersistEngine Persistindo os dados em um formulário Recuperando os dados de um formulário NeoUser Desenvolvendo adapters para Workflows Incluindo adapters no modelo do processo Exemplo de adapters de Workflow Persistindo dados em uma tabela externa Utilizando o Agendador de Tarefas Exemplo de Adapter para o Agendador de Tarefas Importador Simplificado Bloco Try...Catch Geração de Log Atividade Envio - Customizando Modelo de Exemplo de Modelagem Fluxo com Atividade de Envio de Exemplo de Modelo de Ferramentas e Utilitários Visualizando a estrutura de dados do formulário com dumpeformtree Visualizando os dados de um Objeto com dumpneoobject Habilitando log seletivo Consultando a base com SQL Visualizando os usuários online com activeusers... 23

3 1 Customizando o Fusion O Fusion ECM Suite foi desenvolvido pensando-se em escalabilidade. Como consequência cada contexto do Fusion está preparado para receber novas funcionalidades, portanto tudo que o produto padrão não contemple, pode ser desenvolvido como customização através do uso de Adapters Java. Para desenvolver adapters é necessário um ambiente de desenvolvimento com o Fusion instalado. O ambiente utilizado na Neomind é o Eclipse IDE. Também é essencial o conhecimento da linguagem de programação Java, especificamente no contexto de desenvolvimento de aplicações WEB. 1.1 Conhecendo os principais objetos do Fusion NeoObject NeoObject é o objeto mais genérico no Fusion, todos os outros objetos extendem ele. Para obter a Id de um Objeto utilize o método getneoid(). Também as questões de segurança do fusion estão associadas a este objeto, vários métodos de validações de segurança são invocados a partir do NeoObject InstantiableEntityInfo Entidades são classes que mapeiam e representam uma tabela no banco de dados. Para obter a instância de uma entidade, um objeto do tipo InstantiableEntityInfo deve ser criado para representá-la. Para criarmos uma instância de uma entidade usamos o método createnewentityinstance(string entityname) da classe AdapterUtils. O parâmetro do método é um objeto do tipo String que será o nome da entidade (formulário ou tabela) criado no Fusion. Lembrando que o formulário pode ser dinâmico ou externo. Este objeto é posteriormente passado como argumento dos métodos getobject()e getobjects() da classe PersitEngine, que realizam a busca na tabela(formulário). O código abaixo exemplifica o uso da entidade para mapear a tabela(formulário) Produto. O formulário Produto pode tanto ser um formulário dinâmico criado no banco do Fusion quanto uma tabela externa pertencente a um sistema legado. Se Produto for um formulário externo, a Fonte de Dados primeiramente deve ser criada no Fusion, e posteriormente o formulário externo, sendo que o Nome do formulário será o argumento passado para o método createnewentityinstance; // NeoObject é inicializado com uma instâcia que da entidade Produto NeoObject produtofusion = AdapterUtils.createNewEntityInstance("Produto");

4 EntityWrapper Wrappers são classes com o papel de encapsular as Entidades, abstraindo sua interface simplificando as operações de leitura e escrita dos dados no banco. No Fusion o EntityWrapper é a classe que encapsula a entidade. A tabela abaixo descreve os métodos mais usados do EntityWrapper: Método findfield findvalue findvalues findgenericvalue Descrição Retorna um Wrapper para manipulação do campo se o campo existir, senão retorna null Retorna um objeto com o valor do campo Retorna uma coleção de objetos Retorna um objeto genérico com o valor do campo No código abaixo primeiro criamos uma instância da entidade Produto e atribuímos ela a um NeoObject que representará a tabela no banco, em seguida embrulhamos ela com um wrapper instanciando a classe EntityWrapper passando para o construtor desta o argumento NeoObject contendo a entidade, encapsulando assim sua complexidade, agora todas operações de leitura e escrita no banco serão realizados através do objeto wrapper. Este método simplifica as operações de banco escondendo os detalhes de relacionamentos entre tabelas que serão controlados pelo Hibernate. // NeoObject é inicializado com uma instâcia da entidade Produto NeoObject produtofusion = AdapterUtils.createNewEntityInstance("Produto"); EntityWrapper wrapperprodutofusion = new EntityWrapper(produtoFusion);

5 PersistEngine A classe PersistEngine, existente no núcleo do Fusion, centraliza toda a comunicação com o banco de dados. É nela que os principais métodos de obtenção e atribuição de valores existentes no banco são implementados. A tabela abaixo descreve alguns dos métodos mais usados do PersistEngine: Método getconnection persit getobject getobjects Descrição Retorna um objeto de conexão para a fonte de dados. Recebe uma String com o nome da fonte de dados como parâmetro. Persiste os dados no banco, recebe como parâmetro um objeto que referencia a entidade. Retorna a instância de um objeto. Recebe como parâmetro um objeto classe. Retorna uma lista ou coleção de instâncias de objetos. Além do objeto representando a entidade os métodos também podem ter como parâmetro filtros, assim o resultado retornado será uma instância específica ou um subconjunto de instâncias de acordo com os critérios definidos pelos filtros Persistindo os dados em um formulário No exemplo abaixo, foi criado um formulário dinâmico com o nome de Produto com dois campos cujos nomes são código e descricao. Depois incluímos um registro no formulário utilizando o wrapper e por último persistimos o registro usando o método persit da classe PesistEngine. //instancia objeto no fusion e seta valores NeoObject produtofusion = AdapterUtils.createNewEntityInstance("Produto"); // cria wrapper para abstrair a Entidade que representa eduproduto EntityWrapper wrapperprodutofusion = new EntityWrapper(produtoFusion); // Atribui valores a variáveis locais String numeroproduto = AFR 233 ; String descricao = Montain Bike ; //Usa o wrapper para atribuir os valores aos campos wrapperprodutofusion.findfield("codigo").setvalue(numeroproduto); wrapperprodutofusion.findfield("descricao").setvalue(descricao); //persistindo os dados no banco PersistEngine.persist(produtoFusion);

6 Normalmente os passos para Ler/Escrever em formulários são : 1- Crie uma entidade para representar o formulário (tabela) //instancia objeto no fusion e seta valores NeoObject produtofusion = AdapterUtils.createNewEntityInstance("Produto"); 2- Crie um wrapper para encapsular a entidade // cria wrapper para abstrair a Entidade que representa eduproduto EntityWrapper wrapperprodutofusion = new EntityWrapper(produtoFusion); 3- Use o wrapper para escrever/ler/alterar os dados no banco // Atribui valores a variáveis locais String numeroproduto = AFR 233 ; String descricao = Montain Bike ; //Usa o wrapper para atribuir os valores aos campos wrapperprodutofusion.findfield("codigo").setvalue(numeroproduto); wrapperprodutofusion.findfield("descricao").setvalue(descricao); 4- Use o mecanismo de persistência do hibernate para persistir/remover os dados //persistindo os dados no banco PersistEngine.persist(produtoFusion); Recuperando os dados de um formulário O código abaixo exemplifica a recuperação dos registros em um formulário. Através do método getobjects os registros encontrados no formulário Produto são carregados para dentro de uma lista de objetos tipo NeoObject. Em seguida usamos um looping for para percorrer a lista usando um iterador percorremos cada registro até o final da lista, note que utilizamos um wrapper para para realizar a operação sobre a entidade (tabela), o método findfield retorna o campo do objeto e o método getvalue traz o valor do campo. No final usamos a classe System para mostrar os valores no console a cada iteração na lista. List<NeoObject> listaproduto = (List<NeoObject>) PersistEngine.getObjects(AdapterUtils.getEntityClass("Produtos")); for(neoobject produto : listaproduto) //dados eform externo EntityWrapper wrapperprodutos = new EntityWrapper(produto);

7 String codigo = (String) wrapperprodutos.findfield("codigo").getvalue(); String descricao = (String) wrapperprodutos.findfield("descricao").getvalue(); //mostra valores dos campos System.out.println(codigo+"\n"); System.out.println(descricao); //remove objeto PersistEngine.remove(produtoFusion); NeoUser A classe NeoUser representa a abstração de um usuário do sistema. Ela é utilizada quando uma ação específica a um usuário ou grupo de usuários deve ser realizada. Através dela, uma referência ao usuário atual do sistema é obtida, retornando um objeto, que pode ser utilizado em diversas ocasiões, como na verificação do papel do usuário. Para obter o usuário atual logado, utilize o código apresentado abaixo. // A variável user recebe o objeto que representa o usuário. NeoUser user = PortalUtil.getCurrentUser(); Para verificar o papel em que o usuário está inserido, é necessário criar o objeto que mantém a referência do usuário, conforme o código acima. O exemplo abaixo demonstra como verificar se o usuário atual está no papel Estagiário. boolean isestagiario = user.isinrole(securitymanager.getinstance().getrole("estagiário")); Através da variável user, que representa o usuário logado, utiliza-se o método isinrole(). Este método, por fim, recebe um parâmetro contendo o nome do papel, neste caso, Estagiário. Se o usuário estiver neste papel, a variável isestagiario receberá true, caso contrário, false.

8 2.2 Desenvolvendo adapters para Workflows Na fase de construção do Workflow algumas funcionalidades necessárias para automatizar o processo tais como integrações, validações, elementos de interface, etc. podem demandar o desenvolvimento de adapters de Workflow. Estes possuem características específicas dentro do contexto de Workflow, e devem implementar a classe AdapterInterface que possui dois métodos obrigatórios o método start() e o back(). Normalmente o código para os adapters de workflow é desenvolvido dentro destes dois métodos Incluindo adapters no modelo do processo Para incluirmos um adapter de workflow no processo, precisamos inclui-lo na modelagem. O adapter é uma atividade do tipo Script, para alterarmos a atividade para o tipo Script, clique na atividade, no ícone de atalho para o tipo de atividade escolha Script. Depois de alterado para o tipo Script a caixa de atividade mudará de cor, e também o Painel de Propriedades terá suas propriedades alteradas para o contexto de Script. No painel de propriedades preencha o campo Descrição, e no campo Tipo de Script deixe o valor padrão que é adapter, na propriedade Classe Java informe o namespace da classe Java desenvolvida. Muito cuidado com o namespace pois qualquer erro impedirá que o Adapter funcione.

9 A maneira mais segura de copiar o namespace no Eclipse é posicionar o cursor sobre o nome da classe e clicar com o botão direito, selecionar o item Copy Qualified Name, o Eclipse copiará para a área de transferência o namespace da classe. Cole na propriedade Classe Java no Painel de Propriedades. Assim a possibilidade de erros de digitação será anulada.

10 2.2.2 Exemplo de adapters de Workflow Persistindo dados em uma tabela externa public class CadastraPgtoERP implements public void start(task origin, EntityWrapper processentity, Activity activity) // TODO Auto-generated method stub StringBuffer sql = new StringBuffer(); sql.append("insert INTO produto"); sql.append(" (ProductID, Name, ProductNumber, Color, StandardCost, ListPrice, Size, Weight, SellStartDate,rowguide, ModifiedDate)"); sql.append(" VALUES(?,?,?,?,?,?,?,?,?, NEWID(), GETDATE() )"); Long productid = null; String name =null; String productnumber = null; String color = null; BigDecimal standadcost = null; BigDecimal listprice = null; String size = "45"; BigDecimal weight = new BigDecimal( ); GregorianCalendar sellstartdate = null; productid = (Long) processentity.findvalue("codigo"); name = (String) processentity.findvalue("nome"); productnumber = (String) processentity.findvalue("productnumber"); color = (String) processentity.findvalue("color"); standadcost = (BigDecimal) processentity.findvalue("cost"); listprice = (BigDecimal) processentity.findvalue("listprice"); sellstartdate =(GregorianCalendar) processentity.findvalue("sellstartdate"); Date x = new Date(sellStartDate.getTimeInMillis());//converte gregorian para Date Connection connection = PersistEngine.getConnection("Neo Produto"); PreparedStatement st = null; try connection.setautocommit(false); st = connection.preparestatement(sql.tostring()); st.setlong(1, productid); st.setstring(2, name); st.setstring(3, productnumber); st.setstring(4, color); st.setbigdecimal(5,standadcost); st.setbigdecimal(6, listprice); st.setstring(7, size); st.setbigdecimal(8, weight); st.setdate(9, x); st.executeupdate(); connection.commit(); catch (Exception e) e.printstacktrace(); throw new WorkflowException("Erro ao Salvar os dados "+e.getmessage()); finally try st.close(); connection.close(); catch (Exception e) e.printstacktrace();

11 3- Utilizando o Agendador de Tarefas O Agendador de Tarefas permite a execução de tarefas automaticamente de acordo com parâmetros temporais configurados previamente. Deste modo podemos gerar tarefas para sincronizar bancos, iniciar Workflows automaticamente, limpar logs, etc. As tarefas a serem executadas devem estar contidas em um adapter java, e devem implementar a interface CustomJobAdapter. O código a ser executado estará dentro do método execute. Para agendar uma tarefa clique em Novo, dê um nome e uma descrição para a tarefa, e defina o campo Habilitado para Sim. No campo Adapter informe o namespace da classe que será executada. Configure o Gatilho que executará a tarefa no painel Gatilho clique em Novo preencha os campos solicitados para repetir a execução agendada.

12 3.2 Exemplo de Adapter para o Agendador de Tarefas Importador Simplificado O código abaixo exemplifica a estrutura de um adapter para o agendador de tarefas. Neste exemplo os dados de uma tabela externa são importados para um formulário dinâmico do Fusion. public class ExemploAgendadorImportaDados implements public void execute(customjobcontext ctx) // TODO Auto-generated method stub List<NeoObject> listaproduto = (List<NeoObject>) PersistEngine.getObjects(AdapterUtils.getEntityClass("AdventureProdutos")); for(neoobject produto : listaproduto) //dados eform externo EntityWrapper wrapperprodutos = new EntityWrapper(produto); String descricao = (String) wrapperprodutos.findfield("name").getvalue(); String numeroproduto = (String) wrapperprodutos.findfield("productnumber").getvalue(); //instancia objeto no fusion e seta valores NeoObject produtofusion = AdapterUtils.createNewEntityInstance("Produto"); EntityWrapper wrapperprodutofusion = new EntityWrapper(produtoFusion); wrapperprodutofusion.findfield("codigo").setvalue(numeroproduto); wrapperprodutofusion.findfield("descricao").setvalue(descricao); //mostra valores dos campos a serem importados no console System.out.println(numeroProduto+"\n"); System.out.println(descricao); //persistindo objeto PersistEngine.persist(produtoFusion);

13 5 - Bloco Try...Catch Para manter um melhor controle da execução do código e otimizar o tratamento de erros, é importante que o código dos adapters seja inserido entre um ou mais blocos try...catch. A função deste bloco é isolar e tratar qualquer erro que ocorra no código, impedindo que este erro interrompa a execução de outra parte do código. O exemplo abaixo mostra um código simples de adapter. Primeiro, um campo é lido no workflow. Se o valor dele for diferente de Processo Judicial, o valor é alterado. Todo o código está envolvido no bloco try...catch e, caso um erro ocorra, uma mensagem é apresentada. public void start(task origin, EntityWrapper wrapper, Activity activity) try // início do bloco try String tipoprocesso = wrapper.findvalue( TipoProcesso ); if (!tipoprocesso.equals( Processo Judicial )) wrapper.findfield( TipoProcesso ).setvalue( Processo Judicial ); catch (Exception e) // fim do bloco try // Mensagem apresentada quando o erro ocorre System.out.println( Erro ao executar o código do adapter! ) 6 - Geração de Log A geração de logs é muito importante para realizar a manutenção do sistema. Quando um evento inesperado ocorre, é necessário que uma informação referente a ele seja gerada. Isto é feito através da classe LogFactory, que fornece os métodos necessários para se gerar o log do evento. O trecho de código abaixo reproduz a situação onde o valor de um campo denominado Versao é lido do e-form de um processo, através de um adapter, porém o nome do campo é passado de forma errada (Versaao), gerando um erro no Fusion que será gravado no log. //Criação do objeto log, utilizando o nome da classe atual private static final Log log = LogFactory.getLog(NomeDaClasse.class); public void start(task origin, EntityWrapper wrapper, Activity activity) try String versao = wrapper.findfield( Versaao ).getvalue(); catch (Exception e) log.error( Erro ao ler o campo Versao no e-form!,e);

14 7 Atividade Envio - Customizando Modelo de A comunicação é uma das áreas críticas dentro das organizações, mecanismos de notificação são extremamente úteis para que as metas sejam atingidas. No Fusion o envio de notificação por para as Atividades de Usuário é automático. No entanto, quando se trata de uma Atividade de Envio é necessário configurar o envio. Ao selecionar a Atividade de Envio na caixa de atividades ela mudará de cor e as propriedades de configuração serão alteradas para o Tipo Envio. Neste tipo de atividade a continuidade do fluxo não depende da execução da atividade para avançar. É utilizada como informativo para pessoas que não executam nenhuma tarefa no processo, mas precisam ser notificadas quando algum evento ou atividade acontece e também para notificar pessoas externas a organização, que não utilizam o Fusion. No Painel de Propriedades o campo Enviar para participante: Indica se o vai ser enviado para o participante da Raia. Se Sim o de notificação será enviado para os participantes da raia (usuário/papel/grupo). Se o valor de Enviar para Participante for Não o campo Enviar para deve ser preenchido com um campo do tipo Usuário/Papel/Grupo, ou tipo Texto quando os destinatários não forem usuários do Fusion. Neste caso os s dos destinatários devem ser separados por ponto e vírgula (;) e podem ser preenchidos em tempo de execução ou incluídos na Propriedade Valor Padrão do campo tipo Texto. Caso o deva ser enviado tanto para usuários do Fusion participantes da Raia e para pessoas que não utilizam o Fusion (parceiros de negócios). O valor do Campo Enviar para participante deve ser sim e o valor do campo Enviar para também deve ser preenchido.

15 Para que esta atividade funcione é necessário informar o Modelo do que será utilizado. Para isto, se faz necessário criar uma servlet java que renderizará o formatado. Através deste modelo poderemos informar no corpo do informações específicas da instância do processo. Por exemplo, o solicitante, data da solicitação ou qualquer campo que faça parte do formulário do processo, inclusive dados de formulários externos que sejam filhos do formulário do processo. O nome do modelo deve ser informado juntamente com o caminho em que se encontra no servidor na pasta de instalação do Fusion. No caso de modelo de o arquivo modelo deverá ser salvo na pasta mail. As imagens usadas no corpo do devem ser salvas na pasta imagens na pasta de instalação do Fusion. No exemplo abaixo foi informado o seguinte valor no campo Modelo do /mail/envia exemplo.jsp. Mais abaixo mostramos o código do arquivo envia exemplo.jsp.

16 7.1 Exemplo de Modelagem Fluxo com Atividade de Envio de No fluxo abaixo temos um exemplo simples do uso da Atividade de Envio. O fluxo inicia na tarefa Solicitar Inclusão Novo Produto solicitando a inclusão, em seguida é usado o componente de Decisão Paralela para dividir o fluxo notificando os participantes da Raia Notificados e ao mesmo tempo segue para aprovação. Na tarefa Aprovar Inclusão o gestor da área aprovará ou não a inclusão do novo produto, caso ele aprove, o fluxo seguirá para a tarefa Incluir Produto em seguida notificando os interessados. Caso o gestor não aprove, o fluxo seguirá para a atividade de notificação. Antes do final mais um componente de Decisão paralela é utilizado, neste caso para unir os dois fluxos novamente. Na atividade Notifica Solicitação a propriedade Enviar para participantes está com o valor Sim, e neste caso a notificação será apenas para os usuários participantes da Raia Na atividade Notifica Status Final o objetivo é notificar os participantes da Raia bem como, pessoas externas a organização, portando o campo Enviar para também está

17 configurado, neste caso com um campo do tipo Texto cujo Valor Padrão é uma lista de separado por ponto e virgula (;). 7.2 Exemplo de Modelo de O código abaixo exemplifica a criação do modelo de import="com.neomind.fusion.portal.portalutil"%> import="com.neomind.fusion.common.neoobject"%> import="com.neomind.fusion.persist.persistengine"%> taglib uri="/web-inf/mail.tld" prefix="mail"%> taglib uri="/web-inf/workflow.tld" prefix="wf"%> taglib uri="/web-inf/portal.tld" prefix="portal"%> import="java.util.*"%> import="java.sql.time"%> import="com.neomind.util.neoutils"%> import="com.neomind.fusion.entity.entitywrapper"%> import="com.neomind.fusion.workflow.activity"%> import="com.neomind.fusion.workflow.task"%> import="com.neomind.util.neocalendarutils"%> <% NeoObject obj = (NeoObject)request.getAttribute("Entity"); EntityWrapper wrapper = new EntityWrapper(obj); String processo = (String) wrapper.findvalue("wfprocess.model.name");//nome DO PROCESSO String codigo = (String)wrapper.findValue("wfprocess.code"); //CODIGO PROCESSO String codigoproduto = NeoUtils.safeOutputString(wrapper.findValue("codigo"));//CODIGO PRODUTO String descricao = NeoUtils.safeOutputString(wrapper.findValue("descricao"));// DESCRIÇÃO String observacao = NeoUtils.safeOutputString(wrapper.findValue("observacao"));// OBSERVÇÃO GregorianCalendar datasol = (GregorianCalendar) wrapper.findvalue("datasolicitacao");// PEGA A DATA NO FORMATO JAVA CALENDAR String datasolicitacaotexto = NeoCalendarUtils.fullDateToString(dataSol);//CONVERTE DATA PARA STRING String title= "Solicitação de Novo Produto" + " - " + codigo; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=iso " /> <portal:baseurl url="geturlpath" /> <base href="<%= PortalUtil.getBaseURL() %>" /> </head> <body bgcolor="#fff1d2"> <p><mail:title title='<%=title %>' /></p> <mail:img src="/imagens/cabecalho.jpg" width="768" height="124" /> <h3><u><%=codigo %> - <%=processo %></u></h3> <p> <strong>codigo Produto</strong> <%=codigoproduto%> </p> <p> <strong>descrição do Produto :</strong> <%=descricao%></p> <p> <strong>observação:</strong> <%=observacao%> </p> <p><strong>data Solicitação :</strong> <%=datasolicitacaotexto%></p> <mail:img src="/imagens/rodape.jpg" width="768" height="145" /> </body> </html>

18 Normalmente para criarmos um template de usamos os passos a seguir: 1 Importamos as classes necessárias import="com.neomind.fusion.portal.portalutil"%> import="com.neomind.fusion.common.neoobject"%> import="com.neomind.fusion.persist.persistengine"%> taglib uri="/web-inf/mail.tld" prefix="mail"%> taglib uri="/web-inf/workflow.tld" prefix="wf"%> taglib uri="/web-inf/portal.tld" prefix="portal"%> import="java.util.*"%> import="java.sql.time"%> import="com.neomind.util.neoutils"%> import="com.neomind.fusion.entity.entitywrapper"%> import="com.neomind.fusion.workflow.activity"%> import="com.neomind.fusion.workflow.task"%> import="com.neomind.util.neocalendarutils"%> 2- Usamos o método getattribute do Objeto Request para pegarmos os dados vindos do processo, assim teremos acesso aos dados preenchidos na atividade do processo através do argumento Entity que representa o formulário principal do processo. NeoObject obj = (NeoObject)request.getAttribute("Entity"); 3-Criamos um objeto wrapper para encapsular a entidade. EntityWrapper wrapper = new EntityWrapper(obj); 5- Atribuímos o valor dos campos provenientes do processo a variáveis locais realizando conversões de tipo quando necessário. Os valores passados para o método findvalue do objeto wrapper são os nomes dos campos do formulário do processo. String processo = (String) wrapper.findvalue("wfprocess.model.name");//nome DO PROCESSO String codigo = (String)wrapper.findValue("wfprocess.code"); //CODIGO PROCESSO String codigoproduto = NeoUtils.safeOutputString(wrapper.findValue("codigo"));//CODIGO PRODUTO String descricao = NeoUtils.safeOutputString(wrapper.findValue("descricao"));// DESCRIÇÃO String observacao = NeoUtils.safeOutputString(wrapper.findValue("observacao"));// OBSERVÇÃO GregorianCalendar datasol = (GregorianCalendar) wrapper.findvalue("datasolicitacao");// PEGA A DATA NO FORMATO JAVA CALENDAR String datasolicitacaotexto = NeoCalendarUtils.fullDateToString(dataSol);//CONVERTE PARA STRING String title= "Solicitação de Novo Produto" + " - " + codigo;

19 6- Formatamos o código HTML que será gerado pela Servlet, incluímos as variáveis locais dentro das tags jsp <% %> inseridas no código HTML para renderizar os valores do campos do processo no corpo do . <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=iso " /> <portal:baseurl url="geturlpath" /> <base href="<%= PortalUtil.getBaseURL() %>" /> </head> <body bgcolor="#fff1d2"> <p><mail:title title='<%=title %>' /></p> <mail:img src="/imagens/cabecalho.jpg" width="768" height="124" /> <h3><u><%=codigo %> - <%=processo %></u></h3> <p> <strong>codigo Produto</strong> <%=codigoproduto%> </p> <p> <strong>descrição do Produto :</strong> <%=descricao%></p> <p> <strong>observação:</strong> <%=observacao%> </p> <p><strong>data Solicitação :</strong> <%=datasolicitacaotexto%></p> <mail:img src="/imagens/rodape.jpg" width="768" height="145" /> </body> </html> A imagem abaixo ilustra como ficaria o padrão de acordo como o código acima:

20 8 Ferramentas e Utilitários O Fusion traz um conjunto de ferramentas administrativas em forma de servlets que é extremamente útil para utilização avançada do ambiente. Estas ferramentas facilitam muito o processo de construção de workflows e customizações do sistema. Vamos ver as principais ferramentas e sua utilização prática. 8.1 Visualizando a estrutura de dados do formulário com dumpeformtree Este servlet mostra a estrutura do formulário no formato de árvore, facilitando a visualização de todos os campos e sua estrutura. Para utilizarmos o dumpeformtree precisamos do perfil administrador, só este possui acesso as ferramentas de administração. Para carregarmos este servlet basta informarmos no Navegador a URL padrão das ferramentas administrativas seguida do nome da servlet e por último o nome do formulário. Conforme o exemplo abaixo: Importante: neste servidor o Fusion está rodando na porta 8080 como localhost, portanto substitua a parte pela correspondente em seu ambiente. SacPrincipal é o nome do formulário Para navegar nesta estrutura clique nos campos, se forem do tipo formulário expandirão e mostrarão os campos do mesmo.

21 8.2 Visualizando os dados de um Objeto com dumpneoobject Com este servlet é possível visualizar os dados estruturados de um objeto. Para carregarmos este servlet basta informarmos no Navegador a URL padrão das ferramentas administrativas seguida da id do Objeto. Como todos objetos do Fusion possuem uma NeoId, por exemplo, no item anterior utilizamos o dumpeformtree para vermos a estrutura de dados do formulário, notem o campo dadoscliente, o número que aparece é o NeoId deste objeto veja imagem. Agora chamamos a servlet passando este número veja abaixo:

22 8.3 Habilitando log seletivo Com o log seletivo podemos habilitar o log de acordo com um contexto específico, facilitando a depuração erros no código. Chame a URL abaixo para carregar o log seletivo: Selecione nas opções quais logs específicos desejar. 8.4 Consultando a base com SQL O servlet SQL permite utilizarmos a linguagem SQL diretamente no banco do Fusion ou em fontes de dados cadastradas no Fusion. Chame a URL abaixo para carregar o servlet de SQL: Note que os formulários dinâmicos tornam-se tabelas com o prefixo D_ e formulários externos com o prefixo EXT_.

23 8.5 Visualizando os usuários online com activeusers O servlet activeusers lista todos os usuários do sistema que estão online no momento. Permitindo o monitoramento do sistema. Chame a URL abaixo para carregar o servlet activeusers:

Java na Web. Aplicações Web

Java na Web. Aplicações Web Montando o ambiente com HSQLDB JSP com um conteúdo de banco de dados: JDBC Integre JSPs com servlets aplicando o Modelo-Visualização- Controle Montando o ambiente com HSQLDB Faça a transferênci da página

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS - www.aas.pro.

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS - www.aas.pro. Material de apoio a aulas de Desenvolvimento Web Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS AAS - www.aas.pro.net Março-2012 Este pequeno tutorial tem como objetivo conduzir o programador passo-a-passo

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo

Leia mais

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. 16/08/2013 BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. Versão 1.0 19/12/2014 Visão Resumida Data Criação 19/12/2014 Versão Documento 1.0 Projeto

Leia mais

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Procuraremos mostrar os principais procedimentos para fazer um cadastro de registros numa base de dados MySQL utilizando a linguagem

Leia mais

Prática Sobre Servlets e JSP

Prática Sobre Servlets e JSP Prática Sobre Servlets e JSP 1. Localize a pasta do Tomcat (TOMCAT_HOME); 2. Acesse a pasta bin e execute tomcat5w.exe; 3. Abra o Navegador e acesse http://localhost:8080 (A apresentação de uma página

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI Exercício 1 Neste exercício trabalharemos com alguns web controls básicos e praticaremos os tipos de dados do C#. Vamos criar

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

TUTORIAL JSP & SERVLET

TUTORIAL JSP & SERVLET TUTORIAL JSP & SERVLET A.A.S. UNINOVE WWW.AAS.PRO.BR Exemplo simples de JSP com Servlet (para envio e recebimento de dados) Sumário JSP & SERVLET... 2 1. Criando Projeto... 2 2. O primeiro JSP... 3 3.

Leia mais

2.3.9 - Fluxo de Sequência... 29 2.3.9.1 - Definindo Regras de Negócio no Fluxo de Sequência... 30 2.3.10 - Temporizador... 31 2.4 Validando o modelo

2.3.9 - Fluxo de Sequência... 29 2.3.9.1 - Definindo Regras de Negócio no Fluxo de Sequência... 30 2.3.10 - Temporizador... 31 2.4 Validando o modelo Doc v.1 Sumário 1 - Definindo a Estrutura de Dados do Processo... 4 1.1 - Criação de Formulários Dinâmicos... 4 1.1.1 - Descrição dos campos do formulário:... 6 1.1.2 - Criando os campos do Formulário...

Leia mais

Java Beans e Servlets

Java Beans e Servlets 6 Java Beans e Servlets Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Apresentar os recursos de orientação à objetos Java em JSP e integrá-los a tecnologia

Leia mais

Scriptlets e Formulários

Scriptlets e Formulários 2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,

Leia mais

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação

Leia mais

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br JSP (Java Server Pages) - JavaServer Pages (JSP) - Tecnologia de programação serverside - Permite

Leia mais

Formulário de Contato

Formulário de Contato Formulário de Contato Exemplos de formulários em ASP, PHP e C# Bloqueio Porta 25 Evitar envio de emails não autorizados (SPAM s); Fóruns mundiais; Órgãos internacionais; Acordo de Cooperação (CGI.br);

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Índice. http://www.gosoft.com.br/atualiza/gosoftsigadmservico.pdf Versão 4.0

Índice. http://www.gosoft.com.br/atualiza/gosoftsigadmservico.pdf Versão 4.0 Índice I ENVIO DE BOLETOS POR E-MAIL... 2 APRESENTAÇÃO... 2 ALTERAÇÕES NO SIGADM CONDOMÍNIO... 4 ALTERAÇÕES NO SIGADM IMÓVEIS... 6 ALTERAÇÕES NO SIGADM CONCILIAÇÃO BANCÁRIA... 8 ALTERAÇÕES NO SIGADM CONDOMÍNIO

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

Leia mais

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

AJAX no GASweb. Mas e afinal, para que usamos o AJAX? Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio...

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio... Manual de Envio de Torpedos SMS Comtele Índice Introdução... 02 1.Cadastrar um Grupo... 02 2.Inserir ou Importar Contatos... 06 2.1 Ordem de envio... 08 3.Criar e Enviar uma Mensagens... 12 4. Salvando

Leia mais

Integração TOTVS Microsiga Protheus e Fluig ECM

Integração TOTVS Microsiga Protheus e Fluig ECM 08/2013 Sumário Sumário... 2 1 Objetivo... 3 2 Integração manual... 3 2.1 Formulário... 3 2.1.1 ECM... 3 2.1.2 Protheus... 4 2.1.3 MVC... 5 2.1.4 Rotina Automática (Modelo 1)... 6 2.2 Processo... 7 2.3

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

TUTORIAL DE INTRODUÇÃO AO CEWOLF

TUTORIAL DE INTRODUÇÃO AO CEWOLF 1 TUTORIAL DE INTRODUÇÃO AO CEWOLF CRIANDO GRÁFICOS COM JSP, CEWOLF/JFREECHART E MYSQL 1. Introdução O Cewolf (http://cewolf.sourceforge.net/) é uma biblioteca que facilita a criação de gráficos dinâmicos

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - athanazio@pobox.com 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples

Leia mais

Documentação Usando o Javadoc

Documentação Usando o Javadoc Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Produto IV: ATU SAAP. Manual de Referência

Produto IV: ATU SAAP. Manual de Referência Produto IV: ATU SAAP Manual de Referência Pablo Nogueira Oliveira Termo de Referência nº 129275 Contrato Número 2008/000988 Brasília, 30 de outubro de 2008 1 Sistema de Apoio à Ativideade Parlamentar SAAP

Leia mais

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto:

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto: Tratamento de Exceções Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Exceções Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade

Leia mais

USANDO APPLETS NO NETBEANS (WEB APPLICATION)...E A APPLET CHAMA ALGUM PACOTE EXTERNO (por Luis Alberto M Palhares de Melo Julho/2011)

USANDO APPLETS NO NETBEANS (WEB APPLICATION)...E A APPLET CHAMA ALGUM PACOTE EXTERNO (por Luis Alberto M Palhares de Melo Julho/2011) USANDO APPLETS NO NETBEANS (WEB APPLICATION)......E A APPLET CHAMA ALGUM PACOTE EXTERNO (por Luis Alberto M Palhares de Melo Julho/2011) PASSO 1 Na estrutura do Netbeans vamos ter: Pacote externo (aqui

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Manual de Utilização Google Grupos Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução... 3 Página

Leia mais

Mini-Tutorial. Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005 www.furutani.eti.

Mini-Tutorial. Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005 www.furutani.eti. Mini-Tutorial Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005 www.furutani.eti.br 1. Introdução O objetivo deste trabalho é mostrar de forma prática como

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Introdução. Nesta guia você aprenderá:

Introdução. Nesta guia você aprenderá: 1 Introdução A criação de uma lista é a primeira coisa que devemos saber no emailmanager. Portanto, esta guia tem por objetivo disponibilizar as principais informações sobre o gerenciamento de contatos.

Leia mais

Manual do Usuário Cidadão SIC Serviço de informação ao cidadão

Manual do Usuário Cidadão SIC Serviço de informação ao cidadão Manual do Usuário Cidadão SIC Serviço de informação ao cidadão NOVOSIS 3ª Versão Conteúdo Introdução... 3 Principais recursos:... 4 Para o cidadão:... 4 Para os órgãos públicos:... 4 Como Utilizar o SIC...

Leia mais

AVISO. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

AVISO. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. AVISO O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. Nenhuma parte desta publicação pode ser reproduzida nem transmitida

Leia mais

SIGEP WEB - Gerenciador de Postagens dos Correios Manual do Usuário

SIGEP WEB - Gerenciador de Postagens dos Correios Manual do Usuário MANUAL DO USUÁRIO 2 ÍNDICE 1. PRÉ REQUISITOS PARA UTILIZAÇÃO DO SIGEP WEB 04 2. PROCEDIMENTOS PARA DOWNLOAD DO SISTEMA 04 3. INSTALANDO O SIGEP WEB 07 4. CONFIGURAÇÕES DO SISTEMA 09 COMPARTILHANDO O BANCO

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets Programação Web Professor: Diego Oliveira Conteúdo 02: JSP e Servlets JSP JSP é um template de uma página Web que usa Java para gerar HTML dinamicamente JSP é considerado server-side e roda em um objeto

Leia mais

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Programação para Internet Avançada 4. Web Services Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt São módulos de aplicações de negócios que expõem as regras do negócio como serviços na Internet através

Leia mais

Manual 2010 Webmaster

Manual 2010 Webmaster Manual 2010 Webmaster Menu 1. Acesso ao sistema 2. Campanhas 2.1 Ver Campanhas Disponíveis 2.2 Minhas Campanhas 3. Formatos 3.1 Banners Automáticos 3.2 Banners Manuais 3.3 E-mail Marketing 3.4 Vitrines

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Desenvolva aplicações para a nuvem com CloudBees - Revista Java Magazine 116

Desenvolva aplicações para a nuvem com CloudBees - Revista Java Magazine 116 Desenvolva aplicações para a nuvem com CloudBees - Revista Java Magazine 116 Este artigo tem por objetivo apresentar a plataforma CloudBees, que proporciona ao desenvolvedor maior facilidade nos procedimentos

Leia mais

inux Sistemas Ltda. MANUAL DO USUÁRIO www.inux.com.br

inux Sistemas Ltda. MANUAL DO USUÁRIO www.inux.com.br 2013 inux Sistemas Ltda. s MANUAL DO USUÁRIO www.inux.com.br Sumário 1 Introdução... 2 2 Visão Geral do Sistema... 2 3 Tela de Configuração... 3 4 Tela de Mensagens... 5 5 Tela de Importação... 8 6 Tela

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

Hospedagem de site. Prof. Marciano dos Santos Dionizio

Hospedagem de site. Prof. Marciano dos Santos Dionizio Hospedagem de site Prof. Marciano dos Santos Dionizio Hospedagem de site O mundo está preparado para ver suas páginas? O mundo está preparado sim - você, em breve, estará também. Para publicar seu trabalho

Leia mais

Aplicativos para Internet Aula 01

Aplicativos para Internet Aula 01 Aplicativos para Internet Aula 01 Arquitetura cliente/servidor Introdução ao HTML, CSS e JavaScript Prof. Erika Miranda Universidade de Mogi das Cruzes Uso da Internet http://www.ibope.com.br/pt-br/noticias/paginas/world-wide-web-ou-www-completa-22-anos-nesta-terca-feira.aspx

Leia mais

Manual Operacional Linx Datasync Franchising

Manual Operacional Linx Datasync Franchising Linx Datasync Franchising Linx Datasync Franchising Todos os direitos reservados. Nenhuma parte deste material pode ser reproduzida por qualquer forma ou meio gráfico, eletrônico, ou mecânico, incluindo

Leia mais

Guia de administração. BlackBerry Professional Software para Microsoft Exchange. Versão: 4.1 Service pack: 4B

Guia de administração. BlackBerry Professional Software para Microsoft Exchange. Versão: 4.1 Service pack: 4B BlackBerry Professional Software para Microsoft Exchange Versão: 4.1 Service pack: 4B SWD-313211-0911044452-012 Conteúdo 1 Gerenciando contas de usuários... 7 Adicionar uma conta de usuário... 7 Adicionar

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Java com Banco de Dados Posgree

Java com Banco de Dados Posgree Java com Banco de Dados Posgree Prof. Luiz Claudio Ferreira de Souza www.luizclaudiofs.blogspot.com 1 Driver para ligação Java e Postgre http://jdbc.postgresql.org/download.html www.luizclaudiofs.blogspot.com

Leia mais

!" # # # $ %!" " & ' ( 2

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira www.vqv.com.br / j.edu@vqv.com.br

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira www.vqv.com.br / j.edu@vqv.com.br Desenvolvimento de Aplicações Web Programação Contextualização de aplicações Web: navegadores e servidores como interpretadores, tecnologias do lado do cliente (XHTML, CSS, Javascript) e do lado do servidor

Leia mais

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Manual do Publicador Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Sumário Painel de Administração... 3 1 - Inserção de post... 5 2 Publicação de post com notícia na área headline (galeria de

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 1 O que é Cold Fusion? 3 Arquitetura Cold Fusion 3 Cold Fusion Markup Language (CFML) 4 O que devo saber para programar em CFML? 4 HTML 4 Desenho de Banco de Dados Relacionais

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

Tutorial Jogo da Velha WEB

Tutorial Jogo da Velha WEB Tutorial Jogo da Velha WEB Criação do Projeto 1- Inicie o Eclipse 2- Crie um novo projeto Web dinâmico. 3- Na tela seguinte, digite o nome do projeto e caso no campo Target Runtime não estiver aparecendo

Leia mais

Apache -Tomcat. Instalação e Configuração. Grupo Multitecnus, 2012 www.multitecnus.com

Apache -Tomcat. Instalação e Configuração. Grupo Multitecnus, 2012 www.multitecnus.com Apache -Tomcat Instalação e Configuração Grupo Multitecnus, 2012 www.multitecnus.com 1) Baixe o arquivo de instalação do Apache-Tomcat 7 (neste exemplo, foi obtido do endereço http://tomcat.apache.org/download-70.cgi

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Prática em Laboratório N.02 Criando um serviço Web via NetBeans Prática em Laboratório N.02 Criando um serviço Web via NetBeans O objetivo deste exercício é criar um projeto apropriado para desenvolver um contêiner que você resolva utilizar. Uma vez criado o projeto,

Leia mais

Shavlik Protect. Guia de Atualização

Shavlik Protect. Guia de Atualização Shavlik Protect Guia de Atualização Copyright e Marcas comerciais Copyright Copyright 2009 2014 LANDESK Software, Inc. Todos os direitos reservados. Este produto está protegido por copyright e leis de

Leia mais

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

Leia mais

Manual do Instar Mail Sumário

Manual do Instar Mail Sumário Manual do Instar Mail Sumário 1 - Apresentação do sistema... 2 2 - Menu cliente... 2 3 - Menu Importação... 5 4 - Menu Campanhas... 9 5 - Menu banco de arquivos... 16 6 - Menu agendamento... 16 7 - Menu

Leia mais

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova. 3.5 Páginas: Ao clicar em Páginas, são exibidas todas as páginas criadas para o Blog. No nosso exemplo já existirá uma página com o Título Página de Exemplo, criada quando o WorPress foi instalado. Ao

Leia mais

Release Notes do WI 3.3.6

Release Notes do WI 3.3.6 Release Notes do WI 3.3.6 Segue abaixo as principais diferenças do WI 3.3.6 (correções e implementações) em relação à versão do WI 3.3.4. Os logs que tem comandos SQL (webintegrator, sql.log, dbtime.log)

Leia mais

Índice. Atualizado em: 01/04/2015 Página: 1

Índice. Atualizado em: 01/04/2015 Página: 1 MANUAL DO USUÁRIO Índice 1. Introdução... 3 2. Acesso ao Sistema... 4 2.1. Instalação... 4 2.1.1. Servidor - Computador Principal... 4 2.1.2. Estação - Computador na Rede... 6 2.1.3. Estação - Mapeamento

Leia mais

Drive MySql de conexão para Eclipse

Drive MySql de conexão para Eclipse Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito

Leia mais

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado

Leia mais

Técnicas e processos de produção. Profº Ritielle Souza

Técnicas e processos de produção. Profº Ritielle Souza Técnicas e processos de produção Profº Ritielle Souza INTRODUÇÃO HTML Sigla em inglês para Hyper Text Markup Language, traduzindo daria algo como Linguagem para marcação de Hipertexto. E o que seria o

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL

BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL Deinf/Dine4 Versão 1.3 20/05/2013 Histórico de Revisão Data Versão Descrição Autor 06/11/2007 1.0 Elaboração da primeira versão

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

Leia mais

DWR DIRECTED WEB REMOTING

DWR DIRECTED WEB REMOTING DWR DIRECTED WEB REMOTING Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar,

Leia mais

Criando um carrinho de compras

Criando um carrinho de compras Criando um carrinho de compras Um carrinho de compras feito em ASP.NET para você adaptar ao seu negócio e incluir no seu site. Além de aprender conceitos importantes relacionados a tecnologia ASP.NET vai

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

HAT Programação Auditoria Pós. 12.1.x. abril de 2015. Versão: 2.0

HAT Programação Auditoria Pós. 12.1.x. abril de 2015. Versão: 2.0 HAT Programação Auditoria Pós 12.1.x abril de 2015 Versão: 2.0 1 Sumário 1 Introdução... 3 2 Visão do Processo... 3 3 Serviço... 5 4 Dataset... 7 5 Formulário Principal AuditoriaPos... 9 6 Arquitetura

Leia mais

#Aula Nº 4 XHTML+CSS webstandards.samus.com.br webstandards.samus.com.br/aulas/aula4.pdf Vinicius Fiorio Custódio samus@samus.com.

#Aula Nº 4 XHTML+CSS webstandards.samus.com.br webstandards.samus.com.br/aulas/aula4.pdf Vinicius Fiorio Custódio samus@samus.com. #Aula Nº 4 XHTML+CSS webstandards.samus.com.br webstandards.samus.com.br/aulas/aula4.pdf Vinicius Fiorio Custódio samus@samus.com.br #Objetivo Revisar os conceitos mais importantes da XHTML e do CSS. Desenvolver

Leia mais

Manual de Utilização

Manual de Utilização Se ainda tiver dúvidas entre em contato com a equipe de atendimento: Por telefone: 0800 642 3090 Por e-mail atendimento@oisolucoespraempresas.com.br Introdução... 3 1. O que é o programa Oi Backup Empresarial?...

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

Manual de instalação, configurações e uso do LiveZilla

Manual de instalação, configurações e uso do LiveZilla Manual de instalação, configurações e uso do LiveZilla Sumário Criando Servidor/Conta Livezilla... 1 Configurando e colocando ícone Livezilla no Site... 12 Editando perfil seu e do chat... 22 Criando Servidor/Conta

Leia mais

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g Introdução ao BPEL utilizando o Oracle SOA Suíte 10g 1. Introdução Neste artigo serão apresentados alguns conceitos inerentes a SOA Service Oriented Architecture e um exemplo prático de construção de processo

Leia mais

Autenticação e Autorização

Autenticação e Autorização Autenticação e Autorização Introdução A segurança em aplicações corporativas está relacionada a diversos aspectos, tais como: autenticação, autorização e auditoria. A autenticação identifica quem acessa

Leia mais

Tutorial: Webmail. Dicas de Uso e Funcionalidades 02/2015. Versão 01

Tutorial: Webmail. Dicas de Uso e Funcionalidades 02/2015. Versão 01 Tutorial: Webmail Dicas de Uso e Funcionalidades 02/2015 Versão 01 Conteúdo Tutorial: Webmail 2015 Descrição... 2 Possíveis problemas... 5 Criando Regras de Mensagens (Filtros Automáticos)... 11 A partir

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services Modelação Engenharia de Software Sistemas Distribuídos Departamento Engenharia Informática Livro de Receitas Framework de aplicações com Web Services 2009-04-17 Versão 1.1 Índice Índice... 2 Nota prévia...

Leia mais

Gestão inteligente de documentos eletrônicos

Gestão inteligente de documentos eletrônicos Gestão inteligente de documentos eletrônicos MANUAL DE UTILIZAÇÃO VISÃO DE EMPRESAS VISÃO EMPRESAS - USUÁRIOS (OVERVIEW) No ELDOC, o perfil de EMPRESA refere-se aos usuários com papel operacional. São

Leia mais

Sankhya Print Service. Manual de instalação e uso

Sankhya Print Service. Manual de instalação e uso Sumário 1 Histórico...4 2 Introdução...5 3 Instalação...6 3.1 Verificando a instalação...11 3.2 Configuração do Sankhya Print Service...11 3.2.1 config.properties...12 3.2.1.1 about.copyright...12 Objetivo...12

Leia mais

Introdução. Templates. Configurações. Componentes. Prof. Enzo Seraphim

Introdução. <facelets> Templates. Configurações. Componentes. Prof. Enzo Seraphim Introdução Templates Configurações Componentes Prof. Enzo Seraphim Definição Linguagem de descrição de páginas (PDL Page Description Language) criada para JSF. Estabelece templates que suportam

Leia mais