• 2021.09.06 【ABAP随笔】- OData


    SAP S4 OP 中使用SAP API Hub API

    首先我们打开SAP API Hub - SAP API Business Hub(api.sap.com),点击APIs

     

     选择OData V2,在右侧搜索框输入Purchase order(如果需要其他的API请自行修改)

     选择第一个API 点击,在Overview界面选择EDMX 下载下来

     S4 OP SEGW事务中创建一个Project

     右击选择Import->Data Model from File

     

    选择下载下来的API文件

     

    点击Finish,然后点击Generate 生成

     

    生成对应的类

     

    接下来我们ZCL_ZTAB_API_PO_PROCES_DPC_EXT 双击

    点击方法->继承方法,选择A_PURCHASEORDER_GET_ENTITYSET重定义

     

    然后简单写一个获取PO订单信息的代码,保存激活

    DATA lt_purchaseorder TYPE zcl_ztab_api_po_proces_mpc=>tt_a_purchaseorderitemtype.
      DATA ls_purchaseorder LIKE LINE OF lt_purchaseorder.
    
      SELECT a~ebeln,b~ebelp,b~werks,b~matnr,b~menge,b~meins
        FROM ekko AS a
        INNER JOIN ekpo AS b ON b~ebeln = a~ebeln
        INTO TABLE @DATA(lt_ekpo)
        UP TO 5 ROWS.
      IF sy-subrc EQ 0.
        LOOP AT lt_ekpo INTO DATA(ls_ekpo).
          ls_purchaseorder-purchaseorder = ls_ekpo-ebeln.
          ls_purchaseorder-purchaseorderitem = ls_ekpo-ebelp.
          ls_purchaseorder-material = ls_ekpo-matnr.
          ls_purchaseorder-plant = ls_ekpo-werks.
          ls_purchaseorder-purchaseorderitem = ls_ekpo-ebelp.
          ls_purchaseorder-orderquantity = ls_ekpo-menge.
          ls_purchaseorder-purchaseorderquantityunit = ls_ekpo-meins.
          APPEND ls_purchaseorder TO lt_purchaseorder.
          CLEAR ls_purchaseorder.
        ENDLOOP.
      ENDIF.
    
      CHECK lt_purchaseorder IS NOT INITIAL.
    
      et_entityset = lt_purchaseorder.  

    去事务码/n/iwfnd/maint_service, 点击添加服务

     

    我们输入系统别名(因为创建的OData服务在本地包,所以输入LOCAL),然后对做筛选,选择服务,点击添加所选服务

     

    直接选择包,然后点确定,加载服务

     

    返回服务维护界面:我们可以看到服务已经被添加到其中

     

    我们可以点击SAP Gateway来测试,点击EntitySets,选择我们刚才重定义过的方法所在的Set

     

    点击执行,我们可以看到PO数据已经被取到了

     

    复制地址在浏览器中打开,也可以查看到返回的Json

     

  • 相关阅读:
    LinkedList的实现源码分析
    ArrayList实现源码分析
    探索HashMap实现原理及其在jdk8数据结构的改进
    Maven的安装使用以及 Maven+Spring hello world example
    RedisHelper帮助类
    Stream 和 byte[] 之间的转换
    WCF For Silverlight跨域策略
    Linq Query常见错误
    Linq to Sharepoint--如何获取Linq Query 生成的CALM
    如何使用代码备份SQL Server数据库
  • 原文地址:https://www.cnblogs.com/jxzhu/p/15232242.html
Copyright © 2020-2023  润新知