EyePeak RecursosGuias
RecursosGuias
Guias
Voltar | Lista de artigos

Como estender eventos no Eye Peak?

Última alteração a 13/02/2023

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

  • PRIMAVERA Eye Peak;
  • Visual Studio 2013 ou superior;
  • NET Framework 4.0.

Passo 1 – Criar uma solução

  1. No Visual Studio aceder a File | New |a Project;
  2. Expandir na árvore a linguagem pretendida (“C#” ou “VB”);
  3. Abaixo da linguagem, selecionar a opção Windows Desktop;
  4. Selecionar o tipo de projeto “Class Library (.NET Framewok)”;
  5. Definir um nome ao projeto, escolher a localização do projeto e atribuir um nome à 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

  1. No Solution Explorer do Visual Studio selecionar o nó References;
  2. Clicar com o botão direito do rato e selecionar a opção Add References…;
  3. Na janela clicar no botão Browse… e navegar até à pasta de instalação do Eye Peak;
    Nota: Numa instalação por defeito a pasta será:
    “C:Program Files (x86)PRIMAVERAWMS100Eye Peak WMS”.
  4. Selecionar os ficheiros: "GlobalSist.Common.dll", "GlobalSist.DataAccess.dll", "GlobalSist.Entities.WMS.dll", "GlobalSist.Logic.dll";
  5. Clicar no botão Add e de seguida em OK;
  6. Voltar ao nó References, selecionar as referências adicionadas no passo anterior e colocar a opção copy local = “false”;
  7. Aceder às propriedades do projeto e alterar a pasta de compilação “output path” para a diretoria de onde foram carregadas as referências.

Passo 3 – Criar Classes para Eventos 

  1. No nó do projeto clicar com o botão direito do rato e escolher a opção Add | New Item…;
  2. Expandir na árvore a linguagem pretendida (“C#” ou “VB”);
  3. Abaixo da linguagem selecionar a opção Code;
  4. Selecionar o tipo Class;
  5. Nomear a nova classe e clicar no botão Add…;
  6. 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
        {
        }
    }
  7. 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;
  8. 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

  1. No nó do projeto clicar com o botão direito do rato e escolher a opção Add | New Item…;
  2. Na janela apresentada expandir na árvore a linguagem pretendida (“C#” ou “VB”);
  3. Abaixo da linguagem selecionar a opção Code;
  4. Selecionar o tipo Class;
  5. Nomear a nova classe e carregar no botão Add…;
  6. Na definição da classe, deverá herdar a mesma de AppModule:
    public class ModuleConfig: GlobalSist.Common.AppModule
    {
    }
  7. Implementar um construtor sem argumentos:
    public ModuleConfig() : base("modulo de extensão do eye peak")
    {
        this.IsLogic = true;
        this.IsTerminal = false;
    }
  8. É 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.

Adicionar aos favoritos ou partilhar este artigo
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!
Artigos Relacionados
Como criar um projeto de integração com o Eye Peak via WebServices? Como criar artigos no Eye Peak via WebService? Como criar entidades no Eye Peak via WebService? Como criar armazéns no Eye Peak via WebServices com Visual Studio? Como criar tipos de documentos no Eye Peak via WebServices?