CNS0项目创建交货单增加销售办事处

作者:斌将军 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:SD, 销售分销
CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

## **1.1、销售办事处介绍**

销售办事处是指在企业中负责销售活动的区域性单位或部门。在SD模块中,可以表示企业的不同销售地点、销售办公室、分销中心或分公司。

销售办事处扮演着多种角色和职责,例如:

1. 销售活动管理:销售办事处负责管理和监控属于其管辖范围内的销售活动。这包括销售订单的处理、客户询价、报价管理、合同管理等。

2. 客户关系管理:销售办事处是与客户直接互动的关键机构。他们负责与客户进行沟通、建立关系、处理客户投诉和问题,并确保客户满意度。

3. 销售数据分析:销售办事处负责收集、记录和分析销售数据以及相关指标。这些数据可以用于制定销售策略、优化销售过程,并为企业的决策提供支持。

4. 销售区域划分:销售办事处可以根据不同的售点、终端市场、产品类型或地理位置划分销售区域,可以被指定到一个或多个销售区域。可以更好地组织销售团队和资源,并实现销售目标。

5. 销售团队管理:销售办事处可以负责管理属于其管辖范围内的销售团队。这包括分配任务、跟踪销售业绩、培训和发展销售人员等。

6. 价格和折扣管理:销售办事处可以管理与销售相关的价格策略、折扣和促销活动。这包括为特定客户、销售区域或产品定义价格和折扣。

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

## **1.2、背景和问题**

**背景:** 项目实施过程中需要通过销售办事处进行权限校验,控制项目的交货单和销售订单的交货单。

**问题:**

项目本身是不具备销售订单组织架构的,因此在创建交货单时,缺失销售办事处,不能实现权限控制,所以要在CNS0中添加销售办事处,并带入到创建的交货单中,达到权限控制两类交货单的目的。

## **2.1、新增销售办事处**

将销售办事处添加到组件屏幕

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

F1找到该界面的屏幕为SAPLCNSH→1100,且界面的字段在结构CNSH_LIF中,为了后边代码传值时方便,新增的销售办事处字段,也需要添加到结构CNSH_LIF中

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

仿照界面现有字段,新增销售办事处字段CNSH_LIF-VKBUR,和对应描述TVKBT-BEZEI

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

接着实现输入销售办事处时敲回车,带出对应描述

模仿销售区域字段带出描述的FILL_TEXT方法

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

实现销售办事处带出描述

"--------------------@斌将军--------------------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也要添加到相同位置的全局结构中

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

效果如下

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

## **2.2、将增强字段赋值到交货单**

销售办事处在交货单抬头LIKP表,通过源码调试,在FORM:GN_LIEFERKOPF_AUFBAUEN(设置交货抬头)中找到给LIKP赋值的地方

_方法:找该增强点时,我的办法就是,观察销售区域三个字段何时传递到LIKP中,那么新增的销售办事处,理应也可以在此处传入到LIKP中_

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图

在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 versionCALL 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"--------------------@斌将军--------------------

点击保存创建交货单后,成功将销售办事处保存到交货单中

CNS0项目创建交货单增加销售办事处 - 封面图
CNS0项目创建交货单增加销售办事处 - 封面图
斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「CNS0项目创建交货单增加销售办事处.md」整理生成,仅用于内部技术分享与学习交流。