Seletor de Dimensões
Este documento descreve o mecanismo para o seletor de dimensões.
Conceitos
O seletor de dimensões é um componente independente que terá de ser usado dentro de um webComponent.
Implementação
A configuração do seletor de dimensões recebe um serviço e respectivo caminho, como os seguintes exemplos:
master
propertyPath: "dimensionSet";
service: "sales/quotations/dimension/dimensionSet/$model.id$?company=$model.companyId$"
details
propertyPath: "documentLines.dimensionSet"<br>
service: "sales/quotations/dimension/dimensionDetail/$parentModel.id$?company=$parentModel.companyId$&lineId=$model.id$"
No "propertyPath" separámos por "." o caminho do seletor de dimensões caso esteja dentro de uma lista.
Nota: o atributo selecionado para o propertyPath (no exemplo acima o dimensionSet), deve ser marcado como tendo side effects e ser do tipo "Memo".
No serviço enviámos os parâmetros para substituição no seguinte formato "$attribute$".
O serviço tem de devolver uma lista de dimensões para a construção do seletor de dimensões. Cada dimensão tem as seguintes propriedades:
- lookupService (string): url que vai ser usado para a pesquisa
- key (string): chave do campo dimensão
- placeholder (string): palceholder para o input
- length (number): tamanho em caracteres do campo dimensão
- value? (string): valor por defeito (não obrigatório)
- description? (string): descrição por defeito (não obrigatório)
Exemplo de uma lista de dimensões:
{
"dimensions": [
{
"key": "documentType",
"placeholder": "Document Type",
"length": 3,
"lookupService": "sales/quotations/dimension/lookup/documentType/$model.id$"
},
{
"key": "buyerCustomerParty",
"placeholder": "Buyer Customer Party",
"length": 3,
"lookupService": "sales/quotations/dimension/lookup/buyerCustomerParty/$model.id$"
},
{
"key": "paymentTerm",
"placeholder": "Payment Term",
"length": 5,
"lookupService": "sales/quotations/dimension/lookup/paymentTerm/$model.id$"
},
{
"key": "deliveryTerm",
"placeholder": "Delivery Term",
"length": 5,
"lookupService": "sales/quotations/dimension/lookup/deliveryTerm/$model.id$"
}
]
}
Depois de recebermos a lista de dimensões foi criado um componente que consiste em vários campos de pesquisa que vão utilizar o "lookupService" para fazer a respetiva pesquisa.

Quando o utilizador fizer uma pesquisa e alterar um campo haverá uma validação dos novos valores. As alterações são gravadas no draft.

Tooltip
Foi criada também uma toolip para o utilizador saber a que se refere cada campo de pesquisa. Esta será composta pelo título (que é o placeholder) e a descrição, no caso de já existir algum campo selecionado.
