Avalados por :

Como adicionar um botão ao formulário de dados mestres de parceiros comerciais no SAP B1

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 18 Vistas
0
Cargando...

Olá, pessoal

Por favor, consulte o exemplo abaixo para me ajudar a entender o significado de "pVal.BeforeAction = False".

O código irá adicionar um botão ao Formulário de Dados Mestre do Parceiro de Negócios no SAP B1 e desabilitar o combo.

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

Sub SBO_Application_ ItemEvent( ByVal FormUID As String , _

ByRef pVal As SAPbouiCOM. ItemEvent, _

ByRef BubbleEvent As Boolean )

Handles SBO_Application.ItemEvent

Se pVal. FormTypeEx = “134” E pVal.BeforeAction = False Então

‘ 134 refere-se ao Formulário de Dados Mestre de Parceiros de Negócios no SAP’

Se pVal. EventType = et_FORM_LOAD Então

'adicionando um botão ao formulário de Dados Mestre de Parceiros de Negócios quando ele acabou de ser carregado

Dim oItems As SAPbouiCOM.Items

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

4 Respuestas

0
Cargando...

Olá, Evangelos


Muito obrigado pela sua informação muito útil.


Cumprimentos,

Leon

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

Olá Leon,

O SAPB1 envia dois eventos para cada evento. Um com Before Action = True e outro com Before Action = False.

Um dos usos de Before Action = True é para fins de validação. Por exemplo, para um formulário de gerenciador automático, quando você pressiona o botão (UID = "1"), o formulário executará a ação padrão (Adicionar / Atualizar / Encontrar). Se desejar preencher um campo específico (que não é obrigatório em seu Banco de Dados (UDF)), você pode verificar e lidar com ele com o Before Action = True. Caso haja um "erro" (o campo esteja vazio), então você deve enviar BubbleEvent = true. Dessa forma, você informa ao SAPB1 para não enviar outro evento até que o usuário realize um novo evento.

Before Action = False lida com eventos quando o processo é concluído. Geralmente, é combinado com o evento ActionSuccess.

Atenciosamente,

Evangelos D. Plagianos

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

Olá Pedro

Muito obrigado pela sua resposta.

Foi muito útil para mim.

Cumprimentos,

Leon

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

Olá Leon,


pVal.BeforeAction = False
"pVal.BeforeAction = False" significa que a aplicação "SAP B1" já tratou o evento.

A que evento o código acima se refere?
Refere-se ao evento et_FORM_LOAD?
Significa "pVal.BeforeAction = False" que o SAP B1 já carregou o formulário de dados mestre do BP?

O evento também está contido em pVal.EventType. Portanto, pVal.BeforeAction = False significa que pVal.EventType já foi tratado pelo B1.

No caso de et_FORM_LOAD, significaria que o B1 terminou de carregar o formulário (note que carregar o formulário não é o mesmo que exibi-lo na tela).


pVal.BeforeAction = True
"pVal.BeforeAction = True" significa que a aplicação "SAP B1" ainda não tratou o evento.
Significa "pVal.BeforeAction = True" que o SAP B1 ainda não carregou o formulário de dados mestre do BP?
Que diferença faria se eu substituísse o código original "pVal.BeforeAction = False" por "pVal.BeforeAction = True"?
Isso significa que o SAP B1 ainda não carregou o formulário de dados mestre do BP e, portanto, os códigos abaixo dele não serão executados?

Isso significa que o evento ainda não foi tratado. No caso de et_FORM_LOAD, significa que o formulário ainda não foi carregado.

Se você substituir por = true, então seu código será executado após o formulário ter sido carregado.

Um exemplo simples: você deseja carregar um formulário apenas se houver permissão presente. Você capturaria o BeforeAction = true do evento FORM_LOAD e verificaria a permissão. Se a permissão estiver correta, então você define BubbleEvent = true para permitir que a operação continue.

Outro exemplo: você deseja carregar um combobox com dados após o carregamento do formulário. Nesse caso, você captura o evento FORM_LOAD com BeforeAction = False e então executa o código para carregar os dados no combobox.

Conclusão:

BeforeAction = true -> seu código é executado antes do evento ser tratado pelo B1.

BeforeAction = false -> seu código é executado após o evento ser tratado pelo B1.


Pedro Magueija


LinkedIn Logo Ver o perfil de Pedro Magueija no LinkedIn
Seguir @pedromagueija no Twitter

Se esta resposta foi útil ou correta, considere marcá-la 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?