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.

Selector de dimensões

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.

Selector de dimensões (pesquisa)

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.

Selector de dimensões (ajuda)