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. ubuntu 安装花生壳

    由于无线路由的IP总是变换,所以想在机器上装一个花生壳,然后通过域名来访问这个机器,这样就算IP变了也没有关系.我的机器的系统是ubuntu 12.04 desktop  cd 到一个目录,我用的是D ...

  2. VS2010中 报错:error C2146、error C4430 原因一:缺少CvvImage类

    今天用vs2010打开vs2008的一个工程,报了好多错: 1>e:\visual studio 2010\projects\imageprojects\morphology\morpholog ...

  3. Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法

    折腾了一天遇到了几个头疼的问题,还好回去前解决掉了 第一个:执行cxfreeze打包好的程序遇到 tkinter 和 _tkinter的缺失问题 首先终端:python tkinter python ...

  4. C#控件之ListView

    1.添加一行 listView1.Items.Add(new ListViewItem(new string[] {str1, str2, str3 })); 2.鼠标悬停在listview某项时弹出 ...

  5. poj1691--Painting A Board(拓扑+dfs)

    题目链接:点击打开链接 题目大意:一个矩形由n个小矩形组成,如今要给小矩形染色,可是颜料会向下滑,为了防止弄乱颜料,所以要先染上面的矩形,后然染以下的矩形.每一次改变颜色都要用一个新的刷子.问最小用多 ...

  6. remove-duplicates-from-sorted-list I&II——去除链表中重复项

    I.Given a sorted linked list, delete all duplicates such that each element appear only once. For exa ...

  7. 对datatable进行linq过滤

    实例: DataTable data = new DataTable(); data.Columns.Add("schoolid", Type.GetType("Syst ...

  8. winform 下载文件显示进度和百分比

    /// <summary> /// 下载完成 /// </summary> private void DownloadFileCompleted() { IsComlate = ...

  9. Angular+Angular-Ui实现分页(代码更加简单,更加容易懂哦)

    前面写了个分页,但是个人认为只能玩玩,实际业务上的话代码太繁杂(笔者想走代码.性能精简化之路[不知道哪天才能成为高手~·YY一下无伤大雅]),逻辑上有点混乱.那么今天我们来看看另外一种只实现分页没有查 ...

  10. 用C语言解决迷宫问题

    #include <stdio.h> #include <stdlib.h> #define ROW 10 #define COL 10 /*迷宫中位置信息*/ typedef ...