Olá, Evangelos
Muito obrigado pela sua informação muito útil.
Cumprimentos,
Leon
Avalados por :
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
Olá, Evangelos
Muito obrigado pela sua informação muito útil.
Cumprimentos,
Leon
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
Olá Pedro
Muito obrigado pela sua resposta.
Foi muito útil para mim.
Cumprimentos,
Leon
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
Se esta resposta foi útil ou correta, considere marcá-la como tal.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute