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.
相关推荐
爱喝水的鱼丶21 小时前
SAP-ABAP:一次关于“交货日期”的增强需求:从复杂增强到标准功能的回归之旅
运维·开发语言·性能优化·sap·abap·经验交流
爱喝水的鱼丶2 天前
SAP-ABAP:ALV通用封装实践——搭建可复用的ALV开发工具类,减少80%重复代码
开发语言·性能优化·sap·abap·erp·alv
爱喝水的鱼丶2 天前
SAP-ABAP:ALV跨版本兼容指南——适配ECC与S4 HANA系统的ALV开发注意事项
开发语言·性能优化·sap·abap·经验交流
爱喝水的鱼丶6 天前
SAP-ABAP:ALV数据导出增强——实现Excel/PDF/CSV多格式自定义导出
开发语言·性能优化·sap·abap·erp
爱喝水的鱼丶8 天前
SAP-ABAP:ALV字段布局定制全攻略——快速适配业务端个性化展示需求
运维·性能优化·sap·abap·经验交流·alv报表
在海边看星星11 天前
SAP 邮编管理
sap
爱喝水的鱼丶18 天前
SAP-ABAP:接口 vs 抽象类:ABAP OOP两类扩展方式的差异与选型原则
运维·性能优化·sap·abap·erp·经验交流
S4HANA云1 个月前
S/4HANA Public Cloud 权限问题自主排查指南
sap·s/4hana cloud·su53
修电脑的猫1 个月前
LSMW target field DATAM mapped as CHAR1, length 1 in table /SAPDMC/LSGBDC
sap·abap
爱喝水的鱼丶1 个月前
SAP-ABAP:SAP表与视图权限管控方案:表维护权限、视图访问权限配置实操
运维·数据库·性能优化·sap·abap·权限·表和视图