自定义销售订单审批状态

销售订单可以在其抬头或者项目中定义审批状态,一般在抬头定义的话就相当于针对整单的审批,可以实现多级审批,每级审批设置能进行何种操作,这里就需要在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 自定义销售订单审批状态相关推荐

  1. 【SD】自定义销售订单审批状态

    自定义销售订单审批状态 销售订单可以在其抬头或者项目中定义审批状态,一般在抬头定义的话就相当于针对整单的审批,可以实现多级审批,每级审批设置能进行何种操作,这里就需要在IMG中定义审批状态参数文件. ...

  2. SAP SD——创建销售订单

    销售订单创建/更改/查看,VA01/VA02/VA03. 首先,输入事务码:VA01,选择自己想要创建的订单类型. 然后,输入售达方,敲击回车,会弹出显示框客户的销售范围,选择一个范围,然后输入采购订 ...

  3. SAP SD 销售合同或者销售订单审批流搭建(状态管理)

    SAP SD 销售合同或者销售订单审批流搭建(状态管理) 1.SAP中像采购申请和采购订单在配置中有相应的审批过程配置,可以进行审批流的配置,但是在销售订单,维护工单等一些订单中是通过状态管理来实现审 ...

  4. SAP 解析销售订单的状态

    众所周知,在SD的流程中,很多处理是跟订单的状态息息相关的,比如参照一张销售订单来做发货单的时候,系统需要检查销售订单里面的交货状态是否是A(没有处理)或者B(部分处理),如果是空白(不相关)或者已经 ...

  5. 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代

    转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代 原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴,直 ...

  6. SAP C4C里销售订单行项目为什么无法添加产品

    当我试图在SAP Cloud for Customer的销售订单里添加一个新产品时,遇到错误消息: Product 1042416 not valid; it is not allowed (rest ...

  7. SAP 深入理解销售订单

    突出特点: □SD的订单输入和配置能力被一家独立的咨询公司评为"最佳等级". □SD的定价能力也被一家独立的咨询公司评为"世界级". □在最大限度地扩大你成功的 ...

  8. 在SAP C4C创建销售订单时如何绑定创建者的微信open id

    假设我将SAP C4C销售订单的OData创建服务暴露给微信小程序使用,然后我想把使用微信小程序的用户的openid和创建好的销售订单绑定,最简单的方式: {"Name": &qu ...

  9. sap 流程图 退货销售订单_销售订单_退货型

    一.业务描述 在销售流程完成后,如果货物有损坏或缺陷的情况发生,经投诉及协商后向客户退货,可用销售凭证的一种退货订单(Returns)类型进行处理. 退货订单可参照销售订单或发票生成,后续需创建退货交 ...

最新文章

  1. 差分进化算法_差分进化算法
  2. 算法笔记1-排序-插入排序
  3. JSTL1.1函数标签库(functions)如fn:length
  4. Windows XP环境下Apache2.2.21和Tomcat7.0.26下的整合
  5. HTML5 基础知识(三)
  6. 第三次学JAVA再学不好就吃翔(part14)--基础语法之循环语句注意事项
  7. 1、Intellij IDEA中启动NameServer
  8. 企业怎样才能开除一个股东?
  9. 38. Linux 备份
  10. PHP TCPDF导出支持中文的pdf
  11. JavaScript正则表达式大全
  12. 计算机网络学习笔记(广域网)
  13. Android手机ram大小,安卓手机RAM容量演进史,如何从192MB走到16GB,HTC:我有话要说...
  14. 最新1000道高频Java面试题,包含25个技术栈等面试攻略(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构
  15. Fortran NINT函数意思
  16. 整数:求数组Nums中只出现一次的数
  17. Linux 目录初识
  18. 计算机系统原理实验之BombLab二进制炸弹1、2关
  19. Ajax XHR响应
  20. 五子棋联机对战(JAVA实现)含源码

热门文章

  1. iOS WKWebView加载本地文件之权威解说
  2. ios上编译c语言的app_CppCode –适用于IOS的免费C / C ++ IDE和编译器
  3. 运行spark时不使用框架中默认提供的大量log4J日志输出
  4. Springboot中上一个定时任务没执行完,是否会影响下一个定时任务执行分析及结论
  5. 计算机网络笔记手写板,电脑手写板怎么使用?莫慌!手把手教学来了
  6. Java之for循环打印倒直角三角形
  7. 07-html标签图文详解(二)
  8. Golang基础教程——字符串常用方法总结
  9. linux r base core,安装最新版本的R-base
  10. android 空包写入签名(OPPO、VIVO、小米等)