DEP 如何向一张自建单据中通过脚本写入数据

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

DEP 如何向一张自建单据中通过脚本写入数据

/**说一下整体思路:

**1.自动生成uuid,作为单据数据行的id

**2.通过Info()接口,单据对应的实体BosType,单据对应的PK,生成对应单据的实体(Bostype和PK的获取方法社区有)

**3.通过实体的setId()方法,写入单据行id,调用单据实体对象的addnew()方法,新增一行单据数据

**4.通过sql,更新新增行的其他列

**/

var uuid = com.kingdee.bos.util.BOSUuid.create("071B829A");

var bankIngPK = new com.kingdee.bos.dao.ormapping.ObjectUuidPK(uuid);


//创建值对象

function createNewData(entityPK)

{

    var objectValue = new com.kingdee.eas.ep.CoreBillBaseCustomInfo();

    var entityBosType = "071B829A"; //实体的bosType,可通过[元数据检查]获得

    objectValue.setBOSType(new com.kingdee.bos.util.BOSObjectType(entityBosType));

    //实体的PK,可通过[元数据检查]获得

    objectValue.setPK(new com.kingdee.bos.metadata.MetaDataPK(entityPK));

    return objectValue;

}

var entityPK = "com.kingdee.eas.fi.app.StatementOfAccount";

var object = createNewData(entityPK);

//通过实体PK获取自定义基础资料或单据接口,所需参数为实体pk

var bizInterface = com.kingdee.bos.BOSObjectFactory.

createRemoteCommonBOSObject(

new com.kingdee.bos.metadata.MetaDataPK(entityPK));


var cid = bankIngPK.getKeyValue("id");

object.setId(cid)

bizInterface.addnew(object); //新增



var data_update_sql =  "update 表名  set 字段名1= '"+ 值1+"', 字段名2= '"+ 值2+"' where fid = '"+cid+"' ";

com.kingdee.eas.csinterface.syncdatabase.SQLFacadeFactory.getRemoteInstance().exeSQL(data_update_sql);


补充:info可以获取单据info,还有其他的info对象:

//这个是获取其他info对象的函数,不过我还没有去试这个info对象到底是获取基础资料的还是啥的,等以后遇到了在研究

function createNewData(entityBosType, entityPK)

{

    var objectValue = new com.kingdee.eas.ep.DataBaseCustomInfo(); //这是获取另一个info对象

    objectValue.setBOSType(entityBosType);

    objectValue.setPK(new com.kingdee.bos.metadata.MetaDataPK(entityPK));

    return objectValue;

}

总结:这不是唯一向自建单据中写入数据的方法,我觉得可以通过bizInterface的update或者其他insert的方法也能添加(不使用sql),还没有去尝试。大家如果有其他方法可以在下面交流。

DEP 如何向一张自建单据中通过脚本写入数据

/**说一下整体思路:**1.自动生成uuid,作为单据数据行的id**2.通过Info()接口,单据对应的实体BosType,单据对应的PK,生成对应单据的实体...
点击下载文档
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息