2010 v0.1 PT
Plano de Formao
Personalizao e criao de funcionalidades com base Application
Builder
Criao e gesto dos Modelos Criar novos mdulos e public-los no ambiente de produo Personalizao Base do Modelo Utilizao de Code Snippets Criao de vistas com filtros personalizados Personalizao Avanada do Modelo Personalizao dos formulrios Criao de novos componentes Conceito base para a criao de novos conectores a entidades externas
Plano de Formao
Workflow Designer
Propriedades de um Workflow Explorao dos conectores base Estruturao fluxos para suporte a processos de negcio com integrao entre diferentes mdulos (DMS, ERP, Analytics,) Conceito base para a criao de novos conectores Criao de novos eventos/actividades
Analytics
Conceito base para a criao de novos conectores a entidades externas
Modelo/Soluo do
Application Builder
corresponde a um mdulo WebCentral
Gerar soluo a partir da template permite criar um modelo com o template distribudo na instalao do WebCentral.
Localizao do cdigo permite criar um modelo com base num template escolha do utilizador.
Modelao de um mdulo
Criar Entidades
Nome nome com que a entidade ser referenciada no modelo; Nome Lgico nome da entidade a ser usada na base de dados e na soluo gerada.
rea de Desenho local onde se constroi o formulrio; Estrutura e atributos lista de estruturas passveis de serem adicionadas ao formulrio, e lista de atributos da entidade; Propriedades conjunto de propriedades (nicas) do formulrio
Publicao do Modelo
Publicar a estrutura de base de dados consiste na criao das tabelas do modelo; Publicar lgica de programao consiste na criao da soluo, i.e., projecto Visutal Studio; Compilar Modelo o processo de criao das dlls usados pelo WebCentral; Instalar Modelo a fase em que os ficheiros gerados so copiados para o destino.
A Vista a exibir seleccionada externamente permite que a vista mostrada pelo componente seja seleccionada num dos 2 componentes disponveis para tal selecco. Exibir esta vista opo que permite seleccionar uma entidade e a respectiva vista para ser mostrada
Mostrar a totalidade do Modelo Todas as entidades e vistas do modelo, ficam disponveis para o utilizador consultar; Mostrar apenas os itens seleccionados permite seleccionar as entidades e vistas a que o utilizador (com permisses) ter acesso.
Permisses
A gesto de permisses segue o processo j implementado no WebCentral. Permisses atribudas por entidade.
Fragmentos de Cdigo
Fragmentos de cdigo so blocos que cdigo que permitem ao utilizador mais avanado controlar o comportamento da soluo gerada.
Fragmentos de Cdigo
Este formulrio permite a edio do cdigo que ser adicionado soluo. Trata-se de uma caixa de texto simples, sem Intellissense e sem validao do cdigo introduzido.
Aconselha-se a criar o cdigo usando o Visual Studio e depois copiar para aqui o cdigo validado. Caso existam erros eles s sero identificados no momento da Compilao do Modelo.
Fragmentos de Cdigo
Formulrio
Atributo
1. Crie um fragmento de cdigo que gere um cdigo para cada novo Cesto de Compras.
2. Crie um fragmento de cdigo que impea o cliente de alterar os campos no formulrio dos artigos. 3. Crie o fragmento de cdigo que quando se adiciona um novo artigo ao cesto de compra, deve ser feita a validao se esse artigo j existe. Caso isso se verifique alterar a quantidade de artigos, caso contrrio, um novo artigo deve ser adicionado ao cesto.
2. Crie pelo menos duas vistas sobre a entidade Artigos, que limite a lista apenas a um determinado tipo de artigos.
Maior flexibilidade de costumizao Perda da compatibilidade com a soluo (apenas no formulrio alterado)
Artigo.ERM.ascx.vb
Artigo.USER.ascxvb
StoreState
RecallState Iprint InitializeAlways BaseCreateBEO
CreateBEO
BaseShowBEO ShowBEO BaseFillBEO FillBEO EditBEO UpdateBEO
RemoveBEO
CloneBEO
Mtodo
Descrio
Idelete
Iclone
Irefresh
Isave Iedit Inew IReadBEO IWriteBEO
1. Adicione a todos os formulrios os atributos criado por. Altere o cdigo necessrio para que o valor apresentado seja o nome do utilizador, sempre que exista uma entidade carregada.
Localizar a soluo
Abrir a soluo Renomear o Ficheiro Artigo.ERM.ascx
Artigo.ERM.ascx
Artigo.USER.ascx
1. Adicione ao formulrio do artigo um componente com a sua imagem. Assuma que as imagens dos artigos esto guardados na directoria UserfIles\Images
O cliente de uma loja pretende ter sempre presente a informao actual do seu cesto de compras. Isto uma zona do portal com a informao resumida dos artigos que escolheu. Crie um componente que contenha a informao actualizada do cesto de compras do utilizador autenticado e adicione-o a todas as pginas da sua loja online.
Criar um novo projecto no Visual Studio (DLL); Adicionar referncias para ERM.Connectivity; Adicionar uma classe que implemta a seguinte Interface
Implements Primavera.ERM.Connectivity.IERMConnector
Mtodos relevantes
Public Function GetEntitiesListInfo Public Function GetEntityItemsListInfo
1. Crie um connector que liste todos os pases do ERP. 2. Adicione o connector ao seu projecto; 3. Adicione um atributo Pas, do tipo referncia externa, entidade Cliente.
Ambiente de Desenvolvimento
Requisitos de Hardware
Pentium IV 2.0Ghz ou equivalente/superior; Resoluo de monitor 1024x768; 1 Gb de memria RAM; 1 Gb de espao livre em disco.
Requisitos de Software
Microsoft Windows XP, Microsoft Windows 2003 Server ou superior; Microsoft Internet Information Services 6 ou superior; Microsoft Visual Studio 2008 e Plataforma .Net 3.5 SP1; Microsoft SQL server 2005 ou superior.
Estrutura de Directrios
Bin Modules Reports SystemFiles Tools UserFiles Contm todos os ficheiros compilados necessrios para a execuo dos Interfaces Web. Contm todos os mdulos registados na plataforma
WebCentral
No contm qualquer tipo de documentos. Usada como destino temporrio na gerao de relatrios. Contm os ficheiros que no so usados directamente pela plataforma WebCentral. Vrias ferramentas teis, por exemplo inicializador de instancia. Contm todos os ficheiros carregados pelos os utilizadores.
Interface Utilizador
Module.WebUI
Module.Win
Servios de Negcio
Servios de Data
Module.Data
Projectos do Mdulo
WebUI WinUI IRemoting Remoting Entities Business Data Modules Workflow Interfaces do utilizador baseado em tecnologias Web. Interfaces do utilizador baseado em tecnologias windows. Interfaces de acesso remoto (ver Remoting) Camada de acesso remoto. Interfaces que permitem a comunicao da camada cliente (WinUI) e servidor. Camada das entidades de negcio. Camada onde devem ser definidas todas as regras de negcio. Camada de dados, implementa os acessos directos base de dados. Projecto que contm as classes que interagem com o WebCentral. Projecto que expe os eventos e actividades a serem usados pelo Workflow Designer.
Servidor de Dados
Nomenclatura Base de Dados: ePrimavera_<Nome da Instncia> Tabelas: ###_<NomeDaTabela>
Onde ### corresponde a uma abreviatura do mdulo a que pertence a tabela.
Estrutura de Tabelas
Campos comuns ID Identificador nico de cada registo de uma tabela
Workflow Designer
Connectores Base
Operacional
Workflow
Conectores do Modelo
O application builder ao gerar a lgica dos modelos, gera um conector para o workflow com um vasto conjunto de eventos e actividades, sobre as entidades criadas.
1. Crie um WorkFlow que gere uma encomenda sempre que o cliente grava a sua compra.
Nem sempre os eventos e actividades disponibilizadas pelo application builder so suficientes para realizar as tarefas necessrias.
O mdulo de workflow gerado pelo application builder pode ser estendido com novos eventos e actividades.
1. Crie uma nova actividade que devolva a ltima compra de um determinado cliente.
Connector de KPIs
Configurao Fonte de Dados
Segurana
Apresentador
Ficheiro Analytics.config <analyticsConfiguration> <KpiAdapters> <add name="DummyAdapter1" description="Kpi Dummy Adapter typeName="Primavera.DummyAdapter.KpiDummyAdapter" assemblyPath="C:\prjNET\Adapters\DummyAdapter.dll" initParams="param1=value1, param2=value2" /> </KpiAdapters> </analyticsConfiguration>
KPI Adapter
using System; using System.Collections.Generic; using Primavera.Analytics.Adapters; namespace Primavera.ERPSales.AnalyticsAdapter { /// <summary> /// Analytics adapter main class. /// </summary> public class KpiAdapter : IKpiAdapter {
KPI Adapter
private IKpiConfiguration configuration; private IKpiDataSource dataSource; private IKpiSecurity security; private IKpiPresenter presenter;
KPI Adapter
public IKpiConfiguration Configuration { get { return this.configuration; } } public IKpiDataSource DataSource { get { return this.dataSource; } } public IKpiPresenter Presenter { get { return this.presenter; } } public IKpiSecurity Security { get { return this.security; } } public string Description { get { return "ERP Sales"; } } public Guid Identifier { get { return new Guid("{6E0C3B7C-1592-4f69-A9B1-C9394FC29EE9}"); } }
Configurao
Configurao
public MetadataDefinition GetAdapterMetadata() { MetadataDefinition metadatadefinition = new MetadataDefinition(); Property serverProperty = new Property("Server", "Database server", PropertyType.Text); Property loginProperty = new Property("Login", "Login", PropertyType.Text); Property passwordProperty = new Property("Password", "Password", PropertyType.Text); passwordProperty.Password = true; Property databaseProperty = new Property("Database", "Database", PropertyType.Text);
Configurao
public IList<string> GetCalculationActions( ActionTypeEnumeration actionType ) { var actions = new List<string>(); switch (actionType) { case ActionTypeEnumeration.KpiCalculated : actions.Add("SendKpiCalculatedNotification"); break; case ActionTypeEnumeration.ObjectiveCalculated : actions.Add("ProcessObjectiveCalculated"); break; default: break; }
return actions;
}
P054 PRIMAVERA WebCentral II
Configurao
public IList<DataSourceCategory> GetKpiDataSourceCategories( MetadataValues metadata) { return new List<DataSourceCategory>() { new DataSourceCategory(AdapterHelper.SalesCategory, "Sales") }; }
Confiurao
public IList<KpiDataSource> GetKpiDataSources(string category, MetadataValues metadata) { var kpiDataSources = new List<KpiDataSource>(); if (category == AdapterHelper.SalesCategory) { kpiDataSources.Add(new KpiDataSource() { Id = new Guid(AdapterHelper.CompaniesDatasourceId), Name = "Comp", Description = "Companies" }); kpiDataSources.Add(new KpiDataSource() { Id = new Guid(AdapterHelper.DepartmentsDatasourceId), Name = "Dep", Description = "Departments" }); kpiDataSources.Add(new KpiDataSource() { Id = new Guid(AdapterHelper.SalesPersonsDatasourceId), Name = "SlsPer", Description = "Sales persons" }); kpiDataSources.Add(new KpiDataSource() { Id = new Guid(AdapterHelper.SalesResumeDatasourceId), Name = "SLSResume", Description = "Sales Resume" }); }
Fonte de Dados
public DataSourceMetadata GetDataSourceMetadata(Guid dataSourceId, MetadataValues metadata) { SqlConnection connection = AdapterHelper.GetSqlConnection(metadata); String query = AdapterHelper.GetQueryForDatasource(dataSourceId, false); if (connection != null && !string.IsNullOrEmpty(query)) { DataSet dataSet = AdapterHelper.ExecuteQuery(query, connection); if (dataSet.Tables.Count > 0) { var dataSourceMetadata = new DataSourceMetadata(); foreach (DataColumn dataColumn in dataSet.Tables[0].Columns) { dataSourceMetadata.Fields.Add( new DataSourceFieldMetadata() { Name = dataColumn.ColumnName, Description = dataColumn.ColumnName, PropertyName = dataColumn.ColumnName }); } return dataSourceMetadata; } } return null; }
P054 PRIMAVERA WebCentral II
Fonte de Dados
public KpiData GetDataSourceData(Guid dataSourceId, MetadataValues metadata) { SqlConnection connection = AdapterHelper.GetSqlConnection(metadata); string query = AdapterHelper.GetQueryForDatasource(dataSourceId); if (connection != null && !string.IsNullOrEmpty(query)) { DataSet dataSet = AdapterHelper.ExecuteQuery(query, connection); return new KpiData() { ResultSet = dataSet }; } return null; }
Segurana
1. Crie um connector que use como fonte de dados os cestos de compras da nossa soluo; 2. Adicione esse connect ao Analytics; 3. Crie uma pgina com os dados sua escolha.