Script Process
From ADempiere
This Wiki is read-only for reference purposes to avoid broken links.
⇐ Table of Contents{{#if: | | [[{{{2}}}]] }}{{#if: | | [[{{{3}}}]] }}{{#if: | | [[{{{4}}}]] }}{{#if: | | [[{{{5}}}]] }} | Script Process{{#if: Process| | Process }} ⇒
![]() |
{{#if: Carlos Ruiz, Quality Systems & Solutions - QSS Ltda.|This contribution was provided by Carlos Ruiz, Quality Systems & Solutions - QSS Ltda.|This contribution was provided by The Adempiere Community}} | |
{{#if: http://globalqss.com%7Chttp://globalqss.com%7Chttp://www.adempiere.com}} | ||
{{{sf_ref}}}}} |
Status: working in version > 3.3.1b
Contents
Create the Rule
Within the script you can use:
- Login context variables start with G_ prefix
- Process Parameters for the process start with P_ prefix, for example P_Name
- If the parameter is a range then the parameters will be P_Name1 and P_Name2
And the following predefined arguments:
- A_Ctx - the context
- A_Trx - the transaction
- A_TrxName
- A_Record_ID
- A_AD_Client_ID
- A_AD_User_ID
- A_AD_PInstance_ID
- A_Table_ID
Configure the Process
Code provided for copy/paste testing
On the Report & Process:
@script:beanshell:ImportDelete
On the Rule Search Key:
beanshell:ImportDelete
On the Rule Script:
import org.compiere.model.MTable; import org.compiere.util.DB; import org.compiere.util.Msg; /* get Table Info */ MTable table = new MTable (A_Ctx, P_AD_Table_ID, A_TrxName); if (table.get_ID() == 0) throw new IllegalArgumentException ("No AD_Table_ID=" + P_AD_Table_ID); String tableName = table.getTableName(); if (!tableName.startsWith("I")) throw new IllegalArgumentException ("Not an import table = " + tableName); /* Delete */ String sql = "DELETE FROM " + tableName + " WHERE AD_Client_ID=" + A_AD_Client_ID; int no = DB.executeUpdate(sql, A_TrxName); A_ProcessInfo.addLog (0, null, null, "Deleted "+no+" rows from table "+tableName); result = "OK";