点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我想了解如何使用odata服务管理多表插入。
问题:
例如,我有两个表:
1。 客户(客户ID为主键)
2。 订单(订单ID为主键,客户ID为外键)
客户表具有一对多关系的订单表。
我想创建OData服务,在这里我可以管理插入/更新/删除事务。
我几乎不知道可以使用"关联"来联接表,但是我不确定以下几点:
1。 "协会"是否支持CRUD操作?
2。 如何管理Customer_ID和Order_ID的自动生成的主键创建?
请咨询。
是,CRUD操作支持关联。 您应该使用批处理操作将父/子/关联链接记录全部插入一批。 您使用content-id($,然后是content-id值)作为父/子记录中自动生成的主键的占位符。
不幸的是,您不能将UI5 OData模型用于content-id批处理操作。 您必须手动编码请求正文。 这是即将在10月启动的即将进行的HANA开发的"下一步" openSAP课程的一个示例。
XSODATA服务定义:
XSJS退出逻辑:
以及用于构建请求的UI5控制器事件逻辑:
Sanjoy Saha -我5年前的回答没事做 与UI5中的odata模型。 我真的建议您在适当的UI5标签中提出这个新问题。
此消息已被审核。
嗨,斯里哈里,
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
一周热门 更多>