Tempo aproximado para leitura: 00:15:00 min
Dúvida
Como customizar o Portal de Representantes 1.0?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Datasul) - Portal de Vendas (PORTVEN) - Portal 1.0
Solução
O funcionamento do Portal 1.0 possui as seguintes estruturas para poder funcionar corretamente:
Onde |
AppServer |
JBOSS |
JBOSS |
Browser |
Provê |
Lógica de Negócio |
WebService |
Serviços rest para o Portal |
Interface com Usuário |
Customiza |
Pontos EPC padrão |
- |
- |
Pontos EPC |
Tecnologia |
Progress |
- |
Java |
HTML/CSS/JavaScript |
No AppServer são executadas as fachadas, DBO´s - Datasul Business Object e API´s - Application Programming Interface padrões do Datasul, todas implementam os pontos EPC - External Program Call 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 - Business Object 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:
CSS - Cascading Style Sheets
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
|
ttDetailOrderItem |
Handle da TEMP-TABLE |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Estrutura para Customização Portal 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.
A customização em HTML - HyperText Markup Language está documentada no link Customização de programas e é 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.
A customização no Java Script está documentada no link Customização de programas, é 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: Customização de programas
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 método do controller via javascript.
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 |
0 Comentários