Avalados por :

Cómo agregar un botón al formulario de datos maestros de socios comerciales en SAP B1

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Loading...

Hi, everybody

Please refer to the example below to help me understand the meaning of "pVal.BeforeAction = False".

The code will add a button to a Business Partner Master Data Form in SAP B1, and disable the combo.

-------------

Sub SBO_Application_ ItemEvent( ByVal FormUID As String , _

ByRef pVal As SAPbouiCOM. ItemEvent, _

ByRef BubbleEvent As Boolean )

Handles SBO_Application.ItemEvent

If pVal. FormTypeEx = “134” AND pVal.BeforeAction = False Then

‘ 134 refers to the BP Master data Form in SAP’

If pVal. EventType = et_FORM_LOAD Then

'adding a button to the BP Master Data form when it just has been loaded

Dim oItems As SAPbouiCOM.Items

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Loading...

Hola, Evangelos


Muchas gracias por tu información muy útil.


Saludos cordiales,

Leon

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Hola Leon,

SAPB1 envía dos eventos para cada evento. Uno con Before Action = True y otro con Before Action = False.

Uno de los usos de Before Action = True es para fines de validación. Por ejemplo, para un formulario de gestor automático cuando presionas el botón (UID = "1"), el formulario realizará la acción predeterminada (Agregar / Actualizar / Encontrar). Si deseas completar un campo específico (que no es obligatorio en tu Base de Datos (UDF)), puedes verificarlo y manejarlo con el Before Action = True. En caso de que haya un "error" (el campo esté vacío), entonces debes enviar BubbleEvent = true. De esta manera informas a SAPB1 que no envíe otro evento hasta que el usuario realice un nuevo evento.

Before Action = False maneja eventos cuando el proceso se ha completado. Por lo general, se combina con el evento ActionSuccess.

Saludos cordiales,

Evangelos D. Plagianos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Hola Pedro

Muchas gracias por tu respuesta.

Me ha ayudado mucho.

Saludos cordiales,

Leon

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Hola Leon,


pVal.BeforeAction = False
"pVal.BeforeAction = False" significa que la aplicación "SAP B1" ya ha manejado el evento.

¿A qué evento se refiere el código anterior?
¿Se refiere al evento et_FORM_LOAD?
¿Significa "pVal.BeforeAction = False" que SAP B1 ya ha cargado el formulario de datos maestros de BP?

El evento es el también contenido en pVal.EventType. Por lo tanto, pVal.BeforeAction = False significa que pVal.EventType ya ha sido manejado por B1.

En el caso de et_FORM_LOAD significaría que B1 ha terminado de cargar el formulario (nota que cargar el formulario no es lo mismo que mostrarlo en pantalla).


pVal.BeforeAction = True
"pVal.BeforeAction = True" significa que la aplicación "SAP B1" aún no ha manejado el evento.
¿Significa "pVal.BeforeAction = True" que SAP B1 aún no ha cargado el formulario de datos maestros de BP?
¿Qué diferencia haría si reemplazo el código original "pVal.BeforeAction = False" por "pVal.BeforeAction = True"?
¿Significa esto que SAP B1 aún no ha cargado el formulario de datos maestros de BP y por lo tanto los códigos debajo de él no se ejecutarán?

Esto significa que el evento aún no ha sido manejado. En el caso de et_FORM_LOAD, significa que el formulario aún no ha sido cargado.

Si lo reemplazas por = true, entonces tu código se ejecutará después de que el formulario haya sido cargado.

Un ejemplo simple: quieres cargar un formulario solo si hay un permiso presente. Capturarías el BeforeAction = true del evento FORM_LOAD y verificarías el permiso. Si el permiso está bien, entonces estableces BubbleEvent = true para permitir que la operación continúe.

Otro ejemplo: quieres cargar un combobox con datos después de que se cargue el formulario. En este caso, capturas el evento FORM_LOAD con BeforeAction = False y luego ejecutas el código para cargar los datos en el combobox.

Conclusión:

BeforeAction = true -> tu código se ejecuta antes de que el evento sea manejado por B1.

BeforeAction = false -> tu código se ejecuta después de que el evento es manejado por B1.


Pedro Magueija


LinkedIn Logo Ver el perfil de Pedro Magueija en LinkedIn
Seguir a @pedromagueija en Twitter

Si esta respuesta fue útil o correcta, considera marcarla como tal.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?