SAP SD 自定义销售订单审批状态
自定义销售订单审批状态
销售订单可以在其抬头或者项目中定义审批状态,一般在抬头定义的话就相当于针对整单的审批,可以实现多级审批,每级审批设置能进行何种操作,这里就需要在IMG中定义审批状态参数文件。
一、定义状态参数文件
配置路径:SPRO→销售与分销→销售→销售凭证→定义并分配状态参数文件→定义状态参数文件
事务代码:BS02
首先需要在“对象类型”中确定类型是销售订单标题还是销售订单项目,这里我们就以销售订单标题为例进行说明。
在用户状态界面输入需要控制几级审批,系统会自动为第一条设置初始状态。
双击各个状态进入事务控制界面,可以选择在此状态下哪些操作是禁止的。
依次设置完毕后保存即可。
状态参数文件基本信息保存的数据表是TJ20,对应的语言描述表TJ20T;
用户状态条目保存的数据表是TJ30,对应的语言描述表TJ30T,注意字段TJ30-ESTAT(用户状态)是条目的自增长值,不可以编辑,格式“Exxx”,例如E0001、E0002;
用户状态控制保存的数据表是TJ31,字段MODKZ存放编辑标志,1为允许、2为允许但警告、3为禁止。
二、分配订单类型/状态参数文件&分配状态参数文件到项目类型
配置路径:SPRO→销售与分销→销售→销售凭证→定义并分配状态参数文件→分配订单类型/状态参数文件&分配状态参数文件到项目类型
事务代码:VOV8 / VOV7
分配完成之后会将相关信息保存于数据库表TVAK 和 TVAP中。
TVAK中的是根据销售凭证类型分配需要在销售订单抬头进行审批的;
TVAP中的是根据项目类型分配需要在销售订单项目进行审批的。
三、订单审批
路径:SAP 菜单→后勤→销售与分销→销售→订单→更改
路径:SAP 菜单→后勤→销售与分销→销售→合同→更改
事务代码:VA42/VA02
在CBO程序中就可以用函数” I_CHANGE_STATUS”进行逐层审批。
【样例代码】
DATA : LV_OBJNR TYPE J_OBJNR.LV_OBJNR = 'VB' && E_VBELN && IT_ITEM-POSNR.CALL FUNCTION 'I_CHANGE_STATUS'EXPORTINGOBJNR = LV_OBJNRESTAT_INACTIVE = 'E0001'ESTAT_ACTIVE = 'E0002'STSMA = 'ZFMSD02'
* EXCEPTIONS
* CANNOT_UPDATE = 1
* OTHERS = 2.
FUNCTION I_CHANGE_STATUS.
*"----------------------------------------------------------------------
*"*"Update function module:
*"
*"*"Local interface:
*" IMPORTING
*" VALUE(OBJNR) LIKE JEST-OBJNR
*" VALUE(ESTAT_INACTIVE) LIKE TJ30-ESTAT
*" VALUE(ESTAT_ACTIVE) LIKE TJ30-ESTAT
*" VALUE(STSMA) LIKE JSTO-STSMA OPTIONAL
*" EXCEPTIONS
*" CANNOT_UPDATE
*"----------------------------------------------------------------------************************************************************************
*
* Description: Changes the status for an object
* (ex. a notification or a notification task).
* This function does not validate if the status
* transition is valid (a call to I_CHECK_CHANGE_STATUS
* function should be done before).
*
************************************************************************TABLES: JSTO.DATA: T_JEST_INS LIKE JEST_UPD OCCURS 0 WITH HEADER LINE,T_JEST_UPD LIKE JEST_UPD OCCURS 0 WITH HEADER LINE,T_JSTO_INS LIKE JSTO OCCURS 0,T_JSTO_UPD LIKE JSTO_UPD OCCURS 0,T_OBJ_DEL LIKE ONR00 OCCURS 0.SELECT SINGLE * FROM JSTO WHERE OBJNR = OBJNR.IF NOT ESTAT_INACTIVE IS INITIAL.SELECT SINGLE * INTO T_JEST_UPD FROM JESTWHERE OBJNR = OBJNRAND STAT = ESTAT_INACTIVE.IF SY-SUBRC = 0.T_JEST_UPD-INACT = 'X'.ADD 1 TO T_JEST_UPD-CHGNR.T_JEST_UPD-CHGKZ = JSTO-CHGKZ.T_JEST_UPD-OBTYP = 'ORI'.T_JEST_UPD-STSMA = STSMA.APPEND T_JEST_UPD.ELSE.RAISE CANNOT_UPDATE.ENDIF.ENDIF.SELECT SINGLE * INTO T_JEST_UPD FROM JESTWHERE OBJNR = OBJNRAND STAT = ESTAT_ACTIVE.IF SY-SUBRC = 0.T_JEST_UPD-MANDT = SY-MANDT.T_JEST_UPD-INACT = ' '.ADD 1 TO T_JEST_UPD-CHGNR.T_JEST_UPD-CHGKZ = JSTO-CHGKZ.T_JEST_UPD-OBTYP = 'ORI'.T_JEST_UPD-STSMA = STSMA.APPEND T_JEST_UPD.ELSE.T_JEST_INS-MANDT = SY-MANDT.T_JEST_INS-OBJNR = OBJNR.T_JEST_INS-STAT = ESTAT_ACTIVE.T_JEST_INS-INACT = ' '.T_JEST_INS-CHGNR = '001'.T_JEST_INS-CHGKZ = JSTO-CHGKZ.T_JEST_INS-OBTYP = 'ORI'.T_JEST_INS-STSMA = STSMA.APPEND T_JEST_INS.ENDIF.CALL FUNCTION 'STATUS_UPDATE'TABLESJEST_INS = T_JEST_INSJEST_UPD = T_JEST_UPDJSTO_INS = T_JSTO_INSJSTO_UPD = T_JSTO_UPDOBJ_DEL = T_OBJ_DELEXCEPTIONSOTHERS = 1.IF SY-SUBRC <> 0.RAISE CANNOT_UPDATE.ENDIF.ENDFUNCTION.
SAP SD 自定义销售订单审批状态相关推荐
- 【SD】自定义销售订单审批状态
自定义销售订单审批状态 销售订单可以在其抬头或者项目中定义审批状态,一般在抬头定义的话就相当于针对整单的审批,可以实现多级审批,每级审批设置能进行何种操作,这里就需要在IMG中定义审批状态参数文件. ...
- SAP SD——创建销售订单
销售订单创建/更改/查看,VA01/VA02/VA03. 首先,输入事务码:VA01,选择自己想要创建的订单类型. 然后,输入售达方,敲击回车,会弹出显示框客户的销售范围,选择一个范围,然后输入采购订 ...
- SAP SD 销售合同或者销售订单审批流搭建(状态管理)
SAP SD 销售合同或者销售订单审批流搭建(状态管理) 1.SAP中像采购申请和采购订单在配置中有相应的审批过程配置,可以进行审批流的配置,但是在销售订单,维护工单等一些订单中是通过状态管理来实现审 ...
- SAP 解析销售订单的状态
众所周知,在SD的流程中,很多处理是跟订单的状态息息相关的,比如参照一张销售订单来做发货单的时候,系统需要检查销售订单里面的交货状态是否是A(没有处理)或者B(部分处理),如果是空白(不相关)或者已经 ...
- 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代
转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代 原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴,直 ...
- SAP C4C里销售订单行项目为什么无法添加产品
当我试图在SAP Cloud for Customer的销售订单里添加一个新产品时,遇到错误消息: Product 1042416 not valid; it is not allowed (rest ...
- SAP 深入理解销售订单
突出特点: □SD的订单输入和配置能力被一家独立的咨询公司评为"最佳等级". □SD的定价能力也被一家独立的咨询公司评为"世界级". □在最大限度地扩大你成功的 ...
- 在SAP C4C创建销售订单时如何绑定创建者的微信open id
假设我将SAP C4C销售订单的OData创建服务暴露给微信小程序使用,然后我想把使用微信小程序的用户的openid和创建好的销售订单绑定,最简单的方式: {"Name": &qu ...
- sap 流程图 退货销售订单_销售订单_退货型
一.业务描述 在销售流程完成后,如果货物有损坏或缺陷的情况发生,经投诉及协商后向客户退货,可用销售凭证的一种退货订单(Returns)类型进行处理. 退货订单可参照销售订单或发票生成,后续需创建退货交 ...
最新文章
- 差分进化算法_差分进化算法
- 算法笔记1-排序-插入排序
- JSTL1.1函数标签库(functions)如fn:length
- Windows XP环境下Apache2.2.21和Tomcat7.0.26下的整合
- HTML5 基础知识(三)
- 第三次学JAVA再学不好就吃翔(part14)--基础语法之循环语句注意事项
- 1、Intellij IDEA中启动NameServer
- 企业怎样才能开除一个股东?
- 38. Linux 备份
- PHP TCPDF导出支持中文的pdf
- JavaScript正则表达式大全
- 计算机网络学习笔记(广域网)
- Android手机ram大小,安卓手机RAM容量演进史,如何从192MB走到16GB,HTC:我有话要说...
- 最新1000道高频Java面试题,包含25个技术栈等面试攻略(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构
- Fortran NINT函数意思
- 整数:求数组Nums中只出现一次的数
- Linux 目录初识
- 计算机系统原理实验之BombLab二进制炸弹1、2关
- Ajax XHR响应
- 五子棋联机对战(JAVA实现)含源码
热门文章
- iOS WKWebView加载本地文件之权威解说
- ios上编译c语言的app_CppCode –适用于IOS的免费C / C ++ IDE和编译器
- 运行spark时不使用框架中默认提供的大量log4J日志输出
- Springboot中上一个定时任务没执行完,是否会影响下一个定时任务执行分析及结论
- 计算机网络笔记手写板,电脑手写板怎么使用?莫慌!手把手教学来了
- Java之for循环打印倒直角三角形
- 07-html标签图文详解(二)
- Golang基础教程——字符串常用方法总结
- linux r base core,安装最新版本的R-base
- android 空包写入签名(OPPO、VIVO、小米等)