Prezados,
Olá a todos, iniciei a pouco tempo minha trajetória com o Protheus. Estou com o seguinte erro ao tentar passar dados para uma api que utiliza msexecauto na rotina fina050. P
THREAD ERROR ([2639702], TP|HTTPREST|HTTPURI@10|TRUE, 419264B1E0C44BCCA22CB25EF475C5DE) 04/07/2025 18:34:12
type mismatch on compare on ENCHAUTO(MSAUTOPR.PRW) 22/05/2025 09:29:17 line : 361
[TOTVS build: 7.00.240223P-20250326]
Called from FA050INCLU(FINA050.PRX) 30/04/2025 13:36:04 line : 1085
Called from MBROWSEAUTO(MSAUTOPR.PRW) 22/05/2025 09:29:17 line : 86
Called from FINA050(FINA050.PRX) 30/04/2025 13:36:04 line : 652
Called from {|X,Y| FINA050(X,Y)}(XSC3_API.PRW) 04/07/2025 18:22:04 line : 124
Poderiam me ajudar a entender o erro?
Segue trecho do código da API e o Json que estou tentando passar:
Já tentei 3 formas:
-
Tirando toda as formas de conversão e passando o json já com os dados formatados Aadd(aCab, {'E2_FILIAL', oJson['E2_FILIAL'], Nil}) Aadd(aCab, {'E2_EMISSAO', oJson['E2_EMISSAO'], Nil}) Aadd(aCab, {'E2_NUM', oJson['E2_NUM'], Nil}) Aadd(aCab, {'E2_TIPO', oJson['E2_TIPO'], Nil}) Aadd(aCab, {'E2_NATUREZ', oJson['E2_NATUREZ'], Nil}) Aadd(aCab, {'E2_FORNECE', oJson['E2_FORNECE'], Nil}) Aadd(aCab, {'E2_LOJA', oJson['E2_LOJA'], Nil}) Aadd(aCab, {'E2_VENCTO', oJson['E2_VENCTO'], Nil}) Aadd(aCab, {'E2_VENCREA', oJson['E2_VENCREA'], Nil}) Aadd(aCab, {'E2_VALOR', oJson['E2_VALOR'], Nil}) Aadd(aCab, {'E2_VLCRUZ', oJson['E2_VLCRUZ'], Nil}) Aadd(aCab, {'E2_MOEDA', oJson['E2_MOEDA'], Nil}) MsExecAuto({|x,y| FINA050(x,y)}, aCab, 3)
Json:
{
“E2_FILIAL”: “011023”,
“E2_EMISSAO”: “20241031”,
“E2_NUM”: “900000002”,
“E2_TIPO”: “NDF”,
“E2_NATUREZ”: "2.29.001 ",
“E2_FORNECE”: “97447494”,
“E2_LOJA”: “0199”,
“E2_VENCTO”: “20241031”,
“E2_VENCREA”: “20241031”,
“E2_VALOR”: 100,
“E2_VLCRUZ”: 100,
“E2_MOEDA”: 1
}
-
Colocando parametros para conversão dos campos:
Aadd(aCab, {'E2_FILIAL', oJson['E2_FILIAL'], Nil}) Aadd(aCab, {'E2_EMISSAO', oJson['E2_EMISSAO'], Nil}) Aadd(aCab, {'E2_NUM', oJson['E2_NUM'], Nil}) Aadd(aCab, {'E2_TIPO', oJson['E2_TIPO'], Nil}) Aadd(aCab, {'E2_NATUREZ', oJson['E2_NATUREZ'], Nil}) Aadd(aCab, {'E2_FORNECE', oJson['E2_FORNECE'], Nil}) Aadd(aCab, {'E2_LOJA', oJson['E2_LOJA'], Nil}) /* Datas convertidas para yyyymmdd */ Aadd(aCab, {'E2_VENCTO', Dtos(CtoD(oJson['E2_VENCTO'])), Nil}) Aadd(aCab, {'E2_VENCREA', Dtos(CtoD(oJson['E2_VENCREA'])), Nil}) /* Valores convertidos para inteiro */ Aadd(aCab, {'E2_VALOR', Int(Val(oJson['E2_VALOR'])), Nil}) Aadd(aCab, {'E2_VLCRUZ', Int(Val(oJson['E2_VLCRUZ'])), Nil}) Aadd(aCab, {'E2_MOEDA', Int(Val(oJson['E2_MOEDA'])), Nil})
json:
{
“E2_FILIAL”: “011023”,
“E2_EMISSAO”: “04/07/2025”,
“E2_NUM”: “900000002”,
“E2_TIPO”: “NDF”,
“E2_NATUREZ”: "2.29.00 ",
“E2_FORNECE”: “97447494”,
“E2_LOJA”: “0199”,
“E2_VENCTO”: “07/07/2025”,
“E2_VENCREA”: “07/07/2025”,
“E2_VALOR”: “100.00”,
“E2_VLCRUZ”: “100.00”,
“E2_MOEDA”: “1”
}
-
Passando os valores diretamente no fonte:
Aadd(aCab, {'E2_FILIAL', "011023", Nil}) Aadd(aCab, {'E2_EMISSAO', "20250704", Nil}) Aadd(aCab, {'E2_NUM', "777777779", Nil}) Aadd(aCab, {'E2_TIPO', "BOL", Nil}) Aadd(aCab, {'E2_NATUREZ', "2.05.001 ", Nil}) Aadd(aCab, {'E2_FORNECE', "97447494", Nil}) Aadd(aCab, {'E2_LOJA', "0199", Nil}) Aadd(aCab, {'E2_VENCTO', "20250716", Nil}) Aadd(aCab, {'E2_VENCREA', "20250716", Nil}) Aadd(aCab, {'E2_VALOR', 150, Nil}) Aadd(aCab, {'E2_VLCRUZ', 150, Nil}) Aadd(aCab, {'E2_MOEDA', 1, Nil})
Chega ocorrer as validações de campo, quando por exemplo eu propositalmente altero a E2_NATUREZ para um código não cadastrado na BASE.
{
“errorCode”: 400,
“errorMessage”: “AJUDA:E2_NATUREZ\r\nCampo utilizado para indicar qual será a configuração dos tributos a ser aplicado no título através do cadastro de Naturezas.\r\n\r\nTabela SE2 04/07/2025 20:06:14\r\nNo. Titulo - E2_NUM := 900000002\r\nTipo - E2_TIPO := NDF\r\nNatureza - E2_NATUREZ := 2.29.00 < – Invalido\r\nFornecedor - E2_FORNECE := 97447494 \r\nLoja - E2_LOJA := 0199\r\nDT Emissao - E2_EMISSAO := 04/07/2025\r\nVencimento - E2_VENCTO := 20250707\r\nVencto Real - E2_VENCREA := 20250707\r\nVlr.Titulo - E2_VALOR := 100\r\nMoeda - E2_MOEDA := 1\r\nVlr R$ - E2_VLCRUZ := 100\r\n--------------------------------------------------------------------------------\r\nFalha na gravação automática do Titulo!\r\n”
}
Porém de forma alguma consigo passar os dados quando todos os campos estão validados.
Desde já grato ao tempo de cada um que responderá ao meu questionamento.
#juntossomosmaisfortes