使用OData服务管理多表插入

2020-08-21 16:45发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我想了解如何使用o...

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

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


大家好,

我想了解如何使用odata服务管理多表插入。

问题:

例如,我有两个表:

1。 客户(客户ID为主键)

2。 订单(订单ID为主键,客户ID为外键)

客户表具有一对多关系的订单表。

我想创建OData服务,在这里我可以管理插入/更新/删除事务。

我几乎不知道可以使用"关联"来联接表,但是我不确定以下几点:

1。 "协会"是否支持CRUD操作?

2。 如何管理Customer_ID和Order_ID的自动生成的主键创建?

请咨询。

4条回答
三十六小时_GS
2020-08-21 17:11

嗨,斯里哈里,

1)=== >>>不可能进行多表CRUD操作,但是我们可以对UI5进行读操作,并且可以使用NAVIGATE和ASSOCIATION ........ i创建多个表。 被引用用于CRUD操作的许多块但没有解决方案,因此我决定并创建了一个用于CREATE/UPDATE过程的过程。给定的过程同时执行CREATE和UPDATE

我在ODATA中对其操作进行了测试,但其工作状况良好,但条件应基于主键和相关的业务逻辑。

2)ODATA服务的创建/更新过程?????

Pr_Create_Update过程

步骤" shema"。" folder.subfolder.procedures :: prcedurename_create_update"(

在"您想要的目录表"行中,

OUT错误"错误消息的表类型::错误")

语言SQLSCRIPT

SQL安全调用程序

默认模式"模式名称"

AS

开始

/*****************************

说明:该过程将从OData调用到

从用户界面更新主车辆详细信息

*****************************/

DECLARE i_a NVARCHAR(20);

DECLARE i_b NVARCHAR(20);

DECLARE i_c NVARCHAR(30);

DECLARE i_d NVARCHAR(3);

DECLARE i_e NVARCHAR(3);

DECLARE I_f NVARCHAR(3);

DECLARE i_a_COUNT个nvarchar;

DECLARE i_b_COUNT个nvarchar;

SQLEXCEPTION的DECLARE退出处理程序

开始

错误=选择:: SQL_ERROR_CODE作为http_status_code,

:: SQL_ERROR_MESSAGE作为error_message,

" SQL EXCEPTION"作为虚拟对象的详细信息;

END;

选择a,b,c,d,e,f到i_a,i_b,i_c,i_d,i_e,i_f FROM:row;

从"表名"中将count(*)选择为i_a_COUNT,其中a =:i_a;

从"表名"中将count(*)选择到i_b_COUNT中,其中b =:i_b;

if(((:i_a_COUNT = 0 and:I_b_COUNT> 0)或((:I_a_COUNT> 0 and:I_b_COUNT = 0))然后

错误=选择500作为http_status_code,

"无效输入"作为error_message,

"无效的数字/b数字"作为哑元的详细信息;

elseif(:I_a_COUNT = 0和:I_b_COUNT = 0)然后

插入"表名"

(" a"," b"," c"," d"," e"," f")值

(I_a,i_b,i_c,i_d,i_e,i_f);

elseif(:I_a_count> 0和:I_b_COUNT> 0)然后

更新"模式名称"。" folder.subfolder ::表名称" SET" a" =:i_a,i_b,i_c,i_d,i_e,i_f其中a =:I_a AND b =:I_b;

如果结束;

END;



感谢和问候,

SUNNY

一周热门 更多>