eas之单据转换规则
/**
* BOTP单据转换
* @param botpNum 转换规则编号
* @param BillInfo 原单据
*/
public static void BOTP(String botpNum,CoreBillBaseInfo BillInfo){
String error = "";
try {
// 取得BOPT的映射
BOTMappingCollection botmapping = BOTMappingFactory.getRemoteInstance().getBOTMappingCollection("select * where name = '"+botpNum+"' ");
BOTMappingInfo btpMappingInfo = null;
if (botmapping !=null && botmapping.size() == 1) {
btpMappingInfo = botmapping.get(0);
} else {
if(botmapping==null || botmapping.size()<1){
error = "未找到转换规则 规则编号:"+botpNum;
}
if(botmapping.size()>1){
error = "找到多条转换规则,请删除重复规则。 规则编号:"+botpNum;
}
throw new Exception();
}
//执行单据转换
BTPTransformResult transformResult = BTPManagerFactory.getRemoteInstance().transform(BillInfo, btpMappingInfo);
//取得目标单据列表
IObjectCollection toBillList = transformResult.getBills();
//保存目标单据
for (int i = 0; i < toBillList.size(); i++) {
CoreBillBaseInfo destBillInfo = (CoreBillBaseInfo) toBillList.getObject(i);
BTPManagerFactory.getRemoteInstance().saveRelations(destBillInfo, transformResult.getBOTRelationCollection());
}
} catch (Exception e) {
if("".equals(error) || error == null){
alert2("单据转换出错",e.getMessage());
}else{
alert2("单据转换出错",error);
}
}
}