CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST'

Function module IDOC_INPUT_SRCLST

FUNCTION IDOC_INPUT_SRCLST.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD
*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC
*" EXPORTING
*" VALUE(WORKFLOW_RESULT) LIKE BDWF_PARAM-RESULT
*" VALUE(APPLICATION_VARIABLE) LIKE BDWF_PARAM-APPL_VAR
*" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK
*" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC
*" IDOC_DATA STRUCTURE EDIDD
*" IDOC_STATUS STRUCTURE BDIDOCSTAT
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR
*" SERIALIZATION_INFO STRUCTURE BDI_SER
*" EXCEPTIONS
*" WRONG_FUNCTION_CALLED
*"----------------------------------------------------------------------
ENHANCEMENT-POINT IDOC_INPUT_SRCLST_G1 SPOTS ES_SAPLMEAI.
*$*$-Start: IDOC_INPUT_SRCLST_G1----------------------------------------------------------------$*$*
ENHANCEMENT 1 MGV_GENERATED_IDOC_INPUT_SR000. "active version
*{ALE Begin} generation http://intranet.sap.com/materialversion
CALL FUNCTION 'MGV_ALE_ADD_INTERNAL_MATNR'
TABLES
idoc_data = idoc_data
idoc_contrl = idoc_contrl
EXCEPTIONS
NUMBER_MISMATCH = 1
OTHERS = 2.
*{ALE End} generation
ENDENHANCEMENT.
*$*$-End: IDOC_INPUT_SRCLST_G1----------------------------------------------------------------$*$*

DATA: F_IDOC_CONTROL LIKE EDIDC,
F_IDOC_STATUS LIKE BDIDOCSTAT,
F_E1EORDH LIKE E1EORDH,
SUBRC LIKE SY-SUBRC.

DATA: T_IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADER LINE,
T_EORD LIKE EORD OCCURS 0 WITH HEADER LINE,
T_EORDU LIKE EORDU OCCURS 0 WITH HEADER LINE,
lt_tupel TYPE STANDARD TABLE OF metup WITH DEFAULT KEY,"1389182
ls_tupel TYPE metup.

DATA: BEGIN OF F_EORDKEY,
MATNR LIKE EORD-MATNR,
WERKS LIKE EORD-WERKS,
END OF F_EORDKEY.

*--- refresh workflow result
WORKFLOW_RESULT = C_WF_RESULT_OK.

CLEAR SERIALIZATION_INFO.
REFRESH SERIALIZATION_INFO.
*- serialization info get
CALL FUNCTION 'IDOC_SERIALIZATION_CHECK'
TABLES
IDOC_SERIAL = SERIALIZATION_INFO
IDOC_DATA = IDOC_DATA
IDOC_CONTROL = IDOC_CONTRL.

* Initialization
CALL FUNCTION 'ME_INITIALIZE_SOURCE_LIST'.

LOOP AT IDOC_CONTRL.
F_IDOC_CONTROL = IDOC_CONTRL.

* check idoc type
IF F_IDOC_CONTROL-IDOCTP <> C_IDOCTP_SRCLST01.
RAISE WRONG_FUNCTION_CALLED.
ENDIF.

* Read data records for each idoc
REFRESH T_IDOC_DATA.
LOOP AT IDOC_DATA WHERE DOCNUM = F_IDOC_CONTROL-DOCNUM.
T_IDOC_DATA = IDOC_DATA.
APPEND T_IDOC_DATA.
ENDLOOP.

* refresh target tables
CLEAR: T_EORD, F_IDOC_STATUS, SUBRC, F_E1EORDH, T_EORDU, lt_tupel."1389182
REFRESH: T_EORD, T_EORDU.

* check skipped entries
PERFORM CHECK_SERIAL_SRCLST
TABLES
SERIALIZATION_INFO
USING F_IDOC_CONTROL-DOCNUM
F_IDOC_STATUS
SUBRC.
* error occurs in check of skipped entries
IF SUBRC <> 0.
IDOC_STATUS = F_IDOC_STATUS.
IDOC_STATUS-DOCNUM = F_IDOC_CONTROL-DOCNUM.
APPEND IDOC_STATUS.

RETURN_VARIABLES-WF_PARAM = C_WF_PAR_PROCESSED_IDOCS.
RETURN_VARIABLES-DOC_NUMBER = F_IDOC_CONTROL-DOCNUM.
APPEND RETURN_VARIABLES.
RETURN_VARIABLES-WF_PARAM = C_WF_PAR_APPL_OBJECTS.
F_EORDKEY-MATNR = SPACE.
F_EORDKEY-WERKS = SPACE.
RETURN_VARIABLES-DOC_NUMBER = F_EORDKEY.
APPEND RETURN_VARIABLES.
CONTINUE.
ENDIF.

* fill application structures
PERFORM FILL_APPL_STRUCTURES_SRCLST
TABLES T_IDOC_DATA
T_EORD
USING F_IDOC_CONTROL
F_IDOC_STATUS
F_E1EORDH
SUBRC.
* error occurs in filling application structures
IF SUBRC <> 0.
IDOC_STATUS = F_IDOC_STATUS.
IDOC_STATUS-DOCNUM = F_IDOC_CONTROL-DOCNUM.
APPEND IDOC_STATUS.

RETURN_VARIABLES-WF_PARAM = C_WF_PAR_ERROR_IDOCS.
RETURN_VARIABLES-DOC_NUMBER = F_IDOC_CONTROL-DOCNUM.
APPEND RETURN_VARIABLES.
WORKFLOW_RESULT = C_WF_RESULT_ERROR.
CONTINUE.
ENDIF.

LOOP AT T_EORD.
T_EORDU = T_EORD.
T_EORDU-KZ = C_FLAG_INSERT.
APPEND T_EORDU.
* create MRP relevant information
CLEAR ls_tupel. "1389182
ls_tupel-matnr = t_eord-matnr.
ls_tupel-werks = t_eord-werks.
ls_tupel-read = abap_true.
INSERT ls_tupel INTO TABLE lt_tupel.
ENDLOOP.
SORT T_EORDU BY ZEORD.

CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST'
EXPORTING
I_MATNR = F_E1EORDH-MATNR
I_WERKS = F_E1EORDH-WERKS
I_VORGA = C_CODE_ALE
I_LOGSY = F_E1EORDH-LOGSY
TABLES
T_EORD = T_EORDU
EXCEPTIONS
PLANT_MISSING = 1
MATERIAL_MISSING = 2
ERROR_MESSAGE = 4
OTHERS = 3.

SUBRC = SY-SUBRC.
IF SUBRC <> 0.
CLEAR IDOC_STATUS.
IDOC_STATUS-DOCNUM = F_IDOC_CONTROL-DOCNUM.
IDOC_STATUS-STATUS = C_IDOC_STAT_INPUT_ERROR.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGNO = SY-MSGNO.
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
APPEND IDOC_STATUS.

RETURN_VARIABLES-WF_PARAM = C_WF_PAR_ERROR_IDOCS.
RETURN_VARIABLES-DOC_NUMBER = F_IDOC_CONTROL-DOCNUM.
APPEND RETURN_VARIABLES.
WORKFLOW_RESULT = C_WF_RESULT_ERROR.
CONTINUE.
ELSE.
CLEAR IDOC_STATUS.
IDOC_STATUS-DOCNUM = F_IDOC_CONTROL-DOCNUM.
IDOC_STATUS-STATUS = C_IDOC_STAT_IS_POSTED.
IDOC_STATUS-MSGID = C_MSG_ID_ME. "391782
IDOC_STATUS-MSGTY = C_MSG_TY_I.
IDOC_STATUS-MSGNO = '877'. "391782
IDOC_STATUS-MSGV1 = F_E1EORDH-MATNR.
IDOC_STATUS-MSGV2 = F_E1EORDH-WERKS.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
APPEND IDOC_STATUS.

RETURN_VARIABLES-WF_PARAM = C_WF_PAR_PROCESSED_IDOCS.
RETURN_VARIABLES-DOC_NUMBER = F_IDOC_CONTROL-DOCNUM.
APPEND RETURN_VARIABLES.
RETURN_VARIABLES-WF_PARAM = C_WF_PAR_APPL_OBJECTS.
F_EORDKEY-MATNR = F_E1EORDH-MATNR.
F_EORDKEY-WERKS = F_E1EORDH-WERKS.
RETURN_VARIABLES-DOC_NUMBER = F_EORDKEY.
APPEND RETURN_VARIABLES.
CONTINUE.
ENDIF.

ENDLOOP. "<------------------------- idoc_contrl.

CALL FUNCTION 'ME_POST_SOURCE_LIST_NEW'.
* trigger MRP update
CALL FUNCTION 'ME_WRITE_DISP_RECORD_SOS' IN UPDATE TASK "1389182
TABLES
eord_alt = t_eord
eord_neu = t_eordu
tupel = lt_tupel.

CALL CUSTOMER-FUNCTION '002'
EXPORTING
MESSAGE_TYPE = F_IDOC_CONTROL-MESTYP.

IN_UPDATE_TASK = C_TRUE.

ENDFUNCTION.

ME01 创建货源清单function的更多相关文章

  1. SAP ME01创建货源清单

    1业务说明 此文档使用函数:ME_DIRECT_INPUT_SOURCE_LIST创建货源清单 2前台实现 事务代码:ME01 输入抬头信息 保存即可 3代码实现 3.1调用函数 定义参数 字段 调用 ...

  2. ME01 创建货源清单

    [转自 http://blog.sina.com.cn/s/blog_6466e5f70100ix3p.html ] SAP中采购货源清单创建的方法有以下几种: 1.ME01 手动逐个创建. 2.ME ...

  3. ABAP-创建货源清单

    CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST' *&-------------------------------------------------- ...

  4. 创建一个Scalar-valued Function函数来实现LastIndexOf

    昨天有帮助网友解决的个字符串截取的问题,<截取字符串中最后一个中文词语(MS SQL)>http://www.cnblogs.com/insus/p/7883606.html 虽然实现了, ...

  5. Layer 创建 和 lamdba function 创建 和 API GateWay 配置 和 添加依赖

    进入控制台 选择 Lamdba 服务 进入控制面板, 单击右边: 创建函数 然后进入此图界面 添加lamdba 函数 名称 选择运行环境:python 选择角色 选择现有角色, 角色创建 可以参考 无 ...

  6. mysql 创建函数This function has none of DETERMINISTIC, NO SQL, or READS

    今天在mysql 5.6上创建函数的时候 发现报错: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or R ...

  7. Orcale创建函数(function)

    Oraclec创建函数的语法规则 create or replace function  函数名 (参数名1 参数类型,参数名2 参数类型)  return number  is Result num ...

  8. ME11创建信息记录 Function

    转自 http://blog.csdn.net/zeewjj/article/details/7941530  CALL FUNCTION 'ME_DIRECT_INPUT_INFORECORD' D ...

  9. AD10中创建材料清单(BOM表)

    材料清单可以用来作为元件的采购清单,同时也可以用于查看PCB中的元件封装信息是否正确. 操作: Reports----->Bill of Materials

随机推荐

  1. 《Microsoft SQL Server 2008 Internals》读书笔记--目录索引

    http://blog.csdn.net/downmoon/article/details/5256548 https://sqlserverinternals.com/companion/

  2. 小菜的系统框架界面设计-XiaoCai.WinformUI代码开源

    我的源码分享 曾经,看到别人漂亮的系统界面,合理的布局,可是却没有提供源码,道理很简单,就是有偿提供,实际上对于有些技巧的东西也并没有多么难,只是不懂原理,感觉到困难罢了. 而对于刚毕业的我,求知欲强 ...

  3. java查看工具jhat-windows

    Analyzes the Java heap. This command is experimental and unsupported. Synopsis jhat [ options ] heap ...

  4. 【Python】导入类

    导入单个类 随着不断添加类,可能会使文件变得很长,那么此时,需要将类存储在模块中,然后在主程序导入类即可 book.py class Book(): '''模拟一本书''' def __init__( ...

  5. Android---61---TabHost简单使用

    与TabHost结合使用的组件: TabWidget:代表选项卡的标签条 TabSpec:代表选项卡的一个Tab页面 TabHost不过一个简单的容器,它提供两个方法来创建.加入选项卡 newTabS ...

  6. Web前端开发--JS技术大梳理

    什么是JS      JavaScript是一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语 ...

  7. 在EA中用ER图生成数据库

    ER图 E-R图也称实体-联系图(Entity Relationship Diagram).提供了表示实体类型.属性和联系的方法.用来描写叙述现实世界的概念模型. 实体就是看的见摸得着或者能被人感知接 ...

  8. Codeforces Hello2015第一题Cursed Query

    英文题面: De Prezer loves movies and series. He has watched the Troy for like 100 times and also he is a ...

  9. 如何在cmd中启动redis

    首先要指定redis安装的目录,然后输入: redis-server.exe redis.windows.conf 如果成功,则会出现redis的标志,失败的话 请转帖到: http://www.cn ...

  10. java中异或加密

    static String simple_xor(String base_data, String encrypt_key) throws UnsupportedEncodingException { ...