Boa tarde pessoal!
Estou com esse fonte de um WS SOAP que realiza a inclusão de títulos a Pagar.
O problema é que a ExecAuto retorna sucesso, e quando olho no BD não tem nada, além disso quando é feito o RecLock após o sucesso a tabela SE2 foi fechada e desposicionada, eu poderia apenas abri-la e reposicionar, porém o registro não foi incluído.
Os comentários no trecho abaixo foram algumas tentativas que já realizei, sem sucesso. Anexo um print do debug.
WsMethod GeraTitPag wsReceive filial,cNum,fornecedor,loja,tipo,vencimento,parcela,valor,idPDV,TpId,PaiKit,NSU,TID,CodAutoriza,Bandeira,Adquirente,emissao wsSend aError wsService FinSASWEB
Local aDados := {}
// Local aArea := GetArea()
Private lMsErroAuto := .F.
// RpcClearEnv()
WSDLDBGLEVEL(2)
// RPCSetType(3)
// RpcSetEnv("03", Alltrim(filial),,,"FIN",GetEnvServer(),{"SX3","SX6","SE2","SIX", "SE5", "SX1"}) //EMPRESA D1
// RpcSetEnv("03", Alltrim(filial),,,"FIN",GetEnvServer(),{"SX2","SX3","SX6","SIX","SX1", "SE5","SE2","SA1","SA2" }) //EMPRESA D1
cfilAnt := Alltrim(filial)
dDataBase := stod(emissao)
dbSelectArea("SE2")
aDados :={{ "E2_FILIAL", cFilAnt/*alltrim(xFilial("SE2",filial))*/, NIL },;
{ "E2_PREFIXO", "LIV", NIL },;
{ "E2_NUM", cNum, NIL },;
{ "E2_PARCELA", parcela, NIL },;
{ "E2_TIPO", IIF(Empty(tipo),Alltrim(GETMV("MV_YTIWEBP")), Padr(tipo, GetSX3Cache("E2_TIPO","X3_TAMANHO"), " ") ), NIL },;
{ "E2_NATUREZ", '2202', NIL },;
{ "E2_FORNECE", fornecedor, NIL },;
{ "E2_LOJA", loja, NIL },;
{ "E2_CCD", GetMV("MV_YCCPWEB"), NIL },;
{ "E2_EMISSAO", sTod(emissao), NIL },;
{ "E2_EMIS1", sTod(emissao), NIL },;
{ "E2_VENCTO", sTod(vencimento), NIL },;
{ "E2_VENCREA", sTod(vencimento), NIL },;
{ "E2_VALOR", valor, NIL },;
{ "E2_HIST", "Ref. Tarifa de Cartão/Venda online", NIL },;
{ "E2_YIDPDV", idPDV, NIL },;
{ "E2_YTPID", "E", NIL },;
{ "E2_YNSU", NSU, NIL },;
{ "E2_YCODAUT", CodAutoriza, NIL },;
{ "E2_YADM", Adquirente, NIL },;
{ "E2_YBANDEI", Bandeira, NIL },;
{ "E2_YTID", TID, NIL },;
{ "E2_YPAIKIT", PaiKit, NIL }}
MsExecAuto( { |x,y,z| Fina050(x,y,z)}, aDados,, 3)
If lMsErroAuto
AADD(Self:aError,"")
AADD(Self:aError,"")
AADD(Self:aError,"2")
AADD(Self:aError,MostraErro("\"))
lMsErroAuto := .F.
Else
RecLock("SE2", .F.)
SE2->E2_EMIS1 := sTod(emissao)
MsUnLock()
AADD(Self:aError,SE2->E2_NUM)
AADD(Self:aError,SE2->E2_PARCELA)
AADD(Self:aError,"1")
AADD(Self:aError,"Incluido com sucesso.")
EndIf
conout(Self:aError[4])
// RestArea(aArea)
aDados := {}
return .T.