1、业务需求

1.1、销售办事处介绍

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

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

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

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

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

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

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

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

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

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

定期更文,欢迎关注

CNS0项目创建交货单增加销售办事处的更多相关文章

  1. springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

    包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...

  2. Ionic2开发环境搭建、项目创建调试与Android应用的打包、优化

    Ionic2开发环境搭建.项目创建调试与Android应用的打包.优化. windows下ionic2开发环境配置步骤如下: 下载node.js环境,稳定版本:v6.9.5 下载android stu ...

  3. django的项目创建简明流程

    个人理解,不妥之处请指出 创建项目:django-admin startproject user_sys 创建APP:python manage.py startapp auth 测试项目创建是否成功 ...

  4. spring cloud 项目创建过程

    在使用spring cloud 项目创建微服务项目时,遇到过很多坑,现在我将整理如下: 条件:Idea 开发工具 maven 项目 1. 创建一个空的mvn项目. 2. 创建完了就添加Module,首 ...

  5. 4. gitlab 安装、项目创建

    官网: https://about.gitlab.com/ https://docs.gitlab.com/omnibus/maintenance/README.html#get-service-st ...

  6. cocos2dx3.0项目创建流程

    cocos2dx3.0不是beta,新增了wp项目创建的支持 但不知道为啥非beta版本号的tools文件夹中取消了project-creator,可能有更改吧 没有这个工具还挺麻烦.就自己手动创建c ...

  7. vue项目创建步骤 和 路由router知识点

    菜单快捷导航: vue项目创建 vue路由router知识点(路径参数.查询参数.命名路由.嵌套路由.命名视图.hash/history模式) 1.创建一个vue项目步骤 (windows环境下).创 ...

  8. maven SpringMVC easyUI项目创建

    在Eclipse中使用Maven创建SpringMVC项目,项目所需软件及工具可以在官网下载.Maven.Nexus及Eclipse集成Maven等到此配置完毕. 1.Maven创建Web项目. 打开 ...

  9. Django-简单项目创建

    在磁盘中找到需要存放项目代驾的目录,进入该目录(本机为: /Downloads/All) 输入Django创建项目命令:django-admin startproject mysite,此时在目录下会 ...

  10. 1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg

     1 游戏逻辑架构 具体介绍 A 一个导演同一时间仅仅能执行一个场景,场景其中,能够同一时候载入多个层,一个层能够可载多个精灵.层中亦能够加层. B  场景切换 sceneàaddChild(la ...

随机推荐

  1. .NET8.0 AOT 经验分享 - 专项测试各大 ORM 是否支持

    AOT 特点 发布和部署本机 AOT 应用具有以下优势: 最大程度减少磁盘占用空间:使用本机 AOT 发布时,将生成一个可执行文件,其中仅包含支持程序所需的外部依赖项的代码.减小的可执行文件大小可能会 ...

  2. 有一种浪漫,叫接触Linux

    ​大家好,我是五月. 嵌入式开发 嵌入式开发产品必须依赖硬件和软件. 硬件一般使用51单片机,STM32.ARM,做成的产品以平板,手机,智能机器人,智能小车居多. 软件用的当然是以linux系统为蓝 ...

  3. influxdb: unable to parse points 异常解决总结

    转载请注明出处: influxdb 使用过程经常遇到:unable to parse points  的异常:  unable to parse points 是 InfluxDB 抛出的异常,表示无 ...

  4. c标签的使用问题

    这是在使用c标签的时候遇到的问题,发现在导入包成功的情况下,jsp页面代码也没有问题.在网页上查了查,发现需要修改tomcat中的 conf/catalina.properties文件. 将tomca ...

  5. C++ Qt 开发:ListWidget列表框组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ListWid ...

  6. 【UniApp】-uni-app-网络请求

    前言 经过上个章节的介绍,大家可以了解到 uni-app-pinia存储数据的基本使用方法 那本章节来给大家介绍一下 uni-app-网络请求 的基本使用方法 步入正题 首先我们打开官方文档,我先带着 ...

  7. Selenium-ActionChains动作链(针对鼠标、滚轮等操作

    https://www.selenium.dev/documentation/webdriver/actions_api/ 注意:对于滚轮的操作,只支持chrome浏览器,且selenium版本在4. ...

  8. 聊聊流式数据湖Paimon(三)

    概述 如果表没有定义主键,则默认情况下它是仅追加 表类型(Append Only Table). 根据桶(Bucket)的定义,我们有两种不同的仅追加模式:"Append For Scala ...

  9. jenkins删除构建历史并重置构建序号

    系统管理 工具和动作-->脚本命令执行 删除之前,现在已经构建了156次  输入脚本 println(Jenkins.instance.getJobNames()) //查看获取任务名列表//要 ...

  10. C++ Qt开发:SqlRelationalTable关联表组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlRela ...