Histórico da Página
CONTEÚDO
- INTRDUÇÃO / OBJETIVO
- XXXXX
- Xxxxxx
- Xxxxxx
- XXXX
- Xxxxx
- Xxxxxx
- UTILIZAÇÃO DO UTILITÁRIO
- CLASSES
- EXEMPLOS DA UTILIZAÇÃO DAS CLASSESXXXXXXX
01. INTRODUÇÃO /
...
OBJETIVO Âncora introducao introducao
introducao | |
introducao |
Para que as telas HTML possam ser customizadas, e necessário alterar o Metadata e Dados que são enviados para elas. Para isto, é necessário conhecer a estrutura destas informações, desta forma, assim sendo possível pegar o que se deseja e fazer as alterações necessária. Por exemplo, para desabilitar um campo de um formulário, e necessário encontrar o agrupador de campos, navegar nele até encontrar o campo desejado e depois, incluir a propriedade responsável por debilitadebilitá-lo.
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.
Nota | ||
---|---|---|
| ||
Funcionalidade disponível a partir da release 12.1.2411 ou patches: 12.1.2407.5, 12.1.2403.11, 12.1.2311.16. |
02.UTILIZAÇÃO DO UTILITÁRIO Âncora utilizacao utilizacao
utilizacao | |
utilizacao |
O utilitário disponibiliza um conjuntos de Classes que podem ser utilizadas diretamente dentro da UPC para executar as ações desejadas.
As classes estão dividas conforme a parte que será customizada, por exemplo, para alterar campos do formulário, será deve ser utilizada a classe CustomFields, para alterar as ações, será deve ser utilizada a CustomActions, e assim por diante. Mas, todas elas seguem o
Para utilizá-las, é necessário informar o caminho onde estão disponíveis. Portanto, deve ser incluída a linha de comando abaixo no início da UPC:
Bloco de código | ||
---|---|---|
| ||
USING com.totvs.framework.po.*. |
Todas as classes seguem o mesmo padrão de utilização e recebem os mesmos parâmetros, conforme descrito abaixo:
- Definir uma variável do tipo da classe, que irá representá-la;
- Instanciar a classe, passando os seguintes parâmetros:
- pOrigin:
- Corresponde ao Endpoint/Evento que será tratado dentro da UPC. Ver detalhes a seguir no descritivo da classe: CustomOrig;
- jsonIO (JsonObject):
- Informações/dados recebidas pela UPC (corresponde ao quarto parâmetro recebido pela UPC).
- Utilizar as funções desejadas;
- E por final, retirar a classe da memória.
Abaixo segue um exemplo da utilização da conforme exemplo abaixo da classe "CustomFields", como o objetivo de desabilitar um campo do Formulário de Inclusão/Edição:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
// Indica aoa programaUPC 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 Tela 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 |
Xxxxxxxx
------------------
CLASSE: CustomOrig: Informar o Local/Origem onde está sendo utilizado a Classe
------------------
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
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.
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 buscar/alterar a informação desejada.
Abaixo segue a lista da opções disponíveis:
- CustomOrig:ORIG_METADATA - Utilizar nos pontos relacionados a alterações no Metadata da tela HTML;
- 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
- CustomOrig:ORIG_METADATA - Método de manipulação do Metadata;
- CustomOrig:ORIG_VLD_FORM - Método de manipulação do validateForm;
- CustomOrig:ORIG_VLD_FIELD - Método de manipulação do validateField;
- CustomOrig:ORIG_GET_RECORD - Método de manipulação na busca de um registro;
- CustomOrig:ORIG_GET_ALL - Método de manipulação na Utilizar nos pontos relacionados a busca de vários várias registros;
- CustomOrig:ORIG_CREATE_RECORD - Método de Utilizar nos pontos relacionados a criação de um registro;
- CustomOrig:ORIG_UPDATE_RECORD - Método de Utilizar nos pontos relacionados a alteração de um registro;
- CustomOrig:ORIG_DELETE_RECORD - Método de eliminação Utilizar nos pontos relacionados a exclusão de um registro.
------------------
CLASSE: CustomPage: Customizações da Página
------------------
Abaixo segue um exemplo da utilização deste classe, na instancia da classe CustomFields, para o evento de validateForm:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
// 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
CustomPages | |
CustomPages |
Classe utilizada para manipular as propriedades gerais da Página, como por exemplo o Título dela.
Método | Descrição | Exemplo | ||||
---|---|---|---|---|---|---|
setPageTitle ( pCodTitle ) Parâmetros:
| ||||||
Método | Descrição | Exemplo | ||||
setPageTitle ( pCodTitle ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar o Título. | Altera o Titulo da Tela. | getPageTitle ( ) Retorno (CHARACTER): Título da Página. | Retorna o Titulo da Tela. | setPageProperty ( pCodProperty , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar a Propriedadeo Título. | Altera uma propriedade o Titulo da Telapágina. | oCustPages:setPageTitle("Clientes Prime"). |
getPageTitle ( ) Retorno (CHARACTER): Título da Página. | Retorna o Titulo da página. | ASSIGN vTitulo = oCustPages:getPageTitle(). | ||||
setPageProperty ( pCodProperty , pCodValue ) Parâmetros:
getPagePropertyCharacter ( pCodProperty ) getPagePropertyInteger ( pCodProperty ) getPagePropertyDecimal ( pCodProperty ) getPagePropertyLogical ( pCodProperty ) Parâmetros:
Retorno (LOGICAL): Valor da Indicativo se foi possível alterar a Propriedade. | Retorna o valor de Altera uma propriedade da Tela. |
--------------------
CLASSE: CustomFields: Customizações de Campos
--------------------
página. | oCustPages:setPageProperty("keepfilters", TRUE). | |
getPagePropertyCharacter ( pCodProperty ) getPagePropertyInteger ( pCodProperty ) getPagePropertyDecimal ( pCodProperty ) getPagePropertyLogical ( pCodProperty ) Parâmetros:
Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Valor da Propriedade. | Retorna o valor de uma propriedade da página. | ASSIGN vConctFilter = |
c.CustomFields Âncora CustomFields CustomFields
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étodo | Descrição | Exemplo | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
setFieldLabel ( pCodField , pCodLabel [ , pGroupId ] ) Parâmetros:
| ||||||||||||
Método | Descrição | Exemplo | ||||||||||
setFieldLabel ( pCodField , pCodLabel [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar o Label. | Altera o Label de um Atributo. | setDisableField ( pCodField [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível desabilitar o atributo. | Desabilita um Atributo. | setEnableField ( pCodField [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível habilitar alterar o atributoLabel. | Altera o Label de um campo. | Exemplo1: | ||||||
setDisableField | Habilita um Atributo. | setHideField ( pCodField [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível esconder o atributo. | Esconde um Atributo. | setShowField ( pCodField [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível apresentar desabilitar o atributocampo. | Mostra Desabilita um Atributocampo. | Exemplo1: | ||||||
setEnableField ( pCodField [ , pGroupId ] ) Parâmetros:
setFieldProperty ( pCodField , pCodProperty , pCodValue [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar a propriedadehabilitar o campo. | Altera uma propriedade de um Atributo. | Habilita um campo. | Exemplo1: | |||||||||
setHideField ( pCodField getFieldPropertyCharacter ( pCodField , pCodProperty [ , pGroupId ] ) getFieldPropertyInteger ( pCodField , pCodProperty [ , pGroupId ] ) getFieldPropertyDecimal ( pCodField , pCodProperty [ , pGroupId ] ) getFieldPropertyLogical ( pCodField , pCodProperty [ , pGroupId ] ) Parâmetros:
Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Valor da Propriedade. | Retorna o valor de uma propriedade de um Atributo. | Indicativo se foi possível esconder o campo. | Esconde um campo. | Exemplo1: | ||||||||
setShowField | getFields ( [ pGroupId ] ) Parâmetros:
Retorno (JsonArray): Lista de Atributos. | Retorna um JsonArray que representa a lista de Atributos. | getField ( pCodField [ , pGroupId ] ) Parâmetros:
Retorno (JsonObjectLOGICAL): Um atributoIndicativo se foi possível apresentar o campo. | Retorna um JsonObject que representa um Atributo. | Mostra um campo. | Exemplo1: | ||||||
setFieldProperty ( pCodField , pCodProperty , pCodValue addField ( pCodField , pCodLabel , pCodType [ , pPosition ] [ , pGroupId ] ) Parâmetros:
Retorno (JsonObjectLOGICAL): Atributo IncluídoIndicativo se foi possível alterar a propriedade. | Incluir um novo Atributo. | Altera uma propriedade de um campo. | Exemplo1: | |||||||||
getFieldPropertyCharacter ( pCodField , pCodProperty [ , pGroupId ] ) getFieldPropertyInteger ( pCodField , pCodProperty [ , pGroupId ] ) getFieldPropertyDecimal ( pCodField , pCodProperty [ , pGroupId ] ) getFieldPropertyLogical ( pCodField , pCodProperty [ , pGroupId ] ) Parâmetros:
changeFieldOrder ( pCodField [ , pPosition ] [ , pGroupId ] ) Parâmetros:
Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Indicativo se foi possível alterar a ordem. | Altera a Ordem de um Atributo. | setFieldValidate ( pCodField , pCodProg [ , pGroupId ] ) setFieldValidateCustom ( pCodField , pEndpoint [ , pGroupId ] ) Parâmetros:
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). | Valor da Propriedade. | Retorna o valor de uma propriedade de um campo. | Exemplo1: | ||||||
getFields ( [ pGroupId ] ) Parâmetros:
Retorno (JsonArray): Lista de campos. | Retorna um JsonArray que representa a lista de campos. | Exemplo1: | ||||||||||
getField ( pCodField [ , pGroupId ] | addValidateFields ( pCodField ) Parâmetros:
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. | isChangedField ( pCodField ) Parâmetros:
Retorno (LOGICAL): Lógico indicativo se o atributo teve seu valor alterado. | Verifica se um Atributo foi alterado (eventos ValidateForm e ValidateField). | 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:
| Retorna o valor de um Atributo. | setFieldValue ( pCodField , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar o atributo. | Altera o valor de um Atributo. | getFieldValues ( ) Retorno (JsonObject): Valores do registro. | Retorno um JsonOject que representa os Valores do registro ou retorno(eventos ValidateForm e ValidateField). |
---------------------
CLASSE: CustomActions: Customizações de Ações da Página e da Tabela
---------------------
Retorno (JsonObject): Um campo. | Retorna um JsonObject que representa um campo. | Exemplo1: |
addField ( pCodField , pCodLabel , pCodType [ , pPosition ] [ , pGroupId ] ) Parâmetros:
Retorno (JsonObject): campo Incluído. | Incluir um novo campo. | Exemplo1: |
changeFieldOrder ( pCodField [ , pPosition ] [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar a ordem. | Altera a Ordem de um campo. | Exemplo1: |
setFieldValidate ( pCodField , pCodProg [ , pGroupId ] ) setFieldValidateCustom ( pCodField , pEndpoint [ , pGroupId ] ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível incluir a propriedade no campo. | Incluir a propriedade 'validate' no campo (monitora a alterado do campo - evento validateField). | Exemplo1: |
addValidateFields ( pCodField ) Parâmetros:
Retorno (LOGICAL): Lógico indicativo se foi possível incluir o campo. | Inclui um campo no ValidateFields do Formulário (evento validateForm). Observação: Utilizar este método para telas HTML que implementam o componente DynamicForm. | oCustFields:addValidateFields("enableICMSTaxationCode"). |
isChangedField ( pCodField ) Parâmetros:
Retorno (LOGICAL): Lógico indicativo se o campo teve seu valor alterado. | Verifica se um campo foi alterado (eventos ValidateForm e ValidateField). | IF oCustFields:isChangedField("enableICMSTaxationCode") |
getReturnRoot ( ) Retorno (JsonObject): Root de retorno. | Retorna um JsonOject que representa o Root de retorno (eventos ValidateForm e ValidateField). | DEFINE VARIABLE oRoot AS JsonObject NO-UNDO. |
getFieldValueCharacter ( pCodField ) getFieldValueInteger ( pCodField ) getFieldValueDecimal ( pCodField ) getFieldValueLogical ( pCodField ) getFieldValueDate ( pCodField ) getFieldValueJsonObject ( pCodField ) getFieldValueJsonArray ( pCodField ) Parâmetros:
Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL,DATE,JsonObject,JsonArray): Valor do campo. | Retorna o valor de um campo. | Exemplo1: |
setFieldValue ( pCodField , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar o campo. | Altera o valor de um campo. | Exemplo1: |
getFieldValues ( ) Retorno (JsonObject): Valores do registro. | Retorna um JsonOject que representa os Valores do registro. | DEFINE VARIABLE oValues AS JsonObject NO-UNDO. |
d.CustomActions Âncora CustomActions CustomActions
CustomActions | |
CustomActions |
Classe utilizada para realizar customizações relacionadas as Ações da tela HTML. Estas ações podem ser de 2 tipos:
- Ações Padrões: Correspondem as ações: Incluir, Editar, Copiar, Visualizar e Excluir.
- Ações Customizadas: Correspondem a qualquer outra ação que não seja padrão, incluídas pelo próprio produto ou de forma customizada. Exemplo: "Atualiza Doc".
Através desta classe, é possível manipular as ações existentes na Páginas e também nas Tabelas.
Método | Descrição | Exemplo | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
setAction ( pCodAction , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível incluir/alterar a Ação. | Inclui ou Altera uma Ação Padrão. | Exemplo1: | |||||||||||||||||||||||
getActionCharacter ( pCodAction ) getActionLogical ( pCodAction ) Parâmetros:
Retorno (CHARACTER,LOGICAL): Valor da Ação. | Retorna o valor de uma Ação Padrão. | Exemplo1: | |||||||||||||||||||||||
removeAction ( pCodAction ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível remover a Ação. | Remove uma Ação Padrão. | oCustActions:removeAction("duplicate"). | |||||||||||||||||||||||
getActions ( ) Retorno (JsonObject): Ações padrões. | retorna um JsonObject que representa as Ação Padrão. | DEFINE VARIABLE oActions AS JsonObject NO-UNDO. | |||||||||||||||||||||||
setPageCustomActionProperty ( pIdAction , pCodProperty , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar a propriedade. | Altera uma propriedade de uma Ação Customizada de Página. | Exemplo1: | |||||||||||||||||||||||
getPageCustomActionPropertyCharacter ( pIdAction , pCodProperty ) getPageCustomActionPropertyInteger ( pIdAction , pCodProperty ) getPageCustomActionPropertyDecimal ( pIdAction , pCodProperty ) getPageCustomActionPropertyLogical ( pIdAction , pCodProperty ) Parâmetros:
Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Valor da Propriedade. | Retorna o valor de uma propriedade de uma Ação Customizada de Página. | Exemplo1: | |||||||||||||||||||||||
getPageCustomAction ( pIdAction ) Parâmetros:
Retorno (JsonObject): Uma Ação Customizada de Página. | Retorna um JsonObject que representa uma Ação Customizada de Página. | Exemplo1: | |||||||||||||||||||||||
addPageCustomAction ( pNumType , pCodLabel , pCodAddress [ , pCodIcon ] ) Parâmetros:
Retorno (JsonObject): Ação Customizada de Página Incluída. | Incluir uma nova Ação Customizada na Página. | Exemplo1: | |||||||||||||||||||||||
removePageCustomAction ( pIdAction ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível remover a Ação. | Remove uma Ação Customizada de Página. | Exemplo1: | |||||||||||||||||||||||
getPageCustomActions ( ) Retorno (JsonArray): Ações Customizadas de Página. | Retorna a lista de Ações Customizadas de Página. | DEFINE VARIABLE oPageCustomActions AS JsonArray NO-UNDO. | |||||||||||||||||||||||
setTableCustomActionProperty ( pIdAction , pCodProperty , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar a propriedade. | Altera uma propriedade de uma Ação Customizada de Tabela. | Exemplo1: | |||||||||||||||||||||||
getTableCustomActionPropertyCharacter ( pIdAction , pCodProperty ) getTableCustomActionPropertyInteger ( pIdAction , pCodProperty ) getTableCustomActionPropertyDecimal ( pIdAction , pCodProperty ) getTableCustomActionPropertyLogical ( pIdAction , pCodProperty ) Parâmetros:
Retorno (CHARACTER,INTEGER,DECIMAL,LOGICAL): Valor da Propriedade. | Retorna o valor de uma propriedade de uma Ação Customizada de Tabela. | Exemplo1: | |||||||||||||||||||||||
getTableCustomAction ( pIdAction ) Parâmetros:
Retorno (JsonObject): Uma Ação Customizada de Tabela. | Retorna um JsonObject que representa uma Ação Customizada de Tabela. | Exemplo1: | |||||||||||||||||||||||
addTableCustomAction ( pNumType , pCodLabel , pCodAddress [ , pCodIcon ] [ , pConcatKeys ] ) Parâmetros:
Retorno (JsonObject): Ação Customizada de Tabela Incluída. | Incluir uma nova Ação Customizada na Tabela. | Exemplo1: | |||||||||||||||||||||||
removeTableCustomAction ( pIdAction | |||||||||||||||||||||||||
Método | Descrição | Exemplo | setAction ( pCodAction , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível incluir/alterar a Ação. | Inclui ou Altera uma Ação Padrão. | |||||||||||||||||||||
getActionCharacter ( pCodAction ) getActionLogical ( pCodAction ) Parâmetros:
Retorno (CHARACTER,LOGICAL): Valor da Ação. | Retorna o valor de uma Ação Padrão. | removeAction ( pCodAction ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível remover a Ação. | Remove uma Ação Padrão. | getActions ( ) Retorno (JsonObject): Ações padrões. | retorna um JsonObject que representa as Ação Padrão. | setPageCustomActionProperty ( pIdAction , pCodProperty , pCodValue ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível alterar a propriedade. | Altera uma propriedade de uma Ação Customizada de Página. | getPageCustomActionPropertyCharacter ( pIdAction , pCodProperty ) getPageCustomActionPropertyInteger ( pIdAction , pCodProperty ) getPageCustomActionPropertyDecimal ( pIdAction , pCodProperty ) getPageCustomActionPropertyLogical ( pIdAction , pCodProperty ) Parâmetros:
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:
Retorno (JsonObject): Uma Ação Customizada de Página. | Retorna um JsonObject que representa uma Ação Customizada de Página. | addPageCustomAction ( pNumType , pCodLabel , pCodAddress [ , pCodIcon ] ) Parâmetros:
Retorno (JsonObject): Ação Customizada de Página Incluída. | Incluir uma nova Ação Customizada na Página. | removePageCustomAction ( pIdAction ) Parâmetros:
Retorno (LOGICAL): Indicativo se foi possível remover a Ação. | Remove uma Ação Customizada de Página. | 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:
Retorno (LOGICAL): Indicativo se foi possível alterar remover a propriedadeAção. | Altera uma propriedade de Remove uma Ação Customizada de Tabela. | getTableCustomActionPropertyCharacter ( pIdAction , pCodProperty ) getTableCustomActionPropertyInteger ( pIdAction , pCodProperty ) getTableCustomActionPropertyDecimal ( pIdAction , pCodProperty ) getTableCustomActionPropertyLogical ( pIdAction , pCodProperty ) Parâmetros:
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:
Retorno (JsonObject): Uma Ação Customizada de Tabela. | Retorna um JsonObject que representa uma Ação Customizada de Tabela. | . | Exemplo1: |
getTableCustomActions ( ) Retorno (JsonArray): Ações Customizadas de Tabela. | Retorna a lista de Ações Customizadas de Tabela. | DEFINE VARIABLE oTableCustomActions AS JsonArray NO-UNDO. | |||||||||||||||||||||||
getServerAddress ( pIsExt ) Parâmetros:
Retorno (CHARACTER): Endereço no formato: http://HOST:PORT. | Retorna o Endereço onde o Datasul está hospedado. | Exemplo1: |
e.CustomRecords Âncora CustomRecords CustomRecords
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étodo | Descrição | Exemplo | ||||||
---|---|---|---|---|---|---|---|---|
getEntityKeyCharacter ( ) getEntityKeyInteger ( ) Retorno (CHARACTER,INTEGER): Chave do registro. | Retorna a chave do Registro na manipulação do Metadata (Alteração, Detalhe). | Exemplo1: | ||||||
updateRecords ( pProg , pPiName ) Parâmetros:
| addTableCustomAction ( pNumType , pCodLabel , pCodAddress [ , pCodIcon ] [ , pConcatKeys ] ) Parâmetros:
Retorno (JsonObject): Ação Customizada de Tabela Incluída. | Incluir uma nova Ação Customizada na Tabela. | removeTableCustomAction ( pIdAction ) Parâmetros:
. Retorno (LOGICAL): Indicativo se foi possível remover a Ação. | Remove uma Ação Customizada de Tabela. | getTableCustomActions ( ) Retorno (JsonArray): Ações Customizadas de Tabela. | Retorna a lista de Ações Customizadas de Tabela. | getServerAddress ( pIsExt ) Parâmetros:
Retorno (CHARACTER): Endereço no formato: http://HOST:PORT. | Retorna o Endereço onde o Datasul está hospedado. |
--------------------
CLASSE: CustomRecord: Customizações de Registros
--------------------
...
getEntityKeyCharacter ( )
getEntityKeyInteger ( )
Retorno (CHARACTER,INTEGER): Chave do registro.
...
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.
é possível alterar o registro. | Navega nos registros e executa uma PI interna da UPC para customização dos dados. | oCustRecords:updateRecords(THIS-PROCEDURE, "pi_altera_registros"). |
f.CustomMessages Âncora CustomMessages CustomMessages
CustomMessages | |
CustomMessages |
Classe utilizada para criação de mensagens de erro que serão enviadas para a tela HTML.
Método | Descrição | Exemplo |
---|---|---|
createMessageError ( pMsgNumber , pMsgDescription , pMsgHelp ) Parâmetros:
Retorno (JsonObject): Mensagem no padrão TOTVS de Mensagem. | Cria uma mensagem do tipo ERROR para enviar ao FrontEnd. | DEF VAR vName AS CHARACTER NO-UNDO. |
04.EXEMPLOS DA UTILIZAÇÃO DAS CLASSES Âncora exemplos exemplos
exemplos | |
exemplos |
Abaixo segue o exemplo de uma UPC utilizado grande parte dos métodos das classes do utilitário:
----------------------
CLASSE: CustomMessages: Geração de Mensagens
----------------------
...
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.
...
---------------------------------------------------------------------------
UPC - EXEMPLOS
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
// Indica ao programa onde estão as Classes USING PROGRESS.json.ObjectModel.*. // Classes da Progress USING com.totvs.framework.po.*. DEF INPUT // Classes do Utilitário // PARAMParâmetros pEndPointrecebidos AS CHAR NO-UNDO.pela UPC DEF INPUT PARAM pEventpEndPoint AS CHAR NO-UNDO. DEF INPUT PARAM pAPIpEvent AS CHAR NO-UNDO. DEF INPUT-OUTPUT PARAM jsonIO AS JsonObject NO-UNDO. PARAM pAPI DEF VAR v_log_mark AS CHAR AS LOGICAL NO-UNDO. DEF VAR v_cod_caminho INPUT-OUTPUT PARAM jsonIO AS CHARACTERJsonObject NO-UNDO. DEF VAR v_cod_cam_ajust AS CHARACTER NO-UNDO. // Define as variáveis que irão representar as Classes DEF VAR oCustPages AS CustomPages NO-UNDO. DEF VAR oCustFields AS CustomFields NO-UNDO. DEF VAR oCustActions AS CustomActions NO-UNDO. DEF VAR oCustRecords AS CustomRecords NO-UNDO. DEF VAR oCustMsgs AS CustomMessages NO-UNDO. DEF// VAR oFields AS JsonArray NO-UNDO.Variáveis auxiliares DEF VAR oField AS JsonObject NO-UNDO. DEF VAR oAction AS JsonObject NO-UNDO. // Evento de Busca do Metadata da Tela de Lista IF pEndPoint = "getMetaData" AND pEvent = "list" THEN DO: oCustPages = NEW CustomPages(CustomOrig:ORIG_METADATA, jsonIO). oCustFields = NEW CustomFields(CustomOrig:ORIG_METADATA, jsonIO). oCustActions = NEW CustomActions(CustomOrig:ORIG_METADATA, jsonIO). // Tela de Lista: Alterar o Título da Página oCustPages:setPageTitle(oCustPages:getPageTitle() + " - ALTERADO"). oFields AS JsonArray NO-UNDO. DEF VAR oField AS JsonObject NO-UNDO. DEF VAR oAction AS JsonObject NO-UNDO. DEF VAR vValorAtual AS CHARACTER NO-UNDO. DEF VAR vValorAjust AS CHARACTER NO-UNDO. DEF VAR vValorMark AS LOGICAL NO-UNDO. // Evento de Busca do Metadata da Tela de Lista IF pEndPoint = "getMetaData" AND pEvent = "list" THEN DO: // TelaInstância deas Lista:Classes Senecessárias estiver salvando o Filtro,oCustPages esconde o geranciador= de Colunas NEW CustomPages(CustomOrig:ORIG_METADATA, IF oCustPages:getPagePropertyLogical("keepfilters") THENjsonIO). oCustFields = NEW oCustPages:setPageProperty("hideColumnsManager", TRUECustomFields(CustomOrig:ORIG_METADATA, jsonIO). oCustActions = NEW CustomActions(CustomOrig:ORIG_METADATA, jsonIO). // Tela de Lista: Alterar Altera o labelTítulo da coluna "FIFO" para "FIFO-ALT"Página oCustFields:setFieldLabel("enableFIFOInPurchaseReq", "FIFO-ALToCustPages:setPageTitle(oCustPages:getPageTitle() + " - ALTERADO"). // TelaAltera dea Lista:propriedade Incluirpara uma coluna chamada: "Cópia Usuário" com salvar o valorFiltro da colunabusca "Usuário"Avançada ASSIGN oField = oCustFields:addFieldoCustPages:setPageProperty("userCopykeepfilters", "Cópia Usuário", FieldType:STRINGTRUE). IF oField <> ? THEN // Altera o label da coluna "FIFO" para "FIFO-ALT" oFieldoCustFields:ADDsetFieldLabel("allowColumnsManagerenableFIFOInPurchaseReq", TRUE"FIFO-ALT"). // TelaInclui uma ecoluna Listachamada: Retira a o Ação de "Excluir" da Tabela oCustActions:setAction("remove", FALSE). "Cópia Usuário" ASSIGN oField = oCustFields:addField("userCopy", "Cópia Usuário", FieldType:STRING). // Inclui a nova coluna no Gerenciador de Colunas //IF TelaoField de<> Lista:? RetiraTHEN a Ação de "Cópia" oCustActionsoField:removeActionADD("duplicateallowColumnsManager", TRUE). // TelaRetira dea Lista:Ação FazPadrão ode Ação"Excluir" deda VisualizarTabela abrir a tela de Edição oCustActions:setAction("detailremove", oCustActions:getActionCharacter("edit"))FALSE). // Tela de Lista: Incluir uma nova opção no Pagina chamada "EndPoint" que chama uma EndPoint Retira a Ação Padrão de "Cópia" da Tabela oCustActions:addPageCustomAction(CustomActions:TYPE_ENDPOINT, "Endpoint", "http://localhost:3000/page"removeAction("duplicate"). // TelaFaz dea Lista:Ação IncluirPadrão umade novaVisualizar opçãoabrir noa Paginatela chamada "Rota" que chama uma Rotade Edição oCustActions:addPageCustomAction(CustomActions:TYPE_ROUTE, "Rota", "http://www.google.com", "po-icon po-icon-device-desktop")setAction("detail", oCustActions:getActionCharacter("edit")). // TelaInclui uma denova Lista:Ação IncluirCustomizada ono iconePagina dechamada Monitor"Atz naDados" Açãoque "Endpoint"chama dauma PaginaEndPoint oCustActions:setPageCustomActionProperty("Endpoint"addPageCustomAction(CustomActions:TYPE_ENDPOINT, "iconAtz Dados", "po-icon po-icon-device-desktophttp://server01:3000/atzDados"). // TelaInclui de Lista: Alterar o Endereço dauma nova Ação "Endpoint"Customizada dano Pagina, incluíndochamada um "2Google" noque final chama uma Rota oAction = oCustActions:getPageCustomAction(1).addPageCustomAction(CustomActions:TYPE_ROUTE, "Google", "http://www.google.com", IF oAction <> ? THEN oAction:set("action", oCustActions:getPageCustomActionPropertyCharacter("Endpoint", "action") + "2"). // Testa de Lista: Elimina a Ação de Rota da Pagina"po-icon po-icon-device-desktop"). oCustActions:removePageCustomAction("ROTA"). // Tela de Lista: Incluir uma nova opção no Tabela chamada "EndPoint" que chama uma EndPointInclui o icone de Refresh na Ação Customizada "Atz Dados" da Pagina oCustActions:addTableCustomAction(CustomActions:TYPE_ENDPOINTsetPageCustomActionProperty("Atz Dados", "Endpointicon", "http://localhost:3000/tablepo-icon po-icon po-icon-refresh"). // Tela de Lista: Incluir uma nova opção no Tabela chamada "EndPoint2" que chama uma EndPoint do Datasul oCustActions:addTableCustomAction(CustomActions:TYPE_ENDPOINT, "Endpoint2", oCustActions:getServerAddress(FALSE) + "\api\fin\v1\ 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"). // TelaElimina dea Lista: Incluir uma nova opção no TabelaAção Customizada chamada "RotaDoctos" que chama uma Rotada Pagina oCustActions:addTableCustomAction(CustomActions:TYPE_ROUTE, "Rota", "http://www.google.com"removePageCustomAction("Doctos"). // Tela de Lista:// IncluirInclui uma nova Ação opçãoCustomizada no Tabela chamada "Rota2Bloqueia" que chama uma RotaEndPoint oCustActions:addTableCustomAction(CustomActions:TYPE_ROUTEENDPOINT, "Rota2Bloqueia", "http://www.google.com", "po-icon po-icon-device-desktop"). /server01:3000/block", // Tela de Lista: Incluir o icone de Monitor na Ação "Endpoint" da Tabela oCustActions:setTableCustomActionProperty("Endpoint", "po-icon", "po-icon po-icon-device-desktoprefresh"). // TelaInclui de Lista: Alterar o Endereço da Ação "Endpoint" da Table, incluíndo um "2" no final oAction = oCustActions:getTableCustomAction(1). IF oAction <> ? THEN uma nova Ação Customizada no Tabela chamada "Det Adicional" que chama uma Rota oCustActions:addTableCustomAction(CustomActions:TYPE_ROUTE, "Det Adicional", oAction:set("action", oCustActions:getTableCustomActionPropertyCharacter("Endpoint", "action") + "2"). // Testa de Lista: Elimina a Ação de Rota2 da Pagina oCustActions:removeTableCustomAction("Rota2"http://newserver:8080/dts/customer/detail"). // oCustActions:getActions() // oCustActions:getPageCustomActions() // oCustActions:getTableCustomActions() Elimina a Ação Customizada chamada "Relacto" da Pagina // oCustRecords:getEntityKeyCharacter() oCustActions:removeTableCustomAction("Relacto"). // oCustRecords:getEntityKeyInteger() Retira as Classes da memória DELETE OBJECT oCustPages NO-ERROR. DELETE OBJECT oCustFields NO-ERROR. DELETE OBJECT oCustActions NO-ERROR. END. // Evento de Busca do MetadataMetadados da Tela de Novo/Editar IF pEndPoint = "getMetaData" AND (pEvent = "new" OR pEvent = "edit") THEN DO: // Instância as Classes necessárias oCustFields = NEW CustomFields(CustomOrig:ORIG_METADATA, jsonIO). // Tela Novo/Editar: Desabilitar Desabilita o campo "Atualizar com erro de duplicata" (Aba: Atualização recebimento fiscal) oCustFields:setDisableField("updatesWithDuplicateError", "fieldsUpdateFiscalConfigurations"). // Tela Novo/Editar: HabilitarHabilita o campo "Unidade negócio" (Aba: Digitação/Geração) oCustFields:setEnableField("enableBusinessUnit", "fieldsTypingEnableDisable"). // Tela Novo/Editar: Esconder Esconde o campo "Desconto item" (Aba: Digitação/Geração) oCustFields:setHideField("itemDiscount", "fieldsTypingEnableDisable"). // Tela Novo/Editar: Mostrar umMostra o campo "Geração nota crédito a pagar" (Aba: Digitação/Geração) oCustFields:setShowField("creditNoteGeneration", "fieldsTypingEnableDisable"). // Tela Novo/Editar: 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. // Tela Novo/Editar: Pegua a quantidades de campos do agrupador "Habitar/Desabilitar CamposImpostos" e joga no label odo campo "Sequência dos itensTotal" ASSIGN oFields = oCustFields:getFields("fieldsTypingEnableDisablefieldsTax"). IF oFields <> ? THEN DO: oField oField = oCustFields:getField("enableSequencetotalTax", "fieldsTypingEnableDisablefieldsTax"). IF oFields <> ? IFAND oField <> ? THEN oField:SET("label", "SequênciaTotal dos itens (" + string(oFields:LENGTH) + ")"). END. // Tela Novo/Editar: Colocar o Campo "Estado (UF)" depois do campo "Baixa estoque" (Aba: Digitação/Geração) oCustFields:changeFieldOrder("enableState", "enableStockMovement", "fieldsTypingEnableDisable"). //oCustFields:changeFieldOrder("enableState", YES, "fieldsTypingEnableDisable"). // primeiro //oCustFields:changeFieldOrder("enableState", NO, "fieldsTypingEnableDisable"). // último // Tela Novo/Editar: Ao alterar Coloca o campo "Caminho completo do executável GZIP" (Aba: Digitação/Geração): // - Muda o conteúdo para minísculoCPF" como sendo o primeiro campo do Formulário // - Retira os acentosoCustFields:changeFieldOrder("cpf", YES). // -Indica Seque, retirarao osalterar acentos, muda o labelcampo para "Caminho completo do executável GZIP (AJUST)", // deverá chamar o validateField da API-REST do Produto oCustFields:setFieldValidate("execGZIPProgram", pAPI, "fieldsTypingConfigurations").(Aba: Configurações) //oCustFields:setFieldValidateCustomsetFieldValidate("execGZIPProgram", "/api/rep/v1/userParameters/validateField"", pAPI, "fieldsTypingConfigurations"). // Tela Novo/Editar: AoIndica que, ao alterar o campo “Código"Código tributação ICMS” (Aba: Digitação/Geração): ICMS", // - Se "sim": desabilita deverá chamar o campovalidateForm “Percentualda reduçãoAPI-REST ICMS”do eProduto muda o campo "Alíquota ICMS" para "sim", (Aba: Digitação/Geração) oCustFields:addValidateFields("enableICMSTaxationCode"). // -Retira Se "não": faz ao contrário oCustFields:addValidateFields("enableICMSTaxationCode"). as Classes da memória DELETE OBJECT oCustFields NO-ERROR. END. // Evento de Busca dos Registros da Tela de Lista IF pEndPoint = "findAll" AND pEvent = "findAll" THEN DO: // Instância as Classes necessárias oCustRecords = NEW CustomRecords(CustomOrig:ORIG_GET_ALL, jsonIO). // TelaIndica deque Lista:dever Incluirser umaexecutada colunaa chamada:PI "Cópia Usuáriopi_altera_registros" compara orealizar valora daalteração coluna "Usuário" // Tela de Lista: Alterar o conteúdo da coluna "Nome", concatenado: "- Alterado"nos registros oCustRecords:updateRecords(THIS-PROCEDURE, "pi_altera_registros"). registros"). // Retira as Classes da memória DELETE OBJECT oCustRecords NO-ERROR. END. // 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. // Evento de Busca de Umum Registro da tela de Edição IF pEndPoint = "findById" AND pEvent = "findById" THEN DO: THEN DO: // Instância as Classes necessárias oCustFields = NEW CustomFields(CustomOrig:ORIG_GET_RECORD, jsonIO). // Tela Editar: Alterar Altera o valor da coluna "Variação máxima data emissão" para "888" (Aba: Digitação/Geração) oCustFields:setFieldValue("variationIssuing", 888). // Retira as Classes da memória DELETE OBJECT oCustFields NO-ERROR. END. // Evento de Alteração de FormulárioCampo IF pEndPoint = "validateFormvalidateField" AND pEvent = "validateFormvalidateField" THEN DO: // Instância as Classes necessárias oCustFields = NEW CustomFields(CustomOrig:ORIG_VLD_FORMFIELD, jsonIO). // Tela Novo/Editar: Ao Se alterar o campo "Caminho completo “Códigodo tributaçãoexecutável ICMS”GZIP" (Aba: Digitação/Geração): // - Se "sim": desabilita Muda o campoconteúdo “Percentualpara reduçãominísculo ICMS” e muda o// campo- "Alíquota ICMS" para "sim", Retira os acentos // - Se "não": faz ao contrário retirar os acentos, muda o label para "Caminho completo do executável GZIP (AJUST)" IF oCustFields:isChangedField("enableICMSTaxationCodeexecGZIPProgram") THEN DO: ASSIGN v_log_markvValorAtual = oCustFields:getFieldValueLogicalgetFieldValueCharacter("enableICMSTaxationCodeexecGZIPProgram"). IF v_log_mark <> ? THEN DO: oCustFields:setFieldProperty("enableICMSReductionPercentage", "disabled", v_log_mark). vValorAtual <> ? THEN DO: ASSIGN vValorAjust = oCustFields:setFieldValue("enableICMSRate", v_log_mark).LC(vValorAtual) END. END. // oCustFields:getReturnRoot(). vValorAjust // oCustFields:getFieldValues(). = REPLACE(vValorAjust, "á", "a") DELETE OBJECT oCustFields NO-ERROR. END. // Evento de Alteração de Campo IF pEndPoint = "validateField" AND pEvent = "validateField" THEN DO: oCustFields vValorAjust = NEW CustomFields(CustomOrig:ORIG_VLD_FIELD, jsonIO). REPLACE(vValorAjust, "é", "e") // Tela Novo/Editar: Ao alterar o campo "Caminho completo do executável GZIP" (Aba: Digitação/Geração): vValorAjust // - Muda o conteúdo para minísculo = REPLACE(vValorAjust, "í", "i") // - Retira os acentos // - Se retirarvValorAjust os= acentosREPLACE(vValorAjust, muda"ó", "o label para "Caminho completo do executável GZIP (AJUST)" ") IF oCustFields:isChangedField("execGZIPProgram") THEN DO: ASSIGN v_cod_caminhovValorAjust = oCustFields:getFieldValueCharacter("execGZIPProgram"). IF v_cod_caminho <> ? THEN DO: REPLACE(vValorAjust, "ú", "u") ASSIGN v_cod_cam_ajust vValorAjust = LC(v_cod_caminhoREPLACE(vValorAjust, "ã", "a") v_cod_cam_ajustvValorAjust = REPLACE(v_cod_cam_ajustvValorAjust, "áõ", "ao") v_cod_cam_ajustvValorAjust = REPLACE(v_cod_cam_ajustvValorAjust, "éç", "ec"). oCustFields:setFieldValue("execGZIPProgram", vValorAjust). v_cod_cam_ajust = REPLACE(v_cod_cam_ajust, "í", "i") IF NOT vValorAjust MATCHES(vValorAtual) THEN v_cod_cam_ajust = REPLACE(v_cod_cam_ajust, "óoCustFields:setFieldLabel("execGZIPProgram", "oCaminho completo do executável GZIP (AJUST)"). ELSE v_cod_cam_ajust = REPLACE(v_cod_cam_ajust, "úoCustFields:setFieldLabel("execGZIPProgram", "u")Caminho completo do executável GZIP"). END. END. // Retira as Classes da memória DELETE OBJECT oCustFields v_cod_cam_ajust = REPLACE(v_cod_cam_ajust, "ã", "a") v_cod_cam_ajust = REPLACE(v_cod_cam_ajust, "õ", "o") v_cod_cam_ajust = REPLACE(v_cod_cam_ajust, "ç", "c"). IF NOT v_cod_cam_ajust MATCHES(v_cod_caminho) THENNO-ERROR. END. // Evento de Alteração de Formulário IF pEndPoint = "validateForm" AND pEvent = "validateForm" THEN DO: // Instância as Classes necessárias oCustFields = NEW CustomFields(CustomOrig:ORIG_VLD_FORM, jsonIO). // 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:setFieldLabelgetFieldValueLogical("execGZIPProgramenableICMSTaxationCode",). "Caminho completo do executável GZIP (AJUST)"). IF vValorMark ELSE <> ? THEN DO: oCustFields:setFieldLabelsetFieldProperty("execGZIPProgramenableICMSReductionPercentage", "Caminho completo do executável GZIP"). disabled", vValorMark). oCustFields:setFieldValue("execGZIPProgramenableICMSRate", v_cod_cam_ajustvValorMark). END. END. // Retira as Classes da memória DELETE OBJECT oCustFields NO-ERROR. END. // Evento de Alteração de Registro IF pEndPoint = "update" AND pEvent = "beforeUpdate" THEN DO: // Instância as Classes necessárias oCustFields = NEW CustomFields(CustomOrig:ORIG_UPDATE_RECORD, jsonIO). oCustMsgs = NEW CustomMessages(CustomOrig:ORIG_UPDATE_RECORD, jsonIO). // Tela Editar: Valida se o campo "Caminho completo do executável GZIP" foi informado, se não foi, apresentaretorna uma mensagem de Erro IFASSIGN vValorAtual = oCustFields:getFieldValueCharacter("execGZIPProgram"). IF vValorAtual = "" OR oCustFields:getFieldValueCharacter("execGZIPProgram")vValorAtual = ? THEN DO: 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 !!!!"). // Retira as Classes da memória DELETE OBJECT oCustFields NO-ERROR. DELETE OBJECT oCustMsgs NO-ERROR. // Indica que não deve RETURN "NOK". END.ser Salvo a Alteração do Registro IF vValorAtual = "" OR DELETEvValorAtual OBJECT= oCustFields NO-ERROR.? THEN DELETE OBJECT oCustMsgs NO-ERRORRETURN "NOK". END. RETURN "OK". |