guia de desenvolvimento sugarcrm

255
GUIA DO DESENVOLVEDOR SUGARCRM MELHORES APLICAÇÕES DE NEGÓCIO Eu comecei este livro com a intenção de trazer um novo lado do SugarCRM a vista. Desde que comecei a trabalhar no SugarCRM, eu vi a flexibilidade e extensibilidade que o aplicativo poderia proporcionar. Eu olhei para a minha posição anterior desenvolvimento de aplicações internas da empresa, e vendo que muitos dos elementos que acrescentei e questões de design que eu queria se debateu com problemas que SugarCRM já tinha resolvido. A equipe de engenharia da SugarCRM tinha construído para resolver este problema, mas alguns programadores fora da SugarCRM sabiam realmente o quão potente a plataforma subjacente seria. Eu sabia que eram outros programadores neste mesmo barco, e que se eu pudesse chegar a eles, faria seus trabalhos muito mais fáceis. O que uma aplicação de CRM faz ou não faz não é totalmente definida; em vez disso, o seu objetivo é o de preencher a lacuna em que uma empresa tem em resolver problemas em seus relacionamentos com seus clientes. Por vezes, isto significa manter o acompanhamento de reuniões e chamadas de telefone. Outras vezes, isso significa acompanhar o progresso de um projeto em curso. Pode também significar gestão dos processos de apoio e de defeitos do produto. No entanto, às vezes um aplicativo não pode cobrir completamente isso. Assim como qualquer empresa ou organização é única, por isso deve ser o que o CRM vai significar para eles. Até SugarCRM, este espaço de aplicação foi cheio de jogadores que achavam que tinham o problema de CRM a resolver, e construir aplicações proprietárias grandes que eram caras para implementar e apoiar alem notoriamente difícil de personalizar para satisfazer as suas necessidades. SugarCRM entrou e mudou esse cenário, fazendo algo de CRM que é barato para implementar, mais fácil de personalizar, e mais acessível para os usuários finais trabalhar. É projetado para ser um CRM que seus usuários não vão odiar, o que é a filosofia que os fundadores da SugarCRM definem como seu objetivo primordial. Este livro destina-se a tornar este fácil o uso e a personalização do aplicativo mostrando o que você precisa e pode para fazer com ele. O conteúdo deste livro é únicos, como eles vêm diretamente da experiência da engenharia da

Upload: julio-gomes

Post on 28-Dec-2015

693 views

Category:

Documents


1 download

TRANSCRIPT

Guia do Desenvolvedor SugarCRMMelhores Aplicaes De NegcioEu comecei este livro com a inteno de trazer um novo lado do SugarCRM a vista. Desde que comecei a trabalhar no SugarCRM, eu vi a flexibilidade e extensibilidade que o aplicativo poderia proporcionar. Eu olhei para a minha posio anterior desenvolvimento de aplicaes internas da empresa, e vendo que muitos dos elementos que acrescentei e questes de design que eu queria se debateu com problemas que SugarCRM j tinha resolvido. A equipe de engenharia da SugarCRM tinha construdo para resolver este problema, mas alguns programadores fora da SugarCRM sabiam realmente o quo potente a plataforma subjacente seria. Eu sabia que eram outros programadores neste mesmo barco, e que se eu pudesse chegar a eles, faria seus trabalhos muito mais fceis.O que uma aplicao de CRM faz ou no faz no totalmente definida; em vez disso, o seu objetivo o de preencher a lacuna em que uma empresa tem em resolver problemas em seus relacionamentos com seus clientes. Por vezes, isto significa manter o acompanhamento de reunies e chamadas de telefone. Outras vezes, isso significa acompanhar o progresso de um projeto em curso. Pode tambm significar gesto dos processos de apoio e de defeitos do produto. No entanto, s vezes um aplicativo no pode cobrir completamente isso. Assim como qualquer empresa ou organizao nica, por isso deve ser o que o CRM vai significar para eles. At SugarCRM, este espao de aplicao foi cheio de jogadores que achavam que tinham o problema de CRM a resolver, e construir aplicaes proprietrias grandes que eram caras para implementar e apoiar alem notoriamente difcil de personalizar para satisfazer as suas necessidades. SugarCRM entrou e mudou esse cenrio, fazendo algo de CRM que barato para implementar, mais fcil de personalizar, e mais acessvel para os usurios finais trabalhar. projetado para ser um CRM que seus usurios no vo odiar, o que a filosofia que os fundadores da SugarCRM definem como seu objetivo primordial.Este livro destina-se a tornar este fcil o uso e a personalizao do aplicativo mostrando o que voc precisa e pode para fazer com ele. O contedo deste livro nicos, como eles vm diretamente da experincia da engenharia da SugarCRM, dando-lhe como o leitor um insight para o aplicativo que voc no consegue encontrar em nenhum outro lugar. O livro possui trs partes distintas:Parte 1: A Plataforma SugarCRM Parte 2: Customizando SugarCRM Out-of-BoxParte 3: Construindo novas funcionalidades em cima do SugarCRMEnquanto este livro destina-se a ser lido do incio ao fim, til tambm como uma referncia geral quanto a desenvolver para SugarCRM. Uma vez que voc tem o conhecimento de como a aplicao funciona internamente, voc pode ir para qualquer parte do livro e pegar qualquer de informao que voc pode precisar. O conjunto das informaes contidas no interior est atualizado com a verso do SugarCRM 5.5 , e a maior parte dos Listagems so construdas sobre a edio de comunidade da SugarCRM. Encorajo-vos a ler atravs do livro para fazer o download e instalar SugarCRM em sua mquina local e experimentar os Listagems, para ver como fcil trabalhar com o SugarCRM. Este livro apenas a ponta do iceberg, o que pode ser feito com SugarCRM. Por conseguinte, encorajo-vos tambm a visitar tambm o Sugar Forums (Fruns http://www.sugarcrm.com/) e o Sugar Developer Zone (http://developers.sugarcrm.com) para mais sobre o que o Sugar pode fazer por voc e onde estamos indo no futuro. A Plataforma SugarCRM Nesta primeira parte, voc vai aprender tudo sobre SugarCRM; a empresa e a comunidade as diversas funcionalidades da plataforma. Vai ver em profundidade como o MVC e o Framework de metadados juntamente com o CORE da aplicao. Voc tambm ir ver como voc pode integrar SugarCRM com diversas outras aplicaes utilizando a camada de WEBServices, e aprender sobre muitas outras funcionalidades da plataforma do Sugar oferece ao usurio e ao programador.O SugarCRM?SugarCRM uma aplicao comercial de cdigo aberto. Quando pensamos em software comercial, pensamos proprietrios, software fechado. SugarCRM nico em que ele quebra a expectativa de software comercial, aproveitando o melhor do open-source software onde construdo para criar um produto que tem como foco a usurios finais e desenvolvedores, criando uma experincia positiva para ambos os grupos. Mas tambm tem as vantagens de uma empresa comercial, que inclui suporte de classe mundial, treinamento do usurio final abrangente, e de ponta a ponta teste de controle de qualidade para assegurar alta estabilidade do produto. Vejamos o SugarCRM com poucas perspectivas diferentes: como uma empresa, produto, e comunidade. A EmpresaSugarCRM foi fundada em 2004 como um projeto de open source sobre no site SourceForge, http://www.sourceforge.net, um dos maiores sites de desenvolvimento open souce da Internet. Trs fundadores da SugarCRM, John Roberts, Clint oram, e Jac Taylor, tem uma experincia combinada de mais de 50 anos construindo Custumer Relationship Management (CRM) como aplicaes proprietrias para empresas do Silicon Valley. Eles cresceram frustrados com a falta de inovao em CRM e as elevadas taxas de insucesso das aplicaes de CRM proprietrias. Os fundadores da SugarCRM tiveram uma abordagem invulgar na construo de uma soluo de CRM. Em vez de escrever o cdigo em segredo e manter o produto proprietrio, os fundadores liberaram o cdigo com uma licena open-source permitido para qualquer parte interessada baixar, modificar, e redistribuir SugarCRM.Em poucos meses, foram transferido 50.000 copias e traduzido para dez lnguas. Em Novembro de 2004, o Sugar Open Source Projeto foi selecionado como projeto do ms pelo SourceForge.net. A popularidade da aplicao permitiu os fundadores do SugarCRM incorporar um negcio em torno do projeto de cdigo-fonte aberto e recebeu 2 milhes de dlares em financiamento de capital de risco da Draper Fisher Jurvetson, capital de uma empresa lder do Vale do Silcio.Rpido Crescimento Como Open-Source E Saas.A popularidade do SugarCRM no site SourceForge e a infuso de capital por investidores do Vale do Silcio permitiu que a empresa fosse se expandindo.SugarCRM estabeleceu uma sede em Cupertino, CA e comeou a construir a sua equipe de engenharia. No incio de 2005, SugarCRM introduziu o Sugar On-Demand , que um "Saas ou software como servio" (software fornecido para um utilizador atravs da nuvem) que permite aos clientes utilizarem o Sugar sem a instalao do software. A tecnologia On-Demand primeiro promove flexibilidade e controle maior sobre como a aplicao implementada, personalizada e utilizada. A inovao da SugarCRM no mercado foi campe em ambas as abordagens. Anteriormente, as empresas tinham oferecido no local ou On-Demand, raramente ambos. Em todos os casos, o cdigo mantinha-se proprietrio que significa que era muito difcil para os clientes compreender o que estavam comprando, e quase impossvel de ser modificado o cdigo sem grandes investimentos em servios profissionais e prazos longos de projeto.O ProdutoO gerenciamento do relacionamento com o cliente uma indstria bem estabelecida que tem evoludo ao longo das ltimas duas dcadas. Simplesmente, o CRM sobre a utilizao de tecnologia de informao para obter uma melhor compreenso dos clientes e proporcionar uma experincia diferenciada do cliente em toda a relao entre ele e a organizao. Pensar em como transformar seus clientes, dando s empresas uma ferramenta para saber a sua histria as tendncias de compra e interaes, permitindo que voc use este conhecimento para planejar o futuro de suas interaes com eles. Suites de CRM, como, por exemplo a SugarCRM, fornecem ferramentas para todos os empregados que lidam face-a-face com o cliente como: marketing, vendas, suporte, bem como fornecer ferramentas de colaborao para facilitar as comunicaes e a funcionalidade de relatrios, para que os gestores possam entender o que est acontecendo em sua empresa. Suites de CRM tambm oferecem ferramentas de administrao para gerir utilizadores, fluxo de informaes, as personalizaes, e outros "bastidores" das operaes do sistema de CRM.O SugarCRM comeou como uma ferramenta de automao de fora de vendas e rapidamente expandiu para incluir automao de marketing e suporte ao cliente, bem como colaborao e comunicao entre todos os componentes da aplicao. Trata-se de uma aplicao web escritos em sua maioria em linguagem de programao PHP, apoiando verso 5.2.1 e superior como na verso do SugarCRM 5.5.0 , bem como utilizar o ltimo javascript e tcnicas flash para melhorar a experincia do usurio. Ele suporta trabalhar sobre o MySQL, Microsoft SQL Server e os servidores de banco de dados Oracle (Oracle apenas suportado na Enterprise Edition) bem como as implementaes sobre Windows, Linux, Mac OS X e Solaris. Sendo uma aplicao baseada em browser, que permite que os usurios finais possam utilizar o Internet Explorer, Mozilla Firefox, ou browser Safari da Apple. SugarCRM entra em trs edies do produto: Sugar Community Edition contm funcionalidade CRM concebidas para pequenas empresas. Sugar Professional contm a funcionalidade adicional para gerenciar as necessidades de empresas pequenas e mdias. Sugar Enterprise contm os recursos de CRM e suporte para grandes empresas. A seguir discutimos cada edio em:Sugar Community Edition: um Free Open Source Software (FOSS) licenciado sob os termos da Licena Pblica Geral GNU verso 3 (GPLv3). Sugar Community Edition est disponvel para download gratuito no ambiente de desenvolvimento do SugarCRM, http://www.sugarforge.org. Os clientes so livres para baixar, modificar e utilizar Sugar Comunity Edition sem restrio. Sugar Professional: Produto topo da SugarCRM, dirigidas s pequenas e mdias empresas. Ela contm funcionalidades adicionais, tais como a gesto de equipe, controle de acesso, criao de relatrios e acesso sem fios do dispositivo. oferecido sob uma licena comercial. Sugar profissional oferecido em uma subscrio anual. Sugar Enterprise: contm funcionalidades de nvel empresarial para grandes empresas. Ele adiciona funcionalidades adicionais que na grande maioria das implementaes requer suporte Oracle database e Advanced SQL reporting. comercialmente licenciada sob uma subscrio anual, assim como Sugar Professional.Figura 1 - matriz de funcionalidades

SugarCRM muito personalizvel, permitindo mltiplas opes de implementao, que permite que at mesmo empresas sem conhecimentos de TI possam usar SugarCRM. Sugar On-Demand: Permite aos utilizadores configurar e executar SugarCRM dentro de minutos, utilizando os Centros de Gesto Dados do SugarCRM. As vantagens incluem disponibilidade e gesto garantida de sua instncia do SugarCRM, que tira toda a preocupaes de upgrade e manuteno do servidor.Sugar On-Site: Permite aos usurios instalar SugarCRM em seu hardware existente. Alm disso, SugarCRM tem um instalador Faststack que concebido para instalar todos os componentes necessrios (Servidor Web, servidor de base de dados, PHP) para SugarCRM.A beleza de possuir opes flexveis de implementao que mesmo os usurios utilizando Sugar On-Demand pode-se personalizar a forma como SugarCRM funciona atravs do poderoso, Mdulo Construtor e a ferramenta Studio muito fcil de usar. (Vamos aprender mais sobre eles nas partes 2 e 3.) Isto permite que qualquer pessoa usando SugarCRM para personaliz-lo s suas necessidades sem ter o nus de apoiar um servidor de aplicao. Alm disso, eles podem alavancar tanto a demanda e opes de implementao no local sem qualquer custo adicional. Isto bastante til para que um sistema possa ser utilizado como um backup do outro, ou pode ser usado como um ambiente de desenvolvimento e outro com produo. O crescimento da SugarCRM continuou ms aps ms desde que foi fundada como um projeto open source em 2004. O SugarCRM foi baixado durante 5,2 milhes de vezes, com mais 55.000 sistemas ativos em cerca de 195 pases apoiam quase meio milho de usurios. Alm disso, SugarCRM tem 4.500 clientes pagadores que utilizam as verses comerciais do produto para a empresa.A comunidadeA chave para o sucesso da SugarCRM reside na grande comunidade de usurios e desenvolvedores em todo o mundo. O seu feedback e contribuies que ajudaram a construir o produto, e tm sido um recurso inestimvel para ajudar SugarCRM crescer. O SugarCRM como uma empresa tem reconhecido isso e construram vrias ferramentas para que a comunidade possa interagir com SugarCRM e outros usurios do SugarCRM por todo o mundo. Vamos ter um olhar para eles.Sugar Forums e WikisO lugar mais fcil de interagir com a comunidade de Sugar so os fruns do Sugar (http://www.sugarcrm.com/forums/). Aqui onde os membros da equipe do SugarCRM, usurios finais, parceiros, e os programadores interagem para debater as questes relacionadas com o produto, saber mais sobre as prximas funcionalidades e releases, e aprender como os outros esto usando SugarCRM dentro da sua indstria. Os fruns so conduzidos pelos membros da equipe do SugarCRM e voluntrios da comunidade, e a forma mais fcil de participar da comunidade SugarCRM. O Sugar Wiki (http://www.sugarcrm.com/wiki/) um recurso inestimvel para dicas e truques para trabalhar com SugarCRM. Trata-se de uma wiki principalmente conduzida pela comunidade, mas tambm fornece a documentao oficial do SugarCRM no produto e podcasts de membros da equipe do SugarCRM em uma variedade de tpicos sobre SugarCRM.SugarExchange and SugarForgeSugarExchange (http://www.sugarexchange.com/) e o marketplace do SugarCRM onde qualquer usurio do Sugar que pretendam estender funcionalidade central de Sugar pode escolher entre centenas de extenses de mdulos, temas, e pacotes de idioma fornecidos pelos membros e parceiros da comunidade de Sugar. o lugar a onde se deve ir quando voc est procurando uma funcionalidade que pode ser facilmente adicionado ao seu SugarCRM.SugarExchange contm add-ons livres e no-livres para SugarCRM. Enquanto SugarExchange facilitada pelo SugarCRM, todas as transaes e suporte para a add-ons oferecido totalmente independente do SugarCRM, que proporciona um frum para a comunidade de programadores do SugarCRM para add-ons de vitrine para o produto.SugarForge (http://www.sugarforge.org/) o lado do desenvolvedor do SugarExchange, que oferece programao e projectos atividades orientadas e ferramentas para quem desenvolver sobre a plataforma SugarCRM. Isto concebido para oferecer funcionalidades semelhantes no site SourceForge ou Google Code, e oferece fruns, documentao e espao para seu add-ons. Muitas vezes, utilizado em conjunto com SugarExchange, onde SugarExchange utiliza a funo de ajuda add-ons para a comunidade Sugar como um todo. Existem mais de 600 projetos ativos do SugarForge at data, incluindo mais de 80 tradues de idiomas oferecidos para download gratuito.Sugar Developer ZoneSe voc quiser realizar qualquer desenvolvimento em cima do SugarCRM, este o lugar para se estar. um recurso completo para qualquer desenvolvedor do Sugar, com links para o guia oficial do desenvolvedor do SugarCRM, fruns de programadores, e tutoriais sobre personalizaes e temas comuns. Possui tambm um blog que mantido pela equipe da SugarCRM, que fornece informaes de desenvolvedores sobre os futuros recursos do desenvolvedor em SugarCRM ou truques e dicas sobre desenvolvimento de aplicaes com SugarCRM. Como voc pode ver, SugarCRM no como um software comercial tpico, mas ela tem a opinio mais refinada de software aberto. Este livro debrua-se sobre esta distino, assim na parte 1 vamos olhar em profundidade a plataforma SugarCRM e as caractersticas do produto que o tornam ideal para a construo de uma aplicao de negcio.Obtendo o SugarCRMA fim de melhor acompanhar juntamente com os Listagems nos restantes captulos, voc provavelmente deve transferir e instalar SugarCRM. A edio da comunidade do SugarCRM est disponvel para download em http://www.sugarcrm.com/crm/download/sugar-suite.html. Voc tem duas opes para instalar SugarCRM deste site. Uma opo fazer o download do arquivo zip que contm a aplicao e instala-lo em sua mquina local ou servidor Web. Para fazer isso, voc precisar dos seguintes componentes instalados e configurados:Servidor Web: Apache 1.3 ou posterior, ou o IIS 6 ou posterior com FastCGI instalado se voc estiver usando o Windows. PHP: verso 5.2.1 ou posterior instalado e configurado para ser utilizado com os acima Web Server. Servidor de banco de dados: MySQL 5.0 ou posterior, ou o SQL Server 2005 ou posterior.Para instalar SugarCRM, basta abrir um browser web e apontar para o local onde SugarCRM foi descompactado. Se voc descompactou-o no diretrio de Sugar na raiz do servidor Web na sua mquina local, ponto o seu browser da web para http://localhost/sugar, e ento o instalador interativo do Sugar ir gui-lo para o resto do processo de instalaoPara tornar mais fcil a pilha instalada, SugarCRM fornece vrios "faststack" instaladores que ir instalar SugarCRM junto com o Apache, MySQL, (ou o SQL Server Express para Windows), e empilha o PHP, para que voc possa estar preparado para rodar em poucos instantes.ResumoNeste captulo, voc olhou o SugarCRM, e viu como open source e a natureza orientada pela comunidade da empresa que ajudou o produto crescer com um tal sucesso. Em seguida, voc olhou o produto, as vrias edies disponveis, bem como as diversas maneiras que SugarCRM pode ser implementado e usado por empresas. Em seguida, voc virou em direo a comunidade do SugarCRM, vendo como o SugarCRM como uma empresa e para a comunidade de Sugar pode interagir atravs dos dois fruns e wikis para repositrios e mercados de pacote. Finalmente, voc teve um breve olhar instalando Sugar, de modo que voc possa seguir com os Listagems para o restante deste livro. Vamos continuar com um mergulho profundo na sua plataforma destacando da SugarCRM. No captulo 2, voc vai olhar para o framework MVC em que Sugar construdo.Arquitetura MVCCom o lanamento do SugarCRM 5.0 , uma nova arquitetura MVC nasceu. Esta arquitetura foi concebida para eliminar as tarefas penosas para a construo de um mdulo para SugarCRM. Em vez de ter que manualmente definir templates e criar interaes e relaes de objeto, voc pode facilmente utilizar o framework, utilizando modelos padronizados e arquivos de definio para construir os vrios pontos de vises de informaes(views). O sistema tambm muito extensvel, permitindo novas views e ("templating") personalizados para serem construdos em cima dele. Antes de aprofundar em como o modelo MVC do SugarCRM funciona, vamos dar um passo para trs e ver o que MVC realmente .O que MVCMVC significa Modelo View Controller, e um padro arquitetnico muito comum de design de aplicao utilizado tanto na web quanto para desktop. Os objetivos de utilizar o padro MVC separar a lgica da interface do utilizador da lgica de aplicao, tendo uma camada entre os dois para facilitar a comunicao entre eles. Cada um dos Models, Views e Controllers tm a tarefa de realizar a manipulao de alguns papeis dentro de uma aplicao (ver Figura 2 ).Figura 2 - Diagrama do padro MVC

A camada Model representa a camada de lgica da aplicao. O objetivo desta camada para gerenciar a comunicao com quaisquer recursos externos, tais como bases de dados, Web Services, e ficheiros. Ele tambm contm alguma lgica de negcio da aplicao, tais como formas de calcular os valores do campo. Um bom modelo fornece uma interface limpa para os detalhes do pedido, fornecendo mtodos e funes para interagir facilmente com os servios de menor nvel e fornecer qualquer transformao ou interpretao necessria para que outras partes da aplicao possam ser utilizadas facilmente.A camada View representa a interface do usurio. Isto onde qualquer lgica de visualizao tratada, como layout de formulrio e exibio de dados, assim, para uma aplicao web a View seria uma pgina tpica da web. A camada View especfica para o papel que ela est destinada a ter, podendo ser uma perspectiva de entrada de dados o que seria diferente de uma View de visualizao de registro, embora eles possam representar o mesmo modelo.A camada Controller a unio entre o Model e a View. Um bom Controller ir aceitar o pedido do utilizador, chamar o Model para obter as informaes de que necessita, e ento chamar a View para retornar a informao ao usurio. Esta camada destinada a ser uma fina camada. Ela no deve conter lgica de negcios, ou comunicar-se com um banco de dados diretamente, ou lidar com a forma de exibir informaes ao usurio.Sugar tem utilizado o padro MVC para substituir a arquitetura envelhecida utilizado antes da verso 5.0. Apesar de ter sido baseado em muitos dos princpios da arquitetura MVC, no era verdadeiramente otimizado de forma a tirar o melhor partido dela. Vejamos agora a SugarCRM MVC.A Forma MVC do SugarO Sugar utiliza o padro MVC para processar os pedidos dos utilizadores. Cada pedido tem o seu entrypoint(Ponto de entrada) primrio no caso (ndex.php) que ir especificar as variveis de solicitao HTTP indicando o mdulo (que mapeia a definio de MVC de controlador) e a Action (que mapeia para a definio de MVC de View) como segue: http://servername/index.php?module=contacts&action=editview.Para a URL anterior, o pedido de Sugar seria para a Action EditView do mdulo de Contacts. A Figura 2-2 mostra o que acontece internamente quando o pedido seja efetuado.Figura 3 - Fluxograma Sugar MVC

SugarApplicationO primeiro passo no tratamento do pedido ocorre no nvel da SugarApplication. Esta classe gerencia muito dos pr-requisitos necessrios para a aplicao do Sugar, incluindo verificao da sesso, autenticao do usurio, definio do tema, e realizao da conexo com o banco de dados. Tambm trata muito da lgica pr-processamento da aplicao. Por exemplo a definio do tempo da zona do usurio no primeiro login, e permitindo que o usurio saiba quando o seu password expirou. A classe no concebida para ser modificada ou ampliada pelos desenvolvedores. No entanto, um mtodo de pr-processamento que existe na classe SugarController permite aos programadores inserir lgica para o tratamento do pedido antes que o controlador seja executado.Aps o carregamento do controlador, as seguintes tarefas so realizadas antes de executar o controlador:Verificao da autenticao do usurio. Se o usurio j estiver autenticado, ento voc vai continuar com a solicitao, caso contrrio voc ser redirecionado para o formulrio de login. Eu vou falar mais detalhadamente sobre autenticao de usurio no captulo 5. Utilizando as configuraes do usurio, qualquer controlador de acesso (ACL) listas as regras aplicadas para acesso ao modulo pelo usuario.Quaisquer regras preprocess desde que sejam definidas no nvel de aplicao so aplicadas pelo auditor. A definio do fuso horrio para o usurio em seu primeiro login tratada aqui. As strings corretas de idioma so carregadas, como definido pelo usurio aps o login. No captulo 5, eu vou falar sobre como SugarCRM pode ser internacionalizado para qualquer idioma. O tema que est atualmente selecionado pelo usurio inicializado e carregado. Eu vou falar mais sobre a forma como os temas trabalho no Captulo 5.O mtodo de preProcess() do controlador melhor usado quando se precisa ser alguma lgica de inicial antes de voc fazer qualquer coisa com um mdulo. A Listagem 2-1 prov um exemplo do que isso seria.Listagem 2-1. Listagem do mtodo de preProcess() no Controlador.bean->accounting_id}");$xml = new SimpleXMLElement($returnXML);$invoices = array();foreach ( $xml->invoice as $invoice ) {$invoices = array('date' => $invoice->date,'amount' => $invoice->amount,'due' => $invoice->due,);}$this->ss->assign('invoices', $invoices);$this->ss->display('custom/include/MVC/tpls/invoices.tpl');}}?>Agora na listagem 11-13, voc definir o modelo de Smarty usado para exibir esses dados. No nada mais do que uma tabela HTML simples.Listagem 11-13 invoices.tpl file

Assim como voc construiu uma maneira para olhar as faturas pendentes que tem um cliente, voc tambm precisar definir uma maneira de obter faturas para seu sistema de contabilidade. Voc j fez a primeira parte do presente no mdulo de postos de trabalho, definindo um campo checkbox pronto para nota fiscal para indicar ao seu sistema de contabilidade que voc est pronto para faturar um cliente para o trabalho de servio que voc tenha feito para eles. Eu mencionei no incio deste captulo, quando voc olhou para o mdulo de clientes que o processo de faturamento para piscinas de Pscoa tem lgica humana nele, e eles escolheram no que incluem em seu aplicativo baseado em SugarCRM. No entanto, automatizar a transferncia de informaes para a contabilidade definitivamente uma parte desse processo. Voc pode automatizar esta usando ganchos de lgica. Primeiro, voc vai adicionar um gancho de lgica, para que onde prontas a factura checkbox est marcada que voc vai atribuir automaticamente a factura para a conta de usurio de facturao (que devero ser criadas separadamente). Listagem 11-14 mostra o gancho esta lgica que gostaria.Listagem 11-14 Jobs before_save logic Book