BOTP单据转换平台自定义公式

来源:互联网 发布:车臣战争知乎 编辑:程序博客网 时间:2024/06/06 20:57

BOTP自定义公式

运用BOTP公式平台进行单据转换规则配置,当遇到系统提供的公式不能够满足当前业务配置需求时,用户可以自定义公式。本文档以一个案例来介绍如何在BTOP中自定义公式,并应用自定义的公式进行规则配置。

 

案例说明:计划订单投放生成离散生产订单,该过程运用的单据转换规则是“MM_PLAN005计划订单-离散生产订单”。该规则中,没有为生产订单的“成本对象”赋值,所以生成的生产订单“成本对象”内容为空。

现需要为生产订单的“成本对象”赋值,要求:成本对象取值是计划订单的物料关联的成本对象。查看公式平台中系统提供的公式发现,公式不能满足需求,所以手工添加一个公式。

 

操作步骤

一、             打开规则编辑界面

使用具有“规则配置”权限的用户登录EAS系统,切换组织,切换到能够修改BTOP规则配置的组织下,打开“规则配置”,找到该规则。

打开规则编辑界面,如下图

 

二、             打开“BOTP自定义公式”界面

在“单据转换规则”界面,按F9,输入管理员密码,

 

验证成功后,系统自动打开“BOTP自定义公式”编辑界面,如下图

 

 

三、    新增自定义公式

按下图,填写内容后保存。

 

公式名

__DYNBOTGetaCostObjByMaterialAndOrg,其中__DYNBOT是系统自动添加的前缀。

公式介绍

根据物料编码和组织ID获取成本对象;__DYNBOT GetaCostObjByMaterialAndOrg(String  materialNum, String OrgUnitId),返回值为成本对象;

是否全局共享

勾选表示在所有的单据转换规则配置该公式均可用,否则只有在当前单据转换规则配置界面可用。

是否启用

勾选表示启用。

脚本内容

java.lang.StringBuffer sql = new  java.lang.StringBuffer();

sql.append( " select t.fid from t_bd_costobject t  where t.fnumber='");

sql.append(materialNum);

sql.append( "'");

sql.append(" and t.fcontrolunitid='");

sql.append(orgId);

sql.append( "'");

java.sql.Connection con =  com.kingdee.bos.framework.ejb.EJBFactory.getConnection(__bosContext);

java.sql.Statement batchStatement =  con.createStatement( );

java.sql.ResultSet rst =  batchStatement.executeQuery(sql.toString( ));

String text = "";

if  (rst.next(  ))  {     text = rst.getString("fid").toString();

}   com.kingdee.util.db.SQLUtils.cleanup(batchStatement , con );

com.kingdee.util.db.SQLUtils.cleanup( con );

return text;

公式参数

1、materialNum(物料编码)物料编码

2、orgId(管理单元ID)

 

 

四、    应用自定义公式

打开单据转换规则配置界面,找到生产订单中的“成本对象”,单击后方编辑按钮

 

系统打开“成本对象取值”,单击“脚本编辑”按钮,

系统打开“公式平台”编辑界面,公式内容如下

公式结果 =__BOTgetObjectFromCostObject(__DYNBOTGetaCostObjByMaterialAndOrg(计划订单.物料.编码,计划订单.控制单元.ID));

 

 文档(含图片)下载地址

http://download.csdn.net/detail/rogerwsz/4560564