使用RFC创建Odata服务

2020-09-17 05:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好乡亲,

我有一个具有一个输入参数并导出嵌套结构的RFC,

嵌套结构具有四个字段,其中五个和第六个字段是两个结构。

示例:

-------------------------------------------------

field1

field2

field3

field4

structure1(其中有4个字段)

structure2(其中有五个字段)

--------------------------------------------------- ---------------------

export参数中的嵌套结构将具有多个值。

导入参数不是输出结构的一部分。

例如,我将在导入参数中输入systemid,并根据它获取人事编号,并在输出结构中获得与该Pernr相关的多个条目。

到目前为止,RFC工作正常。

现在,我想创建一个OData服务来利用此RFC。

在服务查询中,我仅将sys ID作为输入传递,并应获得输出结构。

不需要关联或导航。

我的问题是:

1)在没有任何复杂性的情况下实现此目的的最佳方法是什么(我发现大多数示例都具有关联性并且相当复杂)?

2)我尝试从RFC导入并映射单个数据字段。

但是如何映射输入参数(sysid),因为输出结构中没有相同的(sysid)?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好乡亲,

我有一个具有一个输入参数并导出嵌套结构的RFC,

嵌套结构具有四个字段,其中五个和第六个字段是两个结构。

示例:

-------------------------------------------------

field1

field2

field3

field4

structure1(其中有4个字段)

structure2(其中有五个字段)

--------------------------------------------------- ---------------------

export参数中的嵌套结构将具有多个值。

导入参数不是输出结构的一部分。

例如,我将在导入参数中输入systemid,并根据它获取人事编号,并在输出结构中获得与该Pernr相关的多个条目。

到目前为止,RFC工作正常。

现在,我想创建一个OData服务来利用此RFC。

在服务查询中,我仅将sys ID作为输入传递,并应获得输出结构。

不需要关联或导航。

我的问题是:

1)在没有任何复杂性的情况下实现此目的的最佳方法是什么(我发现大多数示例都具有关联性并且相当复杂)?

2)我尝试从RFC导入并映射单个数据字段。

但是如何映射输入参数(sysid),因为输出结构中没有相同的(sysid)?

付费偷看设置
发送
4条回答
宇峰科技
1楼-- · 2020-09-17 06:11

我们可以在数据模型下导入DDIC structure(),然后在DPC_EXT和get_entityset下,我们可以调用RFC并获取所需的值,但是为此,我们可以在DDIC结构中添加sysid或创建一个新结构 sysid和pernr两个字段来获取值。

nice_wp
2楼-- · 2020-09-17 06:01

嗨Subhajit,

我们在结构中具有sysid,可以在ls_sysid中获取sysid详细信息,并可以传入RFC并获取详细信息。

尝试。

呼叫方法超级方法>方法
导出
iv_entity_name = iv_entity_name
iv_entity_set_name = iv_entity_set_name
iv_source_name = iv_source_name
it_filter_select_options = it_filter_select_options
is br> it_navigation_path = it_navigation_path
it_order = it_order
iv_filter_string = iv_filter_string
iv_search_string = iv_search_string
io_tech_request_context = io_tech_request_context
IMPORTING
主题集/iwbep/cx_mgw_busi_exception。
捕获/iwbep/cx_mgw_tech_exception。
ENDTRY。

在it_filter_select_options INTO ls_filter处循环播放。

如果ls_filter-property ='SYSID'。
读取表ls_filter-select_options INTO ls_select索引1。
如果sy-subrc是INITIAL。
ls_sysid = ls_select-low。
ENDIF。 br> ENDIF。

ENDLOOP。

骆驼绵羊
3楼-- · 2020-09-17 06:12

我可以提出两种建议。

1。 选项1-从父实体(键为systemid-您的输入参数)到子实体(键为system id和任何其他合适的字段)进行导航。 然后实施Expanded_Entity方法(假设您一次需要一个systemid的数据)

2。 选项2-具有一个平面实体,该实体具有两个属性-SystemId和String。 在此字符串属性中,以JSON格式传递整个导出结构,并将其与使用API​​(可以是SAPUI5)进行通信。 在使用者函数中,可以轻松解析string属性(JSON格式)以获取数据。

当学会了学习
4楼-- · 2020-09-17 05:55

然后选项2怎么样

一周热门 更多>