我是在创建Adempiere项目之后工作的,当我使用list()方法从表中创建列表时,我正在处理补丁,而不是特定的类列表,我得到的是通用PO列表。处理补丁可能是导致此错误的主要原因。
以下是代码
@Override
protected String doIt() throws Exception {
int orgId = Env.getAD_Org_ID(getCtx());
int clientID=Env.getAD_Client_ID(getCtx());
List<MEmployee> EmployeeList = new ArrayList<MEmployee>();
EmployeeList = getEmployeeList(p_MemberGroupId,orgId);
String msg = "";
for ( MEmployee employee : EmployeeList ) {
}
return null;
}
private List<MEmployee> getEmployeeList(int EmployeeGroupID, int orgId) {
List<MEmployee> employeeList = new ArrayList<MEmployee>();
StringBuffer employeeWhereClause = new StringBuffer();
employeeWhereClause.append( MEmployeeGroup.COLUMNNAME_E2_HR_PAGRP_ID )
.append( " = " ).append( EmployeeGroupID )
.append(" and ")
.append( MEmployee.COLUMNNAME_AD_Org_ID)
.append( " = " )
.append(orgId)
.append( " and " )
.append( X_E2_HR_PAEM0.COLUMNNAME_Status )
.append( " not in " )
.append(" ('"+MEmployee.EMPSTATUS_OnHold+"','"+MEmployee.EMPSTATUS_Left+"') ");
employeeList = new Query(getCtx(), MEmployee.Table_Name, employeeWhereClause.toString(), get_TrxName())
.setClient_ID()
.setOnlyActiveRecords(Boolean.TRUE)
.list();
return employeeList;
}这里我得到的是通用PO列表,而不是MEmployee类型列表。
发布于 2015-05-23 14:26:53
我找到了这个问题的答案,基本上Employee表是这样的,假设生成了ABC_Emp和我的这个ABC_Emp的模型类,而MEmployee扩展了这个X_ABC_Emp并实现了DocAction类,因此它不会生成列表。
我所做的是,我没有使用MEmployee,而是使用了模型类X_ABC_Emp,并尝试了列表生成,它起作用了。我不知道MEmployee扩展X_ABC_Emp不起作用的确切原因,但这基本上解决了我的问题。
https://stackoverflow.com/questions/29690324
复制相似问题