XML解析服务

文章目录

      • [1 Introduction](#1 Introduction)
      • [2 Code](#2 Code)

1 Introduction

In the sap there is xml code . We will use the code for it .

2 Code

sql 复制代码
        CALL METHOD LR_PALLET_INFO->LZLJ_1299_SAP_Requirements_PLA
          EXPORTING
            INPUT  = LS_INPUT
          IMPORTING
            OUTPUT = LS_OUTPUT.


        "4.记录返回结果
        LV_SIGN = LS_OUTPUT-SIGN.
        CONDENSE LV_SIGN NO-GAPS.
        LV_MESSAGE = LS_OUTPUT-MESSAGE.
        IF LV_SIGN = 'TRUE'.
          "4.1 ESB返回成功
          "4.1.1解析返回的MESSAGE节点信息
          CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
            EXPORTING
              TEXT   = LV_MESSAGE
            IMPORTING
              BUFFER = LV_XMLDATA
            EXCEPTIONS
              FAILED = 1
              OTHERS = 2.
          IF SY-SUBRC NE 0.
            LV_ERROR = 'X'.
            LV_MSG = '返回MESSAGE节点XML数据格式错误!'.
          ENDIF.

          CHECK LV_ERROR IS INITIAL.
          CALL FUNCTION 'SMUM_XML_PARSE'
            EXPORTING
              XML_INPUT = LV_XMLDATA
            TABLES
              XML_TABLE = LT_XML_INFO
              RETURN    = LT_RET2
            EXCEPTIONS
              OTHERS    = 0.
          LOOP AT LT_RET2 INTO LS_RET2.
            CASE LS_RET2-TYPE.
              WHEN 'E' OR 'A'.
                LV_ERROR = 'X'.
                LV_MSG = '解析返回MESSAGE节点XML数据!'.
                EXIT.
              WHEN OTHERS.
            ENDCASE. .
          ENDLOOP.
          "4.1.2获取MESSAGE节点中解析出来的ITEM节点信息,该节点是SRM返回信息的JSON字符传
          CHECK LV_ERROR IS INITIAL.
          LOOP AT LT_XML_INFO INTO DATA(LS_XML_INFO) WHERE CNAME = 'ITEM'.
            LV_JSON_RES = LV_JSON_RES && LS_XML_INFO-CVALUE.
          ENDLOOP.
          CONDENSE LV_JSON_RES NO-GAPS.
          IF LV_JSON_RES IS INITIAL.
            LV_ERROR = 'X'.
            LV_MSG = '未获取到SRM返回数据!'.
          ENDIF.
          CHECK LV_ERROR IS INITIAL.
          /UI2/CL_JSON=>DESERIALIZE(
                        EXPORTING
                          JSON  = LV_JSON_RES
                          PRETTY_NAME   = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE
                        CHANGING
                          DATA  = LS_OUTPUT  ).

          IF  LS_OUTPUT-SIGN = 'FAILURE'.

             EV_STATUS  =  'E' .
            EV_MESSAGE = '传送数据失败'.

*            MESSAGE '传送数据成功' TYPE 'S' DISPLAY LIKE 'S'.
            ELSE.

             EV_STATUS  =  'S' .
            EV_MESSAGE = '传送数据成功'.
*             MESSAGE '传送数据失败' TYPE 'E' DISPLAY LIKE 'E'.
          ENDIF.
  ENDIF.
  ENDTRY.
相关推荐
小九不懂SAP3 天前
SAP(PP生产制造)拆解工单业务处理
sap·制造·s4·pp
冰魄禾4 天前
SAP ABAP开发学习——BAPI
运维·开发语言·笔记·运维开发·sap·abap
syounger7 天前
是我们“辜负”了IBM、SAP么?
sap
Liquid UI8 天前
Amcor 如何借助 Liquid UI 实现SAP PM可靠性
ui·自动化·sap·制造
数字化转型202518 天前
跨国SAP实施 - 美国 - 税法 - 咨询
sap
阿达_优阅达20 天前
优阅达携手 Theobald 亮相新加坡科技周,助力企业 SAP 数据集成与应用
科技·ai·sap·企业数字化转型·theobald
SAP Hua23 天前
SAP PP之功能 动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试
sap
数字化转型20251 个月前
Alternative Reconciliation Accounts 备选统驭科目
sap
小九不懂SAP2 个月前
6、定义字段状态变式
sap·s4
lu_rong_qq2 个月前
SAP B1 三大基本表单标准功能介绍-物料主数据(下)
数据库·sap·erp