Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Regras

Esta solução está destinada para customizações onde a necessidade é a inclusão de novos campos específicos na parte inferior das telas. Caso o cliente opte por não desenvolver e queira contratar esse desenvolvimento, será necessário abrir chamado para o suporte.

Outros pontos de customizações diferentes desse padrão pode ser consultados através do manual de customizações.

Caso o cliente queira customizar alguma tela que não conste na relação acima citada, será necessário abrir chamado para o suporte. Assim como se o cliente queira customizar outras partes da tela, será necessário abrir chamado para o suporte.

Objetivo

Este documento tem o objetivo de apresentar o padrão que deverá ser utilizado para customização de campos em na parte inferior das telas po-ui.

Esse padrão contempla cadastros (CRUDS), conforme lista de programas publicada , nas seguintes situações:

...

  • O diretório onde são armazenados os fontes específicos deverá seguir o padrão '<módulo>.<nome técnico cadastrado no menu>'. Exemplo: hfp.benefMultiplierFactor, hvp.beneficiary, etc...;
  • O nome Os nomes dos programas específicos deverá deverão ser precedido precedidos pelo nome da aplicação separado por hífen + o sufixo referente a função do programa. O sufixos possíveis são:
    • detail: programa chamado ao acessar a tela de detalhes do CRUD. Ele retornará os campos customizáveis com seus possíveis valores. Exemplo: benef-multiplier-factor-detail.p;
    • edit: programa chamado ao acessar a tela de adição ou edição do CRUD. Exemplo: benef-multiplier-factor-edit.p;
    • edit-validate: programa chamado para realizar a validação dos campos específicos do cliente. Exemplo: benef-multiplier-edit-validate.p;
    • edit-save: programa chamado para realizar a gravação na base de dados dos campos específicos do cliente. Exemplo: benef-multiplier-edit-save.p.

...

  • Ao abrir a tela de adição de registros, o sistema realiza uma chamada ao endpoint hgp/v1/customFields/<nome_da_tela>/<nome_programa_específico>/new/. Este endpoint será responsável por retornar os campos específicos do cliente. No exemplo utilizado neste documento, a chamada seria equivalente a hgp/v1/customFields/hfp.benefMultiplierFactor/benef-multiplier-factor-edit/new/;
  • Ao acessar a tela de edição de registros, o sistema realiza uma chamada ao endpoint hgp/v1/customFields/<nome_da_tela>/<nome_programa_específico>/edit. Este endpoint será responsável por retornar os campos específicos do cliente. Exemplo: hgp/v1/customFields/hfp.benefMultiplierFactor/benef-multiplier-factor-edit/edit/;
  • Ao acessar a tela de detalhes, o endpoint acessado será hgp/v1/customFields/<nome_da_tela>/<nome_programa_específico_detalhes>/. Este retornará os campos específicos bem como seus valores. Exemplo: hgp/v1/customFields/hfp.benefMultiplierFactor/benef-multiplier-factor-detail/
  • Ao salvar um registro, o sistema realiza os seguintes passos:
    • Realiza a chamada ao endpoint para validação dos campos customizáveis: hgp/v1/customFields/hfp.benefMultiplierFactor/benef-multiplier-factor-edit-validate/edit;
    • Caso a validação dos campos específicos ocorra com sucesso, então o CRUD irá disparar o método insert ou update do produto padrão para salvar o registro em questão;
    • Caso a gravação do registro padrão de produto ocorra com sucesso, então será disparado endpoint para gravação dos campos específicos:  hgp/v1/customFields/hfp.benefMultiplierFactor/benef-multiplier-factor-edit-save/edit.


Forma de utilização:

Deverá ser criado um programa progress no seguinte diretório, conforme explicado anteriormente:

...

  • getCustomFields
    • Utilizado para buscar os campos que serão acrescentados no formulário e seus respectivos valores.
    • Parâmetros:

      define input        parameter pathParams as JsonArray no-undo. /* Array contendo parâmetros de entrada */
      define output       parameter table for ttCustomField. /*Definido no item Tabelas Temporárias Utilizadas (hgp\bosau\bosau-custom-field.i)*/
      define output       parameter table for ttCustomValue. /*Definido no item Tabelas Temporárias Utilizadas (hgp\bosau\bosau-custom-field.i)*/
      define input-output parameter table for rowErrors. /*Definida através da include (rtp\rtrowerror.i)*/

    • Exemplo:


      procedure getCustomFields:
       
          define input        parameter pathParams as JsonArray no-undo.
          define output       parameter table for ttCustomField.
          define output       parameter table for ttCustomValue.
          define input-output parameter table for rowErrors.
       
           
         define variable cd-modalidade-aux        as int          no-undo.
         define variable nr-proposta-aux          as int          no-undo.
         define variable cd-usuario-aux           as int          no-undo.
       
         assign
              cd-modalidade-aux = int(pathParams:getCharacter(3))
              nr-proposta-aux   = int(pathParams:getCharacter(4))
              cd-usuario-aux    = int(pathParams:getCharacter(5))
              no-error.
       
          find first usuario where usuario.cd-modalidade = cd-modalidade-aux and
              usuario.nr-proposta = nr-proposta-aux and
              usuario.cd-usuario-aux = cd-usuario-aux no-lock no-error.
       
           
          create ttCustomField.
          assign
              ttCustomField.ds-type = "boolean"
              ttCustomField.ds-boolean-false = "Campo específico"
              ttCustomField.ds-boolean-true  = "Campo específico"
              ttCustomField.lg-disabled = true
              ttCustomField.ds-property = "u_log_1".
       
          create ttCustomValue.
          assign ttCustomValue.ds-property = "u_log_1"
              ttCustomValue.lg-value = usuario.u-log-1.
      end.

...