Como estender eventos no Eye Peak?
Este documento descreve os passos necessários para subscrever os eventos de extensibilidade do Eye Peak. Existem vários eventos que são apresentados em determinados pontos da aplicação, permitindo a iteração sobre os mesmos por extensibilidade. Nota: Alguns eventos permitem inclusive a abertura de formulários próprios ao invés dos da aplicação. Esta implementação pressupõe a criação de uma dll de extensibilidade que terá de cumprir com uma interface descrita nos seguintes passos.Pré-Requisitos
Passo 1 – Criar uma solução
Nota: Verificar se a versão da Framework selecionada por baixo do nome da solução é a Framework 4.Passo 2 – Adicionar Referências
Nota: Numa instalação por defeito a pasta será:
“C:Program Files (x86)PRIMAVERAWMS100Eye Peak WMS”.
Passo 3 – Criar Classes para Eventos
- No nó do projeto clicar com o botão direito do rato e escolher a opção Add | New Item…;
- Expandir na árvore a linguagem pretendida (“C#” ou “VB”);
- Abaixo da linguagem selecionar a opção Code;
- Selecionar o tipo Class;
- Nomear a nova classe e clicar no botão Add…;
- Abrir o editor de código da classe e acrescentar a herança para a inteface pretendida, por exemplo, IDoc:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GlobalSist.Facades.Base; namespace EPKEvents { public class DocExtension : GlobalSist.Facades.DocLogic.IDoc { } }
- Implementar a interface que é obrigatória pelo FACADE, neste caso a interface do IDoc, e substituir o lançamento de exceções pelo retorno dos métodos;
- Caso não seja pretendida a implementação dos mesmos, deverá ser returnado true se for um boolean ou returnado null se for um objeto:
public bool AllowReExport() { return true; } public bool OnCreateComposition(object doc, string warehouseCode, Dictionary<string, decimal=""> skus) { return true; } public Report OnDocCanceled(object doc) { return null; } public void OnDocClosed(object doc) { return; } public bool OnDocClosing(object doc) { return true; } public Report OnDocDetailAdding(object doc, int? lineNumber) { return null; } public bool OnDocExport(object doc) { return true; } public bool OnDocLineDeleted(object doc, string Line) { return true; } public bool OnDocTransformed(object doc) { return true; }</string,>
Nota: Deverá ser criada uma classe para cada uma das interfaces FACADE que se pretende estender.
Passo 4 – Criar classe para instalar o módulo
- No nó do projeto clicar com o botão direito do rato e escolher a opção Add | New Item…;
- Na janela apresentada expandir na árvore a linguagem pretendida (“C#” ou “VB”);
- Abaixo da linguagem selecionar a opção Code;
- Selecionar o tipo Class;
- Nomear a nova classe e carregar no botão Add…;
- Na definição da classe, deverá herdar a mesma de AppModule:
public class ModuleConfig: GlobalSist.Common.AppModule { }
- Implementar um construtor sem argumentos:
public ModuleConfig() : base("modulo de extensão do eye peak") { this.IsLogic = true; this.IsTerminal = false; }
- É necessário criar um override do método Init(), de forma a subscrever as classes que irão tratar eventos. Este registo irá permitir ligar as classes que herdam das interfaces de FACADES com os respetivos FACADES.
No seguinte exemplo, a classe “DocExtension” implementa a FACADE IDoc e o service manager fica com uma instância da mesma para executar o código quando necessário.
public override void Init() { ///This method allows: ///Required components initialization ///Extensions registration GlobalSist.ServiceProvider.ServiceManager.AddRegister <docextension, globalsist.facades.doclogic.idoc=""> (); }</docextension,>
Passo 5 – Compilar a dll e instalar o módulo
Por último, é necessário compilar a dll para a pasta de instalação, aceder ao frontend e instalar o módulo, tal como descrito no artigo "Como instalar Componentes de Extensibilidade?.
Nota: Para além da interface IDoc, existe todo um conjunto alargado de interfaces que são passíveis de ser estendidas. A lista de interfaces poderá ser consultada na documentação da API do produto.
Veja um exemplo sobre a tecnologia Eye Peak no GitHub.
login para deixar a sua opinião.