Skip to main content

Criando uma 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 prexido A_
    • A_WindowNo
    • A_Tab
    • A_Field
    • A_Value
    • A_OldValue
    • A_Ctx

file

Configurar uma Callout (Script) na Tabela/Coluna

file

*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)