Como programador en Dynamics AX, varias veces me confundi varios métodos de los Datasource en los formularios. Encontré una nota en el blog de
KASHPERUK, que explica detalladamente c/método. A continuación un resumen:
Refresh()Refresca la info de los formularios de la Cache del DS, de el record seleccionado. No relee de la BD.
Reread()Consulta la BD, y relee el record que esta seleccionado en ese momento
Research()Vuelve a ejecutar la actual consulta. En Ax2009 Research(true), ejecuta nuevamente la consulta pero se mantiene en el record ya seleccionado.
ExecuteQuery()Vuelve a ejecutar la consulta, pero solo sirve, si la consulta cambio, sino hay que usar Research()
formDataSource.queryRun().query()Es la consulta que se está ejecutando actualmente en el formulario
formDataSource.query()Es la consulta original del formulario
Por lo tanto si se usa research(), usuara formDataSource.queryRun().query() manteniendo cualquier filtro que haya hehco el usuario. Si se Usa ExecuteQuery(), este usara formDataSource.query(), eliminado cualquier filtro que haya hecho el usuario.
Fuente:
KASHPERUK blog