业务场景:业务单据通过BOTP(单据转换规则)生成下游单据之后,会在单据转换关联关系中存在一条记录。
因此,可以通过查询单据转换关联关系校验原始单据是否已经生成指定下游单据。
示例方法中要求传入目标单据的单据类型,单据类型可以通过该单据Info实例的getBOSType()方法获取。
/**
* 业务单据是否已经通过BOTP生成指定下游单据
* 如果已生成下游单据,返回true
* @param 源单ID
* @param 下游单据类型
*
*/
public static boolean hasDownriver(String billId, String bosType) throws BOSException {
boolean flag = false;
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("srcObjectID", billId)); //源单ID
filter.getFilterItems().add(new FilterItemInfo("destEntityID", bosType)); //目标单据类型
view.setFilter(filter);
BOTRelationCollection coll = BOTRelationFactory.getRemoteInstance().getCollection(view);
if(coll != null && coll.size() > 0){
flag = true;
}
return flag;
}