SD--关于销售订单可用性检查控制的检查规则和检查组的确定

本文介绍了一个复杂的可用性检查流程,包括从物料主数据获取检查设置、通过编程逻辑确定检查规则及参数,再到最终调用系统函数进行库存及需求检查的过程。此流程涉及多个步骤和系统表,对于理解ERP系统的物料可用性控制至关重要。

1)首先读取物料主数据(MARC)获取可用性检查设置(MTVFP),填写到VBAP-MTVFP

该字段来自物料主数据“销售:一般/工厂”-》“一般数据”-》“可用性检查”

2)首先在单元FV45VF0B_BEDARF_LESEN代码里设置可用性检查的初始(TMVFP-OBVFP)
代码摘抄如下
DA_AUFRUFER = CHARA.
IF TVAK-LISOF NE SPACE.       "立即交货
IF XVBUK-VBELN NE VBAK-VBELN.
PERFORM XVBUK_LESEN(SAPFV45K) USING VBAK-VBELN.
ENDIF.
IF XVBUK-LFSTK NE CHARB AND XVBUK-LFSTK NE CHARC.
DA_AUFRUFER = CHARB.
ENDIF.
ENDIF.
在同个这个值调用
CALL FUNCTION 'RV_REQUIREMENT_GET'
EXPORTING
AUFRUFER = DA_AUFRUFER
MATERIAL = US_MATNR
PRUEFGRUPPE = US_MTVFP
WERK = US_WERKS
BELEG = US_VBELN
POSITION = US_POSNR
VPMAT = US_VPMAT
VPWRK = US_VPWRK
PZMNG_LOESCHEN = DA_KORRI
KORR_AKT = US_KORRI
KORR_ALT = DA_KOPIERMODUS
CALL_MODUS = DA_CALL_MODUS
NICHT_SPERREN = DA_NICHT_SPERREN
VBTYP = VBAK-VBTYP
IMPORTING
SUMMIERUNG = SUMBD
MAT_GESPERRT = DA_GESPERRT
TABLES
AVBBD = AVBBD
XMVERF_POS = XMVERF_POS
XQUOT_VB = XQUOT_VB
XQUOT_CH = XQUOT_CH
EXCEPTIONS
MARC_MATNR_GESPERRT = 01
MARC_VPMAT_GESPERRT = 02
ENQUEUE_FEHLER = 03.

3)在RV_REQUIREMENT_GET函数中根据读取的可用性检查设置读取可用性检查控制(TMVF)和可用量检查冻结(TMVFP)
PERFORM TMVF_SELECT USING PRUEFGRUPPE AUFRUFER CHARX SY-SUBRC.
3.1)读取可用量检查冻结(TMVFP)的代码摘抄
代码单元:LV03VFT2
FORM TMVFP_SELECT USING US_MTVFP
US_OBVFP
US_ERROR
US_SUBRC.
US_SUBRC = 0.
IF TMVFP-MTVFP NE SPACE AND TMVFP-OBVFP NE SPACE.
CHECK: US_MTVFP NE TMVFP-MTVFP OR
US_OBVFP NE TMVFP-OBVFP.
ENDIF.
* Wenn in TMVF-ACENQ gesetzt wird TMVFP eigentlich nicht gebraucht,
* verwendet wird allerdings OBVFP als Aufrufer.
* Ebenso wenn VERPN (keine Pr黤ung) gesetzt
IF ( TMVF-ACENQ NE SPACE OR       "物料在具有传递需求的可用性检查中冻结
TMVF-VERPN NE SPACE ) AND "没有可用性检查
US_MTVFP NE SPACE AND
US_OBVFP NE SPACE.
TMVFP-MTVFP = US_MTVFP.
TMVFP-OBVFP = US_OBVFP.
TMVFP-VFPSP = SPACE.
ENDIF.
CHECK TMVF-ACENQ EQ SPACE AND TMVF-VERPN EQ SPACE.
IF US_MTVFP EQ SPACE.
US_SUBRC = 4.
ELSE.
SELECT SINGLE * FROM TMVFP WHERE MTVFP = US_MTVFP
AND OBVFP = US_OBVFP.
IF SY-SUBRC NE 0.
US_SUBRC = 4.
ENDIF.
ENDIF.
IF US_SUBRC NE 0.
IF US_ERROR NE SPACE.
CLEAR: TMVFP.
MESSAGE I305(VV) WITH US_MTVFP US_OBVFP.
ENDIF.
ENDIF.
ENDFORM. "TMVFP_SELECT

4)、在代码单元LV03VFA7中形成(PRREG)检查可用性检查的规则,代码摘抄如下:
p_atpcs-prreg = tmvfp-obvfp.
p_atpcs-prreg+1(1) = p_mverf_pos-sobkz. "SOBKZ:特殊库存标识
IF p_mverf_pos-sobkz NE space AND
p_mverf_pos-sobkz NE chare AND
p_mverf_pos-sobkz NE charq.
p_atpcs-kunnr = p_mverf_pos-kunnr.
ELSE.
CLEAR p_atpcs-kunnr.
ENDIF.

5)这样可用性的检查控制的两个因素就都决定出来了检查规则和检查组(MTVFP prreg),这样就可以读取T441V表,并用于可用性检查。

6)相关 TCODE

OVZ2

OVZ1

OVZ9

Building wheel for quickjs (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [12 lines of output] running bdist_wheel running build running build_py creating build\lib.win-amd64-cpython-313\quickjs copying quickjs\__init__.py -> build\lib.win-amd64-cpython-313\quickjs running build_ext building '_quickjs' extension creating build\temp.win-amd64-cpython-313\Release creating build\temp.win-amd64-cpython-313\Release\upstream-quickjs "D:\Visual Studio\Visual Studio 2022\Community\VC\Tools\MSVC\14.43.34808\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DCONFIG_VERSION=\"2021-03-27\" -DCONFIG_BIGNUM -IE:\Python3\include -IE:\Python3\Include "-ID:\Visual Studio\Visual Studio 2022\Community\VC\Tools\MSVC\14.43.34808\include" "-ID:\Visual Studio\Visual Studio 2022\Community\VC\Tools\MSVC\14.43.34808\ATLMFC\include" "-ID:\Visual Studio\Visual Studio 2022\Community\VC\Auxiliary\VS\include" "-ID:\Windows Kits\10\include\10.0.22621.0\ucrt" "-ID:\Windows Kits\10\\include\10.0.22621.0\\um" "-ID:\Windows Kits\10\\include\10.0.22621.0\\shared" "-ID:\Windows Kits\10\\include\10.0.22621.0\\winrt" "-ID:\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" /Tcmodule.c /Fobuild\temp.win-amd64-cpython-313\Release\module.obj -Werror=incompatible-pointer-types cl: 命令行 error D8021 :无效的数值参数“/Werror=incompatible-pointer-types” error: command 'D:\\Visual Studio\\Visual Studio 2022\\Community\\VC\\Tools\\MSVC\\14.43.34808\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for quickjs Running setup.py clean for quickjs Failed to build quickjs ERROR: Failed to build installable wheels for some pyproject.toml based projects (quickjs)
03-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值