没有通用关键字段的Odata关联

2020-09-13 08:29发布

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

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


嗨,我正在使用我的两个自定义表ZSW_EKKO和ZSW_LFA1在Odata中创建关联,但是这些表中没有公用密钥。

ZSW_EKKO :-MANDT,EBELN,BUKRS,BSART,LIFNR。 (EBELN是关键)

ZSW_LFA1 :-MANDT,LIFNR,NAME1,NAME2,ORT01,STRAS。 (LIFNR是关键)

我在依赖实体集的get实体方法中编写以下代码。 它不适用于EBELN值。 有人可以建议如何解决吗。

方法VENDOR_DETAILSSE_GET_ENTITY。 -NAME1,
NAME2类型ZSW_LFA1-NAME2,
ORT01类型ZSW_LFA1-ORT01,
STRAS类型ZSW_LFA1-STRAS,
TY_S_TAB的结尾。
数据LS_ENTITY类型TY_S_TAB。
数据LT 类型表TY_S_TAB。
将表IT_KEY_TAB读入LS_KEY索引1。 。
ENDIF。
如果LS_KEY-NAME ='Ebeln'。
选择ZSW_EKKO〜EBELN
ZSW_LFA1〜LIFNR
ZSW_LFA1〜NAME1
ZSW_LFA1〜NAME2
ZSW_LFA1〜ORT01 < br> ZSW_LFA1〜STRAS
从ZSW_EKKO内部联接ZSW_LFA1
到ZSW_EKKO〜LIFNR EQ ZSW_LFA1〜LIFNR
到表LT_ENTITY中。


读取表LT_ENTITY到LS_ENTITY索引1。 LS_ENTITY与ER_ENTITY相对应。

ENDIF。

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

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


嗨,我正在使用我的两个自定义表ZSW_EKKO和ZSW_LFA1在Odata中创建关联,但是这些表中没有公用密钥。

ZSW_EKKO :-MANDT,EBELN,BUKRS,BSART,LIFNR。 (EBELN是关键)

ZSW_LFA1 :-MANDT,LIFNR,NAME1,NAME2,ORT01,STRAS。 (LIFNR是关键)

我在依赖实体集的get实体方法中编写以下代码。 它不适用于EBELN值。 有人可以建议如何解决吗。

方法VENDOR_DETAILSSE_GET_ENTITY。 -NAME1,
NAME2类型ZSW_LFA1-NAME2,
ORT01类型ZSW_LFA1-ORT01,
STRAS类型ZSW_LFA1-STRAS,
TY_S_TAB的结尾。
数据LS_ENTITY类型TY_S_TAB。
数据LT 类型表TY_S_TAB。
将表IT_KEY_TAB读入LS_KEY索引1。 。
ENDIF。
如果LS_KEY-NAME ='Ebeln'。
选择ZSW_EKKO〜EBELN
ZSW_LFA1〜LIFNR
ZSW_LFA1〜NAME1
ZSW_LFA1〜NAME2
ZSW_LFA1〜ORT01 < br> ZSW_LFA1〜STRAS
从ZSW_EKKO内部联接ZSW_LFA1
到ZSW_EKKO〜LIFNR EQ ZSW_LFA1〜LIFNR
到表LT_ENTITY中。


读取表LT_ENTITY到LS_ENTITY索引1。 LS_ENTITY与ER_ENTITY相对应。

ENDIF。

付费偷看设置
发送
3条回答
一只江湖小虾
1楼-- · 2020-09-13 09:24

Gopal,您好

请您可以重新定义方法/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜GET_ENTITYSET并在其中编写相同的代码,并检查其是否适用于EBELN。

哎,真难
2楼-- · 2020-09-13 09:18

嗨Gopal,

我不知道您的确切要求,但是可能没有任何引用约束(在所有这些约束中没有公共密钥),但是关联仍然成立。

您需要创建关联和导航属性。 然后,您需要实现create_deep_entity方法以接收您的有效负载并创建销售订单。 您可以在 https://blogs.sap.com/2014/04/27/step-by-step-development-guide-for-createdeepentity-operation /

四川大学会员
3楼-- · 2020-09-13 09:20

嗨,

我使用下面的代码,现在我得到输出,感谢您的答复。

方法VENDOR_DETAILSSE_GET_ENTITY。
数据:LS_KEY类型/IWBEP/S_MGW_NAME_VALUE_PAIR,
zsw_ekko的lt_ekko类型表,
ls_ekko类型zsw_ekko,
> lt_lfa1 > lt_lfa1类型。
类型:TY_S_TAB的开始,
EBELN类型ZSW_EKKO-EBELN,
LIFNR类型ZSW_LFA1-LIFNR,
NAME1类型ZSW_LFA1-NAME1,
NAME2类型ZSW_LFA1-NAME2,
ORT01 TYPE ZSW_LFA1-ORT01,
STRAS类型ZSW_LFA1-STRAS,
TY_S_TAB的结尾。
数据LS_ENTITY类型TY_S_TAB。
数据LT_ENTITY类型表TY_S_TAB。 br> IF LS_KEY-NAME ='Lifnr'。

从ZSW_LFA1选择单个*到ER_ENTITY的对应字段中,LIFNER EQ LS_KEY-VALUE。
ENDIF。
IF LS_KEY-NAME ='Ebeln' 。
从zsw_ekko中选择一个*到ls_ekko的对应字段中,ebeln eq ls_key-value。
从ZSW_LFA1中选择一个*插入到ER_ENTITY的对应字段中,而lifnr eq ls_ekko
。 br>终止方法。

一周热门 更多>