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. Git 详细的操作指南笔记

    喜欢的朋友start一下,长期更新文章 设置 安装git后我们需要配置一下,告诉git我们的基本信息等等..一般在用户范围内去配置 git ,也就是在 global 范围. global 全局设置 $ ...

  2. SVN环境搭建详解

      SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网 ...

  3. 如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证

    在 Windows Server 2008 R2 发布后,gOxiA 就开始着手于相关的测试和评估.IIS 是重点测试和评估之一!而今天与大家分享的是如何在  IIS7 上配置 FTP7 使用 IIS ...

  4. 2016.6.20 eclipse中的jsp文件的字体大小在哪里修改

    刚打开eclipse的时候,觉得jsp文件的字体太小了.于是去修改字体,但是colors and fonts里的字体选项太多了,不知道哪一个是. 试了几个后发现,是structured text ed ...

  5. 两段用来启动/重启Linux下Tomcat的Perl脚本

    两段代码,第二段比较好些. 下面是Split输出结果方式的代码: #!/usr/local/bin/perl #Date:2015-07-07 print "Begin to restart ...

  6. MySQL触发器 trigger学习

    触发器:一类特殊的事物.可监视某种数据操作,并触发相关操作(insert/update/delete).表中的某些数据改变,希望同一时候能够引起其他相关数据改变的需求. 作用:变化自己主动完毕某些语句 ...

  7. Python标准库:1. 介绍

    标准库包括了几种不同类型的库. 首先是那些核心语言的数据类型库,比方数字和列表相关的库.在核心语言手冊里仅仅是描写叙述数字和列表的编写方式,以及它的排列,而未定义它的语义. 换一句话说,核心语言手冊仅 ...

  8. java调试工具jdb

    Finds and fixes bugs in Java platform programs. Synopsis jdb [options] [classname] [arguments] optio ...

  9. 出现“Windows资源管理器已停止工作”错误

    出现"Windows资源管理器已停止工作"错误 什么是资源管理器呢,explorer.exe进程的作用就是让我们管理计算机中的资源! 今天开电脑的时候就一直提示windows资源管 ...

  10. TCP/IP详解 卷一(第七、八章 Ping、Traceroute程序)

    Ping程序 Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达. 该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答. ping程序还能测出到这台主机的往返时 ...