对于销售订单的项目的交货工厂(VBAP-WERKS)决定是由单元FV45PF0V_VBAP-WERKS_ERMITTELN的FORM VBAP-WERKS_ERMITTELN子过程来填写的,具体怎么决定的大家一看下列的代码照抄自然就知道。
Unit name: FV45PF0V_VBAP-WERKS_ERMITTELN
*---------------------------------------------------------------------*
* FORM VBAP-WERKS_ERMITTELN *
*---------------------------------------------------------------------*
* Ermitteln des Werkes einer Position *
* Determine the work of a position
*---------------------------------------------------------------------*
FORM VBAP-WERKS_ERMITTELN.
DATA: DA_MSG TYPE C.
DATA: DA_EDATU LIKE VBEP-EDATU.
CLEAR DA_MSG.
* Während der Variantenfindung kein neues Werk ermitteln
CHECK TYPE_MATCHING IS INITIAL OR VBAP-WERKS IS INITIAL.
* Im Positionsvorschlag für eine Position kein Werk ermitteln
* Determine no work in the position proposal for a position
CHECK VBAK-VBTYP NE 'D'.
* Neue Werksermittlung bei geändertem Material
* New work determination with changed material
IF ( VBAP-MATNR NE *VBAP-MATNR OR
NOT MATNR_CHANGED IS INITIAL ) AND
TVSU-SUBAR IS INITIAL AND
WERKS_CHANGED IS INITIAL AND SVBAP-TABIX > 0 AND
( VBAP-WERKS = *VBAP-WERKS OR VBAP-WERKS = VBAPIN-WERKS ).
CLEAR: VBAP-WERKS, VBAP-BERID, VBAP-LGORT.
ENDIF.
CHECK: VBAP-WERKS = SPACE.
* 1. Werk aus der Hauptposition vorschlagen
* Work from the main position suggest
* VBAP-UEPOS=物料单结构中的上层项目
IF VBAP-UEPOS > 0 AND
VBAP-WERKS = SPACE AND
HVBAP-WERKS NE SPACE.
* Vorschlagswerk prüfen
* Proposal work examine
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
HVBAP-WERKS
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC EQ 0.
* Vorschlagswerk setzen
VBAP-WERKS = HVBAP-WERKS.
ENDIF.
ENDIF.
* 2. Werk aus dem eingegebenen Kopfwerk vorschlagen
* Work from the entered head work suggest
IF VBAP-WERKS = SPACE AND
RV45A-DWERK NE SPACE.
* Vorschlagswerk prüfen
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
RV45A-DWERK
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC EQ 0.
* Vorschlagswerk setzen
VBAP-WERKS = RV45A-DWERK.
ELSE.
DA_MSG = CHARX.
ENDIF.
ENDIF.
* 3. Werk aus dem Infosatz vorschlagen
* Work from the information record suggest
* KNMT=客户-物料信息记录数据表
* TCODE VD51
IF VBAP-WERKS = SPACE.
PERFORM RV_CUSTOMER_MATERIAL_READ USING SY-SUBRC.
IF SY-SUBRC = 0 AND NOT KNMT-WERKS IS INITIAL.
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
KNMT-WERKS
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC EQ 0.
* Vorschlagswerk setzen
VBAP-WERKS = KNMT-WERKS.
ENDIF.
ENDIF.
ENDIF.
* 3.a Werk aus Kunde/Warengruppe/Datum/Artikel vorschlagen (Retail)
* Work from customer/category of commodities/date/articles suggest (Retail)
IF VBAP-WERKS = SPACE.
IF VBEP-EDATU IS INITIAL.
DA_EDATU = VBAK-VDATU.
ELSE.
DA_EDATU = VBEP-EDATU.
ENDIF.
CALL FUNCTION 'LOCATION_ISS_PLANT_DETERMINE'
EXPORTING
I_KUNNR = VBAK-KUNNR
I_MATKL = MAAPV-MATKL
I_VALID_DATE = DA_EDATU
I_MATNR = VBAP-MATNR
IMPORTING
O_ISSUING_PLANT = VBAP-WERKS
EXCEPTIONS
INVALID_PLANT = 1
PLANT_NOT_FOUND = 2
LIEFERWERK_NO_ENTRIES = 3
NO_VALID_ISSUING_PLANT = 4
ARTICEL_NOT_CONTINUED = 5
NO_ISSUING_PLANT_FOUND = 6
OTHERS = 7.
IF VBAP-WERKS NE SPACE.
* Vorschlagswerk prüfen
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
VBAP-WERKS
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC NE 0.
* Vorschlagswerk zurücksetzen
CLEAR VBAP-WERKS.
ENDIF.
ENDIF.
ENDIF.
* 4. Werk aus dem Warenempfänger vorschlagen
* Work from the consignee suggest
* KUWEV=客户主文件记录送达方总览
* 注意 KUWEV-DWERK数据有'KNVV_SINGLE_READ'函数读取销售视图来填写,参见代码二
PERFORM KUWEV_SELECT_POSITION(SAPMV45A) USING VBAP-POSNR
SPACE
VBAP-SPART
CHARX
CHANGING SY-SUBRC.
IF KUWEV-DWERK NE SPACE AND VBAP-WERKS = SPACE.
* Vorschlagswerk prüfen
*关于VBAP-WERKS_PRUEFEN子例程的运行操作参见代码三,只有该例程监测正确才会填写VBAP-WERKS字段
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
KUWEV-DWERK
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC EQ 0.
* Vorschlagswerk setzen
VBAP-WERKS = KUWEV-DWERK.
ENDIF.
ENDIF.
* 5. Werk aus dem Material vorschlagen
* Work from the material suggest
* MAAPV=物料主记录视图: 销售屏幕1,参见后面的代码四
* 注意 MAAPV-DWERK数据有'MVKE_SINGLE_READ'函数读取销售视图来填写
IF MAAPV-DWERK NE SPACE AND VBAP-WERKS = SPACE.
* Vorschlagswerk prüfen
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
MAAPV-DWERK
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC EQ 0.
* Vorschlagswerk setzen
VBAP-WERKS = MAAPV-DWERK.
ENDIF.
ENDIF.
* 6. Werk aus *VBAP-Werks füllen.
IF NOT *VBAP-WERKS IS INITIAL AND VBAP-WERKS IS INITIAL.
* Vorschlagswerk prüfen
PERFORM VBAP-WERKS_PRUEFEN USING VBAP-POSNR
*VBAP-WERKS
SPACE
SPACE
SPACE
SY-SUBRC
SPACE.
IF SY-SUBRC EQ 0.
* Vorschlagswerk setzen
VBAP-WERKS = *VBAP-WERKS.
ENDIF.
ENDIF.
IF NOT DA_MSG IS INITIAL.
IF V4231_SHOWN IS INITIAL.
* Das Material &1 ist im Werk &2 nicht vorhanden
* 工厂 &2 中不存在物料 &1。新工厂:&3
PERFORM MESSAGE_VARIABEL(SAPFV45L)
USING 'V4' '231'
SPACE CHARX
VBAP-MATNR RV45A-DWERK VBAP-WERKS SPACE.
V4231_SHOWN = CHARX.
ENDIF.
ENDIF.
ENDFORM.
*代码二 单元:LV05EF1Q
*---------------------------------------------------------------------*
* FORM LESEN_KUWEV_KNVV_01 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM LESEN_KUWEV_KNVV_01.
DATA: CUST_FUNC_ACTIVE TYPE XFLAG.
PERFORM READ_KNVV_KNVV_D1_00.
IF RCODE EQ 4.
* USER-EXIT if no KNVV was found
CALL FUNCTION 'MODX_FUNCTION_ACTIVE_CHECK'
EXPORTING
CPROGNAME = 'SAPLV09A'
FUNCNUMBER = '002'
IMPORTING
ACTIVE = CUST_FUNC_ACTIVE
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
* Customer Function 002 is active, execute it
IF SY-SUBRC = 0 AND CUST_FUNC_ACTIVE = 'X'.
CALL FUNCTION 'EXIT_SAPLV09A_002'
EXPORTING
FIF_PARVW = VTCOM-PARVW
FIF_NRART = 'KU'
FIF_PARTNER = VTCOM-KUNNR
FIF_VBTYP = VTCOM-VBTYP
FIF_VBOBJ = VTCOM-VBOBJ
FIF_VKORG = VTCOM-VKORG
FIF_VTWEG = VTCOM-VTWEG
FIF_SPART = VTCOM-SPART
FIF_PROCESSMODE = GV_PROCESSMODE.
ENDIF.
IF VTCOM-MSGKZ = ' '.
MESSAGE E210 WITH VTCOM-KUNNR
VTCOM-VKORG
VTCOM-VTWEG
VTCOM-SPART
RAISING NO_KNVV.
CHECK 1 = 2.
ENDIF.
ENDIF.
*销售视图填写工厂
PERFORM MOVE_LKNVV_TO_KUWEV.
IF NOT VTCOM-DEAR6 IS INITIAL.
KUWEV-KUNNR = VTCOM-KUNNR.
ENDIF.
INCLUDE V05EZZWE.
ENDFORM. "LESEN_KUWEV_KNVV_01
代码三
:检查TVKWZ是否存在(机构单位: 每个销售机构允许的工厂数)
:检查MARC
代码位置:LMG22FSQ的子过程FORM SELECT_SINGLE
MARC PREPARE 0 SELECT WHERE "MANDT" = :A0 AND "MATNR" = :A1 AND "WERKS" = :A2
MARC OPEN 0 SELECT WHERE "MANDT" = '800' AND "MATNR" = '00057047' AND "WERKS" = '3101'
:检查MLAN 物料的税分类
代码位置:LMATLF28的子过程 LESEN_MLAN
MLAN PREPARE 0 SELECT WHERE "MANDT" = :A0 AND "MATNR" = :A1 AND "ALAND" = :A2
MLAN OPEN 0 SELECT WHERE "MANDT" = '800' AND "MATNR" = '00057047' AND "ALAND" = 'CN'
:检查KNVI 客户基本税指示符
代码位置:在KNVI_GENERIC_READ_LAND函数里
KNVI PREPARE 0 SELECT WHERE "MANDT" = :A0 AND "KUNNR" = :A1
KNVI OPEN 0 SELECT WHERE "MANDT" = '800' AND "KUNNR" = '0010506537'
代码四:参见单元:LMATLF31
*--------------------------------------------
* LESEN_MAPOV
*--------------------------------------------
FORM LESEN_MAPOV .
MTCOR-RMAPOV = X.
PERFORM LESEN_MARA."该代码会调用MARA_SINGLE_READ函数来读取物料数据
IF SY-SUBRC = 0.
PERFORM LESEN_MVKE. "该代码会调用MVKE_SINGLE_READ函数来读取物料销售视图数据
ENDIF.
IF SY-SUBRC = 0.
PERFORM LESEN_MAKT.
ENDIF.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING MARA TO MAPOV.
MOVE-CORRESPONDING MVKE TO MAPOV.
MAPOV-ZIEME = MVKE-VRKME.
MAPOV-ARKTX = MAKT-MAKTX.
MOVE-CORRESPONDING MAKT TO MAPOV.
ENDIF.
IF SY-SUBRC NE 0.
CLEAR MAPOV .
ENDIF.
IF SY-SUBRC = 0.
CLEAR MTCOR-RMAPOV .
ENDIF.
IF MAPOV-LVORM NE SPACE.
MTCOR-LVORM = MAPOV-LVORM .
ENDIF.
ENDFORM.
分享到:
相关推荐
# 矢量基幅平移库#### 一个紧凑的库,实现了矢量基幅度平移 (VBAP) 方法和声音空间化的变体。 --- > Archontis Politis,2015 > 芬兰阿尔托大学信号处理与声学系> archontis.politis@aalto.fi --- 这个Matlab / ...
matlab排序代码矢量基幅平移库 一个紧凑的库,可实现矢量基础幅值平移(VBAP)方法和变体以实现声音空间化。 Archontis Politis,2015年 芬兰阿尔托大学信号处理与声学系 这个Matlab / Octave库是在我在芬兰阿尔托...
您可以将该项目的C ++和H文件与合并最新的二进制文件包含在Binaries文件夹中,该文件夹包含Windows和OSX的对象,与Max 8兼容您可以在此处使用vbap找到M4L端口: ://maxforlive.com/library/device/5187/vbap-...
VBA-TOOLS,VBA JSONP
ABAP常用函数集锦 函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息 EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织 VIEW_MAINTENANCE_CALL 维护表视图
基于VBAP的多AUV编队控制方法及matlab仿真源码+数据.zip 利用虚拟体和人工势场相结合的编队控制算法实现对多个智能体的有效控制。 项目中,进行了三个仿真实验: (1)实验1,实现了二维平面上2个AUV(自主水下...
matlab开发-矢量基振幅平面库。实现矢量基振幅平移(vbap)和声音空间变化。
pyvbap 在python中实现的矢量基振幅平移(VBAP)。 实现遵循[1]中描述的方法。 目前,仅支持二维扬声器设置,即不支持高度。安装git clone https://github.com/phenyque/pyvbap.gitcd pyvbappip install .注意:到...
VB.NET编写的串口通讯程序,利用windows API.
matlab开发-矢量基础采样计划库。矢量基振幅平移(VBAP)和声音空间化变体的实现。
(VBAP) Ambisonics 幅度平移 近场校正高阶 Ambisonics (NFC-HOA) (动态)双耳合成 (动态)双耳室内合成 (BRS) 安装 添加到 Ableton Live 用户库 要从 Live 轻松访问 m4l 设备,请将文件m4l_ssr_remote_master.amxd...
该代码可以通过 Quarks 系统轻松安装。 ================== 特点 空间渲染: 3D 源位置 空间化技术:Ambisonics、vbap 和双耳 高达完整的 3 阶 Ambisonics,具有不同的声源形状:准点、环形、半子午线和扩展 ...
(37KB) 71,smile.ZIP 一个简单的小人头微笑(15KB) 72,mmedia.ZIP 一个能播放任何格式声音的类(3KB) 73,vbap104.ZIP 类似于WinAmp的Mp3播放器。(173KB) 74,chunkole.ZIP 将多媒体文件...
为研究中下承式拱桥在公路车辆作用下的吊杆冲击系数不均匀性问题,提出基于车桥耦合振动的公路桥梁动力响应分析方法。首先,将车辆简化为4个自由度的整车模型,根据D’Alembert原理推导了车辆振动方程,将桥梁离散为...
Spatial_Audio_Framework:用于在CC ++中开发与空间音频相关的应用程序的跨平台框架
可以使用VBAP,BINAURAL和STEREO模式。 ServerGRIS由Robert Normandeau指导的浸入式空间集团(GRIS)开发,该组织位于蒙特利尔大学音乐学院。 SpatGRIS和ServerGRIS仍能正常工作,但不再受支持,它们已由二人组...
提供 VBAP、双声道和立体声模式。 ServerGRIS 由 Groupe de Recherche en Immersion Spatiale (GRIS) 开发,由 Robert Normandeau 指导,总部设在蒙特利尔大学音乐学院。 SpatGRIS 和 ServerGRIS 仍然运行良好,但...
项目中遇到一个需求需要修改SO的抬头增强字段,通常增强字段只能通过BAPI的EXTENSIONIN和EXTENSIONINX参数传递。
该代码可以通过 Quarks 系统轻松安装。 ================== 特点 空间渲染: 3D 源位置 空间化技术:Ambisonics、vbap 和双耳 高达完整的 3 阶 Ambisonics,具有不同的声源形状:准点、环形、半子午线和扩展 ...
分析了传统基于单声道对的和差(M/S)编码技术,针对三维音频系统的空间特性将其拓展为基于三声道的和差编码技术(3D-M/S)。并提出一种基于3D-M/S的音频编码框架,使其能够压缩任意声道配置的三维音频系统 实验结果表明...