Árvore de páginas

Versões comparadas

Chave

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

...

No momento em que uma das classes do utilitário é instanciada, é necessário indicar a ela, em que ponto da UPC ela está sendo utilizada. Este ponto corresponde ao Endpoint/Evento que está sendo customizado. Isto é necessário pois, dependendo do Endpoint/Evento, a estrutura das informações recebidas pela UPC é diferente, portanto a classe precisa saber o ponto, para saber onde irá buscabuscar/alterar a informação desejada.

...

  • CustomOrig:ORIG_METADATA - Utilizar nos pontos relacionados a alterações no Metadata da tela;
  • CustomOrig:ORIG_VLD_FORM - Utilizar nos pontos relacionados ao evento de "validateForm" (quando algum campo do formulário é alterado);
  • CustomOrig:ORIG_VLD_FIELD - Utilizar nos pontos relacionados ao evento de "validateField" (quando um determinado campo é alterado);
  • CustomOrig:ORIG_GET_RECORD - Utilizar nos pontos relacionados a busca de um determinado registro;
  • CustomOrig:ORIG_GET_ALL - Utilizar nos pontos relacionados a busca de várias registros;
  • CustomOrig:ORIG_CREATE_RECORD - Utilizar nos pontos relacionados a criação de um registro;
  • CustomOrig:ORIG_UPDATE_RECORD - Utilizar nos pontos relacionados a alteração de um registro;
  • CustomOrig:ORIG_DELETE_RECORD - Utilizar nos pontos relacionados a exclusão de um registro.

Segue abaixo Abaixo segue um exemplo da utilização deste classe, na instancia da classe CustomFields, para o evento de validateForm:

Bloco de código
languagetext
titleExemplo utilização da classe CustomOrig
linenumberstrue
// Evento de Alteração de Formulário
IF pEndPoint = "validateForm" AND pEvent = "validateForm" THEN DO:

    // Realiza a instância da Classe
    oCustFields = NEW CustomFields(CustomOrig:ORIG_VLD_FORM, jsonIO).
    ...
    ...
END.

b.CustomPages

Responsável pela customização de Propriedades da Página;

Customizações da PáginaClasse utilizada para manipular as propriedades gerais da Página, como por exemplo o Título dela.


MétodoDescriçãoExemplo

setPageTitle ( pCodTitle )

Parâmetros:

  • pCodTitle (CHARACTER): Novo Titulo da Página.

Retorno (LOGICAL): Indicativo se foi possível alterar o Título.

Altera o Titulo da Tela.
// Altera o Título da Página
oCustPages:setPageTitle(oCustPages:getPageTitle() + " - ALTERADO").

getPageTitle ( )

Retorno (CHARACTER): Título da Página.

Retorna o Titulo da Tela. 
// Altera o Título da Página
oCustPages:setPageTitle(oCustPages:getPageTitle() + " - ALTERADO").

setPageProperty ( pCodProperty , pCodValue )

Parâmetros:

  • pCodProperty (CHARACTER): Propriedade que deve ser alterada;
  • pCodValue (CHARACTER,INTEGER,DECIMAL,LOGICAL): Novo valor.

Retorno (LOGICAL): Indicativo se foi possível alterar a Propriedade.

Altera uma propriedade da Tela.
// Altera a propriedade para salvar o Filtro da busca Avançada
oCustPages:setPageProperty("keepfilters", TRUE).

getPagePropertyCharacter ( pCodProperty )

getPagePropertyInteger ( pCodProperty )

getPagePropertyDecimal ( pCodProperty )

getPagePropertyLogical ( pCodProperty )

Parâmetros:

  • pCodProperty (CHARACTER): Propriedade.

Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Valor da Propriedade.

Retorna o valor de uma propriedade da Tela.

c.CustomFields

Responsável pela customização de Campos;

CustomFields: Customizações de CamposClasse utilizada para realizar customizações relacionadas aos campos, tais como: alterar o label, desabilitar, esconder, etc.. Através dela, também é possível incluir campos customizados, assim como atualizar o valor dos mesmos. Ela pode ser utilizada para tratar tanto os campos de Tabelas, como de Formulários.

MétodoDescriçãoExemplo

setFieldLabel ( pCodField , pCodLabel [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pCodLabel (CHARACTER): Novo label do atributo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível alterar o Label.

Altera o Label de um Atributo.
// Altera o label da coluna "FIFO" para "FIFO-ALT"
oCustFields:setFieldLabel("enableFIFOInPurchaseReq", 
"FIFO-ALT").

setDisableField ( pCodField [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível desabilitar o atributo.

Desabilita um Atributo.
// Desabilita o campo "Atualizar com erro de duplicata" 
// (Aba: Atualização recebimento fiscal)
oCustFields:setDisableField("updatesWithDuplicateError", 
"fieldsUpdateFiscalConfigurations").

setEnableField ( pCodField [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível habilitar o atributo.

Habilita um Atributo.
// Habilita o campo "Unidade negócio" (Aba: Digitação/Geração)
oCustFields:setEnableField("enableBusinessUnit", 
"fieldsTypingEnableDisable").

setHideField ( pCodField [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível esconder o atributo.

Esconde um Atributo.
// Esconde o campo "Desconto item"
oCustFields:setHideField("itemDiscount").

setShowField ( pCodField [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível apresentar o atributo.

Mostra um Atributo.
// Mostra o campo "Geração nota crédito a pagar"
oCustFields:setShowField("creditNoteGeneration").

setFieldProperty ( pCodField , pCodProperty , pCodValue [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pCodProperty (CHARACTER): Propriedade que deve ser alterada;
  • pCodValue (CHARACTER,INTEGER,DECIMAL,LOGICAL): Novo valor;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível alterar a propriedade.

Altera uma propriedade de um Atributo.
// Para o campo "Sequência dos itens" mostrar "Ligado/Desligado" 
//ao invés de "Ativado/Desativado"
IF oCustFields:getFieldPropertyCharacter("enableSequence",
"type",
"fieldsTypingEnableDisable")
= "boolean" THEN DO:
oCustFields:setFieldProperty("enableSequence",
"booleanTrue",
"Ligado",
   "fieldsTypingEnableDisable").
oCustFields:setFieldProperty("enableSequence",
"booleanFalse",
"Desligado",
"fieldsTypingEnableDisable").
END.

getFieldPropertyCharacter ( pCodField , pCodProperty [ , pGroupId ] )

getFieldPropertyInteger ( pCodField , pCodProperty [ , pGroupId ] )

getFieldPropertyDecimal ( pCodField , pCodProperty [ , pGroupId ] )

getFieldPropertyLogical ( pCodField , pCodProperty [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pCodProperty (CHARACTER): Propriedade;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Valor da Propriedade.

Retorna o valor de uma propriedade de um Atributo.
// Para o campo "Sequência dos itens" mostrar "Ligado/Desligado" 
//ao invés de "Ativado/Desativado"
IF oCustFields:getFieldPropertyCharacter("enableSequence",
"type",
"fieldsTypingEnableDisable")
= "boolean" THEN DO:
oCustFields:setFieldProperty("enableSequence",
"booleanTrue",
"Ligado",
   "fieldsTypingEnableDisable").
oCustFields:setFieldProperty("enableSequence",
"booleanFalse",
"Desligado",
"fieldsTypingEnableDisable").
END.

getFields ( [ pGroupId ] )

Parâmetros:

  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (JsonArray): Lista de Atributos.

Retorna um JsonArray que representa a lista de Atributos.
// Pegua a quantidades de campos do agrupador "Impostos" e joga 
// no label do campo "Total"
ASSIGN oFields = oCustFields:getFields("fieldsTax")
oField  = oCustFields:getField("totalTax",
"fieldsTax").
IF oFields <> ? AND oField <> ? THEN
oField:SET("label", "Total (" + string(oFields:LENGTH) + ")").

getField ( pCodField [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (JsonObject): Um atributo.

Retorna um JsonObject que representa um Atributo.
// Pegua a quantidades de campos do agrupador "Impostos" e joga 
// no label do campo "Total"
ASSIGN oFields = oCustFields:getFields("fieldsTax")
oField  = oCustFields:getField("totalTax", 
"fieldsTax").
IF oFields <> ? AND oField <> ? THEN
oField:SET("label", "Total (" + string(oFields:LENGTH) + ")").

addField ( pCodField , pCodLabel , pCodType [ , pPosition ] [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do Atributo;
  • pCodLabel (CHARACTER): Label do Atributo;
  • pCodType (CHARACTER): Tipo do Atributo (usar a classe FieldType, ex: FieldType:STRING);
  • pPosition: Posição onde o campo irá ficar no Formulário, usar uma da opções:
    • pIsFirst (LOGICAL): O Atributo será o Primeiro do Formulário (valor: YES) ou o Útimo (valor: NO);
    • pReferenceField (CHARACTER): Código de um Atributo já existente, onde o atributo ficará DEPOIS dele;
    • Se não informado valor, o atributo será o Último do Formulário.
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (JsonObject): Atributo Incluído.

Incluir um novo Atributo.
// Inclui uma coluna chamada: "Cópia Usuário"
ASSIGN oField = oCustFields:addField("userCopy",
"Cópia Usuário",
FieldType:STRING).
// Inclui a nova coluna no Gerenciador de Colunas
IF oField <> ? THEN
oField:ADD("allowColumnsManager", 
TRUE).

changeFieldOrder ( pCodField [ , pPosition ] [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do Atributo;
  • pPosition: Posição onde o campo irá ficar no Formulário, usar uma da opções:
    • pIsFirst (LOGICAL): O Atributo será o Primeiro do Formulário (valor: YES) ou o Útimo (valor: NO);
    • pReferenceField (CHARACTER): Código de um Atributo já existente, onde o atributo ficará DEPOIS dele;
    • Se não informado valor, o atributo será o Último do Formulário.
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível alterar a ordem.

Altera a Ordem de um Atributo.
// Colocar o Campo "Estado (UF)" depois do campo "Baixa estoque"
oCustFields:changeFieldOrder("enableState",
"enableStockMovement").
// Coloca o campo "CPF" como sendo o primeiro campo do Formulário
oCustFields:changeFieldOrder("cpf",
YES).

setFieldValidate ( pCodField , pCodProg [ , pGroupId ] )

setFieldValidateCustom ( pCodField , pEndpoint [ , pGroupId ] )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pCodProg (CHARACTER): API-REST de Produto (deve ser enviado o terceiro parâmetro recebido pela UPC). Quando o atributo for alterado, será executado o Endpoint 'validateField' da API-REST do Produto;
  • pEndpoint (CHARACTER): Endpoint (método POST) que será executado quando o atributo for alterado. O caminho do Endpoint pode ser relativo (API-REST dentro do datasul) ou completo;
  • pGroupId (CHARACTER): Agrupador onde o atributo está contido. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Indicativo se foi possível incluir a propriedade no atributo.

Incluir a propriedade 'validate' no Atributo (monitora a alterado do campo - evento validateField).
// Indica que, ao alterar o campo "Caminho completo do executável GZIP",
// deverá chamar o validateField da API-REST do Produto (Aba: Configurações)
oCustFields:setFieldValidate("execGZIPProgram",
pAPI,
"fieldsTypingConfigurations").

addValidateFields ( pCodField )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo. Se não for informado, será considerado o agrupador padrão "fields".

Retorno (LOGICAL): Lógico indicativo se foi possível incluir o atributo.

Inclui um Atributo no ValidateFields do Formulário (evento validateForm).

Observação: Utilizar este método para tela que implementam o componente DynamicForm.

// Indica que, ao alterar o campo "Código tributação ICMS", 
// deverá chamar o validateForm da API-REST do Produto
// (Aba: Digitação/Geração)
oCustFields:addValidateFields("enableICMSTaxationCode").

isChangedField ( pCodField )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo.

Retorno (LOGICAL): Lógico indicativo se o atributo teve seu valor alterado.

Verifica se um Atributo foi alterado (eventos ValidateForm e ValidateField).
// Se alterar o campo “Código tributação ICMS” (Aba: Digitação/Geração): 
// - Se "sim": desabilita o campo “Percentual redução ICMS” e muda o
campo "Alíquota ICMS" para "sim", 
// - Se "não": faz ao contrário
IF oCustFields:isChangedField("enableICMSTaxationCode") THEN DO:
ASSIGN vValorMark = oCustFields:getFieldValueLogical("enableICMSTaxationCode").
IF vValorMark <> ? THEN DO:
oCustFields:setFieldProperty("enableICMSReductionPercentage",
"disabled",
vValorMark).
oCustFields:setFieldValue("enableICMSRate",
vValorMark).
END.
END.

// Se alterar o campo "Caminho completo do executável GZIP" 
// (Aba: Digitação/Geração):
// - Muda o conteúdo para minísculo
// - Retira os acentos
// - Se retirar os acentos, muda o label para
"Caminho completo do executável GZIP (AJUST)"
IF oCustFields:isChangedField("execGZIPProgram") THEN DO:
ASSIGN vValorAtual = oCustFields:getFieldValueCharacter("execGZIPProgram").
IF vValorAtual <> ? THEN DO:
ASSIGN vValorAjust = LC(vValorAtual)
vValorAjust = REPLACE(vValorAjust, "á", "a")
vValorAjust = REPLACE(vValorAjust, "é", "e")
vValorAjust = REPLACE(vValorAjust, "í", "i")
vValorAjust = REPLACE(vValorAjust, "ó", "o")
vValorAjust = REPLACE(vValorAjust, "ú", "u")
vValorAjust = REPLACE(vValorAjust, "ã", "a")
vValorAjust = REPLACE(vValorAjust, "õ", "o")
vValorAjust = REPLACE(vValorAjust, "ç", "c").
oCustFields:setFieldValue("execGZIPProgram",
vValorAjust).
IF NOT vValorAjust MATCHES(vValorAtual) THEN
oCustFields:setFieldLabel("execGZIPProgram",
"Caminho completo do executável GZIP (AJUST)").
ELSE
oCustFields:setFieldLabel("execGZIPProgram",
"Caminho completo do executável GZIP").
END.
END.

getReturnRoot ( )

Retorno (JsonObject): Root de retorno.

Retorno um JsonOject que representa o Root de retorno (eventos ValidateForm e ValidateField).

getFieldValueCharacter ( pCodField )

getFieldValueInteger ( pCodField )

getFieldValueDecimal ( pCodField )

getFieldValueLogical ( pCodField )

getFieldValueDate ( pCodField )

getFieldValueJsonObject ( pCodField )

getFieldValueJsonArray ( pCodField )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo.

Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL,DATE,JsonObject,JsonArray): Valor do atributo.

Retorna o valor de um Atributo.
// Se alterar o campo “Código tributação ICMS” (Aba: Digitação/Geração): 
// - Se "sim": desabilita o campo “Percentual redução ICMS” e muda
o campo "Alíquota ICMS" para "sim", 
// - Se "não": faz ao contrário
IF oCustFields:isChangedField("enableICMSTaxationCode") THEN DO:
ASSIGN vValorMark = oCustFields:getFieldValueLogical("enableICMSTaxationCode").
IF vValorMark <> ? THEN DO:
oCustFields:setFieldProperty("enableICMSReductionPercentage",
"disabled",
vValorMark).
oCustFields:setFieldValue("enableICMSRate",
vValorMark).
END.
END.

// Se alterar o campo "Caminho completo do executável GZIP" 
(Aba: Digitação/Geração):
// - Muda o conteúdo para minísculo
// - Retira os acentos
// - Se retirar os acentos, muda o label para
// "Caminho completo do executável GZIP (AJUST)"
IF oCustFields:isChangedField("execGZIPProgram") THEN DO:
ASSIGN vValorAtual = oCustFields:getFieldValueCharacter("execGZIPProgram").
IF vValorAtual <> ? THEN DO:
ASSIGN vValorAjust = LC(vValorAtual)
vValorAjust = REPLACE(vValorAjust, "á", "a")
vValorAjust = REPLACE(vValorAjust, "é", "e")
vValorAjust = REPLACE(vValorAjust, "í", "i")
vValorAjust = REPLACE(vValorAjust, "ó", "o")
vValorAjust = REPLACE(vValorAjust, "ú", "u")
vValorAjust = REPLACE(vValorAjust, "ã", "a")
vValorAjust = REPLACE(vValorAjust, "õ", "o")
vValorAjust = REPLACE(vValorAjust, "ç", "c").
oCustFields:setFieldValue("execGZIPProgram",
vValorAjust).
IF NOT vValorAjust MATCHES(vValorAtual) THEN
oCustFields:setFieldLabel("execGZIPProgram",
"Caminho completo do executável GZIP (AJUST)").
ELSE
oCustFields:setFieldLabel("execGZIPProgram",
"Caminho completo do executável GZIP").
END.
END.

setFieldValue ( pCodField , pCodValue )

Parâmetros:

  • pCodField (CHARACTER): Código do atributo;
  • pCodValue (CHARACTER,INTEGER,DECIMAL,LOGICAL,DATE): Novo valor.

Retorno (LOGICAL): Indicativo se foi possível alterar o atributo.

Altera o valor de um Atributo.
// Se alterar o campo “Código tributação ICMS” (Aba: Digitação/Geração): 
// - Se "sim": desabilita o campo “Percentual redução ICMS” e
// muda o campo "Alíquota ICMS" para "sim",
// - Se "não": faz ao contrário
IF oCustFields:isChangedField("enableICMSTaxationCode") THEN DO:
ASSIGN vValorMark = oCustFields:getFieldValueLogical("enableICMSTaxationCode").
IF vValorMark <> ? THEN DO:
oCustFields:setFieldProperty("enableICMSReductionPercentage",
"disabled",
vValorMark).
oCustFields:setFieldValue("enableICMSRate",
vValorMark).
END.
END.
// Se alterar o campo "Caminho completo do executável GZIP" 
// (Aba: Digitação/Geração):
// - Muda o conteúdo para minísculo
// - Retira os acentos
// - Se retirar os acentos, muda o label para
// "Caminho completo do executável GZIP (AJUST)"
IF oCustFields:isChangedField("execGZIPProgram") THEN DO:
ASSIGN vValorAtual = oCustFields:getFieldValueCharacter("execGZIPProgram").
IF vValorAtual <> ? THEN DO:
ASSIGN vValorAjust = LC(vValorAtual)
vValorAjust = REPLACE(vValorAjust, "á", "a")
vValorAjust = REPLACE(vValorAjust, "é", "e")
vValorAjust = REPLACE(vValorAjust, "í", "i")
vValorAjust = REPLACE(vValorAjust, "ó", "o")
vValorAjust = REPLACE(vValorAjust, "ú", "u")
vValorAjust = REPLACE(vValorAjust, "ã", "a")
vValorAjust = REPLACE(vValorAjust, "õ", "o")
vValorAjust = REPLACE(vValorAjust, "ç", "c").
oCustFields:setFieldValue("execGZIPProgram",
vValorAjust).
IF NOT vValorAjust MATCHES(vValorAtual) THEN
oCustFields:setFieldLabel("execGZIPProgram",
"Caminho completo do executável GZIP (AJUST)").
ELSE
oCustFields:setFieldLabel("execGZIPProgram",
"Caminho completo do executável GZIP").
END.
END.

// Altera o valor da coluna "Variação máxima data emissão" para "888"
// (Aba: Digitação/Geração)
oCustFields:setFieldValue("variationIssuing",
888).

getFieldValues ( )

Retorno (JsonObject): Valores do registro.

Retorno um JsonOject que representa os Valores do registro ou retorno(eventos ValidateForm e ValidateField).

...