2

我在分叉 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 类型列表。

4

1 回答 1

0

我找到了这个问题的答案,基本上 Employee 表可以说是 ABC_Emp 并且生成了我的 ABC_Emp 模型类,MEmployee 扩展了这个 X_ABC_Emp 并实现了 DocAction 类,因此它没有生成列表。

我所做的不是使用 MEmployee,而是使用模型类 X_ABC_Emp 并尝试生成列表,并且它有效。我不知道为什么 MEmployee 扩展 X_ABC_Emp 不起作用的确切原因,但这几乎解决了我的问题。

于 2015-05-23T06:26:52.640 回答