|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Erro 428 - Required Condition |
|
Versão: |
12.1.33 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
|
|
|
Mensagem do
PSNEVES
em 22/06/2022, 09:56 h
Local: ES Registro: 20/05/2022 Postagens: 7 |
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
|
|
|
Mensagem do
ARISSATO
em 23/06/2022, 12:20 h
Local: SP Registro: 12/08/2008 Postagens: 8 |
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
|
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|