FWFormCommit no graba

Tengo un programa MVC, para mantener dos tablas específicas. El problema es el siguiente: - La persistencia del modelo es estándar Al finalizar la ejecución de la grabación no devuelve la tradicional ventana "Registro ingresado con éxito", si no que regresa al FWMBrowse original y cuando se presiona en la X para regresar al menú principal, recién allí es donde efectivamente termina de efectuar la persistencia, emitiendo la tradicional ventan a de "Registro ingresado con éxito". Ya he probado de mil formas y llegué a la conclusión que el problema radica en la función FWFormCommit(). Deduciendo, no libera la ventana de edición de las tablas, se queda "pensando" sobre la imagen del FWMBrowse y cuando se presiona sobre la X para cerrar la grilla, recién en ese momento devuelve el control al programa principal. Le he seguido desde del debbug y así se comporta. Alguien ha experimentado este inconveniente ?

Adiciona esses comandos no final da configuração da viewdef

oView:EnableControlBar(.T.)
oView:SetCloseOnOk( { || .T. } )
oView:SetProgressBar(.T.)

Já me deparei com essa situação, tem duas possibilidades:

  1. Você está usando o nome do objeto MVC o mesmo nome da user function da sua rotina. No seu ModelDef() quando instancia o objeto MpFormModel():New() o primeiro parâmetro desse método é o nome do objeto MVC, não pode ser o mesmo nome da user function usada no seu fonte. Esse parâmetro é para chamar o ponto de entrada padrão do MVC, se usar o mesmo nome da sua função, vai ficar chamando em loop, precisa ser um nome diferente.
  2. Execução de gatilhos extrangeiros, nunca usei esse tipo de gatilho mas já me deparei com essa situação, onde o sistema chama novamente a própria rotina. E a função chamadora é a de execução de gatilhos extrangeiros EvalGeneric(). Para resolver fiz o seguinte tratamento na minha função principal:

//Tive que fazer essa proteção porque o padrão está chamando esse fonte recursivamente por
// conta da função EvalTrigger()->EvalGeneric() dentro do ExecAuto
If FWIsInCallStack(‘EVALGENERIC’)
Return
EndIf