Árvore de páginas

Versões comparadas

Chave

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

CONTEÚDO

  1. INTRDUÇÃO / OBJETIVO
  2. UTILIZAÇÃO DO UTILITÁRIO
  3. CLASSES
    1. CustomOrig
    2. CustomPage
    3. CustomFields
    4. CustomActions
    5. CustomRecord
    6. CustomMessages
  4. EXEMPLOS DA UTILIZAÇÃO DAS CLASSES

01. INTRODUÇÃO / OBJETIVO
Âncora
introducao
introducao

...

O objeto deste utilitário é facilitar a manipulação destas informações, disponibilizando métodos que realizam as ações desejadas, sem a necessidade do profundo conhecimento da estrutura. Além disto, há uma considerável redução nas linhas de código necessárias para executar a mesma ação. Por exemplo, para desabilitar um campo (cenário apresentado anteriormente), é necessário apenas uma linha de código.

02.UTILIZAÇÃO DO UTILITÁRIO
Âncora
utilizacao
utilizacao

O utilitário disponibiliza um conjuntos de Classes que podem ser utilizadas diretamente dentro da UPC para executar as ações desejadas.

...

Bloco de código
languagetext
titleExemplo utilização da classe CustomFields
linenumberstrue
// Indica a UPC onde estão as Classes
USING PROGRESS.json.ObjectModel.*. // Classes da Progress
USING com.totvs.framework.po.*.    // Classes do Utilitário

// Parâmetros recebidos pela UPC
DEF INPUT        PARAM pEndPoint AS CHAR       NO-UNDO.
DEF INPUT        PARAM pEvent    AS CHAR       NO-UNDO.
DEF INPUT        PARAM pAPI      AS CHAR       NO-UNDO.
DEF INPUT-OUTPUT PARAM jsonIO    AS JsonObject NO-UNDO.

// Define a variável que irá representar a Classe
DEF VAR oCustFields AS CustomFields NO-UNDO.

// Evento de Busca do Metadata da  de Novo/Editar
IF pEndPoint = "getMetaData" AND (pEvent = "new" OR pEvent = "edit") THEN DO:

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

    // Desabilita o campo "Atualizar com erro de duplicata" (nome interno: updatesWithDuplicateError)
    oCustFields:setDisableField("updatesWithDuplicateError").

    // Retira a Classe da memória
    DELETE OBJECT oCustFields NO-ERROR.
END.

03.CLASSES
Âncora
classes
classes

Abaixo segue a lista das Classes disponíveis, indicando o objetivo de cada uma delas, juntamente com os Métodos disponíveis.

a.CustomOrig
Âncora
CustomOrig
CustomOrig

Este é uma classe auxiliar, que não possui métodos. Ela é utilizada apenas para definir as opções disponíveis de pontos de customização.

...

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
Âncora
CustomPages
CustomPages

Classe 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
Âncora
CustomFields
CustomFields

Classe 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).

d.CustomActions
Âncora
CustomActions
CustomActions

Classe utilizada para realizar customizações relacionadas as Ações da tela HTML. Estas ações podem ser de 2 tipos:

...

MétodoDescriçãoExemplo

setAction ( pCodAction , pCodValue )

Parâmetros:

  • pCodAction (CHARACTER): Código da Ação;
  • pCodValue: Valor da Ação, usar uma das opções:
    • pCodURL (CHARACTER): Valor da URL a ser executada pela Ação;
    • pCodValue (LOGICAL): Valor da Ação.

Retorno (LOGICAL): Indicativo se foi possível incluir/alterar a Ação.

Inclui ou Altera uma Ação Padrão.
// Retira a Ação Padrão de "Excluir" da Tabela    
oCustActions:setAction("remove",
FALSE).

getActionCharacter ( pCodAction )

getActionLogical ( pCodAction )

Parâmetros:

  • pCodAction (CHARACTER): Código da Ação.

Retorno (CHARACTER,LOGICAL): Valor da Ação.

Retorna o valor de uma Ação Padrão.
// Faz a Ação Padrão de Visualizar abrir a tela de Edição
oCustActions:setAction("detail",
oCustActions:getActionCharacter("edit")).

removeAction ( pCodAction )

Parâmetros:

  • pCodAction (CHARACTER): Código da Ação.

Retorno (LOGICAL): Indicativo se foi possível remover a Ação.

Remove uma Ação Padrão.
// Retira a Ação Padrão de "Cópia" da Tabela
oCustActions:removeAction("duplicate").

getActions ( )

Retorno (JsonObject): Ações padrões.

retorna um JsonObject que representa as Ação Padrão.

setPageCustomActionProperty ( pIdAction , pCodProperty , pCodValue )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.
  • 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 de uma Ação Customizada de Página.
// Inclui o icone de Refresh na Ação Customizada "Atz Dados" da Pagina
oCustActions:setPageCustomActionProperty("Atz Dados",
"icon",
"po-icon po-icon po-icon-refresh").

getPageCustomActionPropertyCharacter ( pIdAction , pCodProperty )

getPageCustomActionPropertyInteger ( pIdAction , pCodProperty )

getPageCustomActionPropertyDecimal ( pIdAction , pCodProperty )

getPageCustomActionPropertyLogical ( pIdAction , pCodProperty )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.
  • pCodProperty (CHARACTER): Propriedade.

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

Retorna o valor de uma propriedade de uma Ação Customizada de Página.

getPageCustomAction ( pIdAction )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.

Retorno (JsonObject): Uma Ação Customizada de Página.

Retorna um JsonObject que representa uma Ação Customizada de Página.
// Altera o Endereço da primeira Ação Customizada da Pagina
oAction = oCustActions:getPageCustomAction(1).
IF oAction <> ? THEN
oAction:set("action", 
"http://newserver:8080/customer").

addPageCustomAction ( pNumType , pCodLabel , pCodAddress [ , pCodIcon ] )

Parâmetros:

  • pNumType: Tipo da Ação, usar uma das opções:
    • CustomActions:TYPE_ENDPOINT - para chamada ao BackEnd;
    • CustomActions:TYPE_ROUTE - para chamada de uma Rota (URL).
  • pCodLabel (CHARACTER): Label da Ação;
  • pCodAddress (CHARACTER): Endereço da Ação que será executada;
  • pCodIcon (CHARACTER): Ícone da Ação.

Retorno (JsonObject): Ação Customizada de Página Incluída.

Incluir uma nova Ação Customizada na Página.
// Inclui uma nova Ação Customizada no Pagina chamada "Atz Dados" que chama
// uma EndPoint
oCustActions:addPageCustomAction(CustomActions:TYPE_ENDPOINT,
"Atz Dados",
"http://server01:3000/atzDados").
// Inclui uma nova Ação Customizada no Pagina chamada "Google" que chama uma
// Rota
oCustActions:addPageCustomAction(CustomActions:TYPE_ROUTE,
"Google",
"http://www.google.com",
"po-icon po-icon-device-desktop").

removePageCustomAction ( pIdAction )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.

Retorno (LOGICAL): Indicativo se foi possível remover a Ação.

Remove uma Ação Customizada de Página.
// Elimina a Ação Customizada chamada "Doctos" da Pagina
oCustActions:removePageCustomAction("Doctos").

getPageCustomActions ( )

Retorno (JsonArray): Ações Customizadas de Página.

Retorna a lista de Ações Customizadas de Página.

setTableCustomActionProperty ( pIdAction , pCodProperty , pCodValue )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.
  • 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 de uma Ação Customizada de Tabela.

getTableCustomActionPropertyCharacter ( pIdAction , pCodProperty )

getTableCustomActionPropertyInteger ( pIdAction , pCodProperty )

getTableCustomActionPropertyDecimal ( pIdAction , pCodProperty )

getTableCustomActionPropertyLogical ( pIdAction , pCodProperty )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.
  • pCodProperty: Propriedade.

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

Retorna o valor de uma propriedade de uma Ação Customizada de Tabela.

getTableCustomAction ( pIdAction )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.

Retorno (JsonObject): Uma Ação Customizada de Tabela.

Retorna um JsonObject que representa uma Ação Customizada de Tabela.

addTableCustomAction ( pNumType , pCodLabel , pCodAddress [ , pCodIcon ] [ , pConcatKeys ] )

Parâmetros:

  • pNumType: Tipo da Ação, usar uma das opções:
    • CustomActions:TYPE_ENDPOINT - para chamada ao BackEnd;
    • CustomActions:TYPE_ROUTE - para chamada de uma Rota (URL).
  • pCodLabel (CHARACTER): Label da Ação;
  • pCodAddress (CHARACTER): Endereço da Ação que será executada;
  • pCodIcon (CHARACTER): Ícone da Ação;
  • pConcatKeys (LOGICAL): Indica se deve ser acrescentada a propriedade "concatKeys" na Ação.

Retorno (JsonObject): Ação Customizada de Tabela Incluída.

Incluir uma nova Ação Customizada na Tabela.
// Inclui uma nova Ação Customizada no Tabela chamada "Bloqueia" que chama
// uma EndPoint
oCustActions:addTableCustomAction(CustomActions:TYPE_ENDPOINT,
"Bloqueia",
"http://server01:3000/block",
"po-icon po-icon po-icon-refresh").
// Inclui uma nova Ação Customizada no Tabela chamada "Det Adicional" que
// chama uma Rota
oCustActions:addTableCustomAction(CustomActions:TYPE_ROUTE,
"Det Adicional",
"http://newserver:8080/dts/customer/detail").

removeTableCustomAction ( pIdAction )

Parâmetros:

  • pIdAction: Identificador da Ação, usar uma das opções:
    • pCodLabel (CHARACTER): Label da Ação;
    • pNumIndex (INTEGER): Posição da Ação dentro da Lista de Ações.

Retorno (LOGICAL): Indicativo se foi possível remover a Ação.

Remove uma Ação Customizada de Tabela.
// Elimina a Ação Customizada chamada "Relacto" da Pagina
oCustActions:removeTableCustomAction("Relacto").

getTableCustomActions ( )

Retorno (JsonArray): Ações Customizadas de Tabela.

Retorna a lista de Ações Customizadas de Tabela.

getServerAddress ( pIsExt )

Parâmetros:

  • pIsExt (LOGICAL): Indica se deve ser considerado o Endereço Exerno (Valor: TRUE) ou Interno (Valor:FALSE). Se for solicitado o Externo e ele não existir, será devolvido o interno.

Retorno (CHARACTER): Endereço no formato: http://HOST:PORT.

Retorna o Endereço onde o Datasul está hospedado.

e.CustomRecords
Âncora
CustomRecords
CustomRecords

Classe utilizada para alterar os registros que estão sendo enviados pela tela HTML. Ela pode ser utlizalida tanto no evento que retornam vários registros, com naqueles que é retornado apenas um.

...

MétodoDescriçãoExemplo

getEntityKeyCharacter ( )

getEntityKeyInteger ( )

Retorno (CHARACTER,INTEGER): Chave do registro.

Retorna a chave do Registro na manipulação do Metadata (Alteração, Detalhe).

updateRecords ( pProg , pPiName )

Parâmetros:

  • pProg (HANDLE): Handle do programa UPC;
  • pPiName (CHARACTER): Nome da PI que será executada a cada registro dos dados. Ela deve receber como parâmetro um JsonObject que representa o registro, exemplo:

    DEF INPUT PARAM oItem AS JsonObject NO-UNDO.

Retorno (LOGICAL): Indicativo se é possível alterar o registro.

Navega nos registros e executa uma PI interna da UPC para customização dos dados.

// Indica que dever ser executada a PI "pi_altera_registros" para 
// realizar a alteração nos registros
oCustRecords:updateRecords(THIS-PROCEDURE, "pi_altera_registros").

// PI que será executada para cada registro da Tabela
PROCEDURE pi_altera_registros:
DEF INPUT PARAM oItem AS JsonObject NO-UNDO.

// Atualiza a coluna "Cópia Usuário" com o valor da coluna "Usuário"
oItem:ADD("userCopy", oItem:getCharacter("userCode")).

// Altera o conteúdo da coluna "Nome", concatenado: "- Alterado"
oItem:SET("userName", oItem:getCharacter("userName") + " - Alterado").
END PROCEDURE.

f.CustomMessages
Âncora
CustomMessages
CustomMessages

Classe utilizada para criação de mensagens que erro que serão enviadas para a tela HTML.

...

MétodoDescriçãoExemplo

createMessageError ( pMsgNumber , pMsgDescription , pMsgHelp )

Parâmetros:

  • pMsgNumber (INTEGER): Número da Mensagem;
  • pMsgDescription (CHARACTER): Descrição da Mensagem;
  • pMsgHelp (CHARACTER): Help da Mensagem.

Retorno (JsonObject): Mensagem no padrão TOTVS de Mensagem.

Cria uma mensagem do tipo ERROR para enviar ao FrontEnd.
// Valida se o campo "Caminho completo do executável GZIP" foi
// informado, se não foi, retorna uma mensagem de Erro

ASSIGN vValorAtual = oCustFields:getFieldValueCharacter("execGZIPProgram"). 

IF vValorAtual = "" OR vValorAtual = ? THEN

jsonIO = oCustMsgs:createMessageError(1,
"Caminho completo do executável GZIP OBRIGATÓRIO",
"O campo 'Caminho completo do executável GZIP' deve ser informado, não pode ser branco !").

// Indica que não deve ser Salvo a Alteração do Registro
IF vValorAtual = "" OR vValorAtual = ? THEN
RETURN "NOK".

04.EXEMPLOS DA UTILIZAÇÃO DAS

...

CLASSES
Âncora
exemplos
exemplos

Abaixo segue o exemplo de uma UPC utilizado grande parte dos métodos das classes do utilitário:

...