test1

<div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
        <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
                <div id="content_views" class="markdown_views prism-atom-one-dark">
                    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                        <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                    </svg>
                    <p></p>
<div class="toc">
 <h3><a name="t0"></a>三种方法进行SAP ODATA数据服务发布(DDIC、RFC、CDS)</h3>
 <ul><li><a href="#1DDICODATA_1" target="_self">1、通过DDIC发布ODATA服务</a></li><li><ul><li><a href="#11SE11_2" target="_self">1.1、SE11创建数据表</a></li><li><a href="#12ODATA_6" target="_self">1.2、配置ODATA服务(定义)</a></li><li><a href="#13ODATA_39" target="_self">1.3、发布ODATA服务(激活)</a></li><li><a href="#14ODATA_45" target="_self">1.4、测试ODATA服务</a></li><li><a href="#15_59" target="_self">1.5、总结</a></li></ul>
  </li><li><a href="#2RFCODATA_96" target="_self">2、通过RFC发布ODATA服务</a></li><li><ul><li><a href="#21SE37_97" target="_self">2.1、SE37创建函数</a></li><li><a href="#22ODATA_103" target="_self">2.2、配置ODATA服务(定义)</a></li><li><a href="#23_129" target="_self">2.3、服务激活测试(同上)</a></li><li><a href="#24_130" target="_self">2.4、总结</a></li></ul>
  </li><li><a href="#3CDSODATA_133" target="_self">3、通过CDS发布ODATA服务</a></li><li><ul><li><a href="#31CDS_View_134" target="_self">3.1、创建CDS View</a></li><li><a href="#32ODATA_161" target="_self">3.2、发布ODATA服务</a></li><li><a href="#33_168" target="_self">3.3、服务测试</a></li><li><a href="#34_171" target="_self">3.4、总结</a></li></ul>
 </li></ul>
</div>
<p></p> 
<h1><a name="t1"></a><a id="1DDICODATA_1"></a>1、通过DDIC发布ODATA服务</h1> 
<h2><a name="t2"></a><a id="11SE11_2"></a>1.1、SE11创建数据表</h2> 
<p>首先,要创建ODATA要发布的数据结构,可以是透明表,也可以是结构体。<br> 这里我以一个自建表 ZTIFLIST 为例,发布其中的几个字段。<br> <img src="https://img-blog.csdnimg.cn/03d91027866d413eae8f7b4f65ae87a9.png" alt="在这里插入图片描述"></p> 
<h2><a name="t3"></a><a id="12ODATA_6"></a>1.2、配置ODATA服务(定义)</h2> 
<p>(1)执行SEGW,新建 ODATA 项目<br> <img src="https://img-blog.csdnimg.cn/e006722286bf4a5ea77989862b803dc6.png" alt="在这里插入图片描述"><br> (2)创建 <a href="https://so.csdn.net/so/search?q=%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B&amp;spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.csdn.net/so/search?q=%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;数据模型\&quot;}&quot;}" data-tit="数据模型" data-pretit="数据模型">数据模型</a>,选择导入 → DDIC结构<br> <img src="https://img-blog.csdnimg.cn/1a647561b0aa4636a9d370b7f899251d.png" alt="在这里插入图片描述"><br> 定义 Entity 名称,选择对应的 DDIC 表<br> <img src="https://img-blog.csdnimg.cn/611d5c8d07824dd1acc0272eff7b684e.png" alt="在这里插入图片描述"><br> 勾选需要让外部访问的字段<br> <img src="https://img-blog.csdnimg.cn/e44e422743d248f2aff9a881753b6d69.png" alt="在这里插入图片描述"><br> 勾选关键字<br> <img src="https://img-blog.csdnimg.cn/0d124360dfb24235adcc19171ddb42cc.png" alt="在这里插入图片描述"><br> 模型创建完成,如下图<br> <img src="https://img-blog.csdnimg.cn/bea1cbb63693470caab93a16c450c92d.png" alt="在这里插入图片描述"><br> (3)生成ODATA服务<br> <img src="https://img-blog.csdnimg.cn/c484ae6823ef423794704b9065854206.png" alt="在这里插入图片描述"><br> 生成如下 Runtime <a href="https://so.csdn.net/so/search?q=Artifacts&amp;spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.csdn.net/so/search?q=Artifacts&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;Artifacts\&quot;}&quot;}" data-tit="Artifacts" data-pretit="artifacts">Artifacts</a> 对象<br> <img src="https://img-blog.csdnimg.cn/e3e8a3ddda7f41ca99732a1226d987d6.png" alt="在这里插入图片描述"><br> 说明:<br> DPC:data provider class 数据CRUD类,提供增上改查方法<br> <a href="https://so.csdn.net/so/search?q=MPC&amp;spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.csdn.net/so/search?q=MPC&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;MPC\&quot;}&quot;}" data-tit="MPC" data-pretit="mpc">MPC</a>:modle provider class 数据提供类,提供查询方法</p> 
<p>(4)服务实施:创建方法<br> <img src="https://img-blog.csdnimg.cn/1614249c50dd4c27a16170e372d9cb4a.png" alt="在这里插入图片描述"><br> 其中:<br> GetEntity(Read)表示读取单条,需要配合关键字查询;<br> GetEntitySet(Query)表示读取集合。</p> 
<p>选中对应要提供的方法,右键 → 重定义<br> <img src="https://img-blog.csdnimg.cn/8c48c6b5e21e4960a1e48ba10a650747.png" alt="在这里插入图片描述"><br> 编写数据查询代码,保存,激活,服务配置完成。<br> <img src="https://img-blog.csdnimg.cn/595f336f40514d25b65e9bceaad996e3.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/d123fa0596754a03bbc33d5803c58a5f.png" alt="在这里插入图片描述"></p> 
<h2><a name="t4"></a><a id="13ODATA_39"></a>1.3、发布ODATA服务(激活)</h2> 
<p>(1)执行事务码:/n/IWFND/MAINT_SERVICE<br> <img src="https://img-blog.csdnimg.cn/d5e640f3c75b4527959db88bef166f25.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/257c755c4fec4a20a2ffce8e88d24a42.png" alt="在这里插入图片描述"><br> 添加成功如下:<br> <img src="https://img-blog.csdnimg.cn/486f2ae2f1de41ce92414461afd46ad0.png" alt="在这里插入图片描述"></p> 
<h2><a name="t5"></a><a id="14ODATA_45"></a>1.4、测试ODATA服务</h2> 
<p>点击 SAP Gateway 客户端,进行服务测试 → 点击执行<br> <img src="https://img-blog.csdnimg.cn/3f571eca550f43cdba5c60d9cef43ed7.png" alt="在这里插入图片描述"><br> 获得响应,服务连接成功<br> <img src="https://img-blog.csdnimg.cn/78f03a1c942a4fcfa59787c17518962f.png" alt="在这里插入图片描述"><br> 修改URL参数,可以获取 json 数据集合<br> <img src="https://img-blog.csdnimg.cn/4c230974354b4d1aa414d30d14f418af.png" alt="在这里插入图片描述"><br> 在返回结果中,有完整的ODATA服务访问地址,复制出来,可以在浏览器或第三方工具中访问,如Posman,需要输入SAP登录用户名和密码<br> <img src="https://img-blog.csdnimg.cn/0b3d4b437ca3447a882dbf067667f0a3.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/dfa61d55de7b419fa74ae27682a9a665.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/0a407afddecd42d1ad36396cfda99b9c.png" alt="在这里插入图片描述"><br> 查询单条记录时报错,可以通过事务码 /n/IWFND/ERROR_LOG 查看报错日志<br> <img src="https://img-blog.csdnimg.cn/d1136993e95d47d896d8b72c2baefd51.png" alt="在这里插入图片描述"><br> 因为我们还未实施单条记录查询的方法。</p> 
<h2><a name="t6"></a><a id="15_59"></a>1.5、总结</h2> 
<p>此种方法,适用于快速发布基于某个表的数据服务。</p> 
 
<h1><a name="t7"></a><a id="2RFCODATA_96"></a>2、通过RFC发布ODATA服务</h1> 
<h2><a name="t8"></a><a id="21SE37_97"></a>2.1、SE37创建函数</h2> 
<p>基于上表 ZTIFLIST,创建一个RFC函数,来进行 ODATA服务发布演示。<br> <img src="https://img-blog.csdnimg.cn/7c6aaebd301c4277a973159a2ee78546.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/eb0fe5caf7934833a2997ab76f062a7a.png" alt="在这里插入图片描述"></p> 
<p><img src="https://img-blog.csdnimg.cn/41cf6008ca744e719dd4468ae3d420fe.png" alt="在这里插入图片描述"><img src="https://img-blog.csdnimg.cn/7189dd1f93a74b1a8721cf01abe15525.png" alt="在这里插入图片描述"></p> 
<h2><a name="t9"></a><a id="22ODATA_103"></a>2.2、配置ODATA服务(定义)</h2> 
<p>配置过程基本同上,这里仅截取部分不同的界面<br> <img src="https://img-blog.csdnimg.cn/7f86c4e837144abea3e4f4c5a11f36cc.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/706e187d7fa846978909a63262850f2d.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/641c1f0df5d44e089d073fcdd62b670d.png" alt="在这里插入图片描述"><br> 创建完成后,生成运行对象。</p> 
<p>服务实施:重定义方法</p> 
<pre data-index="0" class="prettyprint"><code class="prism language-abap has-numbering" οnclick="mdcp.copyCode(event)" style="position: unset;">  METHOD YZTIFLISTSET_GET_ENTITYSET.

  DATA: LT_LIST TYPE TABLE OF ZTIFLIST.
  DATA: LS_ENTITY LIKE LINE OF ET_ENTITYSET.

  TRY.
    CALL FUNCTION 'YFM_ODATA'
      TABLES
        T_LIST        = LT_LIST.

    MOVE-CORRESPONDING LT_LIST TO ET_ENTITYSET.

    CATCH /IWBEP/CX_MGW_BUSI_EXCEPTION.
    CATCH /IWBEP/CX_MGW_TECH_EXCEPTION.
  ENDTRY.
  ENDMETHOD.
<div class="hljs-button {2}" data-title="复制"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li></ul></pre> 
<h2><a name="t10"></a><a id="23_129"></a>2.3、服务激活测试(同上)</h2> 
<h2><a name="t11"></a><a id="24_130"></a>2.4、总结</h2> 
<p>此种方法,适用于发布基于某个已封装逻辑的函数服务。</p> 
<h1><a name="t12"></a><a id="3CDSODATA_133"></a>3、通过CDS发布ODATA服务</h1> 
<h2><a name="t13"></a><a id="31CDS_View_134"></a>3.1、创建CDS View</h2> 
<p>进入Eclipse ADT开发环境,新建CDS View<br> <img src="https://img-blog.csdnimg.cn/ba4f114de1004afd83591f2393adf7b5.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/61e4ff9b6944485e96916dd2bfb5e8c3.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/bc0980b7124a4e15b559e6e1b605ea7c.png" alt="在这里插入图片描述"><br> 编写CDS,增加注解 @OData.publish: true<br> <img src="https://img-blog.csdnimg.cn/9355d69218394bd589daeb36925fe6ef.png" alt="在这里插入图片描述"><br> 保存,激活CDS,忽略警告提示服务尚未激活<br> <img src="https://img-blog.csdnimg.cn/a2ca1ccebe6f410697f001f3e9a185d7.png" alt="在这里插入图片描述"></p> 
<pre data-index="1" class="prettyprint"><code class="prism language-sql has-numbering" οnclick="mdcp.copyCode(event)" style="position: unset;"><span class="token variable">@AbapCatalog.sqlViewName</span>: <span class="token string">'ZV_CDS_ODATA'</span>
<span class="token variable">@AbapCatalog.compiler.compareFilter</span>: <span class="token boolean">true</span>
<span class="token variable">@AbapCatalog.preserveKey</span>: <span class="token boolean">true</span>
<span class="token variable">@AccessControl.authorizationCheck</span>: <span class="token comment">#CHECK</span>
<span class="token variable">@EndUserText.label</span>: <span class="token string">'CDS View 发布ODATA服务'</span>
<span class="token variable">@OData.publish</span>: <span class="token boolean">true</span>        <span class="token comment">--此注解表示发布odata服务</span>
define <span class="token keyword">view</span> ZCDS_ODATA <span class="token keyword">as</span> <span class="token keyword">select</span> <span class="token keyword">from</span> ztiflist {
    <span class="token keyword">key</span> ifno<span class="token punctuation">,</span>                <span class="token comment">--指定key</span>
    <span class="token keyword">key</span> ifrow<span class="token punctuation">,</span>
        ifname<span class="token punctuation">,</span>
        project<span class="token punctuation">,</span>
        iftype<span class="token punctuation">,</span>
        devname
}
<div class="hljs-button {2}" data-title="复制"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li></ul></pre> 
<h2><a name="t14"></a><a id="32ODATA_161"></a>3.2、发布ODATA服务</h2> 
<p>执行事务码:/n/IWFND/MAINT_SERVICE,添加服务<br> <img src="https://img-blog.csdnimg.cn/67f1b7c164be4144b3d6d4e3f14280e0.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/2bab947d44b34ec1b2c85e5445f23762.png" alt="在这里插入图片描述"><br> <img src="https://img-blog.csdnimg.cn/c18628bdfe134c979e96a8994a2f5324.png" alt="在这里插入图片描述"><br> 添加成功,回到 Eclipse,刷新,查看提示,OData服务已创建。<br> <img src="https://img-blog.csdnimg.cn/0ea9c2b20d8448f6bd1619de87dfbce0.png" alt="在这里插入图片描述"></p> 
<h2><a name="t15"></a><a id="33_168"></a>3.3、服务测试</h2> 
<p>增加 EntitySet(默认实体为ZCDS_ODATA)和URI Option(format=json),可以获得JSON 格式结果。<br> <img src="https://img-blog.csdnimg.cn/6b603c99f7364e759a4dba76964a6c89.png" alt="在这里插入图片描述"></p> 
<h2><a name="t16"></a><a id="34_171"></a>3.4、总结</h2> 
<p>此种方法,可以直接基于CDS发布ODATA服务,省去了配置Sap Getway以及方法实现的步骤,更加快速便捷。</p> 
<p>原创文章,转载请注明来源-<a href="https://blog.csdn.net/XLevon">X档案</a></p>
                </div><div><div></div></div>
                <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-0407448025.css" rel="stylesheet">
                <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-bb308a51ed.css" rel="stylesheet">
        </div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值