hechenwang 2023-09-13 15:14 采纳率: 0%
浏览 17

SAP IDOC发送状态30

请问一下我在做IDOC的时候发送数据到外部系统,只要我在程序打了断点就发送不出去,一直是状态30等待发送,需要手动BD87去处理发送,如果我不打断点直接运行程序就显示发送成功?请问下这是正常的吗?
1.打了断点的

img

2正常发送

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 2023-09-13 19:36
    关注

    【以下回答由 GPT 生成】

    回答:

    您好!根据您提供的信息,这可能是正常行为。

    在SAP IDOC中,状态30表示将数据发送到外部系统的状态,但还未完成发送。当您在程序中设置断点时,程序会在该处暂停执行,这意味着数据发送的过程也被暂停了。所以,如果您设置了断点,数据就会一直处于状态30等待发送的状态,直到您手动使用BD87处理发送。

    当您不设置断点直接运行程序时,程序会顺利执行,数据得以成功发送。这是因为程序没有被暂停,发送过程可以顺利完成。

    为了确认是否存在其他问题,您可以提供打断点后出现的具体错误消息或日志,以及发送成功时的日志截图或详细信息。这些信息可以帮助我们更准确地分析并提供解决方案。

    以下是一个处理SAP IDOC发送的示例代码,供您参考:

    * 设置IDOC数据
    DATA: idoc_data TYPE TABLE OF edi_idoc_structure.
    DATA: wa_idoc_data TYPE edi_idoc_structure.
    
    wa_idoc_data-segnam = 'SEGMENT_NAME'.
    wa_idoc_data-sdata = 'DATA_VALUE'.
    APPEND wa_idoc_data TO idoc_data.
    
    * 创建IDOC
    CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
      EXPORTING
        master_idoc_control                = ' '
        master_idoc_data                   = ' '
      TABLES
        communication_idoc_control         = idoc_data
      EXCEPTIONS
        outbound_processing_failure        = 1
        output_into_application_failure    = 2
        x_error                           = 3
        no_such_destination_in_t151t       = 4
        x_error_in_control_parameters      = 5
        x_error_in_data_parameters         = 6
        x_error_in_description_parameters = 7
        x_error_in_value_from_parameter    = 8
        program_execution_interrupted      = 9
        OTHERS                             = 10.
    IF sy-subrc <> 0.
      * 处理发送失败情况
      WRITE: 'Sending IDOC failed:', sy-subrc.
    ENDIF.
    

    请注意,以上代码仅供参考,您需要根据实际情况进行调整。此外,可能还涉及到其他相关的配置或设置,具体解决方案可能需要更多细节的信息来确定。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月13日