Imprimi Página | Fechar janela |
Erro 428 - Required Condition Impresso de: Helpfacil - Portal do conhecimento Nome do Forum: ADVPL Descrição do Forum: Dúvidas sobre a programação em ADVPL URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=43971 Data da Impressão: quarta-feira, 6 de julho de 2022 at 13:05 Topico: Erro 428 - Required Condition Postado por: PSNEVES Assunto: Erro 428 - Required Condition Data Postagem: quarta-feira, 22 de junho de 2022 at 09:56 Bom dia, gente. Tudo bem? Estou caminhando ainda no ADVPL e estou com dúvidas relacionados a uma API. Estou fazendo um Método POST, com link HTTPS, porém, quando quando envio via postman aparece erro 428 - Precondition Required. Alguém poderia me ajudar? Segue o POST e o JSON. PErdão se postei algo no local errado, sou novo no Forum. { "Paciente":{ "Codigo" : "", "NomePaciente": "Paulo Autopecas", "Loja": "01", "Endereco":"La ele", "Municipio":"Linhares", "Estado":"ES", "TipoFiscal":"F" } , "CodHospital":"20001W", "CodMedico":"ME000101", "CodProcedimento":"000008", "CodConvenio":"CASSI", "Telefone":"2733734969", "Material":"Faquinha de Serra", "Observacao": "Amolar a Faca", "Situacao": "Urgente", "Imagem":"testar depois" } WSMETHOD POST SetMarcacao WSSERVICE WSMARCACAO Local oJson := JsonObject():new() Local oPaciente := JsonObject():new() Local oHashRet := THashMap():New() Local lPost := .T. Local cPaciente := ‘‘ Local cHospital := ‘‘ Local cMedico := ‘‘ Local cProcedimento := ‘‘ Local cConvenio := ‘‘ Local cMaterial := ‘‘ Local cObs := ‘‘ Local cSituacao := ‘‘ Local cImg := ‘‘ Local cNomeHosp := ‘‘ Local cNomeMedico := ‘‘ Local cNomeProc := ‘‘ Local cNomeConv := ‘‘ Local cDecode64 := ‘‘ Local cNome := ‘‘ Local cLoja := ‘‘ Local cEndereco := ‘‘ Local cMunicipio := ‘‘ Local cEstado := ‘‘ Local cTipo := ‘‘ Local nOpc := 3 Local cArqAuto := ‘‘ Local aSUS := {} Private lMsErroAuto := .F. Private lMsHelpAuto := .T. oJson:fromJson(::GetContent()) // cPaciente := oJson:GetJsonText("CodPaciente") cHospital := oJson:GetJsonText("CodHospital") cMedico := oJson:GetJsonText("CodMedico") cProcedimento := oJson:GetJsonText("CodProcedimento") cConvenio := oJson:GetJsonText("CodConvenio") cTelefone := oJson:GetJsonText("Telefone") cMaterial := oJson:GetJsonText("Material") cObs := oJson:GetJsonText("Observacao") cSituacao := oJson:GetJsonText("Situacao") cImg := oJson:GetJsonText("Imagem") oPaciente := oJson:GetJsonText("Paciente") cPaciente := oPaciente:oJson:GetJsonText("CodPaciente") cNome := oPaciente:oJson:GetJsonText("NomePaciente") cLoja := oPaciente:oJson:GetJsonText("Loja") cEndereco := oPaciente:oJson:GetJsonText("Endereco") cMunicipio := oPaciente:oJson:GetJsonText("Municipio") cEstado := oPaciente:oJson:GetJsonText("Estado") cTipo := oPaciente:oJson:GetJsonText("TipoFiscal") Do Case // Case cPaciente == nil .Or. Empty(cPaciente) // SetRestFault(400, "Parametro de Paciente nao informado") // lPost := .F. Case cHospital == nil .Or. Empty(cHospital) SetRestFault(400, "Parametro de Hospital nao informado") lPost := .F. Case cMedico == nil .Or. Empty(cMedico) SetRestFault(400, "Parametro de Medico nao informado") lPost := .F. Case cProcedimento == nil .Or. Empty(cProcedimento) SetRestFault(400, "Parametro de Procedimento nao informado") lPost := .F. Case cConvenio == nil .Or. Empty(cConvenio) SetRestFault(400, "Parametro de Convenio nao informado") lPost := .F. Case cSituacao == nil .Or. Empty(cSituacao) SetRestFault(400, "Parametro de Situação nao informado") lPost := .F. EndCase If cPaciente == ‘‘ Do Case Case cNome == nil .Or. Empty(cNome) SetRestFault(400, "Razão cNome Não Informado!") lPost := .F. Case cLoja == nil .Or. Empty(cLoja ) SetRestFault(400, "Loja não Informada!") lPost := .F. Case cEndereco == nil .Or. Empty(cEndereco ) SetRestFault(400, "Endereço não Informado!") lPost := .F. Case cMunicipio == nil .Or. Empty(cMunicipio) SetRestFault(400, "Município não Informado!") lPost := .F. Case cEstado == nil .Or. Empty(cEstado) SetRestFault(400, "Estado não Informado!") lPost := .F. Case cTipo == nil .Or. Empty(cTipo) SetRestFault(400, "Tipo Fiscal Não Informado!") lPost := .F. EndCase Endif conout("Sincronizando Marcacao " ) DbSelectArea("SUS") If lPost If Empty(cPaciente) aAdd(aSUS, {"US_NOME" , Upper(cNome) , NIL}) aAdd(aSUS, {"US_LOJA" , cLoja , NIL}) aAdd(aSUS, {"US_END" , Upper(cEndereco) , NIL}) aAdd(aSUS, {"US_MUN" , Upper(cMunicipio) , NIL}) aAdd(aSUS, {"US_EST" , Upper(cEstado) , NIL}) aAdd(aSUS, {"US_TIPO" , Upper(cTipo) , NIL}) MSExecAuto({|x,y| TMKA260(x,y)}, aSUS,nOpc) If lMsErroAuto cArqAuto := NomeAutoLog() sErro := memoread ( cArqAuto ) SetRestFault(400, sErro) lPost := .F. EndIf EndIf EndIf //BUSCAR PACIENTE CADASTRADO If lPost SUS->(DbSetOrder(2)) If SUS->((MsSeek(xFilial("SUS") + cNome))) cPaciente := SUS->US_COD Else SetRestFault(400, "Codigo do paciente invalido!") lPost := .F. EndIf EndIf //Validando codigo do hospital If lPost DbSelectArea("SA1") DbSetOrder(1) If SA1->(MsSeek(xFilial(‘SA1‘) + cHospital + A1_LOJA ) ) cNomeHosp := SA1->A1_NOME Else SetRestFault(400, "Codigo do Hospital invalido!") lPost := .F. EndIf EndIf //Validando codigo do medico If lPost DbSelectArea("SA2") DbSetOrder(1) If SA2->(MsSeek(xFilial(‘SA2‘) + cMedico ) ) cNomeMedico := SA2->A2_NOME Else SetRestFault(400, "Codigo do Medico invalido!") lPost := .F. EndIf EndIf //Valida codigo do procedimento If lPost DbSelectArea("SZ2") DbSetOrder(1) If SZ2->(msSeek(xFilial(‘SZ2‘) + cProcedimento ) ) cNomeProc := SZ2->Z2_DESC Else SetRestFault(400, "Codigo do Procedimento invalido!") lPost := .F. EndIf EndIf //Validando codigo Convenio If lPost DbSelectArea("SX5") DbSetOrder(1) If SX5->(msSeek(XFILIAL(‘SX5‘) + "ZW" + cConvenio ) ) cNomeConv := SX5->X5_DESCRI Else SetRestFault(400, "Codigo do Procedimento invalido!") lPost := .F. EndIf EndIf If lPost //Valida formato da imagem //Se a pasta de arquivos não existir, cria. If !EXISTDIR("C:\TEMP\" ) MAKEDIR("C:\TEMP\" ) Endif Endif If lPost If !Empty(cImg) cArquivo := "C:\teste\arquivo.txt" cMensagem := "Log de Teste" //cDecode64 := Decode64(cImg,"\SYSTEM\download.jpg",.F.) Endif EndIf If lPost BeginTran() DbSelectArea("ZZO") RecLock("ZZO",.T.) ZZO->ZZO_FILIAL := xFilial("ZZO") ZZO->ZZO_CODIGO := GetSXENum("ZZO","ZZO_CODIGO") ZZO->ZZO_SOLIC := cPaciente ZZO->ZZO_NSOLIC := cNome ZZO->ZZO_HOSP := cHospital ZZO->ZZO_NHOSP := cNomeHosp ZZO->ZZO_MEDIC := cMedico ZZO->ZZO_NMEDIC := cNomeMedico ZZO->ZZO_PROCED := cProcedimento ZZO->ZZO_NPROCE := cNomeProc ZZO->ZZO_CONV := cConvenio ZZO->ZZO_NCONV := cNomeConv ZZO->ZZO_MAT := cMaterial ZZO->ZZO_OBS := cObs ZZO->ZZO_SITUAC := cSituacao ZZO->ZZO_IMG := cDecode64 ZZO->(MsUnlock()) lPost := .T. EndTran() ::SetContentType("application/json") //oHashRet:Set("ErrorCode", 201) oHashRet:Set("ErrorMessage", "Procedimento Realizado com Sucesso") cJson := FWJsonSerialize(oHashRet, .F.) FreeObj(oJson) //FreeObj(oAloc) FreeObj(oHashRet) ::SetResponse(EncodeUTF8(cJson, "cp1252")) Else SetRestFault(400, "Falha ao Cadastrar MArcacao") DisarmTransaction() EndIf Return lPost Respostas: Postado Por: ARISSATO Data Postagem: quinta-feira, 23 de junho de 2022 at 12:20 Boa tarde. Dá uma olhada nesses links da Totvs, sobre autorização/segurança no acesso as API´s. https://tdn.totvs.com/pages/viewpage.action?pageId=465383509 https://tdn.totvs.com/display/tec/Utilizando+o+Protocolo+oAuth2 https://tdn.totvs.com/pages/viewpage.action?pageId=268570110 |
Imprimir Página | Fechar Janela |