ALE/IDoc 在Outbound的时候,需要有程序来生成IDoc,在Inbound的时候需要有程序来解析IDoc,从而在R/3中生成主数据。
由于Outbound有:Message Control, Change Point, Stand-Alone三种方式,所以就衍生出三种不同Outbound程序。但是概念上,总体是一致的,只是实现是一些参数和功能不一样。相比而言,Inbound就比较单一,就只有一种方式,而且格式固定。
下面就放一个Inbound Function的例子,参数的话和标准的都一样的。
FUNCTION Z_KEVIN_INBOUND .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  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
*"----------------------------------------------------------------------
  INCLUDE MBDCONWF.

DATA: BEGIN OF LS_TEST,
          ID(4) TYPE C,
          TEXT(32) TYPE C,
        END OF LS_TEST.

DATA LT_TEST LIKE STANDARD TABLE OF LS_TEST.

*initialize workflow result
  WORKFLOW_RESULT = C_WF_RESULT_OK.

LOOP AT IDOC_CONTRL.

*make sure we have the correct message passed to us
    IF IDOC_CONTRL-MESTYP NE 'ZKEVIN_INBOUND_M'.
      RAISE WRONG_FUNCTION_CALLED.
    ENDIF.

*clear application buffers
    CLEAR LS_TEST.
    REFRESH LT_TEST.

* process all data records in an IDoc and transfer them to
* application buffers

LOOP AT IDOC_DATA WHERE DOCNUM EQ IDOC_CONTRL-DOCNUM.
      CASE IDOC_DATA-SEGNAM.
        WHEN 'ZKEVIN_TEST'.
          LS_TEST-ID = IDOC_DATA-SDATA+0(4).
          LS_TEST-TEXT = IDOC_DATA-SDATA+4(32).
          APPEND LS_TEST TO LT_TEST.
      ENDCASE.
    ENDLOOP.

INSERT ZKEVIN_T FROM TABLE LT_TEST.
    IF SY-SUBRC EQ 0.
* populate return variables for success
      RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'.
      RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
      APPEND RETURN_VARIABLES.

* add status record indicating success
      IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
      IDOC_STATUS-STATUS = '53'.
      IDOC_STATUS-MSGTY = 'I'.
      IDOC_STATUS-MSGID = 'ZE'.
      IDOC_STATUS-MSGNO = '006'.
      IDOC_STATUS-MSGV1 = 'TEST ONE'.
      APPEND IDOC_STATUS.
    ENDIF.

ENDLOOP.

ENDFUNCTION.

ALEIDoc EDI(5)--Inbound Function相关推荐

  1. ALEIDoc EDI(9)--others

    对ALE/IDoc进行了一个粗略的总结,而实际上ALE/IDoc还有很多应用,比如与BAPI的接口(实际上就用BAPI把ALE/IDoc的内容封装起来),这样就方便做一些外部调用等动作了,与其他SAP ...

  2. ALEIDoc EDI(8)--Serialization

      Serialization在ALE/IDoc中的一个应用.有一些标准的Serialization Groups,实际定制的不多,这里只是作为一个知识储备讲一下.    何为Serizalizati ...

  3. ALEIDoc EDI(2)--一般流程

    ALE/IDoc的实践性很强的技术,也就是说你做得越多,碰到的问题越多,提高也就越多,光是理论是没什么用得.    所以先把一般配置一套ALE/IDoc的流程总结一下,以后再把经验性.总结性的东西慢慢 ...

  4. ALEIDoc EDI(6)--Filter Conversion

      SAP为了ALE/IDoc更具灵活性,提供了Filter和Conversion功能.Filter是针对Message type的,而Conversion则是针对Sender和Receiver的. ...

  5. ALEIDoc EDI(4)--change point02

     Change point的第二种方法就是SMD,通过一系列的配置和Job,你就可以做到,让不同的Message type自动分发.这里所谓的自动分发,就是当一个系统中的主数据发生修改,创建,删除时, ...

  6. ALEIDoc EDI(3)--change point01

     SAP中实现分布式的一个机制就是ALE/IDoc,而在具体一点就是change point.          Change point是用来分发主数据的.主要有两种实现方式,一种是直接方式,另外一 ...

  7. ALEIDoc EDI(1)--OverView

    我在新环境中,学到的最多的东西就是接口技术,也是我觉得很有用的一些知识.     由于公司业务复杂,第三方系统很多,有很多业务系统在上面跑.SAP引入之后,就需要和第三方系统做接口,比如订单.物流什么 ...

  8. ALEIDoc EDI(7)--IDoc Extension

    SAP已经提供很多标准的IDoc type.Message type及相关的程序,可以通过配置就可以完成一般的分发和接受.     但是,由于客户的定制化,很多标准表做过了增强,同时也有一些新增的主数 ...

  9. IDOC实例, Inbound IDOC

    这里将继续沿用上篇文章的例子,讲述I02对接收到的采购订单信息进行的相关处理. 1,创建IDOC Type和Message Type. 与上篇Outbound Idoc中的前两个步骤完全一样. 2,创 ...

最新文章

  1. 一文探讨堆外内存的监控与回收
  2. 测试JdbcTemplate执行SQL语句和存储过程
  3. 使用sentinel实现限流
  4. VS2015配置内核WDK7600环境,32位下.
  5. flush python_带有示例的Python File flush()方法
  6. CentOS7搭建部署Ambari 2.6.2.0最新版(HDP-UTILS、HDP-GPL)大数据平台
  7. Controller @Autowired注解 无法注入值为null的问题
  8. (python)7-4 sdut-oop-1 简单的复数运算 (10 分)
  9. STM32工作笔记0030---编写跑马灯实验--使用库函数
  10. Java正则表达式中的捕获组的概念及相关API使用
  11. 【实验记录】EA-MLP(演化算法--全连接神经网络)实验记录
  12. php中常见的错误类型有,php中的错误类型有哪些
  13. 关于 XcodeGhost , 如何进行保护APP安全性
  14. Linux文件IO操作之IO编程(一)
  15. 汉字笔顺动画技术剖析,android应用开发实战
  16. android开机自动启动app,android如何实现开机自动启动Service或app
  17. python解二阶微分方程组_python:利用多种方式解微分方程(以二阶微分系统零状态响应为例)...
  18. 潇洒老师教你注塑模具使用顶针油需要注意的问题
  19. 推荐电影电视剧下载最好去处
  20. 赛博哈希CyberHash顺势而为,获数千万美金的融资

热门文章

  1. Elasticsearch聚合初探——metric篇
  2. zip,tar,打包并压缩
  3. 英特尔收购人工智能公司 Nervana,开发深度学习技术
  4. 拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient)
  5. [Java入门笔记] Java语言基础(二):常量、变量与数据类型
  6. 在虚拟中开启Windows 8.1的Hyper-V平台
  7. 使用CSS sprites减少HTTP请求
  8. [Java] Overrid 方法重写
  9. Mybatis 实现SQL拦截并在控制台打印SQL和参数
  10. node 实现Token状态登录 及数据库增删改查