IDOC读取

该博客详细介绍了如何在SAP中读取IDOC数据,并使用ABAP函数模块进行处理。通过调用'IDOC_READ_COMPLETELY'和相关函数,解析并展示IDOC结构和数据记录。如果选择下载选项,程序还会将数据导出到Excel文件。
摘要由CSDN通过智能技术生成

DATA: idoc_control LIKE edidc,
      number_of_data_records LIKE sy-dbcnt,
      number_of_status_records LIKE sy-dbcnt,
      int_edids LIKE edids OCCURS 0 WITH HEADER LINE,
      int_edidd LIKE edidd OCCURS 0 WITH HEADER LINE.

TYPE-POOLS :  ledid.

DATA: struct_type TYPE  ledid_struct_type ,
      idoc_struct TYPE  ledid_t_idoc_struct,
      segments TYPE  ledid_t_segment,
      segment_struct TYPE  ledid_t_segment_struct,
      excel_tab(2000) OCCURS 0 WITH HEADER LINE.

PARAMETER: docnum LIKE edidc-docnum OBLIGATORY, ""Idoc Number
           sap_rel LIKE sy-saprl DEFAULT sy-saprl OBLIGATORY,
           pi_ver LIKE edi_verrec-version DEFAULT '3' OBLIGATORY,
           d_excel AS CHECKBOX DEFAULT 'X'. ""Download ?

START-OF-SELECTION.
  PERFORM read_idoc.
  PERFORM process_idoc.
  IF d_excel = 'X'.
    PERFORM download_to_excel.
  ENDIF.

END-OF-SELECTION.

*&--------------------------------------------------------------------*
*&      Form  read_idoc
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM read_idoc.
  CALL FUNCTION 'IDOC_READ_COMPLETELY'
    EXPORTING
      document_number          = docnum
    IMPORTING
      idoc_control             = idoc_control
      number_of_data_records   = number_of_data_records
      number_of_status_records = number_of_status_records
    TABLES
      int_edids                = int_edids
      int_edidd                = int_edidd
    EXCEPTIONS
      document_not_exist       = 1
      document_number_invalid  = 2
      OTHERS                   = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    "" read_idoc

*&--------------------------------------------------------------------*
*&      Form  process_idoc
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM process_idoc.
  PERFORM read_idoc_structure.
  PERFORM display_data_records.
ENDFORM.                

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值