Histórico da Página
...
Bloco de código | ||
---|---|---|
| ||
DATABASE Logix #------------------------------# FUNCTION wms_v1_dimensoes() #------------------------------# CALL _ADVPL_create_rest_logix_routes() CALL _ADVPL_add_rest_logix_routes("GET", #--# Método #--# "/normal/*/", #--# Path Param a ser filtrado #--# "fields=*", #--# QueryParam a ser filtrado #--# "wms_v1_get_dimensoes_normal") #--# Função a ser executada #--# CALL _ADVPL_add_rest_logix_routes("GET", "/*", "order=dimensao", "wms_v1_get_dimensoes_ordenado") CALL _ADVPL_add_rest_logix_routes("GET", "/*", "", "wms_v1_get_dimensoes") CALL _ADVPL_add_rest_logix_routes("POST", "/*", "", "wms_v1_update_dimensoes") CALL _ADVPL_add_rest_logix_routes("PUT", "/*", "", "wms_v1_update_parc_dimensoes") CALL _ADVPL_add_rest_logix_routes("DELETE", "/*", "", "wms_v1_delete_dimensoes") END FUNCTION #------------------------------------------------------# FUNCTION wms_v1_get_dimensoes_normal(l_json_reference) #------------------------------------------------------# DEFINE l_json_reference VARCHAR(10) DEFINE l_json VARCHAR(1000) . . . RETURN l_json END FUNCTION #-------------------------------------------------------# FUNCTION wms_v1_get_dimensoes_ordenado(l_json_reference) #-------------------------------------------------------# DEFINE l_json_reference VARCHAR(10) DEFINE l_json VARCHAR(1000) . . . RETURN l_json END FUNCTION |
No No exemplo acima, temos os seguintes pontos:
...
Neste exemplo, está sendo definido uma outra rota, sendo que toda requisição de método GET, que contenha qualquer parâmetro Path ("/*" indica "Todos Paths") e um parâmetro Query "order" com valor "dimensao" será direcionado direcionada para a função wms_v1_get_dimensoes_ordenado.
...
Bloco de código | ||
---|---|---|
| ||
CALL _ADVPL_add_rest_logix_routes("GET", "/*", "", "wms_v1_get_dimensoes") |
Neste Neste exemplo, todas as requisições de método GET, que possuírem quaisquer parâmetros (Query e/ou Path) informados, será direcionado serão direcionadas para a função wms_v1_get_dimensoes.
...
Bloco de código | ||
---|---|---|
| ||
CALL _ADVPL_add_rest_logix_routes("POST", "/*", "", "wms_v1_update_dimensoes") |
Neste Neste exemplo, todas as requisições de método POST, que possuírem quaisquer parâmetros (Query e/ou Path) informados, será direcionado serão direcionadas para a função wms_v1_update_dimensoes.
...
Informações |
---|
Algumas considerações sobre o uso de roteamento (através da função _ADVPL_add_rest_logix_routes():
|
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
DEFINE l_json_data CHAR(30000)
DEFINE l_json_reference VARCHAR(10)
DEFINE l_length_ajusts SMALLINT
DEFINE l_status SMALLINT
DEFINE l_ind SMALLINT
DEFINE ma_ajust_bxa_adt_integ ARRAY[500] OF RECORD
cod_tip_val LIKE ad_valores.cod_tip_val,
valor LIKE ad_valores.valor,
num_ad_nf_orig LIKE adiant.num_ad_nf_orig,
ser_nf LIKE adiant.ser_nf,
ssr_nf LIKE adiant.ssr_nf,
cod_fornecedor LIKE adiant.cod_fornecedor,
dat_mov LIKE mov_adiant.dat_mov
END RECORD
//Esta informação da variável l_json_data abaixo só é atribuida manualmente
//como um exemplo do conteúdo que já é recebido via REST.
LET l_json_data =
'{
"payload": {
"ajustBxaAdtInteg": [
{
"codTipVal": "1",
"valor": 1000,
"numAdNfOrig": 123456,
"serNf": "AD",
"ssrNF": "A",
"codFornecedor": "12",
"datMov": "10/10/2019"
},
{
"codTipVal": "2",
"valor": 3000,
"numAdNfOrig": 654321,
"serNf": "AF",
"ssrNF": "B",
"codFornecedor": "13",
"datMov": "01/12/2018"
},
{
"codTipVal": "3",
"valor": 2000,
"numAdNfOrig": 555555,
"serNf": "AJ",
"ssrNF": "C",
"codFornecedor": "14",
"datMov": "31/10/2019"
}
]
}
}'
LET l_json_reference = _ADVPL_create_component(NULL, "LJSONOBJECT")
LET l_status = _ADVPL_get_property(l_json_reference,"ACTIVATE",l_json_data CLIPPED)
LET l_length_ajusts = _ADVPL_get_property(l_json_reference, "LENGTH", "payload/ajustBxaAdtInteg")
FOR l_ind = 1 TO l_length_ajusts
LET ma_ajust_bxa_adt_integ[l_ind].cod_tip_val = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/codTipVal")
LET ma_ajust_bxa_adt_integ[l_ind].valor = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/valor")
LET ma_ajust_bxa_adt_integ[l_ind].num_ad_nf_orig = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/numAdNfOrig")
LET ma_ajust_bxa_adt_integ[l_ind].ser_nf = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/serNf")
LET ma_ajust_bxa_adt_integ[l_ind].ssr_nf = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/ssrNF")
LET ma_ajust_bxa_adt_integ[l_ind].cod_fornecedor = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/codFornecedor")
LET ma_ajust_bxa_adt_integ[l_ind].dat_mov = _ADVPL_get_property(l_json_reference, "VALUE", "payload/ajustBxaAdtInteg["||l_ind||"]/datMov")
CALL CONOUT("------------------- Exibindo os valores --------------------")
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].cod_tip_val)
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].valor)
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].num_ad_nf_orig)
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].ser_nf)
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].ssr_nf)
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].cod_fornecedor)
CALL CONOUT(ma_ajust_bxa_adt_integ[l_ind].dat_mov)
END FOR |
...