关于BOTP集成的FAQ
更新时间:2024-04-22 07:33:01 阅读量: 综合文库 文档下载
关于BOTP集成的FAQ
1. 扩展属性配置
BOTP规则定义过程中涉及到较多的扩展属性,例如目标单据上的哪些属性可以被映射,哪些属性可以作为分组属性,这些都是通过扩展属性来配置的(从业务角度出发,不能将目标单据的所有属性作为转换属性或者分组属性)。下面详细解释一下BOTP中用到的几个主要扩展属性: 扩展属性名称 isForMapping 性 是否分组属性,目标单据/单据分录实体中需要参与BOTP分组合并isForGrouping 的属性,只有isForMapping为true的属性,才可以将该属性设置为true isForMatching isForWrittenBack 是否核销属性,目标单据/单据分录实体中需要参与BOTP核销的属性,只有isForMapping为true的属性,才可以将该属性设置为true 是否反写属性,源单据/单据分录实体中需要参与BOTP反写的属性 描述 是否映射属性,目标单据/单据分录实体中需要参与BOTP映射的属 其它BOTP可能用到的扩展属性: 扩展属性名称 listUI editUI defaultF7Query 描述 单据序时簿界面类名,BOTP在单据联查、单据转换时需要使用 单据编辑界面类名,BOTP在单据转换后显示单据编辑界面时需要使用 拉式生成时显示源单据F7需要使用
可以定义botp规则的单据应满足一下条件: 1.从CoreBillBase继承;
2.包名必须注册在子系统的xml中;
2. 单据转换后部分连接属性不能正常显示
这通常是由于业务系统传递给BOTP的源单据本身的连接属性不全导致的,例如源单据getValue时没有指定相应的selector,则默认仅会获取连接属性的ID,这样转换到目标单据后,目标单据的相应属性也就是一个只包含ID的值对象,导致连接属性显示为空(通常是用name属性作为显示属性的)。要解决这个问题,需要源单据序时簿界面重载getBOTPSelectors()方法,使其返回的selectors包含转换过程中需要用到的源单据属性,以确保转换后的连接属性能够正常显示。
在转换过程中,只有有一个属性没有取到,就会重新从数据库里再取一遍,这时就会丢掉之前getBOTPSelectors()已定义的属性,因此该方法一定要包含规则定义中涉及到的所有源单据属性。同是也要注意不要添加不需要的属性,轻者影响性能,重者会出现“无法创建比允许的最大值还大的工作表行”的异常。
3. 单据转换(下推生成)时分组属性不能正常显示
问题同上,是由于业务系统传递给BOTP的源单据本身的连接属性不全导致的,例如以公司属性作为分组属性,但是源单据的公司属性只有ID,没有Name,则分组属性不能正常显示。解决方法同上,即源单据序时簿界面重载getBOTPSelectors()方法,使其返回的selectors包含转换过程中需要用到的源单据属性。
对于源单据的主键和目标单据分组属性的映射属性,要求在源单据实体上的”
defaultF7Query”有对应的查询字段,而且查询字段名与listUI中绑定的query中查询字段名称相同;此外,对于目标单据分组属性的源单据映射属性,如果为连接属性,则要求连接属性对应实体上定义扩展属性” defaultDisplayField”的值,如果没有定义,默认为name属性;
根据CoreBillListUI中isNeedShowBOTPRule()方法的返回值,决定用户是否可以选择转换规则,默认为false;业务系统可以重载; 4. 拉式生成
拉式生成时供选择的f7上绑定的query为源单据扩展属性” defaultF7Query”的query,另会根据源单据实体上” listUI”类的getFilterInfo方法设置默认的过滤条件;
在拉式生成时可重载CoreBillEditUI中方法isNeedShowBOTPRule()用以允许用户选择合适的转换规则;
5. “查询对象与表列名不对应!”错误
该种类型问题,一般是由于实体上defaultF7Query扩展属性对应的Query对象中是否没有包含所有分组属性(分组属性可以查规则定义)。例如,一般单据都会以公司作为分组条件,则要求单据Query上包含company.id属性。
6. 单据转换平台的固定反写逻辑
某些单据有一些相对固定的逻辑,例如借款单分录已报销金额=借款金额,则该分录的是否关闭标志置为true。如果该逻辑在单据的保存的时候都适用的话,则该逻辑建议写在单据本身的update方法里,单据转换后的反写过程中会间接调用单据本身的update方法来保存源单据,如果该逻辑仅适用于反写,则该逻辑建议写在单据本身的reverseSave方法中,该方法的默认实现为调用update,可以自行重载先调用反写逻辑,再调用super.reverseSave()。
7. 动态会计平台的固定反写逻辑
动态会计平台不支持反写规则定义,但是其包含如下反写逻辑:
a.)大部分需要转换成凭证的单据需要定义fiVouchered属性(bool类型),以标示单据是否生成凭证。对于该属性为true的单据,动态会计平台不允许其再次生成凭证。对于该属性为false的单据,动态会计平台在转换生成凭证后会将该属性设置为true。
b.)对于有其它固定反写逻辑的单据(例如反写生成的凭证ID等),要求单据的值对象实现IDAPBill接口,在其中的setVoucher(VoucherInfo voucher)方法中实现自己的反写逻辑。
c.)其他反写逻辑可以通过重载reverseSave方法实现,在botp转换后会调用该方法;
8. 关于自定义公式支持
对于某些不能通过直接映射定义的转换逻辑,虽然通过脚本也能实现,但是由于写脚本的方式对于业务用户而言较难接受,所以可以通过将这些转换逻辑封装成自定义公式,然后业务用户可以在公式平台适用该公式的方式来简化规则定义。有关自定义公式的定义,可以参见BaseFormulaFunctions类或者BotpFormulaFunctions类。然后在具体需要使用该自定义公式的目标单据上配置扩展属性billFormulaClass,以便BOTP在规则定义时能将自定义公式的实现类注册到公式平台中。
具体约束为:
1. 注册函数应注册在目标单据的billFormulaClass扩展属性上; 2. 注册函数名称以”__BOT”开头;
3. 方法声明第一个参数为Context类型(因为在服务端调用),在使用公式平台时直接略过
第一个参数;
4. 该类实现IFormulaFunctions接口;
正在阅读:
关于BOTP集成的FAQ04-22
关于湍流模型 - 的选择12-04
例文103-19
2012届高考英语考前冲刺精品资料 综合强化系列(九)03-08
浅谈流固耦合05-14
扶贫移民典型经验材料02-22
爷爷一定有办法绘本阅读指导课案例09-14
郑爽图片02-18
第七期 引发糖尿病的危险因素有哪些07-22
3万平米地源与水冷螺杆对比方案09-10
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 集成
- 关于
- BOTP
- FAQ
- 万以内数的加减法-练习课教案及反思
- 企划部岗位职责及部门管理制度(全)
- 输电线路冬季防冰害运行管理浅谈
- 教科版科学五年级上册第二单元教案
- 测量技术设计书
- 提高驾驭全局的战略思维能力 课程的考试 93分
- 机械原理例题分析 - 图文
- 起重吊装工程专项施工方案
- 关于大学生毕业旅游意向调查问卷
- 2018版高考化学二轮复习专项1高考非选择题五大题型突破题型1化学
- 中国农业银行经营性物业贷款管理办法
- 校园文化传承与创新
- 金融企业呆账核销管理办法(2017年修订版)含附件 - 图文
- 参与临床试验病人知情同意书
- 单枕连续法铺设长钢轨作业指导书 - 图文
- 土地评估项目实施方案
- 《拿来主义》简案
- 氧化铈抛光汇总及效果分析
- 消防调试 - FC18调试手册V02.0
- 茶说-明-黄龙德