wordpress php最大输出变量,长沙企业网站排名优化,国企有没有必要建设网站,吉林省建设 安全 网站一、业务背景 公司需要把供应商增加一个细分的维度#xff0c;并且要求该字段设置为必输#xff0c;防止用户新增供应商时忘记维护。这里给用户找了一个分类的字段#xff1a;业务合作伙伴类型#xff0c;本文主要讲解如何设置该字段设置为必填#xff1b;
注意#xff…一、业务背景 公司需要把供应商增加一个细分的维度并且要求该字段设置为必输防止用户新增供应商时忘记维护。这里给用户找了一个分类的字段业务合作伙伴类型本文主要讲解如何设置该字段设置为必填
注意BP分组为Z001-集团外供应商时才需要设置必输其他分组不需要必输~~ 如果对于BP主数据的前提操作和后台配置没有基础概念的话可以查看往期写过的一篇文章
SAP_MM模块-S4版本BP业务伙伴的逻辑原理_sap bp-CSDN博客文章浏览阅读1.6k次点赞32次收藏16次。本文详细解释了SAPS4/HANA版本中的业务伙伴(BP)功能配置包括BP角色、角色类别、主数据同步等内容以及这些配置如何与前台业务界面交互提供了一个简化的大致逻辑和思维导图链接帮助理解。https://blog.csdn.net/qq_40141758/article/details/137636389?fromshareblogdetailsharetypeblogdetailsharerId137636389sharereferPCsharesourceqq_40141758sharefromfrom_link
二、系统实现 本文主要记录设置字段必输的实现过程中遇到的一些问题点以及最后的实现方法大致分为5个部分
1、定义业务合作伙伴类型
2、后台配置--根据BP角色类别配置字段属性根据角色类别FLVN00/FLVN01 配置字段必输--无法实现
3、后台配置-根据供应商科目组配置字段属性根据BP分组Z001配置字段必输--无法实现
4、通过BADIBUPA_ADDR_CHECK增强开发实现--可实现
5、通过BDT业务数据工具集BUPT来开发实现--可实现 1、定义业务合作伙伴类型
后台配置路径跨应用组件-SAP 业务伙伴-业务伙伴-基本设置-商业伙伴类型-定义业务伙伴类型 PS:该业务合作伙伴类型还可以通过不同的选项配置影响其他其他页签的字段内容是否必输 双击Z101进入字段控制界面 2、后台配置--根据BP角色类别配置字段属性--无法实现
根据角色类别FLVN00/FLVN01 配置字段必输
后台配置路径跨应用组件-SAP 业务伙伴-业务伙伴-基本设置-字段分组-配置每个商业伙伴角色的字段属性 保存后修改供应商主数据可以看到该字段被标记为必输 但是可以看到其他分组的供应商该字段也是必输不符合我们的要求---我们的要求是只有Z001 集团外供应商需要必输
此方法无法实现用户需求~~ PS1根据该配置可以知道只要业务伙伴角色不创建FLVN01的业务伙伴角色时那么该字段就不会必输 PS2根据该配置可以知道只要业务伙伴角色创建FLVN01的业务伙伴角色时那么该字段就会必输与BP分组无关 BP前提操作页面中可以根据实际情况选择系统配置的BP角色如FLVN00/FLVN01也可以选择BP角色分组参考上图的配置新增BP角色分组把BP角色分配给BP角色分组中那么当用户操作前台选中操作BP角色分组是时就同时包含BP角色的所有功能 3、后台配置-根据供应商科目组配置字段属性--无法实现
根据BP分组Z001配置字段必输
既然BP角色与BP分组没有关联性那么BP角色的字段控制组也与BP分组没有关联性那么我们的需求是根据BP分组“Z001 集团外供应商”来设置“业务合作伙伴类型”必输那我们就考虑找到该BP分组的字段控制组
后台配置路径后勤 - 常规-业务伙伴-供应商-控制-定义科目组和字段选择供应商 这里的控制点确实是可以根据BP分组来控制字段是否必输的但是所有选项都查看后发现并没有找到“业务合作伙伴类型”的字段也就无法进行配置设置
此方法无法实现用户需求~~ 4、通过BADIBUPA_ADDR_CHECK增强开发实现--可实现
1找到对应的BADI并创建实施
SE18BUPA_ADDR_CHECK METHOD if_ex_bupa_addr_check~check.
DATA: ls_return type BAPIRET2.**清除返回结构
CLEAR ls_return.IF is_but000-bu_group EQ Z001.CHECK is_but000-bpkind IS INITIAL.IF sy-subrc EQ 0.ls_return-TYPE E.ls_return-number 005.ls_return-ID B1.ls_return-MESSAGE_v1 Z001 外集团外供应商业务合作伙伴类型不能为空.ls_return-MESSAGE_v2 .ls_return-MESSAGE_v3 .ls_return-MESSAGE_v4 .append ls_return to et_return.ENDIF.ENDIF.ENDMETHOD. 2这里编写代码时有几个地方需要注意
A. 不能直接用MESSAGE的报错语法否则系统会一直报错然后界面还无法跳转到填写“业务合作伙伴类型”的地方
B. 使用BADI中自带的消息返回参数时 需要定义工作区后面通过append to的方式添加到et_return中
C. 需要用MESSAGE_V1—MESSAGE_V4的字段不能用MESSAGE。
效果演示 填写字段后才允许保存 5、通过BDT业务数据工具集BUPT来开发实现
原理通过BDT的配置调用自定义的增强函数使得BP主数据在保存时触发该自定义的增强函数。而自定义的增强函数通过调用系统标准函数从而获取BP主数据对应的视图信息。
本次实例参考了网上两篇文章来开发测试但是由于功能已经实现并且需求已经实现所以讲解不会太清晰大概记录一下实现过程。
SAP S4 HANA业务伙伴工具集BDThttps://cloud.tencent.com/developer/article/2337673?felosearch_translate1BP保存增强https://blog.csdn.net/csdnye26/article/details/134014717
应用程序
使用BDT维护的主数据和文档数据的每个对象都被定义为应用程序对象
BUP–普通业务伙伴
BUB–业务伙伴关系
BUA–地址
BUS-中心业务伙伴:控制
CVIC–客户链接
CVIV–供应商链接
…
应用程序可以单独打开或关闭。 获取当前bp其他视图的函数
CVIV_BUPA_LFM1_GET 采购视图
CVIV_BUPA_LFB1_GET 公司视图
CVIV_BUPA_LFA1_GET 原视图
CVIC_BUPA_KNA1_GET 客户数据
CVIC_BUPA_KNB1_GET 客户数据
BUP_BUPA_BUT000_GET 基本视图数据 1SE37创建BP的供应商或客户视图保存函数 其他导入、导出、表等所有页签均不需要输入内容另外需要注意输出报错信息时最好不要用MESSAGE XXXX WITH XXX的语法最好使用对应的报错信息函数便于系统报错时用户可以重新修改错误地方的数据。 FUNCTION zmm_bupa_check_bpkind.
*----------------------------------------------------------------------
**本地接口
*----------------------------------------------------------------------
DATA e_but000 TYPE but000.
DATA e_but000_stat TYPE bus_istat.
DATA e_data TYPE bussdi3-data.
DATA e_partner_ext TYPE bu_partner.CALL FUNCTION BUP_BUPA_BUT000_GETIMPORTINGe_but000 e_but000. e_but000_stat e_but000_stat. e_data e_data. e_partner_ext e_partner_ext.IF e_but000-bu_group eq Z001.IF e_but000-bpkind IS INITIAL. MESSAGE E005(B1) WITH 分组Z001 集团外供应商必须要维护业务合作伙伴类型. LEAVE TO screen 0.CALL FUNCTION BUS_MESSAGE_STOREEXPORTINGarbgb B1msgty Etxtnr 005
* CANCEL MSGV1 分组Z001 集团外供应商必须要维护业务合作伙伴类型
* MSGV2
* MSGV3
* MSGV4 .ENDIF.ENDIF.ENDFUNCTION.
2配置业务伙伴保存前检查的事件 A、点击新条目新增项目这里只能用数字
B、填写功能函数名称上一步创建的函数
C、应用程序填写需要控制的BP视图对应的应用程序由于我这边的需求是修改基本视图的业务类型合作伙伴所以选择BUS具体对应关系没有深究有兴趣的小伙伴可以自行研究下 3配置BP视图对应的应用程序
事务码BUSD 如果这里找不到对应的应用程序那么需要手动添加新条目 4测试功能
Z001供应商分组不填写业务合作伙伴类型保存时会报错满足需求。 至此本次业务需求已完成有错误之处欢迎批评指正谢谢~~