Classe que permite executar um formulário metadado de cadastro, também chamado de modelo CRUD, que são registrados e mantidos através do programa FRM1002 (Formulário Metadado Cadastral).

Hierarquia


Métodos GET


Métodos acessíveis através da função _ADVPL_get_property que permite recuperar e manipular os valores do componente: 


Método GET: BROWSE_ITEM_COUNT

Quantidade de registros encontrados na operação 'Listar' do formulário.

Sintaxe


_ADVPL_get_property(< l_reference >,"BROWSE_ITEM_COUNT") => INTEGER

Retorno


Tipo

Descrição

INTEGERQuantidade de registros encontrados.

Exemplo


LET l_browse_count = _ADVPL_get_property(l_form_reference,"BROWSE_ITEM_COUNT")

FOR l_ind = 1 TO l_browse_count 
   LET l_cod_item = _ADVPL_get_property(l_form_reference,"BROWSE_VALUE","item","cod_item",l_ind) 
   LET l_den_item = man10021_get_den_item(l_cod_item) 
   CALL _ADVPL_set_property(l_form_reference,"BROWSE_VALUE","item","den_item",l_ind,l_den_item)
END FOR




Método GET: BROWSE_VALUE

Valor de uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe


_ADVPL_get_property(< l_reference >,"BROWSE_VALUE", < l_table >, < l_column >, < l_line >, [ l_alias ]) => SMALLINT

Parâmetros


NomeTipoDescriçãoObrigatório?
l_tableCHARNome da tabela da coluna do formulário da qual deseja-se retornar o valor,Sim
l_columnCHARNome da coluna do formulário da qual deseja-se retornar o valor.---Sim
l_lineCHARNúmero da linha do grid da operação 'Listar' da qual deseja-se retornar o valor.Sim
l_aliasCHARAlias da tabela com a coluna do formulário da qual deseja-se retornar o valor.Não

Retorno


TipoDescrição
SMALLINTVerdadeiro se a requisição foi efetuada com sucesso.

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LREST_getGET()
#------------------------------------------------------------------------------#
    DEFINE l_status SMALLINT

    LET l_status = _ADVPL_get_property(m_rest_reference,"GET","/posts")

    IF  l_status THEN
        CALL CONOUT("OK.:",_ADVPL_get_property(m_rest_reference,"RESULT"))
    ELSE
        CALL CONOUT("NOK:",_ADVPL_get_property(m_rest_reference,"ERROR_MESSAGE"))
    END IF
END FUNCTION

Observação


  • Para recuperar o resultado da requisição, utilize o método RESULT.
  • Para recuperar a mensagem de erro, no caso da requisição não ter sido executada, utilize o método ERROR_MESSAGE.




Método GET: COMPONENT_REFERENCE

Referência do componente de um determinado campo do formulário.

Sintaxe




_ADVPL_get_property(< l_reference >,"POST", < l_path >, [ l_headers ], [ l_post_params ]) => SMALLINT

Parâmetros




Nome

Tipo

Descrição

Obrigatório?

Padrão

l_pathCHARCaminho do serviço REST para requisição.Sim
l_headersCHARLista de cabeçalhos específicos da requisição.1Não
l_post_paramsCHARConteúdo do corpo da requisição (geralmente conteúdo no formato JSON).Não

1 Por ser uma lista de valores, os cabeçalhos precisam ser informados no formato "{""Header1: Content1," "Header2: Content2""}".

   Exemplo: "{""Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==""}".

Retorno




Tipo

Descrição

SMALLINTVerdadeiro se a requisição foi efetuada com sucesso.

Exemplo




#------------------------#
 FUNCTION LREST_getPOST()
#------------------------#
    DEFINE l_status SMALLINT
 
    LET l_status = _ADVPL_get_property(m_rest_reference,"POST","/posts","{}")
 
    IF  l_status THEN
        CALL CONOUT("OK.:",_ADVPL_get_property(m_rest_reference,"RESULT"))
    ELSE
        CALL CONOUT("NOK:",_ADVPL_get_property(m_rest_reference,"ERROR_MESSAGE"))
    END IF
 END FUNCTION

Observação


  • Para recuperar o resultado da requisição, utilize o método RESULT.
  • Para recuperar a mensagem de erro, no caso da requisição não ter sido executada, utilize o método ERROR_MESSAGE.




Método GET: CONSTRUCT_REFERENCE

Referência do filtro de consulta utilizado na operação de pesquisa do formulário.

Sintaxe




_ADVPL_get_property(< l_reference >,"PUT", < l_path >, [ l_headers ]) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
l_pathCHARCaminho do serviço REST para requisição.Sim
l_headersCHARLista de cabeçalhos específicos da requisição.1Não

1 Por ser uma lista de valores, os cabeçalhos precisam ser informados no formato {{"Header1: Content1"},{"Header2: Content2"}}. Exemplo: {{"Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="}}.

Retorno




TipoDescrição
SMALLINTVerdadeiro se a requisição foi efetuada com sucesso.

Exemplo




#------------------------------------------------------------------------------#
FUNCTION LREST_getPUT()
#------------------------------------------------------------------------------#
    DEFINE l_status SMALLINT

    LET l_status = _ADVPL_get_property(m_rest_reference,"PUT","/posts/1")

    IF  l_status THEN
        CALL CONOUT("OK.:",_ADVPL_get_property(m_rest_reference,"RESULT"))
    ELSE
        CALL CONOUT("NOK:",_ADVPL_get_property(m_rest_reference,"ERROR_MESSAGE"))
    END IF
END FUNCTION

Observação


  • Para recuperar o resultado da requisição, utilize o método RESULT.
  • Para recuperar a mensagem de erro, no caso da requisição não ter sido executada, utilize o método ERROR_MESSAGE.




Método GET: CURRENT_OPERATION

Operação em execução.

Sintaxe




_ADVPL_get_property(< l_reference >,"DELETE", < l_path >, [ l_headers ]) => SMALLINT

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
l_pathCHARCaminho do serviço REST para requisição.Sim
l_headersCHARLista de cabeçalhos específicos da requisição.1Não

1 Por ser uma lista de valores, os cabeçalhos precisam ser informados no formato {{"Header1: Content1"},{"Header2: Content2"}}.

   Exemplo: {{"Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="}}.

Retorno




TipoDescrição
SMALLINTVerdadeiro se a requisição foi efetuada com sucesso.

Exemplo




#------------------------------------------------------------------------------#
FUNCTION LREST_getDELETE()
#------------------------------------------------------------------------------#
    DEFINE l_status SMALLINT

    LET l_status = _ADVPL_get_property(m_rest_reference,"DELETE","/posts/1")

    IF  l_status THEN
        CALL CONOUT("OK.:",_ADVPL_get_property(m_rest_reference,"RESULT"))
    ELSE
        CALL CONOUT("NOK:",_ADVPL_get_property(m_rest_reference,"ERROR_MESSAGE"))
    END IF
END FUNCTION

Observação

  • Para recuperar o resultado da requisição, utilize o método RESULT.
  • Para recuperar a mensagem de erro, no caso da requisição não ter sido executada, utilize o método ERROR_MESSAGE.




Método GET: EXECUTE_OPERATION 

Executa uma determinada operação do formulário, conforme cadastrada no programa "FRM1001 - Barra de Ferramentas".

Sintaxe




_ADVPL_get_property(< l_reference >,"RESULT") => CHAR

Retorno




TipoDescrição
CHARResultado obtido na execução da requisição REST.

Exemplo




LET l_status = _ADVPL_get_property(m_rest_reference,"EXECUTE_OPERATION","/posts")






Métodos SET

Métodos acessíveis através da função _ADVPL_set_property que permite alterar e manipular os valores do componente.


Método SET: HOST

Define o endereço base para as requisições REST.

Sintaxe




CALL _ADVPL_set_property(< l_reference >,"HOST", < l_host >)

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
l_hostCHAREndereço base das requisições REST.Sim

Exemplo




#------------------------#
 FUNCTION LREST_setHOST()
#------------------------#
    CALL _ADVPL_set_property(m_rest_reference,"HOST","http://www.totvs.com.br")
 END FUNCTION




Sintaxe


LET m_form_reference = _ADVPL_create_component(NULL,"LFORMMETADATA")     
CALL _ADVPL_set_property(m_form_reference,"INIT_FORM",<form_name>,<4GLrecord1>,<4GLrecord2>,...,<4GLrecordN>) 

Exemplo


DATABASE logix 

GLOBALS     
	DEFINE p_user        LIKE usuarios.cod_usuario     
	DEFINE p_cod_empresa LIKE empresa.cod_empresa 
END GLOBALS 

DEFINE mr_item           RECORD LIKE item.* 

DEFINE ma_item_man       ARRAY[100] OF RECORD LIKE item_man.* 

DEFINE m_form_reference  VARCHAR(10)

#-------------------# 
 FUNCTION man10021()
#-------------------#     
	# Verifica permissão para o usuário conforme módulo do programa.     

	IF  LOG_initApp("PADRAO") <> 0 THEN         
		RETURN     
	END IF     

	INITIALIZE mr_item.*, ma_item_man TO NULL     
	LET m_form_reference = _ADVPL_create_component(NULL,"LFORMMETADATA")     
	CALL _ADVPL_set_property(m_form_reference,"INIT_FORM","man10021",mr_item,ma_item_man) 
END FUNCTION


Informações


Componente disponível a partir do LOGIX 12.1.13.