销售管理常见WEBAPI问题及其他常见问题汇总指导
一、WEBAPI相关问题
1、浅谈通过WebAPI实现金蝶云单据对接的那些事 https://wenku.my7c.com/article/11179
2、销售出库单api对接,T_BD_MATERIALGROUP 物料分组在这个目录如何设置?
回复:BOS设计器进行查询相关唯一标识和字段信息,关于Webapi菜单列出来的单据和基础资料都是发布菜单后的单据和基础资料,如果需要在哪里看到,就需要发布主控台菜单出来。另外如果开发使用的话,可以不依赖于webapi菜单,按照通常的webapi参数构造出来正确的唯一标识和字段标识 即可使用。
3、录入了含税单价,但在线测试时就是提示 含税单价为0,2.整单收款计划应收金额合计不等于整单价税合计,不允许保存。
回复:字段录入顺序不正确,json里先录入了价格字段,然后录入其他分录字段,其他分录字段中会有一些字段再次触发取价服务,若取价服务取不到价或取到了其他价格,就会覆盖传入的价格。因此,为了避免冲突,如果接口需要传入价格,建议在json中将价格字段调整放到分录的最后,先录入其他字段,最后录入价格字段即可,另外金额、价税合计等系统自动计算的字段无需传值,系统会自动计算出来。同时,收款计划数据也无需在接口中传入,价格、数量等其他分录字段传入正确后,收款计划系统会自动生成。
4、在使用API接口的时候用了其中一个单据查询的功能,需要输入一些名称,编码,是一串英文字母。物料名称的英文字符输进去能把数据反馈过来,物料名称敲进去显示没法查询。 查询。
回复:查询基础资料的编码、名称属性时候可以用类似格式:FMaterialId.FNumber, FMaterialId.FName等
5、字段说明里有创建人:FCreatorId,但是JSON格式数据解释里没有FCreatorId字段,请问调用销售合同 保存接口,指定创建人为具体某一个人时,怎么处理?
回复:创建人字段是可以通过结果传入指定的,不过创建人字段传入的方式是通过用户ID,而不是用编码或名称,格式如下:
"FCreatorId": {
"FUserID": 647591
},
其中,647591代表具体实际的用户ID。
6、接口中InterationFlags 的标识 可以在哪查操作API反错误交互集合(某某错误,是否继续),接口中InterationFlags 的标识 可以在哪查?
回复:通常对于供应链的交互校验服务,只有预警类强度的交互(一般可能结合参数设置的控制强度)才可以通过交互标志忽略。一般交互标志都是弹出的交互界面的唯一标识:比如 销售最低限价检查明细(SAL_DOWNPRICECHECK),销售价格来源检查明细(SAL_CHECKPRICESOURCEFB),通常根据弹出界面到BOS设计器里面查找到对应的动态表单界面找到唯一标识。
7、怎么通过webapi对基础资料和业务单据的附件(包括pdf,excel,图片等)进行下载和上传?
回复:WebApi方式从币别单据上传、下载附件 https://wenku.my7c.com/article/183394。
8、通过web api接口新增保存客户数据时,客户关联的联系人信息无法新增成功,按照AIP说明中的格式将联系人信息写入返回报错信息提示:ResolveFiled_InnerEx解析字段(Key:FCONTACT,name:联系人名称)时发生异常,异常信息:ResolveFiled_InnerEx解析字段(Key:FCONTACT,name:联系人名称)时发生异常,异常信息:未将对象引用设置到对象的实例。而联系人的实例的创建api并未找到。
回复:使用API接口上传客户以及客户联系人的方法,请参考社区帖子进行处理,帖子链接如下:https://wenku.my7c.com/article/84231299908315648
9、启用信用控制,销售订单控制强度为预警提示,人为进行判断订单是否可以通过,现在想通过销售订单变更的方式修改计划发货日期,在客户端可以进行变更审核通过,但通过API接口 调用销售订单新变更单审核的时候会有 信用超标提示,照成接口审核失败。
回复:webapi对于警告型的交互可以传交互表单的formId进行忽略提示即参数:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录) 例如(允许负库存标识:STK_InvCheckResult)。
10、API接口传输做销售订单,有录入单据,但是提示非赠品价格不能为0。
回复:价格后面的字段,比如BOM版本录入的时候,触发取价了,而系统里没有维护对应的价目表价格,取到的价格=0,覆盖了接口传入的价格,处理方法:修改接口JSON数据里的价格字段的顺序,将它放到分录的最后,先传入其他字段,最后传入价格,避免与取价服务造成冲突就可以了。
11、“销售订单”下推到“销售出库单”,默认调用api接口会将全部数量的都下推,但客户那边是想可以设置部分下推,目前只能用转换插件实现来修改下推数量,目前是AfterConvert方法中可以修改下推数量,但修改后仅仅出库表中的实发数量字段更新了,但关联关系中都没有更新,订单表还是无法下推。
回复:AfterConvert事件执行的时候,下推操作已经完成了,这个时候才来干预修改数量,时机已经晚了,如果要在单据转换插件里修改下推数量,应该将插件干预的时机提前,在OnAfterCreateLink 事件里,刚刚建立关联关系后就同时修改两套数量。也可以不使用下推接口,改用保存接口,保存接口中支持可以同时维护单据关联关系数据包,并直接设置实际出库数量 相关的介绍可以参考以下社区的关于API的介绍帖子:https://wenku.my7c.com/article/11179
https://wenku.my7c.com/article/178896
12、在调用销售出库单API时,客户物料编码字段是怎么取值过来的。
回复:客户物料编码无须给值,只给物料编码即可,webapi跟模拟录单一样,会触发物料值更新自动带出来客户物料编码的。
13、销售报价单到销售订单的单据转换,收款条件是按物料明细收款,WAP API调用接口下推,收款明细只会显示一行,人工从销售报价单下推销售订单,会根据收款条件拆分成多行。
回复:由于webapi的push接口走的是纯服务端的下推和保存,不会触发到界面的收款条件的值更新事件。建议webapi分两步走,先调用push生成了销售订单,然后在构造一个简单订单json数据包修改保存(json 构造FID,和收款条件字段,注意参数是否删除分录改为false。
14、使用云星空webapi接口从第三方系统中生成销售出库单,销售出库单表头上的客户默认是传01.001这个客户的,已经确定这个客户在系统中是已审核并且能使用的状态,传送数据过来的创建人也是有全部权限的。但就是发现webapi接口json构建数据包传过来时,直接设置FCustomerID.FNumber为‘01.001’,传过来时有时会返回错误:字段“客户”是必填!
回复:客户字段对接不过来,只有这几种可能:1.对接的当时时点,客户资料不合法,被禁用、反审核或取消分配掉了。2.就是对接的json里面客户的后续字段的相关值更新逻辑或插件服务会影响更新掉客户字段值。
15、销售出库单api接口中项目编号:FProjectNo 这个字段,我们在数据推送的时候也带有这个字段的值,但是通过查询接口没有数据返回。
回复:由于单据转换发货通知单至出库单 没有携带这个字段,因此出库单上这个字段值都为空所致。
16、使用WebApi生成了一张销售出库单,但是这张销售出库单的【含税单价】是被锁定的,【单价】是不锁定的, 但是我录入【单价】时,【价税合计】和【含税单价】没有进行计算,而且这张单据下推至【应收单】单价也没被携带。
回复:价内税的单据,默认就是含税的,所以是否含税字段一定要勾上,不然可能会引起其他数据问题。结合客户的实际场景,建议客户在录入出库单的时候,价外税字段置为否,是否含税字段置为是,税率录入0,此时单价与含税单价相等,隐含不含税的概念即可。
17、发货通知单 使用webapi调用下推接口 RuleId 从哪里可以获取到?
回复:RuleId 就是单据转换里的唯一标识,可以在BOS设计器里打开单据转换界面获取到,如果有设置默认单据转换,也可以不传值。
18、通过webapihxa查询到发货通知单-物流跟踪-快递单号中的收货地址及快递公司。
回复:由于发货通知单的物流跟踪中页签对应的是单据体,它对应的表是T_SAL_DELIVERYNOTICETRACE,相比通过webapi更新物流信息(webapi可以实现只更新几个字段,但必须要转入单据头的内码等唯一信息,这种操作在已知物流单号而不是单据单号时是要多查询一遍数据以先获取到发货通知单的单据内码或单号),建议直接通过数据库UPDATE语句修改更为方便,比如UPDATE T_SAL_DELIVERYNOTICETRACE SET FX_F1 = 25 WHERE FCARRYBILLNO = 'SF000001' 其中FX_F1假设为二开的重量字段,SF000001为物流单号。
19、WEBAPI销售管理-可发量查询-单据查询操作,查询返回为空;实际物料有预计可发数量;具体入参和返回请见截图;同时请提供一份查询预计可发数量的实例。
回复:使用新的webapi接口进行预计可发量的查询,参考地址如下:https://wenku.my7c.com/article/3763。
20、WEBAPI客户联系人相关指导:
回复:https://wenku.my7c.com/article/84231299908315648
21、通过标准Web Api接口对传送过程中没有传输单价,希望在传数据过程中金蝶销售订单自动匹配价目表价格,实现自动计算,这种情况如何实现呢?
回复:通过API接口对接订单,要实现自动取价,只需在销售管理系统参数了启用优先级自动取价参数即可。
22、WebApi写入销售订单 报错 整单收款计划应收金额合计不等于整单价税合计,不允许保存。
回复:仅需传物料、销售数量、含税单价信息即可,其他分录字段如果非必须要主动传值的,全部去掉。接口数据不宜过多传值,按需传入即可,大部分字段系统会自动联动计算。
23、通过webapi接口怎么才能获取到客户分组名。webapi通过客户分组信息查询只能查询到ID与编码信息查不到分组名,物料分组可以通过SAL MATERIALGROUP查询,客户分组找不到对应的表单ID。
回复:目前在系统中客户分组基础资料业务对象只有在财务模块的阿米巴报表子系统下封装了一个客户分组,表单ID是 AMB_CustomerGroup,请参照物料分组的接口调用方式,改为调用这个AMB_CustomerGroup的查询接口即可。也可以开发自定义接口,在自定义接口中直接写脚本进行查询。
24、webapi保存销售订单报错,通过填写测试数据生成的json,验证接口的时候报错,提示销售员是必录项。
回复:这类问题通常是因为销售员的数据设置不正确,选了另一个组织的员工任岗信息来设置业务员的职员字段,导致销售员的业务组织和对应销售部门的使用组织不一致,建议处理方法如下:在对应的组织里重新新增一个对应的员工任岗,然后在BOS设计器里将业务员分录里的业务员编码字段锁定性设置为不锁定,接着手动在业务员分录里清空业务员编码的值,最后在职员字段重新选当前业务组织对应的员工任岗信息。
25、Api接口的问题,接口设置了锁库的信息,但是实际锁库没有生效。
回复:目前没有专门针对webapi的锁库接口。但是建议使用销售订单 单据类型参数里面的 订单审核后自动锁库的参数勾选即可。webapi只需要调用审核即可,只要库存充足,审核后就会自动锁库。
26、api是是销售退货单的保存(SAL_RETURNSTOCK),参数无误,接口传输过程也是成功的,但是在生成的销售退货单中没有单价和含税单价,参数确实传了这两个值,反复尝试后还是无法将单价和含税单价传递到ERP中,
回复:此类问题是因为字段输入顺序的问题,接口里传入价格字段后,后续传入的分录字段触发了取价服务,而系统中若没有维护价目表价格,取价服务取不到价,就会覆盖传入的价格,进而清空。在对接单据的时候,如果价格要通过接口直接传入,建议修改json中的字段顺序,将价格字段调整放到分录Fentity的后面,先传入其他字段再最后传入价格即可。含税单价和单价字段也无需同时传,传其中一个即可,系统会根据税率字段计算另一个,数量字段也是,只需传入FRealQty即可,其他数量字段可以不传,系统会自动换算。
27、从公共设置webapi的模块在退货通知单下推销售退货单的时候,通过api开发新增销售退货单,可以关联数据,但是反写不生效。
回复: 不会反写的核心原因应该是分录的源单类型和源单编号字段没有给值,这两个字段是反写规则条件判断会使用。
28、销售出库单单据明细信息中的物料编码和物料名称,在API销售出库单中分别对应哪两个字段。
回复:关于webapi查询单据相关基础资料数据,可以用FMaterialId.FNumber 和 FMaterialId.FName 查询基础资料自身的属性。
29、第三方调用金蝶接口实现同界面端操作销售合同变更、销售订单变更,修改数量、金额、文本等信息,webapi接口效果不理想。
回复: 可以通过把当前的销售合同最新版本号+1就是变更单的版本,合同编号+变更单版本号就是变更单的单据编号,用户当前可以先把变更单的单据编号传进去一起保存,并且有PKDIX的单据体则需要把原来分录的内码传到这个字段以保证和原销售合同的关联。
30、开放API给第三方系统,它调用金蝶API时能否在系统中控制哪些字段可以修改,哪些字段不能修改?比如销售订单中敏感的价格字段不允许修改。
回复:关于外部webapi修改保存单据的一些字段是否允许修改的控制,只能通过插件二开业务校验判断来实现(根据判断不同的来源端:this.Context.ClientType == ClientType.WebApi),限制一些业务数据的校验判断。
31、销售订单新变更单是否可以通过API同步新增到金蝶云星空?如果可以的话,如何在销售订单新变更单上关联销售订单?
回复:星空支持通过webapi对销售订单新变更单进行保存修改审核生效等操作,具体新增一张新变更单的webapi的参考文章地址:https://wenku.my7c.com/article/126686993563263232,新增后然后调用平台的编辑保存操作,然后进行审核生效。
32、第三方平台同步订单到销售订单,表头-结算币别,同步的是美元,结果在金蝶-销售订单里面显示的是人民币,是什么原因?
回复:接口json数据字段顺序不正确,先传入了结算币别,然后才传入客户,而录入客户后系统会携带客户的结算币别到订单上,就会覆盖接口传入的结算币别,形成冲突,请调整一下Json数据的字段顺序。而且同时也注意到json数据里的其他字段顺序也很乱,建议参考系统里的在线Web API功能上的参数说明和数据代码示例,调整所有字段的传入顺序,系统会联动携带或计算所得的字段也可以不传。
二、销售其他常见问题
1、销售管理—业务组数据隔离说明
https://wenku.my7c.com/article/163342502764812032
2、客户物料对应表同一个物料对应不同的客户物料编码根据辅助属性区分。出库单对应的辅助属性没有维护客户物料编码,根据辅助属性库存返回数据的时候携带的是不属于这个辅助属性的客户物料编码,是这个物料的第一个对应的客户物料编码。
勾选如图示插件,按辅助属性匹配客户物料编码。
3、销售订单上携带或录入销售员以及销售员资料设置的注意事项介绍
101组织在新增销售订单时选在销售员后 能 自动携带出销售部门,而102组织在新增销售订单时选在销售员后 不能 自动携带出销售部门。
参考:https://wenku.my7c.com/article/157294298344480000
4、业务员编码业务员名称相关说明
https://wenku.my7c.com/article/91236037569355008
https://wenku.my7c.com/article/181797
https://wenku.my7c.com/article/178449119965688320
销售管理常见WEBAPI问题及其他常见问题汇总指导
本文2024-09-16 19:08:20发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-26653.html