一种SAP HANA与ABAP灵活传参的优化方法技术

技术编号:24995874 阅读:37 留言:0更新日期:2020-07-24 17:58
本发明专利技术公开了一种SAP HANA与ABAP灵活传参的优化方法,S1新建参数:分析参数所属底表,不同底表是否存在相同字段名称作传参过滤,根据不同情况新建参数;S2设置过滤条件:在HANA视图相关节点中根据S1的结果分情况设置过滤条件;S3解析表达式:在ABAP中,将用户输入的查询条件解析成供HANA计算视图可适用的表达式;S4传参至HANA视图:对HANA视图进行过滤,得到过滤后的结果,实现基于SAP HANA与ABAP平台灵活传递参数为表达式的方法。本发明专利技术允许传递的表达式为区间,单值,排除,空值等,非常灵活,能够满足业务的条件需求,且提高传递效率。

【技术实现步骤摘要】
一种SAPHANA与ABAP灵活传参的优化方法
本专利技术涉及到了一种跨平台灵活传参方法,具体来说是一种基于SAPHANA和ABAP平台灵活传递参数为表达式的方法。
技术介绍
SAPHANA(High-PerformanceAnalyticAppliance)是一个软硬件结合体,提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析。ABAP是SAP软件的开发语言,也是SAP软件提供的开发平台。业务用户一般并不直接使用HANA和ABAP平台,工作流程一般为ABAP开发前台界面,将用户的条件传递给HANA平台,HANA进行复杂的数据运算并提供最终结果,ABAP开发将结果展示给用户。涉及到ABAP开发平台如何将用户的条件高效并准确地提供给到HANA,需要在HANA中新建参数并对底表数据进行过滤。在SAPHANA平台中,若需要在计算视图中新建参数,允许输入的类型有限,只支持单值(=),多值(or)。在实际的工作流程中,业务的需求多变,如希望支持范围选择(>,<等),支持排除(!=),支持单值以及排除等。目前的方法是ABAP开发人员将用户的需求拆解为若干个值再传回HANA,如用户输入条件:字段<3,字段>1,则将字段=1,2,3传回HANA,以满足现有的参数条件。这种解决方式是允许的,但开发人员需要考虑所有需求进行拆解,且需要将大量数据传到HANA,导致工作量大,效率低。
技术实现思路
本专利技术的目的是提供一种SAPHANA与ABAP灵活传参的优化方法,该方法通过在HANA中设置参数条件,在ABAP端解析用户输入的查询条件为表达式,实现参数值为表达式的传递,允许传递的表达式为区间,单值,排除,空值等,非常灵活,能够满足业务的条件需求,且提高传递效率。本专利技术的目的通过以下技术方案实现:一种SAPHANA与ABAP灵活传参的优化方法,其特征在于:该方法通过HANA端设置参数条件,再在ABAP中,将用户输入的查询条件解析成供HANA计算视图适用的表达式,将相关表达式传递给HANA视图的参数,实现参数为表达式的传递;包括以下步骤:S1新建参数:分析参数所属底表,不同底表是否存在相同字段名称作传参过滤,根据不同情况新建参数;S2设置过滤条件:在HANA视图相关节点中根据S1的结果分情况设置过滤条件;S3解析表达式:在ABAP中,将用户输入的查询条件解析成供HANA计算视图可适用的表达式;S4传参至HANA视图:对HANA视图进行过滤,得到过滤后的结果,实现基于SAPHANA与ABAP平台灵活传递参数为表达式的方法。具体步骤如下:1)分析参数所属底表,不同底表是否存在相同字段名称作传参过滤。2)若1)存在,则我们需要针对不同底表建立字段不同的参数,如A表和B表均需要对同一字段进行传参过滤,则需新建两个参数P_A表_字段名,P_B表_字段名。3)若1)不存在则每个底表只需新建一个相关的参数即可,如P_A表,P_B表。4)根据2)和3)的情况,在HANA端新建参数,新建参数类型为字符串,长度为5000,是否必修和是否多选都不勾选。5)在HANA视图相关节点中分情况设置过滤条件。6)在2)的情况下,则需要在JOIN节点之后进行过滤,语言选择“ColumnEngine”,输入【$$P_A表_字段名$$AND$$P_B表_字段名$$AND其他过滤条件】。7)在3)的情况之下,则可直接在底表的节点过滤,可直接输入【$$P_表名$$】即可,语言同样选择“ColumnEngine”,不允许添加其他过滤条件。8)在ABAP中,需要将用户输入的查询条件解析成可供HANA计算视图可适用的表达式。具体方法如下:使用sap程序zp0001xxxx将输入查询条件解析为HANA视图可适用的参数字符串,将选择屏幕中的Selectoption转为HANAVIEW参数值9)Parameter参数ABAP单独处理。参数in_1eq1=’X’,如果Selectoption为空时,返回(1=1)。10)ABAP处理完表达式之后,直接传参表达式,通过底表或字段名对应,对HANA视图进行过滤,得到过滤后的结果,实现基于SAPHANA和ABAP平台灵活传递参数为表达式。本专利技术通过在HANA中设置参数条件,在ABAP端解析用户输入的查询条件为表达式,实现参数值为表达式的传递,允许传递的表达式为区间,单值,排除,空值等,非常灵活,能够满足业务的条件需求,且提高传递效率。附图说明图1是本专利技术SAPHANA与ABAP灵活传参方法实现流程图。具体实施方式本专利技术中相关技术术语的名词解释如下:传参即参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。一种SAPHANA与ABAP灵活传参的优化方法,其特征在于:该方法通过HANA端设置参数条件,再在ABAP中,将用户输入的查询条件解析成供HANA计算视图适用的表达式,将相关表达式传递给HANA视图的参数,实现参数为表达式的传递;具体步骤如下:1)分析参数所属底表,不同底表是否存在相同字段名称作传参过滤。2)若1)存在,则我们需要针对不同底表建立字段不同的参数,如A表和B表均需要对同一字段进行传参过滤,则需新建两个参数P_A表_字段名,P_B表_字段名。3)若1)不存在则每个底表只需新建一个相关的参数即可,如P_A表,P_B表。4)根据2)和3)的情况,在HANA端新建参数,新建参数类型为字符串,长度为5000,是否必修和是否多选都不勾选。5)在HANA视图相关节点中分情况设置过滤条件。6)在2)的情况下,则需要在JOIN节点之后进行过滤,语言选择“ColumnEngine”,输入【$$P_A表_字段名$$AND$$P_B表_字段名$$AND其他过滤条件】。7)在3)的情况之下,则可直接在底表的节点过滤,可直接输入【$$P_表名$$】即可,语言同样选择“ColumnEngine”,不允许添加其他过滤条件。8)在ABAP中,需要将用户输入的查询条件解析成可供HANA计算视图可适用的表达式。具体方法如下:使用sap程序zp0001xxxx将输入查询条件解析为HANA视图可适用的参数字符串,将选择屏幕中的Selectoption转为HANAVIEW参数值9)Parameter参数ABAP单独处理。参数in_1eq1=’X’,如果Selectoption为空时,返回(1=1)。10)ABAP处理完表达式之后,直接传参表达式,通过底表或字段名对应,对HANA视图进行过滤,得到过滤后的结果,实现基于SAPHANA和ABAP平台灵活传递参数为表达式。下图为一个简单的传递实例,参数数量以及参数内部的表达式可以根据实际情况进行调整。SELECT*FROMCAL_TES本文档来自技高网...

【技术保护点】
1.一种SAP HANA与ABAP灵活传参的优化方法,其特征在于:该方法通过HANA端设置参数条件,再在ABAP中,将用户输入的查询条件解析成供HANA计算视图适用的表达式,将相关表达式传递给HANA视图的参数,实现参数为表达式的传递;包括以下步骤:/nS1新建参数:分析参数所属底表,不同底表是否存在相同字段名称作传参过滤,根据不同情况新建参数;/nS2设置过滤条件:在HANA视图相关节点中根据S1的结果分情况设置过滤条件;/nS3解析表达式:在ABAP中,将用户输入的查询条件解析成供HANA计算视图可适用的表达式;/nS4传参至HANA视图:对HANA视图进行过滤,得到过滤后的结果,实现基于SAP HANA与ABAP平台灵活传递参数为表达式的方法。/n

【技术特征摘要】
1.一种SAPHANA与ABAP灵活传参的优化方法,其特征在于:该方法通过HANA端设置参数条件,再在ABAP中,将用户输入的查询条件解析成供HANA计算视图适用的表达式,将相关表达式传递给HANA视图的参数,实现参数为表达式的传递;包括以下步骤:
S1新建参数:分析参数所属底表,不同底表是否存在相同字段名称作传参过滤,根据不同情况新建参数;
S2设置过滤条件:在HANA视图相关节点中根据S1的结果分情况设置过滤条件;
S3解析表达式:在ABAP中,将用户输入的查询条件解析成供HANA计算视图可适用的表达式;
S4传参至HANA视图:对HANA视图进行过滤,得到过滤后的结果,实现基于SAPHANA与ABAP平台灵活传递参数为表达式的方法。


2.根据权利要求1所述的SAPHANA与ABAP灵活传参的优化方法,其特征在于,具体步骤如下:
1)分析参数所属底表,不同底表是否存在相同字段名称作传参过滤;
2)若1)存在,则针对不同底表建立字段不同的参数;
3)若1)不存在则每个底表只需新建一个相关的参数即可;
4)根据2)和3)的情况,在HANA端新建参数,新建参数类型为字符串,长...

【专利技术属性】
技术研发人员:李林冯曙明颜培俊王纪军蒋王峰
申请(专利权)人:江苏电力信息技术有限公司国网江苏省电力有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1