Se alguma pergunta ou resposta lhe foi útil, não deixe de dar seu voto positivo!

MsExecAuto FINA050 nao inclui corretamente e fecha SE2

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.
compartilhar
Anexos
  • EXEC.png
    1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
    2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
    3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
    4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
    5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

    1 resposta

    Não é a resposta que estava procurando? Procure outras perguntas com as tags msexecauto ou faça a sua própria pergunta.