④内部公开请勿外传BOTP开发指南(修订版)目录BOTP开发指南.................................................................................11BOTP总体介绍.................................................................................41.1BOTP简介..............................................................................41.2BOSBOTP产品特性......................................................................42BOTP操作流程.................................................................................52.1新增转换规则..........................................................................52.2规则附属项设置.........................................................................62.2.1编码名称........................................................................62.2.2多次生成控制....................................................................72.2.3日志输出设置....................................................................72.2.4保存选项........................................................................72.2.5显示选项........................................................................72.2.6其他设置........................................................................82.3设置单据头属性........................................................................82.4设置单据体(分录)属性..................................................................92.5设置分组合并规则......................................................................102.6设置反写规则.........................................................................102.7设置源单属性.........................................................................102.8设置规则过滤.........................................................................102.9设置数据过滤.........................................................................112.10启用规则............................................................................122.11执行单据转换........................................................................122.12查看转换结果........................................................................122.13规则复制.............................................................................132.14规则导入导出.........................................................................132.14.1规则导出......................................................................132.14.2规则导入......................................................................142.15规则比较.............................................................................142.16拉式生成.............................................................................152.16.1界面操作......................................................................152.16.2规则选择......................................................................162.16.3源单列表......................................................................162.16.4重新上拉......................................................................172.17BOTP上下查..........................................................................172.17.1界面操作......................................................................173BOTP辅助功能详解............................................................................183.1分组合并规则..........................................................................181/67④内部公开请勿外传3.1.1分组合并概念........................................................................183.1.2设置分组合并...................................................................193.1.2分组合并扩展...................................................................213.2反写..................................................................................243.2.1反写概述.......................................................................243.2.2规则反写.......................................................................243.2.3业务反写.......................................................................253.2.4批量反写.......................................................................263.2.5删除反写.......................................................................263.2.6反写机制.......................................................................264公式平台....................................................................................264.1公式平台使用..........................................................................264.2使用函数..............................................................................284.3函数说明..............................................................................294.3.1基础资料函数....................................................错误!未定义书签。4.3.2其他函数........................................................错误!未定义书签。4.3.3部分业务函数....................................................错误!未定义书签。4.3.4数学函数.......................................................................384.3.5字符串函数.....................................................................384.3.6时间日期函数...................................................................384.3.7聚合函数.......................................................................394.3.8I/O函数.......................................................................394.3.9其它函数.......................................................................394.3.10空处理函数....................................................................394.4自定义函数支持........................................................................404.4.1函数定义.......................................................................404.4.2扩展属性设置...................................................................404.4.3示例...........................................................................404.5自定义批量函数........................................................................424.5.1批量函数定义...................................................................424.5.2示例...........................................................................435参数控制....................................................................................455.1BOTP_ALLENTRIES_SELECTED..............................................................455.2BOTP_CTRLUNIT_AUTHOR..................................................................455.1BOTP_ENABLE_SQLENGINE.................................................................455.1BOTP_IS_SHOWRULES_WITHFILTER..........................................................456BOTP编程要点................................................................................466.1扩展属性设置..........................................................................466.1.1isForMapping...................................................................466.1.2isForMatching..................................................................466.1.3isForGrouping..................................................................466.1.4isForWrittenBack...............................................................476.1.5isBotpMustInput................................................................476.1.6isDelRelationsWithoutEntries...................................................472/67④内部公开请勿外传6.1.7isSubmitReverseWrite...........................................................486.1.8isSaveBotpEntryRelation(705新增)............................................486.1.10其它扩展属性..................................................................496.2接口方法实现..........................................................................507705新特性说明...............................................................................557.1源单据预排序..........................................................................557.2DAP预分组合并........................................................................567.3自定义公式............................................................................577.3.1使用入口.......................................................................577.3.2功能说明.......................................................................587.3.3自定义公式使用.................................................................637.3.4重要事项.......................................................................648BOTP常见问题................................................................................648.1规则定义F7界面不能看到指定属性.......................................................648.2规则定义“值列表搜索”查询出错........................................................648.3转换后部分连接属性不能正常显示........................................................648.4getObjectById函数出错................................................................658.5二次开发单据使用公式不能带值到目标单..................................................658.6自定义函数需要在函数中引用context应该怎么获取........................................658.7配置了源单分录的分组属性后不能正常分单................................................658.8生成凭证后提示无分录或至少需要一条分录................................................658.9生成凭证辅助帐没有携带................................................................663/67④内部公开请勿外传1BOTP总体介绍BOTP在企业信息化系统中一直扮演一个重要的角色,在BOS基础体系结构中,BOTP系统也是一个非常重要的支撑系统,是保证业务灵活随需应变的一个关键系统。本文是在原文档“金蝶BOS开发指南——BOTP”基础上,结合705版本产品的最新特性做的修订。1.1BOTP简介BOTP是BOS平台提供的一套用于单据间自动转换的工具方法和界面UI的集合;企业管理过程是动态的过程管理,随着实际情况不断变化,不是固化的。应用软件作为协助企业管理的工具,也要求能动态适应这个变化。企业的各种业务之间存在一定的逻辑关系,而且这种逻辑关系在不同企业,或企业的不同时期是不同的。体现在管理软件中就是一种单据的数据,是根据另一单据的数据得来的,比如收款一般都是根据开票的金额决定的;发票或收款的金额需要做账生成凭证等。在不同企业或企业的不同时期,转换规则存在变化。EAS系统中为了快速地适应这些变化,开发了单据转换平台,无须编程就可动态定制这些转换规则。当业务发生了变化时,可以重新定义或修订转换关系,以满足管理变化的需要。1.2BOSBOTP产品特性在业务系统中有许多涉及不同单据间转换及与第三方数据集成的应用,这些应用的本质都是从一种对象转换到另一种对象,因此在BOS中单独设计一套基于元数据模型的对象转换引擎来提供该服务,在此基础上便于应用的搭建。BOTP主要包括转换影射关系定义、转换规则定义、转换引擎三部分。BOTP主要的作用就是支持用户在各种业务单据间定义转换关系,并自动/批量地帮助用户将源单据转换生成目标单据,从而大大地减少业务人员的相关工作量;4/67④内部公开请勿外传2BOTP操作流程2.1新增转换规则从菜单项“系统平台->单据转换->规则配置”可以进入规则列表界面规则列表界面是左树右表结构,左侧是各种单据分类树状列表(树结构的加载参考6.1.10其它扩展属性),右侧是当前分类下所有已定义转换规则列表:新增一个规则。5/67④内部公开请勿外传选择“单据转换规则”,点击F7按钮,选择“源单据”类型和“目标单据”类型:点击“确定”进入规则定义界面;2.2规则附属项设置2.2.1编码名称编码和名称在系统中不允许重复6/67④内部公开请勿外传2.2.2多次生成控制控制同一张单据是否能够执行多次转化,分为:1.允许多次生成且不提示。2.允许多次生成并提示。3.不允许多次生成。DAP规则默认“不允许多次生成”不可修改。2.2.3日志输出设置提供转化操作的日志记录,分为:1.不输出日志。2.输出日志摘要。输出转化操作每步消耗的时间信息,及转化结果的数量等。3.输出详细日志。在摘要的基础上,增加转化过程中脚本的执行日志,监控每个公式的执行时间,生成单据的详细信息及单据关系信息。日志输出位置为$eashome\server\profiles\serverXXX\logs\botpTrace.log。输出日志将会消耗性能,非必要情况请不要开启日志输出。2.2.4保存选项只有DAP规则才能配置为“提交单据”2.2.5显示选项控制转化结束后的界面显示。当保存方式设置为“不保存单据”时必须选择“显示编辑界面”;配置为显示编辑界面后:7/67④内部公开请勿外传该选项控制在生成多个目标单据时,出现在编辑界面上的顺序(点击上一条、下一条切换)。2.2.6其他设置规则描述:设置后将在规则选择框中备注显示。附件设置:配置从源单到目标单的附件携带。用户界面不可见:历史遗留功能,没有实际用途。预分组合并(705新增):配置DAP规则是否预先合并源单据再进行转化。参考7.2DAP预分组合并。状态:启用为有效,禁用为无效。启用的规则可进行单据转换,禁用的规则不允许进行单据转换。2.3设置单据头属性单据头属性部分列出了目标实体单据头的各项属性,可以对各个属性分别设置转换映射关系:点击单据头属性对应的设置按钮可以进入设置界面8/67④内部公开请勿外传界面分两个部分,既可以从源单实体及分录上选择相应的属性来作为转换源(只显示源单上的连接属性和类型与需要配置的字段一致的自有属性),也可以直接从值列表中选择固定值:注意:1.定义界面不是所有的目标单属性都会在此列出,只有目标实体上的属性设置了相应的扩展属性,才会显示在设置界面,具体请参考“6.1扩展属性设置”一节;2.上图界面中的“属性是否可以修改”,在BOTP单据转换过程中不产生任何影响,BOTP引擎只保存此配置信息供业务系统使用,如果业务系统需要对生成后的目标单做相关控制,可以读取BOTRuleSegmentInfo.isCanModify()方法获取目标属性是否允许修改,然后自行在代码中控制。2.4设置单据体(分录)属性与单据头部分类似,单据体属性部分列出了目标实体单据体(即各个分录)的各项属性,可以对各个属性分别设置转换映射关系:目标单每个分录对应一个页签,可以通过点击对应页签来切换相应分录的设置界面;每个分录可以设置多条转换规则,右侧有相应的分录规则的增、删、复制按钮;如果配置了多条分录规则,那么生成的目标单也会有多个分录,因此通常针对多个分录会通过在转换公式中设置条件来避免重复数据;9/67④内部公开请勿外传2.5设置分组合并规则参考3.1分组合并规则。2.6设置反写规则参考3.2反写。2.7设置源单属性点击规则定义界面上方的“源单属性设置”按钮,设置对源单属性的范围,可以手工选,也可以点击下面的“重算源单属性”按钮来自动重算,所有选择的源单属性将参与单据转换:源单属性分为系统自带属性和用户添加属性,系统自带属性在规则保存时通过解析规则上使用的源单字段生成,类似重算源单属性功能。通常情况下,源单属性可不必设置。2.8设置规则过滤接下来点击规则定义界面上方的“规则过滤”按钮,设置对规则的过滤条件,不满足过滤条件的规则将不能被用于单据转换.设置方式主要是设置过滤条件、比较符、比较值等,可以设置多项,各项之间可以设置逻辑连接符,可以设置括号区分优先级,可以分别针对单据头和各个分录进行设置:10/67④内部公开请勿外传规则过滤主要影响的是BOTP转换规则的选择,通常当用户在界面上选择了待转换的源单据后,系统会弹出一个选择转换规则的界面,界面上会列出各种来源/目标单据类型,以及对应该单据类型的可用规则,这时所显示出来的就是已经符合规则过滤条件的规则;2.9设置数据过滤点击规则定义界面上方的“数据过滤”按钮,设置对数据的过滤条件,不满足过滤条件的单据将不能被用于单据转换,设置方式与规则过滤相同:注意:如果有多行过滤条件,行之间要用逻辑符将这些条件连起来。数据过滤主要是影响实际执行单据转换过程时的源单据对象集合,不满足过滤条件的源单据对象/分录将被过滤掉,只有满足条件的对象/分录才参与单据转换;如果单据头不满足数据过滤条件,那么整张单据都不参与单据转换;如果单据分录不满足数据过滤条件,那么该分录对象不参与数据转换;注意其它满足条件的分录对象还是可以正常参与单据转换的;11/67④内部公开请勿外传转换过程中如果目标实体上的字段映射了被过滤掉分录上的属性,则该字段可能被转换为字段数据类型的默认值,如Null或空字符串等;2.10启用规则BOTP转换规则定义完成后,必须“启用”后才能正常使用;启用成功后规则的状态会变更为“有效”:要修改前,必须要“禁用”,禁用成功后规则的状态会变更为“无效”:2.11执行单据转换各个业务系统在单据对应的序时薄提供了各种单据转换入口,如“单据转换”、“推式生成”、“拉式生成等”,如图:通常会弹出规则选择界面,点击”确定”后即可开始执行单据转换操作;2.12查看转换结果如果单据转换规则定义了显示方式为“显示编辑界面”或“显示列表界面”,则转换完成后自动打开相应界面供用户查看,用户可根据需要编辑或保存/提交目标结果单:12/67④内部公开请勿外传2.13规则复制很多时候单据转换规则是大致相同的,为了减少重复录入的工作量,BOTP提供转换规则复制功能。在单据查看状态可以点击“复制”按钮,以实现对当前规则的复制;复制完成后规则的名称及编码自动加上“Copy”以示区别,对复制规则的修改不影响原转换规则;2.14规则导入导出BOTP提供对任意规则导入和导出的功能,可以将BOTP转换规则导出为文件,也可以从BOTP文件中导入规则;2.14.1规则导出选中一条或多条转换规则后,点击界面上方的“导出”按钮,将弹出导出选项界面:13/67④内部公开请勿外传可以选择是合并导出还是逐个导出:如果是合并导出的话,选择的所有文件会合并导出到一个XML文件;如果选择逐个导出的话,则可以选择是导出为一个JAR文件还是同一目录下的多个XML文件;2.14.2规则导入点击界面上方的“导入”按钮,将弹出导入界面,在界面上选择后缀名为XML文件再点击打开即可完成导入:如果待导入的转换规则与已有规则名称编码重复,则会出现提示框确认:2.15规则比较BOTP提供对任意两个规则进行比较的功能,通过规则比较可以快速的定位两个规则间的差异,方便修改和维护;14/67④内部公开请勿外传规则比较要求必须是相同类型的单据转换规则之间才可以进行比较;首先选择一条待比较的单据转换规则,然后点击界面上访的“规则比较”按钮:在弹出的选择框中选中待比较的转换规则文件,点击“打开”可进入规则比较界面,系统会分页签将两个规则间不同的地方展示出来以便查看:2.16拉式生成2.16.1界面操作单据编辑界面基类CoreBillEditUI定义了“拉式生成”操作,即根据指定的源单据生成当前类型单据;15/67④内部公开请勿外传2.16.2规则选择点击“确定”后系统会弹出目标单据类型和规则选择界面,然后根据用户的选择结果执行单据转换:与推式生成类似,这里的目标单据类型和转换规则列表是受“规则过滤”设置影响的,如果不满足过滤条件的规则,将不会出现在规则列表中;2.16.3源单列表选好规则,点击“确定”后系统会弹出源单选择界面:此界面的上半部分是当前待选择的源单列表,下半部分是已经选择的源单列表;增加:将当前待选单据/分录加入已选;移除:将当前已选单据/分录移除;整单选取:将当前单据整单加入已选,如果当前选择的是分录,则将分录对应的单据所有分录全部加入;整单移除:将当前单据整单移除,如果当前选择的是分录,则将分录对应的单据所有分录全部移除;选定源单后,点击“确定”后BOTP引擎会根据用户的选择结果开始执行单据转换:16/67④内部公开请勿外传2.16.4重新上拉“重新上拉”功能只在已经执行过“拉式生成”操作后才可用,如果勾选“重新上拉”,系统会自动选择上次的转换规则,并自动选择上次的源单列表,用户可以直接在上次选择的基础上作修改,不需要全部重选一遍,可以大大的减少修改时的工作量;重新上拉是“先删除后生成”的操作,需要保证单据为可删除状态。2.17BOTP上下查2.17.1界面操作BOS在在单据编辑界面和序时薄界面都可以进行上/下查操作;序时薄界面:编辑界面如下:选择源单并点击“上查”、“下查”功能按钮后,将进入单据上下查界面;界面为序时薄形式,点击每一行数据可以进入对应单据的编辑界面;如果目标单有多种类型,则会按类型分为多个页签,点击页签可以切换到相应类型的单据序时薄;17/67④内部公开请勿外传3BOTP辅助功能详解3.1分组合并规则3.1.1分组合并概念在不设置任何分组合并规则的情况下,转化结果是源单单据的分录组合数和规则分录数量的笛卡尔积。分录组合数指源单有一个或多个分录页签时,各分录页签分录数量的乘积,如一个单据有A分录页签和B分录页签,A分录页签下有2条分录,B分录页签下有3条分录,此时分录组合数为2*3=6条,若此时存在规则分录的数量为2,那么在不设置任何分组合并规则的情况下将会生成2*3*2=12条分别由一个单头和一个分录组合组成的单据结果集。通常情况下,这样生成的会有大量的数据重复,我们期望去除这些重复,并期望在这基础上,完成业务上金额的汇总,分组合并即处理这样的场景。分组和合并字面的意思会使人产生混淆,可能改为“合并汇总”更为合适。“分组”的实际概念为合并属性值组合相同的单据或分录集合,去除重复单据或分录。多条单据结果集分在一组后,仅会取该集合中的第一条作为最后结果,其他单据结果将被忽略舍去。“合并”的实际概念为“汇总合并单据后的数额字段值”。配置后,被忽略舍去的单据上的字段值将被累加到作为结果的单据上。18/67④内部公开请勿外传3.1.2设置分组合并分组合并规则定义界面如下:默认必须配置一个单头的分组字段。DAP(动态会计平台)规则对分组规则配置有特殊的约束,在配置分录规则后,需要同时勾选“科目、币别、借贷方向”等分录分组规则。假设采购订单生成采购退货申请单,源单据有2张,每张单据有2条分录对应的BOTP规则中设置了2条分录转换规则19/67④内部公开请勿外传其中可设置的分组合并属性有:“原始单据ID”、“采购退货分录.物料”a.设置一个一级分组属性“原始单据ID”,假设该属性字段值为空(例如未设置字段映射规则时),相当于所有目标单的该字段值均相同,所以需要合并成一张目标单;此时将生成1张目标单,单据共有2(源单)X2(分录)X2(分录规则)=8条分录;b.如果该一级分组属性“原始单据ID”字段值不为空,此时将会按照此字段来分成多张单,实际将生成2张目标单,每张目标单有2(分录)X2(规则)=4条分录20/67④内部公开请勿外传c.如果规则在此基础上再勾选“单据头.分录.物料”字段作为分组合并属性,那么生成2张目标单据仍然不变,但同时单据上的4条分录将按“物料”字段来合并,物料相同的就合并成一条分录,并合计相关的数值型字段;3.1.2分组合并扩展分组属性配置的最后两行,是两个虚拟字段:分组属性、分录.分组属性。(分录.分组属性为新加功能,sp1(60\701)补丁PT061350、703补丁PT063333)。这两个字段分别用来实现单头和分录级别的特殊分组合并。21/67④内部公开请勿外传最常见的场景:1.分组属性:需要通过配置实现“一条分录生成一张目标单据”。可通过配置分组属性值为“源单.分录.ID”等唯一标识字段,同时勾选分组属性的分组合并实现。然后再勾选分组合并页签的最后一个“分组属性”。22/67④内部公开请勿外传即可实现按源单分录上的字段分单,即当源单上的该字段值不同时,生成不同的目标单据。这里按分单和分组规则,一共生成了4张目标单,每张目标单上只有一条分录,物料各不相同;2.分录.分组属性:DAP规则,期望实现借方贷方按照不同的分组规则合并。实现如下:配置分录规则上的分组属性列:已“借方合并、贷方按源单分录分组”为例分录规则上配置借方配空或固定值,贷方配置为源单分录ID。勾选分录.分组属性合并勾选分录.分组属性后,会去掉“DAP规则必须配置科目、借贷方向、币别等分组规则”的约束。23/67④内部公开请勿外传3.2反写3.2.1反写概述反写主要是某些场景下可能需要根据单据转换目标单的状态来反写源单据;反写逻辑主要分为:规则反写:指配置在单据转换规则上的反写定义,又分为一般反写和核销反写;业务反写:指业务通过代码实现的反写逻辑,通常用于规则反写不满足要求时,采用每张单据调用一次业务反写方法的方式;批量反写:也是规则反写不满足要求时,业务通过代码实现的反写逻辑,主要是为了提高反写效率,允许业务代码一次反写多张源单,多张单据也只会调用一次,与业务反写不能同时执行;删除反反写:指单据删除时,需要回退已经进行的反写源单操作,使源单回到反写前状态;3.2.2规则反写反写规则是配置BOTP转换的源单和目标单之间的联动反写关系;可以直接选对象上的属性值或预设值,也可以通过公式平台来定义计算公式,其定义方法与其它公式定义相同,格式例如:公式结果=XXX;反写将在单据保存/提交时触发,引擎将根据反写规则,修改源单对应的属性值;3.2.2.1一般反写通常指直接把目标单据的某些属性值反写到源单据中,例如目标单据的单据编号,业务发生日期、状态等。点击反写属性行对应的,弹出界面如图:24/67④内部公开请勿外传一般反写不支持数值的反写!3.2.2.2核销反写核销反写通常用来勾稽数量,来标记源单据中有多少数量已经生成了目标单据,还有多少未生成。核销反写通常是需要设置计算公式的。点击反写属性行对应的,弹出界面如图:核销反写默认要求B.b字段设置了来源自A单字段的配置。如图中的采购发票.分录.核销余额=采购发票.分录.核销余额+付款单.分录.关联单据分录则需要在该采购发票到付款单的规则配置中,配置了付款单.分录.关联单据分录的字段值关联了源单的一个字段,否则核销反写将会不生效。3.2.3业务反写系统应用框架中基类CoreBillBase提供了reverseSave()方法,业务需要根据需要覆写此方法,在方法内部实现业务单据特有的反写逻辑;reverseSave()方法主要是针对单张单据进行反写,如果源单是单据集合的话,系统会逐个单据调用此方法;protectedvoid_reverseSave(Contextctx,IObjectPKsrcBillPK,IObjectValuesrcBillVO,BOTBillOperStateEnumbOTBillOperStateEnum,IObjectValuebOTRelationInfo)throwsBOSException,EASBizException若未重写reverseSave方法,框架将调用update方法保存规则反写的结果。25/67④内部公开请勿外传3.2.4批量反写批量反写的作用主要是提高反写的执行效率,业务可根据需要实现批量反写逻辑;如果一般反写的速度较慢且反写逻辑允许的话,最好是通过批量反写来完成,此时需要在单据对应的ControllerBean中提供batchReverseSave()方法;BOTReverseManager类的bizReverWrite方法会调用单据的批量反写接口,系统判断目标对象类是否实现batchReverseSave()方法,如果有实现则调用批量反写,否则循环处理调用业务反写reverseSave方法反写源单;注意:批量反写方法中需要根据单据PK列表进行批量反写,该方法只会被调用一次;如果实现了批量反写方法,则不会再调用reverseSave()方法进行单个业务反写;publicvoidbatchReverseSave(IObjectPK[]srcBillPKs,CoreBillBaseCollectionsrcBillVOs,BOTBillOperStateEnumbOTBillOperStateEnum,BOTRelationCollectionbOTRelationInfos)throwsBOSException,EASBizException3.2.5删除反写目标单据被删除时会发生反反写操作,即不但要删除关系,还要恢复BOTP目标单据提交时对源单做的反写操作;此行为主要是由编辑界面/列表界面上的actionRemove方法发起,系统应用框架提供的基类CoreBillEditUI和CoreBillListUI中提供了默认实现,在删除目标单据的同时会调用后台BOTP引擎IBTPManager提供的接口完成删除BOTP关系并执行删除反写:publicvoidremoveAllRelation(CoreBillBaseInfobill)throwsBOSException,BTPException;publicvoidremoveAllRelation(CoreBillBaseCollectionbills)throwsBOSException,BTPException;publicvoidremoveAllSRCRelation(CoreBillBaseInfobill)throwsBOSException,BTPException;注意:如果删除单据不是通过系统应用框架基类CoreBillBase提供的方法删除,例如覆写了基类方法且不调用super,或者直接通过ORMAPPING接口删除单据对象,则不会触发删除反写操作;覆写isCanDelete方法也会导致删除关系和反写无效。3.2.6反写机制反写主要发生在目标单据提交和删除时,根据预先设置的反写逻辑,修改源单上的属性值;单据转换后如果未暂存目标单据的话,将不会发生反写操作;如果是一般反写,BOTP引擎逐条处理每张目标单分录,根据反写规则,计算结果值写回源单;如果是批量反写,BOTP引擎直接调用目标单的批量反写方法,不再做其它处理;4公式平台4.1公式平台使用如果需要设置复杂的转换映射关系,在属性设置界面上有”脚本编辑”按钮,点击可以进入公式平台界面:26/67④内部公开请勿外传典型的计算公式定义:27/67④内部公开请勿外传计算公式的定义一般性原则如下:必须要返回公式结果,常见定义格式如公式结果=xxx;公式定义的最后必须要用“;”结束;公式中可以使用源单实体属性,也可以使用系统提供的各种函数;不要直接在界面上拷贝/粘贴公式的某一部分;对于使用“如果。。。否则。。。”类似语法的情况,对于每个大括号,其内部都必须要有返回“公式结果”并用“;”号结束,格式例:如果是判断相等,请直接点击选择“等于”或手工输入“==”,而不是用“=”。4.2使用函数在公式平台中除了可以使用源对象上的各个属性外,还可以使用各种预定义的函数,选择“函数”页签进入函数列表,所有函数分为几类,其中主要有基础资料函数、业务组织函数、数学函数等,还有一些各个单据自定义的函数;28/67④内部公开请勿外传选择所需要的函数后,右侧会出现函数的说明信息,包括函数的定义及参数列表等;双攻击函数名可以选择函数,然后需要移动光标到输入参数的地方,再选择输入参数:注意使用函数需要满足前述的公式平台定义各项基本原则;4.3函数说明基础资料函数__BOTgetMaterialFromCostObject功能:根据物料id获得物料参数:对象id\String返回值:物料29/67④内部公开请勿外传SQL:T_BD_MATERIAL物料select*fromT_BD_MATERIALwherefid=?__BOTgetObjectNumberFromCusent\__BOTgetObjectNameFromCusent功能:获得任意对象的编码\名称参数:对象id\String返回值:任意对象的编码或名称\String说明:没有类型限制__BOTGetBaseCurrencyFromFiOrg功能:获取指定财务组织的本位币参数:财务组织对象\CompanyOrgUnitInfo返回值:币别对象\CurrencyInfo说明:公式结果=__BOTGetBaseCurrencyFromFiOrg(__BOTgetResponsibilityOU(计划订单.库存组织,4,1))SQL:T_ORG_COMPANY公司selectfbasecurrencyidfromt_org_companywherefid=?__BOTGetAccountFromKacAndBaseData功能:根据基础资料(物料、客商、要素费用、职员)、财务组织、记账要素编码获取对应的科目。参数:基础资料,财务组织\CompanyOrgUnitInfo,记账要素编码\String返回值:科目\AccountViewInfo说明:取数步骤:SQL:一.获取记帐分类ID:1.物料selecttop1FKAClassIDfromt_bd_materialCompanyInfowherefcompanyid=?andFMaterialID=?2.客户selecttop1FAccountClassIDfromt_bd_CustomerCompanyInfowherefcomorgid=?andFCustomerID=?3.供应商selecttop1FAccountClassIDfromt_bd_SupplierCompanyInfowherefcomorgid=?andF...