Criação de Callout (Script)
No desenvolvimento de uma Callout (script) você pode usar:
- Variáveis de contexto de Janelas começando com o prefixo W_
- Variáveis de contexto de Login com o prefixo G_
- Parâmetros para callouts começando com o prefixo A_
- A_WindowNo
- A_Tab
- A_Field
- A_Value
- A_OldValue
- A_Ctx
Configurar uma Callout (Script) na Tabela/Coluna
*Esta **Callout (Script) pode ser executada também como um Processo (Script). Apenas lembre-se de alterar o tipo correto na janela Regra.
Exemplo de código para copiar, colar e testar
No campo Callout da janela Tabela e Coluna:
@script:beanshell:caixaAlta
Na Chave de Busca da Regra:
beanshell:caixaAlta
No campo Script da Regra:
if (A_Value != null && A_Value instanceof String) {
A_Tab.setValue(A_Field, ((String)A_Value).toUpperCase());
}
result = "";
Outro exemplo para definir o valor de um campo
This script will set the bank account on the Payment window based on the Tender Type and Credit Card Type.
On the Payment Table and Column, callout reference for Tender Type and Credit Card Type:
No campo Callout da janela Tabela e Coluna:
@script:beanshell:payment_setpaymentprocessor
Na Chave de Busca da Regra:
beanshell:payment_setpaymentprocessor
No campo Script da Regra:
import org.compiere.model.MPayment;
if(A_Tab.getValue("TenderType") != null && A_Tab.getValue("CreditCardType") != null && A_Tab.getValue("CreditCardType") != "")
{
MPayment pmt = new MPayment(A_Ctx, 0,null);
pmt.setTenderType(A_Tab.getValue("TenderType"));
pmt.setC_Currency_ID(A_Tab.getValue("C_Currency_ID"));
pmt.setCreditCardType(A_Tab.getValue("CreditCardType"));
pmt.setPaymentProcessor();
A_Tab.setValue("C_BankAccount_ID", pmt.getC_BankAccount_ID());
pmt = null;
}
else
{
A_Tab.setValue("C_BankAccount_ID", 0);
}
result="";
Linguagens de Script
- Por padrão o BrERP é capaz de interpretar às seguintes linguagens [http://groovy.codehaus.org/ groovy], [http://www.jython.org/Project/index.html jython] e [http://www.beanshell.org/ beanshell]
- Ao definir o campo Callout na janela Tabela e Coluna utilize a seguinte sintaxe:
- @script:beanshell:ValidarQuantidade
- @script:groovy:ValidarQuantidade
- @script:jython:ValidarQuantidade
- Ao criar uma nova Regra defina a Chave de Busca com à seguinte sintaxe:
- beanshell:ValidarQuantidade
- groovy:ValidarQuantidade
- jython:ValidarQuantidade
- defina o Tipo do Evento como Callout e o Tipo da Regra como JSR 223 Scripting APIs' (Beanshell)