当前位置 : 主页 > 网页制作 > Nodejs >

EAS BOS webservices 开发 之 形成EAS单据中的问题

来源:互联网 收集:自由互联 发布时间:2021-06-24
1. EAS中业务单据通常有很多F7,一般我是通过对象的ID 去查询这个对象然后赋值到单据对应的属性中, 比如: //付款方式 purInWarehs.setPaymentType(PaymentTypeFactory.getLocalInstance(ctx) .getPaymentTyp

1. EAS中业务单据通常有很多F7,一般我是通过对象的ID 去查询这个对象然后赋值到单据对应的属性中,

比如:

//付款方式    

purInWarehs.setPaymentType(PaymentTypeFactory.getLocalInstance(ctx)
    .getPaymentTypeInfo(new ObjectUuidPK("2fa35444-5a23-43fb-99ee-6d4fa5f260da6BCA0AB5")));


          其实可以换成:

PaymentTypeInfo paymentType =  new  PaymentTypeInfo ();

paymentType .setId(new ObjectUuidPK(("2fa35444-5a23-43fb-99ee-6d4fa5f260da6BCA0AB5"));//类似这样的写法

2.有一些单据,比如采购入库单,在调用接口的方法时候,需要设置下以下的Context 里面的一些组织,之前测试的时候没设置这些属性,系统都甚至没有抛出异常,单据提交保存 都没有问题但是数据就是没法进去,设置这些属性以后,异常就出来了

OrgUnitInfo ou =new OrgUnitInfo();
ou.setId(BOSUuid.read(getDefaultCU(ctx)));//组织ID

AdminOrgUnitInfo adminUnit=new AdminOrgUnitInfo();
adminUnit.setId(ou.getId());
ContextUtil.setCurrentAdminUnit(ctx, adminUnit);

SaleOrgUnitInfo saleUnit=new SaleOrgUnitInfo();
saleUnit.setId(ou.getId());
ContextUtil.setCurrentSaleUnit(ctx,saleUnit);

StorageOrgUnitInfo storageUnit=new StorageOrgUnitInfo();
storageUnit.setId(ou.getId());
ContextUtil.setCurrentStorageUnit(ctx, storageUnit);

3. 在对业务单据进行保存后,数据存到了数据库中,但是不会再列表界面显示,这个问题的解决方法就是去找一条正确的数据(能在列表界面显示的数据),然后数据库里面对比这两条数据的字段即可, 主要是一些组织的字段 ,


4. 接口传递过来的单据可以保存后,点击提交提示 无法将NUll 插入到一张表中,

这个问题解决办法:首先先给这个字段赋值,如果确认有值的话,你在保存后提交之前再将这个数据查询出来然后提交。

比如:

//保存 IObjectPK pk = PurInWarehsBillFactory.getLocalInstance(ctx).save(purInWarehs); purInWarehs = PurInWarehsBillFactory.getLocalInstance(ctx) .getPurInWarehsBillInfo(pk); PurInWarehsBillFactory.getLocalInstance(ctx).submit(pk,purInWarehs)

网友评论