es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo guardar un registro antes de ejecutar un proceso personalizado?

Tengo un proceso personalizado para la pantalla de Orden de Ventas que completa la cuadrícula de Detalles con valores obtenidos de otra tabla/DAC. El problema es que necesito guardar el registro, lo cual creará un número de orden, antes de que se ejecute el proceso. He intentado agregar este código al método del proceso de la siguiente manera:

protected virtual IEnumerable licensePlateLoad(PXAdapter adapter)
{

    //Issue a save first...
    Base.Actions.PressSave();

    //Declare the grid's DAC...
    SOLine soline;

    PXLongOperation.StartOperation(Base, delegate ()
    {
         //...código de proceso aquí...
    });
}

También he intentado usar Base.Persist() en el mismo lugar que Base.Actions.PressSave(), pero ninguna de estas acciones crea el nuevo registro antes de ejecutar el proceso. ¿Alguna idea?

Tags:  

Answer

  1. Avatar for davy.ai

    Parece que el proceso personalizado para poblar la cuadrícula de Detalles con valores de otra tabla/DAC requiere que el Núm. de Orden se cree antes de ejecutarse. Sin embargo, la implementación actual no está creando el nuevo registro antes de desencadenar el proceso.

    Una posible solución es utilizar el método CommitChanges() después de PressSave() o Persist() para asegurar que el registro se guarde antes de ejecutar el proceso personalizado. El código actualizado se vería así:

    protected virtual IEnumerable licensePlateLoad(PXAdapter adapter)
    {

    //Primero, guardar…
    Base.Actions.PressSave();
    Base.Actions.Persist();
    Base.Actions.CommitChanges();

    //Declarar el DAC de la cuadrícula…
    SOLine soline;

    PXLongOperation.StartOperation(Base, delegate ()
    {
    //…código del proceso aquí…
    });
    }

    Esto debería asegurar que el registro se guarde y que se cree el Núm. de Orden antes de ejecutar el proceso personalizado.

Comments are closed.