我在BAL规则中要求创建对象并将它们添加到列表
例如,客户是一个以下成员的班级 1.姓名 2.位置
根据BAL规则的“if”条件,需要创建Type Customer对象并将其添加到Customerlist。
我尝试通过按照此链接
下提供的步骤在BOM编辑器中的Customer类中创建方法来创建对象how to create an object (call the constructor) from a BOM member on a decision table action column? 但我得到以下错误: ''return'指令'
中的值不兼容有人可以提供详细的步骤来创建对象并将它们添加到BAL中的列表中吗?
答案 0 :(得分:0)
我对你的情景的建议是:
我在几种情况下都使用这种方法取得了巨大成功,并且不乏性能。
希望这有帮助。
答案 1 :(得分:0)
构造函数不会直接在BOM中表述。您可以在XOM中创建一个方法,该方法通过构造函数创建对象,并且可以将此方法映射到BOM上并进行口述以用于规则工件中。
答案 2 :(得分:0)
创建对象并将其添加到列表应该是两个单独的方法。
创建:假设您遵循提供的链接的配方,则应该在Customer BOM类上使用一个名为createCustomer()的BOM方法。由于没有XOM支持该BOM方法,因此您必须提供该方法的B2X代码。大多数人将这种方法称为虚拟BOM方法。查看该方法的B2X代码将很有帮助。您的BOM和XOM类是同一类型吗?否则,您将为Customer BOM类指定一个执行名称。在这种情况下,您可能需要将createCustomer()BOM表方法的返回值转换为Customer BOM类。
//用以下语言表达:新客户
客户Customer.createCustomer()
return (Customer) new OtherCustomerClassFromXOM();
添加:在某个类上定义另一个虚拟BOM方法,并将其命名为addCustomer(Customer customer)。通常它将位于包含list变量作为成员的类上。但是,如果list变量是全局变量(即规则集变量),则该方法可能是任何类(甚至是Customer类)的静态成员。
//表示为:将{0}添加到{1}
void Customer.addCustomer(Customer customer,java.util.Collection customerList)
if (customerList == null) {
customerList = new java.util.ArrayList();
}
customerList.add(customer);