Tempo aproximado para leitura: HH:MM:SS min
Dúvida
Como customizar o Portal de Representantes 2.0?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Datasul) - Portal de Vendas (PORTVEN) - Portal 2.0
Solução
O funcionamento do Portal 2.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 |
FCHDIS0063API FCHDIS0067API Cotações |
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 |
FCHDIS0051API |
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 |
FCHDIS0064API |
processOrder |
Ponto executado antes do 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 |
FCHDIS0063API |
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. |
|
ttOrderItemPortal |
Handle da TEMP-TABLE |
Fachada |
Ponto / Parâmetros tt-epc |
Descrição |
FCHDIS0063API |
addItemDetailFields |
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. |
|
ttOrderItemPortal |
Handle da TEMP-TABLE |
Fachada |
Ponto / Parâmetros tt-epc |
Descrição |
FCHDIS0063API |
afterAddItemDetailFields |
Ponto chamado depois de incluir itens no pedido. |
|
nrPedido |
Código do pedido de venda. |
Fachada |
Ponto / Parâmetros tt-epc |
Descrição |
FCHDIS0051API | CopyOrder |
Ponto chamado depois de criar a cópia do pedido e antes de incluir os itens na cópia. |
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 |
FCHDIS0064API FCHDIS0065API | afterGetOrder | Ponto chamado na busca do pedido para a tela. |
nrPedido | Código do pedido de venda. | |
ttOrderPortal | Handle da TEMP-TABLE Definida na include fchdis0039.i1 |
|
ttOrderItemPortal | Handle da TEMP-TABLE Definida na include fchdis0064.i1 |
Fachada |
Ponto / Parâmetros tt-epc |
Descrição |
FCHDIS0035API | OrderDetail |
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 |
FCHDIS0063API | SearchProducts | 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. | |
ttOrderItemPortal | Handle da TEMP-TABLE Definida na include fchdis0063.i1 |
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 |
FCHDIS0063 | beforeSaveOrderItems |
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. | |
ttOrderPortal | Handle da TEMP-TABLE Definida na include fchdis0064.i |
Fachada |
Ponto / Parâmetros tt-epc |
Descrição |
FCHDIS0063 | afterCreateOrderItems | 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. | |
ttOrderPortal | Handle da TEMP-TABLE Definida na include fchdis0064.i |
Fachada |
Ponto / Parâmetros tt-epc |
Descrição |
FCHDIS0063API | 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 |
FCHDIS0065API | 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 |
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 | 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 precisa que seja escritas em JavaScript e ficar no Tomcat liberadas no contexto no seguinte padrão de endereço:
tomcat\[instancia]\apache-tomcat-9.0.43\[modulo]\dts#custom
Exemplo: Para customizar a tela dts/mpd/order2, deve ser criado o arquivo order2.js no seguinte diretório do Tomcat, O arquivo de customização deve ter o mesmo nome do arquivo javascript 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/order2 |
|
||
|
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/order2 |
|
||
|
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/order2 |
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