关于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
挑战自我作文07-16
设备设施报修、急修工作规范06-26
湖南省2015教师资格考试音乐教案《飘逸的南国风》08-30
国际商务 题库Chapter 209-28
第6章 公共汽车交通设计 (1)09-04
幼儿教育小学化对幼儿的影响03-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 集成
- 关于
- BOTP
- FAQ
- 万以内数的加减法-练习课教案及反思
- 企划部岗位职责及部门管理制度(全)
- 输电线路冬季防冰害运行管理浅谈
- 教科版科学五年级上册第二单元教案
- 测量技术设计书
- 提高驾驭全局的战略思维能力 课程的考试 93分
- 机械原理例题分析 - 图文
- 起重吊装工程专项施工方案
- 关于大学生毕业旅游意向调查问卷
- 2018版高考化学二轮复习专项1高考非选择题五大题型突破题型1化学
- 中国农业银行经营性物业贷款管理办法
- 校园文化传承与创新
- 金融企业呆账核销管理办法(2017年修订版)含附件 - 图文
- 参与临床试验病人知情同意书
- 单枕连续法铺设长钢轨作业指导书 - 图文
- 土地评估项目实施方案
- 《拿来主义》简案
- 氧化铈抛光汇总及效果分析
- 消防调试 - FC18调试手册V02.0
- 茶说-明-黄龙德