Assunto

Produto:

Datasul

Versões:

 

Ocorrência:

Como customizar o Portal de Pedidos?

Ambiente:

 

Passo a passo:

 

Observações:

 

Estrutura do Portal

 O funcionamento do portal possui as seguintes partes para poder funcionar corretamente:

Onde

AppServer

JBOSS

JBOSS

Browser

Provê

Lógica de Negócio

WebService

Comunicação com Progress

Serviços REST para o Portal

Interface com Usuario

Customiza

Pontos EPC padrão

-

-

Pontos EPC

Tecnologia

Progress

-

Java

HTML/CSS/JavaScript

 

No AppServer são executadas as Fachadas, DBO´s e API´s padrão do Datasul, todos implementam os pontos EPC necessários para customização, nas DBO´s existem os pontos de EPC padrão, e nas API´s e Fachadas são implementados os pontos de EPC específicos para as regras de negócio, a documentação dos pontos das BO´s e API´s está disponível no documento de técnicas de customização e na documentação de cada BO/API, os pontos de EPC das fachadas para o portal são as seguintes:

 

Pontos de EPC Progress nas Fachadas (API)

 

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0036API

getCustomerDetail

Retorna para a tela detalhes do cliente, na TEMP-TABLE existe o campo caracter epcValue que pode ser usado para passar informações para a tela.

 

ttCustomerDetails

Handle da TEMP-TABLE

Definida na include fchdis0036.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0036API

searchCustomersQueryRep

Ponto epc executado exatamente antes da query dinâmica para pesquisa de clientes ser preparada para buscar os dados, o handle da query poderá ser

manipulado para considerar logicas de busca diferenciadas

 

p-prop

Lista separada por ‘|’ com os nomes das propriedades que foram passadas como parâmetros para o serviço

 

p-values

Lista separada por ‘|’ com os valores das propriedades que foram passadas como parâmetros para o serviço.

 

query

Handle do objeto query que pode ser manipulado

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0036API

searchCustomers

Retorna para a tela a lista dos clientes, na TEMP-TABLE existe o campo caracter epcValue que pode ser usado para passar informações para a tela.

 

ttCustomerDetails

Handle da TEMP-TABLE

Definida na include fchdis0036.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0037API

afterGetModelItems

Retorna para a tela a lista itens de um modelo, se houver um item com quantidade, este item é adicionado automaticamente.

 

idiModel

Código do modelo de pedido

 

nrPedido

Código do pedido de venda

 

ttSimpleOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0038.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0038API

afterSearchProducts

Ponto chamado na pesquisa de produtos

 

nrPedido

Código do pedido de venda

 

searchTerm

Termo de pesquisa digitado pelo usuário na tela de pesquisa.

 

ttSimpleOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0038.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterStartNewOrder

Retorna para a tela a temp-table com os dados do pedido após a sua criação.

 

idiModel

Código modelo usado para criar o pedido de venda

 

ttOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i5

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

processOrder

Ponto executado antes no momento da liberação do pedido pelo usuário do portal.

 

nrPedido

Código do pedido de venda

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterSaveOrderItem

Ponto executado após salvar o item do pedido no portal

 

nrPedido

Código do pedido de venda

 

nrSeq

Sequência do item

 

itemCode

Código do item

 

itemReference

Código da referência do item

 

ttOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0039.i6

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

addItems

Ponto chamado antes de incluir itens no pedido, a temp-table contêm os itens que serão incluídos no pedido.

 

nrPedido

Código do pedido de venda

 

ttSimpleOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0038.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterAddItems

Ponto chamado depois de incluir itens no pedido

 

nrPedido

Código do pedido de venda

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

onCopyOrder

Ponto chamado depois de criar a cópia do pedido e antes de incluir os itens na copia

 

nrPedido

Código do pedido de venda origem

 

newNrPedido

Código do pedido de venda copiado

 

newNrPedcli

Código do pedido do cliente do novo pedido.

 

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterGetOrder

Ponto chamado na busca do pedido para a tela.

 

nrPedido

Código do pedido de venda

 

ttDetailOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i1

 

ttDetailOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0039.i2

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterGetDetailOrder

Ponto chamado na busca do pedido para a tela de detalhe de pedido.

 

nrPedido

Código do pedido de venda

 

ttDetailOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterGetOrderItem

Ponto chamado na busca do item do pedido para a tela.

 

nrPedido

Código do pedido de venda

 

nrSeq

Sequência do item

 

itemCode

Código do item

 

itemReference

Código de referência do item

 

ttOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0039.i6

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterGetDetailOrderItem

Ponto chamado na busca do item do pedido para a tela de detalhe de pedido.

 

nrPedido

Código do pedido de venda

 

nrSeq

Sequência do item

 

itemCode

Código do item

 

itemReference

Código de referência do item

 

ttDetailOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0039.i2

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

getPortalOrderSummary

Ponto chamado na busca dos dados do resumo de pedidos.

 

iniDate

Data Inicial do período de pedido

 

endDate

Data final do período de pedido

 

ttPortalOrderSummary

Handle da TEMP-TABLE

Definida na include fchdis0039.i4

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterGetOrderHeader

Ponto chamado na busca do cabeçalho do pedido para a tela de cadastro de pedido.

 

nrPedido

Código do pedido de venda

 

ttOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i5

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

beforeSaveOrderPortal

Ponto chamado antes da gravação do cabeçalho do pedido para a tela de cadastro de pedido.

 

nrPedido

Código do pedido de venda

 

ttOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i5

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterSaveOrder

Ponto chamado depois da gravação do cabeçalho do pedido para a tela de cadastro de pedido.

 

nrPedido

Código do pedido de venda

 

c-estado

Indicador se é inclusão ou alteração (Create/Update)

 

ttOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i5

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterDeleteOrderItem

Ponto chamado depois de excluir um item do pedido

 

nrPedido

Código do pedido de venda

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterGetOrderList

Ponto chamado na busca dos pedidos para a tela de carteira de pedido.

 

dtIni

Data inicial para pedidos

 

cField

Campo de pesquisa

 

cQuery

Termo de pesquisa

 

ttDetailOrder

Handle da TEMP-TABLE

Definida na include fchdis0039.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

beforePiCompleteOrder

Ponto chamado antes de completar o pedido

 

rowPedVenda

RowId da tabela ped-venda

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterPiCompleteOrder

Ponto chamado depois de completar o pedido

 

rowPedVenda

RowId da tabela ped-venda

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

beforeSaveOrderItemPortal

Ponto chamado antes de salvar um item do pedido

 

nrPedido

Código do pedido de venda

 

action

Operação: Add/Update

 

tt-ped-item

Handle da TEMP-TABLE definida na include dibo/bodi154.i

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

addItemsInternal

Ponto chamado antes de incluir um item do pedido

 

cNomeAbrev

Nome abreviado do cliente

 

cNrPedCli

Número do pedido do cliente

 

tt-ped-item

Handle da TEMP-TABLE definida na include dibo/bodi154.i

 

ttSimpleOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0038.i1

Fachada

Ponto / Parâmetros tt-epc

Descrição

FCHDIS0039API

afterAddItemsInternal

Ponto chamado depois de incluir um item do pedido

 

cNomeAbrev

Nome abreviado do cliente

 

cNrPedCli

Número do pedido do cliente

 

tt-ped-item

Handle da TEMP-TABLE definida na include dibo/bodi154.i

 

ttSimpleOrderItem

Handle da TEMP-TABLE

Definida na include fchdis0038.i1

Estrutura para customização HTML

 

Todas as customizações para telas do portal têm que ser escritas em JavaScript e ficar no JBOSS liberadas no contexto no seguinte padrão de endereço:

 

Jboss\server\[instancia]\deploy\custom.war\[modulo]\[tela].js

 


Exemplo: Para customizar a tela dts/mpd/order, deve ser criado o arquivo order.js no seguinte diretório do jboss, C:\Jboss\server\instancia8080\deploy\custom.war\mpd\, o arquivo de customização deve ter o mesmo nome do arquivo java script principal, da tela que será customizada.

Customização em HTML está documentada no TDN, é feita através do atributo totvs-custom-element que deve ser adicionada em uma tag HTML com o nome do evento que será utilizado para customizar este elemento.

Customização no Java Script está documentada no TDN, é utilizada para permitir a chamada de pontos de customização nos métodos de controllers das telas, para manipular o comportamento padrão.

Exemplo de Customização: http://tdn.totvs.com/pages/viewpage.action?pageId=185738044

OBS 01: Não é possível customizar o conteúdo dinâmico utilizando ng-include com a diretiva totvs-custom-element, porque o ng-include renderiza o conteúdo após chamar a diretiva de customização, nesse caso deve-se utilizar o atributo onload do ng-include e chamar o evento por um metodo do controller via javascript.

OBS 02: Usando diretivas ng-include aninhadas, onload pode não funcionar, nesse caso deve-se utilizar o evento $includeContentLoaded.

Quando um controller chama um evento de customização com o callCustomEvent, o método homônimo do evento recebe como parâmetro, o que for enviado no callCustomEvent.

Por exemplo:

result = customizationService.callCustomEvent('initEvent', controller);

O método initEvent da customização irá receber o objeto “controller”.

Se o método da customização tiver um retorno, esse valor será retornado pelo método callCustomEvent, se não houver customização, o retorno será sempre ‘ok’.

 

Pontos EPC nas telas HTML

 

Os seguintes pontos de EPC estão disponíveis nas telas HTML do Portal:

Tela

Evento

Parâmetros

Descrição

dts/mpd/customer

 

 

afterLoadCustomer

Ponto chamado na busca dos dados do cliente na tela de detalhe do cliente

 

 

controller

Referência para a instância do controller da tela


Tela

Evento

Parâmetros

Descrição

dts/mpd/order

 

 

afterLoadOrder

Ponto chamado na busca dos dados do pedido na tela de cadastro de pedido

 

 

controller

Referência para a instância do controller da tela


Tela

Evento

Parâmetros

Descrição

dts/mpd/order

 

 

onEditOrderItem 

Ponto chamado na busca dos dados de um item do pedido para edição.

 

 

controller

Referência para a instância do controller da tela

Tela

Evento

Parâmetros

Descrição

dts/mpd/orderdetail

afterLoadOrderDetail

Ponto chamado na busca dos dados do pedido na tela de detalhe de pedido

 

 

controller

Referência para a instância do controller da tela

Tela

Evento

Parâmetros

Descrição

dts/mpd/salesorders

 

 

afterLoadOrders

Ponto chamado na renderização do detalhe de cada pedido na lista de pedidos da tela de carteira de pedidos

 

 

controller

Referência para a instância do controller da tela

 

 

item

Referência para o objeto do pedido que está sendo renderizado na tela.

 

 

index

Sequencial na renderização do pedido na tela.

 Pontos de customização nas telas HTML


As seguintes telas possuem pontos de customização com o atributo totvs-custom-element:

 

Tela

Descrição

dts/mpd/customer

Detalhe do Cliente

dts/mpd/customerbill

Títulos dos Clientes

dts/mpd/customers

Carteira de Clientes

dts/mpd/invoices

Notas Fiscais dos Clientes

dts/mpd/model

Seleção de Modelos

dts/mpd/newmodel

Novo Modelo de Pedido

dts/mpd/itemmodel

Item do Modelo de Pedido

dts/mpd/itemsearch

Pesquisa de Item

dts/mpd/order.edit

Edição do Pedido

dts/mpd/order

Pedido de Venda

dts/mpd/orderitem.detail

Detalhe do Item do Pedido

dts/mpd/orderitem

Item do Pedido

dts/mpd/orderdetail

Detalhe do Pedido

dts/mpd/orderhistory

Histórico do Pedido

dts/mpd/priceitem

Lista de Produtos

dts/mpd/prices

Pesquisa de Tabela de Preço

dts/mpd/productdetail

Detalhe do Produto

dts/mpd/salescharge

Comissões de Vendas

dts/mpd/salesgoals

Metas de Vendas

dts/mpd/salesorders

Carteira de Pedidos

dts/mpd/schedule

Agenda de Visitas

 

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))