1、业务需求
1.1、销售办事处介绍
销售办事处是指在企业中负责销售活动的区域性单位或部门。在SD模块中,可以表示企业的不同销售地点、销售办公室、分销中心或分公司。
销售办事处扮演着多种角色和职责,例如:
-
销售活动管理:销售办事处负责管理和监控属于其管辖范围内的销售活动。这包括销售订单的处理、客户询价、报价管理、合同管理等。
-
客户关系管理:销售办事处是与客户直接互动的关键机构。它们负责与客户进行沟通、建立关系、处理客户投诉和问题,并确保客户满意度。
-
销售数据分析:销售办事处负责收集、记录和分析销售数据以及相关指标。这些数据可以用于制定销售策略、优化销售过程,并为企业的决策提供支持。
-
销售区域划分:销售办事处可以根据不同的售点、终端市场、产品类型或地理位置划分销售区域,可以被指定到一个或多个销售区域。可以更好地组织销售团队和资源,并实现销售目标。
-
销售团队管理:销售办事处可以负责管理属于其管辖范围内的销售团队。这包括分配任务、跟踪销售业绩、培训和发展销售人员等。
-
价格和折扣管理:销售办事处可以管理与销售相关的价格策略、折扣和促销活动。这包括为特定客户、销售区域或产品定义价格和折扣。
1.2、背景和问题
背景:项目实施过程中需要通过销售办事处进行权限校验,控制项目的交货单和销售订单的交货单。
问题:项目本身是不具备销售订单组织架构的,因此在创建交货单时,缺失销售办事处,不能实现权限控制,所以要在项目CNS0中添加销售办事处,并带入到创建的交货单中,达到权限控制两类交货单的目的。
2、增强实现
2.1、新增销售办事处
将销售办事处添加到组件屏幕
F1找到该界面的屏幕为SAPLCNSH→1100,且界面的字段在结构CNSH_LIF中,为了后边代码传值时方便,新增的销售办事处字段,也需要添加到结构CNSH_LIF中
仿照界面现有字段,新增销售办事处字段CNSH_LIF-VKBUR,和对应描述TVKBT-BEZEI
接着实现输入销售办事处时敲回车,带出对应描述
模仿销售区域字段带出描述的FILL_TEXT方法
实现销售办事处带出描述
"--------------------@斌将军--------------------
MODULE fill_text02 OUTPUT.
* 销售办事处
IF CNSH_LIF-VKBUR IS INITIAL.
CLEAR TVKBT.
ELSEIF TVKBT-VKBUR NE CNSH_LIF-VKBUR.
SELECT SINGLE * FROM TVKBT WHERE SPRAS EQ SY-LANGU AND
VKBUR EQ CNSH_LIF-VKBUR.
IF SY-SUBRC NE 0.
CLEAR TVKBT.
ENDIF.
ENDIF.
ENDMODULE.
"--------------------@斌将军--------------------
其中表TVKBT也要添加到相同位置的全局结构中
效果如下
2.2、将增强字段赋值到交货单
销售办事处在交货单抬头LIKP表,通过源码调试,在FORM:GN_LIEFERKOPF_AUFBAUEN(设置交货抬头)中找到给LIKP赋值的地方
方法:找该增强点时,我的办法就是,观察销售区域三个字段何时传递到LIKP中,那么新增的销售办事处,理应也可以在此处传入到LIKP中
在FORM的末尾做隐式增强
"--------------------@斌将军--------------------
FORM gn_lieferkopf_aufbauen
USING ii_cd_plant TYPE REF TO /spe/badi_determine_cd_plant
CHANGING gla_subrc LIKE sy-subrc.
……
ENHANCEMENT 1 ZESD_CNS0. "active version
CALL FUNCTION 'ZXX01_USER_EXITS'"增强开关
EXPORTING
i_encode = 'SD058'
EXCEPTIONS
close = 1
OTHERS = 2.
IF sy-subrc = 0.
IF xkomdlgn-vkbur IS NOT INITIAL.
likp-vkbur = xkomdlgn-vkbur."销售办事处
ENDIF.
ENDIF.
ENDENHANCEMENT.
ENDFORM. "gn_lieferkopf_aufbauen
"--------------------@斌将军--------------------
点击保存创建交货单后,成功将销售办事处保存到交货单中
定期更文,欢迎关注