MPFormModel CommitData

Bom dia,

Temos uma rotina MVC aqui no formato Pai (ZA8) x Filho (ZA6) x Neto (ZA7) usada para nossa rotina de expedição. Sobre ela é aberta uma MSDialog que controla a leitura de códigos de barras e vai inserindo as linhas conforme os dados lidos.

Gostaria de fazer o backup dos dados de tempos em tempos. Tentei usar o CommitData() do model, mas ele duplica as linhas salvas. Percebi que, após o método salvar os dados, a propriedade lModify do objeto continua como .T.

Até tentei forçar ela para .F. manualmente após salvar, mas não resolveu. Acredito que as linhas do model também continuem como se tivessem sofrido alteração e na próxima execução do backup elas são salvas novamente.

Devo fazer algo depois do CommitData() para que ele funcione de acordo?

User Function SaveBkp()
    Local oModel :=FWModelActive()
    Local aSaveArea1     := SaveArea1({"ZA6","ZA7","ZA8","SB1"})
    Local lRet

    FWMsgRun(, {|oSay| lRet := oModel:vldData() }, "Validando", "Validando os dados da separação")
    If lRet
        FWMsgRun(, {|oSay| lRet := oModel:CommitData() }, "Salvando", "Salvando os dados da separação")
        If !lRet
            MsgAlert("Erro ao salvar a separação")
        Else
            oModel:lModify := .F.
        EndIf
    Else
        MsgAlert("Falha ao validar os dados. Não será salvo!")
    EndIf

    RestArea1(aSaveArea1)

Return lRet
compartilhar
  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!

0 resposta

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