【SD】自定义销售订单审批状态
自定義銷售訂單審批狀態(tài)
銷售訂單可以在其抬頭或者項目中定義審批狀態(tài),一般在抬頭定義的話就相當(dāng)于針對整單的審批,可以實現(xiàn)多級審批,每級審批設(shè)置能進(jìn)行何種操作,這里就需要在IMG中定義審批狀態(tài)參數(shù)文件。
一、定義狀態(tài)參數(shù)文件
配置路徑:SPRO→銷售與分銷→銷售→銷售憑證→定義并分配狀態(tài)參數(shù)文件→定義狀態(tài)參數(shù)文件
事務(wù)代碼:BS02
首先需要在“對象類型”中確定類型是銷售訂單標(biāo)題還是銷售訂單項目,這里我們就以銷售訂單標(biāo)題為例進(jìn)行說明。
在用戶狀態(tài)界面輸入需要控制幾級審批,系統(tǒng)會自動為第一條設(shè)置初始狀態(tài)。
雙擊各個狀態(tài)進(jìn)入事務(wù)控制界面,可以選擇在此狀態(tài)下哪些操作是禁止的。
依次設(shè)置完畢后保存即可。
狀態(tài)參數(shù)文件基本信息保存的數(shù)據(jù)表是TJ20,對應(yīng)的語言描述表TJ20T;
用戶狀態(tài)條目保存的數(shù)據(jù)表是TJ30,對應(yīng)的語言描述表TJ30T,注意字段TJ30-ESTAT(用戶狀態(tài))是條目的自增長值,不可以編輯,格式“Exxx”,例如E0001、E0002;
用戶狀態(tài)控制保存的數(shù)據(jù)表是TJ31,字段MODKZ存放編輯標(biāo)志,1為允許、2為允許但警告、3為禁止。
二、分配訂單類型/狀態(tài)參數(shù)文件&分配狀態(tài)參數(shù)文件到項目類型
配置路徑:SPRO→銷售與分銷→銷售→銷售憑證→定義并分配狀態(tài)參數(shù)文件→分配訂單類型/狀態(tài)參數(shù)文件&分配狀態(tài)參數(shù)文件到項目類型
事務(wù)代碼:VOV8 / VOV7
分配完成之后會將相關(guān)信息保存于數(shù)據(jù)庫表TVAK 和 TVAP中。
? Tip :
- TVAK中的是根據(jù)銷售憑證類型分配需要在銷售訂單抬頭進(jìn)行審批的;
- TVAP中的是根據(jù)項目類型分配需要在銷售訂單項目進(jìn)行審批的。
三、訂單審批
路徑:SAP 菜單→后勤→銷售與分銷→銷售→訂單→更改
路徑:SAP 菜單→后勤→銷售與分銷→銷售→合同→更改
事務(wù)代碼:VA42/VA02
在CBO程序中就可以用函數(shù)” I_CHANGE_STATUS”進(jìn)行逐層審批。
【樣例代碼】
??? ? 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.總結(jié)
以上是生活随笔為你收集整理的【SD】自定义销售订单审批状态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【疑问】SD更新凭证流
- 下一篇: 【学习笔记】硬件设备选型