Histórico da Página
...
Informações |
---|
A tecnica apresentada aqui foi pensada para reduzir ao máximo a necessidade de alteração dos programas já construidos, motivada pela inclusão de novos parâmetros. Por isso, é apresentada a passagem dos mesmos usando a função _ADVPL_QSSetParametersFWQVSetParametersLogix(), cuja chamada também é realizada pelo serviço REST responsável por chamar o programa de consulta rápida da área de negócio/segmento. |
...
No 4GL o nome da função deve conter o sufixo _indicator_get_data e não receberá parâmetros. Estes serão passados para a função através de uma área de memória compartilhada, acessível através da função _ADVPL_QSGetParameterFWQVGetParameterLogix("nome_do_parametro"), onde "nome_do_parâmetro" é o identificador do campo dentro da área de memória compartilhada que contem o valor desejado.
...
A variável RECORD deve ser preenchida com os valores correspondentes antes de ser passada como parâmetro para a função _ADVPL_QSSetParametersFWQVSetParametersLogix(<variavel_record>). Lembre-se de inicializar a variável RECORD antes de atribuir valores aos campos da mesma.
...
Trecho demonstrando a função SEARCH reescrita para chamar a função GET-DATA, caso seja necessário manter as duas funções no fonte. Também é mostrada a definição da variável RECORD e a utilização da função _ADVPL_QSSetParametersFWQVSetParametersLogix().
Bloco de código | ||
---|---|---|
| ||
#---------------------------------------------------------------------------------------------------------------# FUNCTION log1i_indicator_search(l_filter_column,l_filter_value,l_selection,l_sort_col,l_sort_order,l_rows,l_page) #---------------------------------------------------------------------------------------------------------------# DEFINE l_filter_column CHAR(50), #Coluna de filtro (opcional) l_filter_value CHAR(300), #Valor do filtro da coluna acima (opcional) l_selection CHAR(01), #Valor selecionado na lista de filtros (opcional) l_sort_col CHAR(50), #Coluna de ordenação (opcional) l_sort_order CHAR(04), #Tipo de ordenação ASC ou DESC (opcional) l_rows SMALLINT, #Máximo de registros por página l_page SMALLINT #Página atual de pesquisa DEFINE lr_params RECORD l_searchcol CHAR(50), l_searchval CHAR(300), l_selection CHAR(01), l_sortcol CHAR(50), l_sortorder CHAR(04), l_rows CHAR(10), l_page CHAR(10), l_customfilter CHAR(500) END RECORD INITIALIZE lr_params.* TO NULL # O record recebe os parâmetros da função search LET lr_params.l_searchcol = l_filter_column LET lr_params.l_searchval = l_filter_value LET lr_params.l_selection = l_selection LET lr_params.l_sortcol = l_sort_col LET lr_params.l_sortorder = l_sort_order LET lr_params.l_rows = l_rows LET lr_params.l_page = l_page LET lr_params.l_customfilter = "" # Como customfilter não é recebido na função search, seu valor é vazio. CALL _ADVPL_QSSetParameters(lr_params) # Grava os parâmetros na área compartilhada RETURN LOG1i_indicator_get_data() # O retorno da função search é o mesmo da get_data END FUNCTION |
...
Os dados atribuidos à área de memória compartilhada são recuperados através da função _ADVPL_QSGetParameterFWQVGetParameterLogix("nome_do_parametro"), onde nome_do_parametro deve ser exatamente igual ao campo da variável RECORD que se deseja recuperar.
...