IDOC配置篇 ( 二 )

一、前言

江正军的博客对IDOC介绍非常详细

https://www.cnblogs.com/jiangzhengjun/p/4292135.html#_Toc411677416

二、下面介绍CAR和MDG分别下发小票和物料主数据

三、CAR系统

本文介绍的配置实例是POSDM(CAR)系统产生的IDOC传递到S4 retail的过程的小票IDOC的相关配置

1、CAR系统中出站部分的配置

进入事务代码:SM59配置一个远程连接到ECC系统

 2、配置端口

3、配置合作伙伴

WE20配置每个合作伙伴的类型的KU的出战参数,使用之前配置的端口

 关于队列处理

SPRING

在配置出站参数时,有个队列处理复选框.

  • 不勾选, 系统使用TRFC传输. 通过SM58监控数据传输是否成功

  • 勾选 . 需要给一个队列命名规则(如下图). 系统使用qRFC传递数据 使用SMQ1/SMQ2 监控数据传输是否成功

 四、retail 系统,入站

入站部分在ECC设置,

1、WE20设置相同的合作伙伴参数文件

 

触发方式

SPRING

一般情况下,建议配置为后台作业触发.

实际测试发现, 部分IDOC类型如果配置成立即触发. 有可能导致IDOC本身无法保存(原因可以是IDOC后续处理报错的数据回滚把IDOC本身的保存也回滚了)

一不小心滚远了

所以稳妥起见,建议使用后台作业触发. 定义BD20的后台作业执行IDOC的并发后台处理.

后台触发还有一个好处:IDOC的执行可控. 对于使用TRFC传递的IDOC.对系统的进程的保护更好.(避免因为处理性能问题占用更多的进程,导致系统性能下降)

2、合作伙伴类型的选择

除非是自己定义IDOC的发送. 或接收.可以通过代码确定使用什么样的合作伙伴.标准产生的IDOC一般会根据业务确定合作伙伴类型

小票的合作伙伴本身包含了业务信息,不能随意调整.

如果是自己开发IDOC的发送或产生可以使用逻辑系统合作伙伴. 这样可以减少配置量.

3、合作伙伴的批量配置

可以通过程序 Z_BC_WE20_COPY 批量复制一个已经配置好的合作伙伴. 实现快速配置

批量配置对入站,出站部分都有效, 因为系统复制的是合作伙伴本身. 会把合作伙伴的入站,出站参数都复制了.

FUNCTION zcar_edi_partner_copy.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IV_PARTNER_SOURCE) TYPE  EDIPPARNUM
*"     VALUE(IV_PARTNER_DEST) TYPE  EDIPPARNUM
*"  EXPORTING
*"     VALUE(EV_ERROR) TYPE  EDI_HELP-ERROR_FLAG
*"     VALUE(EV_MESSAGE) TYPE  STRING
*"----------------------------------------------------------------------

  DATA: ls_edpp1 TYPE edpp1.
  DATA: ls_source_edkp1 TYPE edkp1,
        ls_dest_edkp1   TYPE edkp1.

  DATA: lv_pe_error TYPE edi_help-error_flag.

**----------------------------------------------------------------------

  SELECT SINGLE *
    INTO ls_edpp1
    FROM edpp1
   WHERE parnum EQ iv_partner_dest
     AND partyp EQ 'KU'.
  IF sy-subrc EQ 0.
    ev_error   = 'E'.
    ev_message = '目标合作伙伴已存在'.
    RETURN.
  ENDIF.

  SELECT SINGLE *
    INTO ls_edpp1
    FROM edpp1
   WHERE parnum EQ iv_partner_source.
  IF sy-subrc NE 0.
    ev_error   = 'E'.
    ev_message = '源合作伙伴不存在'.
    RETURN.
  ENDIF.
**----------------------------------------------------------------------
  ls_source_edkp1-parnum = iv_partner_source.
  ls_source_edkp1-partyp = 'KU'.

  ls_dest_edkp1-parnum = iv_partner_dest.
  ls_dest_edkp1-partyp = 'KU'.

  CALL FUNCTION 'EDI_PARTNER_COPY_COMPLETE'
    EXPORTING
      source_edkp1        = ls_source_edkp1
      dest_edkp1          = ls_dest_edkp1
*     active_field        = ' '
*     no_ptype_check      = ' '
*     no_exceptions       = ' '
    IMPORTING
      pe_error            = lv_pe_error
    EXCEPTIONS
      db_error            = 1
      entry_not_exist     = 2
      entry_already_exist = 3
      parameter_error     = 4
      OTHERS              = 5.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO ev_message.
    ev_error   = 'E'.
    RETURN.
  ENDIF.

  IF lv_pe_error NE space.
    ev_error   = 'E'.
    ev_message = '复制过程出现错误'.
    RETURN.
  ELSE.
    ev_error   = 'S'.
    ev_message = '复制伙伴参数文件成功'.
    RETURN.
  ENDIF.
**----------------------------------------------------------------------

ENDFUNCTION.

五、总结

基础的IDOC的出站,入站配置比较简单. 系统中更多的复杂配置一般是为了实现特定业务单据的过滤,产生IDOC的逻辑,以及业务数据的转换,执行产生单据等逻辑. 了解了最基础的部分, 再去看那些复杂的配置, 就不会被困扰在配置的汪洋大海中. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值