采购申请单审核时调用webservice问题
金蝶云社区-KD老赵
KD老赵
0人赞赏了该文章 1,701次浏览 未经作者许可,禁止转载编辑于2014年10月22日 12:57:16


现在遇到两个问题:

1、采购申请单在审核时调用webservice接口向第三方传递数据时报异常,报错信息请见附件。调用webservice接口代码如下:
/**
* 推送数据到物资管理平台
*/
private BackResult sendData(Context ctx, PurRequestInfo purInfo, String oprate) {
BackResult result = new BackResult();
RequestPlanInterfacesLocator locator = new RequestPlanInterfacesLocator();
String oprateType = "";
if(oprate.equals("INSERT")){
oprateType = "新增";
} else if(oprate.equals("UPDATE")){
oprateType = "修改";
} else {
oprateType = "作废";
}

String logId = "";
String id = purInfo.getId().toString();

try {

PurRequestEntryCollection puc = purInfo.getEntries();
PurchReqInfo[] data = new PurchReqInfo[puc.size()];
PurchReqInfo info = null;
PurRequestEntryInfo entry = null;
for (int i = 0; i < puc.size(); i++) {
entry = puc.get(i);
info = new PurchReqInfo();

if(purInfo.getCompanyOrgUnit() != null){ //财务组织编码
info.setFCompanyOrgUnitID(purInfo.getCompanyOrgUnit().getNumber());
}
//申请人变更为制单人 2014-5-28
if(purInfo.getCreator() != null){ //申请人编码
// info.setFperson(purInfo.getPerson().getName());
// info.setFPersonID(purInfo.getPerson().getNumber());
PersonInfo per=purInfo.getCreator().getPerson();
if(per!=null){
info.setFperson(per.getName());
info.setFPersonID(per.getNumber());
}
// info.setFperson(purInfo.getCreator().getName());
// info.setFPersonID(purInfo.getCreator().getNumber());
}
info.setFDeliveryAddress(entry.getDeliveryAddress()); //地址信息
if(entry.getDeliveryAddress() != null){
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("name", entry.getDeliveryAddress(), CompareType.LIKE));
SelectorItemCollection sc = new SelectorItemCollection();
sc.add(new SelectorItemInfo("number"));
view.setSelector(sc);
view.setFilter(filter);
AddressCollection ac = AddressFactory.getLocalInstance(ctx).getAddressCollection(view);
if(ac != null && ac.size() > 0){
info.setFDeliveryAddressID(ac.get(0).getNumber()); //地址信息编码
}
}
info.setFEntryID(entry.getId().toString()); //分录ID
if(purInfo.isIsUrgent()){
info.setFIsUrgent("1"); //是否加急
} else {
info.setFIsUrgent("0"); //是否加急
}
String maid = "";
if(entry.getMaterial() != null){ //物料
maid = entry.getMaterial().getId().toString();
info.setFMaterial(entry.getMaterial().getNumber());
info.setFMaterialID(entry.getMaterial().getId().toString());
}
info.setFNumber(purInfo.getNumber()); //单据编码
info.setFPrice(UIRuleUtil.getString(entry.getPrice())); //单价
if(entry.getProposeDeliveryDate() != null)
info.setFProposeDeliveryDate(DateUtil.getDateFormat(entry.getProposeDeliveryDate())); //送货日期
if(entry.getPurchasePerson() != null){ //采购人员
info.setFPurchasePerson(entry.getPurchasePerson().getName());
info.setFPurchasePersonID(entry.getPurchasePerson().getNumber());
} else {
//如果采购申请单上未添加采购员,则通过物料查找采购员
if(maid != null && maid.length() > 0){
PurchasePersonInfo p = getPurchasePerson(ctx, maid);
if(p != null){
info.setFPurchasePerson(p.getPerson().getName());
info.setFPurchasePersonID(p.getPerson().getNumber());
}
}
}
info.setFPurID(id); //申请单ID
info.setFPurpose(entry.getPurpose()); //用途
info.setFQty(UIRuleUtil.getString(entry.getQty())); //数量
info.setFRemark(entry.getRemark()); //备注
if(entry.getRowType() != null){ //计划类型、行类型
info.setFRowType(entry.getRowType().getName());
info.setFRowTypeID(entry.getRowType().getNumber());
}
if(entry.getUnit() != null){ //基本计量单位
info.setFUnit(entry.getUnit().getName());
info.setFUnitID(entry.getUnit().getNumber());
}
if(entry.get("wLSYBM") != null){ //使用部门
info.setFUseAdminOrgUnit(((AdminOrgUnitInfo)entry.get("wLSYBM")).getName());
info.setFUseAdminOrgUnitID(((AdminOrgUnitInfo)entry.get("wLSYBM")).getNumber());
}
info.setMsg_Type("RequestPlan");
info.setOperate(oprate);
data[i] = info;

}
//调用webservice接口传递数据到物资管理平台系统
result = locator.getRequestPlanInterfacesSoap().sendReqPlanForMany(data);
} catch (Exception e) {
return null;
}
return result;

}
在执行调用webservice时报错,此错误不经常发生,但是最近一段时间发生的比较频繁。

2、采购申请单做二次开发,对后台ControllerBean类做扩展:PurRequestControllerBeanPIEx。
复写审核方法protected void _audit(Context ctx, IObjectPK[] pk) throws BOSException, EASBizException
问题在于:在采购申请单编辑界面点击“审核”按钮,我们二次开发的代码不起作用,但是在列表界面点击“审核”按钮时,就可以起作用,不知道原因为什么。

客户的这个环境,之前也做过二次开发,出现过PurRequestControllerBeanEx这个类,以及客户端EditCTEx类和ListCTEx类,但是之前做的二次开发的类中,并未发现和审核有关的方法。