以下代码片段适用于通过BOTP生成下游单据时,获取上下游单据相关信息。
名词:源单据(上游单据)、目标单据(下游单据)。
/**
* 业务单据是否已经通过BOTP生成指定下游单据
* 如果已生成下游单据,返回true
* @param billId 源单ID
* @param bosType 下游单据类型
*
*/
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;
}
/**
* 获取单据通过BOTP生成指定下游单据ID
* @param billId 源单ID
* @param bosType 下游单据类型
*
*/
public static String getDownBillId(String billId, String bosType) throws BOSException {
String destObjectId = null;
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){
BOTRelationInfo relation = coll.get(0);
destObjectId = relation.getDestObjectID();
}
return destObjectId;
}
/**
* 获取单据指定上游单据ID(上游单据通过BOTP生成下游单据)
* @param billId 下游单据ID
* @param bosType 上游单据类型
*
*/
public static String getUpBillId(String billId, String bosType) throws BOSException {
String srcObjectId = null;
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("destObjectID", billId)); //下游单据ID
filter.getFilterItems().add(new FilterItemInfo("srcEntityID", bosType)); //上游单据类型
view.setFilter(filter);
BOTRelationCollection coll = BOTRelationFactory.getRemoteInstance().getCollection(view);
if(coll != null && coll.size() > 0){
BOTRelationInfo relation = coll.get(0);
srcObjectId = relation.getSrcObjectID();
}
return srcObjectId;
}