法律状态公告日
法律状态信息
法律状态
2017-02-22
授权
授权
2014-10-08
专利申请权的转移 IPC(主分类):G06F9/44 变更前: 变更后: 登记生效日:20140912 申请日:20140410
专利申请权、专利权的转移
2014-08-06
实质审查的生效 IPC(主分类):G06F9/44 申请日:20140410
实质审查的生效
2014-07-09
公开
公开
技术领域
本发明涉及一种参数转换方法,具体说是一种基于SAP平台的不同结构类 型参数转换方法。
背景技术
在SAP平台下,功能的执行过程中如果发生用户人为的参数维护错误导致参 数类型不能匹配,此时SAP会直接DUMP处理,特别是在调用函数Function时, 参数类型或者值不对,会直接导致程序DUMP,错误内容就是类型不匹配,SAP 标准的解决方法用TryCatch语句进行捕获给用户提示来解决问题,但实际情况 有时需要对其赋值,例如往一个字符类型的参数中输入一个数值,这种情况应该 是允许的,但如果是个函数接口,这将导致参数类型不匹配而实现不了,需要开 发人员修改代码来兼容这种情况,利用一个和函数相同类型的参数来转接一下, 把数值参数赋值给字符类型变量,再将字符变量传入函数中,在每个特殊的需求 地方都需要这么去处理,没有一个统一的方式来做,导致工作量大、工作效率低、 错误率高。
发明内容
本发明的目的是提供一种基于SAP平台的不同结构类型参数转换方法,该方 法针对SAP平台中的测试脚本,实现不同参数类型间在可通用的数据值的情况 下可实现赋值,以达到自动的参数类型识别和赋值,实现不同参数类型的转换。
本发明的目的通过以下技术方案实现:
一种基于SAP平台的不同结构类型参数转换方法,其特征在于:该方法通 过指针地址的方式来转移参数值,再根据实际参数类型的需要动态创建传入参数 类型,将指针地址中存放的值赋值到该参数中,实现不同参数类型的转换;具体 步骤如下:
1)判断参数类型为基本类型变量,还是Structure变量或Table变量;若是 Structure变量或Table变量,利用SAP系统平台提供的类cl_abap_tabledescr及 cl_abap_structdescr来获取类型的字段信息,利用 cl_abap_typedescr=>describe_by_data方法获取结构的类型信息及字段信息;
2)定义任意类型的指针变量,用于存储来源参数的值;
3)通过上述获取的来源参数信息得到目的参数的类型信息,利用DATA对 象参照目的参数类型动态创建参数;
4)将指针记录的参数值赋值给DATA对象中,并用TryCatch语句进行异常 捕获,若发生异常,则说明值无法赋值到目的参数中,将不做赋值动作,若不发 生异常,则可以正常赋值,将值赋值到DATA对象中,实现类型不匹配的参数值 传递;
5)对应表格类型变量,获取到每个字段信息之后,针对来源和目的参数都 拆分到字段层级来对应,通过字段名对应,实现不同参数类型的转换。
本发明中,参考语句:CREATEDATA、变量TYPE为目的参数类型。
本发明中,类型转换包含两种,一种是基本类型的变量,包含的类型有:C、 N、D、T、P、F这几种SAP中的基本类型;另一种是SAP所有的复杂结构类型, 有Structure变量和Table变量,对于基本类型变量,采用上述的指针结合动态创 建类型参数方法来实现,对于复杂结构,需要对Structure变量及Table变量的每 行每个字段采用上述基本类型变量的方法来实现类型的转换,按照结构中的字段 名进行匹配。
本方法应用在SAP平台中,不再利用中间变量来做转换操作,而是通过指 针地址的方式来转移参数值,再根据实际参数类型的需要动态创建传入参数类 型,将指针地址中存放的值赋值到该参数中,实现不同参数类型的转换,工作量 小、工作效率高、准确率高。
附图说明
图1是不同类型参数适配器实现流程图。
具体实施方式
本发明中相关技术术语的名词解释如下:
DUMP:SAP平台中程序发生错误无法正常执行下去;Structure:SAP平台 中结构化的参数类型,同一维数组;Table:SAP平台中结构化的参数类型,同 二维数组,每一行是一个Structure类型参数。
一种基于SAP平台的不同结构类型参数转换方法,该方法通过指针地址的 方式来转移参数值,再根据实际参数类型的需要动态创建传入参数类型,将指针 地址中存放的值赋值到该参数中,实现不同参数类型的转换;具体步骤如下:
1.判断参数类型为基本类型变量,还是Structure变量或Table变量。
2.若是Structure变量或Table变量,需利用SAP系统平台提供的类 cl_abap_tabledescr及cl_abap_structdescr来获取类型的字段信息,利用 cl_abap_typedescr=>describe_by_data方法获取结构的类型信息及字段信 息。
3.定义任意类型的指针变量,用于存储来源参数的值。
4.通过上述获取的来源参数信息得到目的参数的类型信息,利用DATA对象 参照目的参数类型动态创建参数,参考语句:CREATEDATA变 量TYPE(目的参数类型)。
5.将指针记录的参数值赋值给DATA对象中,并用TryCatch语句进行异常 捕获,若发生异常,则说明值无法赋值到目的参数中,将不做赋值动作, 若不发生异常,则可以正常赋值,将值赋值到DATA对象中,实现类型不 匹配的参数值传递
6.对应表格类型变量,获取到每个字段信息之后,针对来源和目的参数都需 要拆分到字段层级来对应,通过字段名对应,转换步骤同基本类型变量操 作。
机译: 一种信息建模,表示和集成的信息进程与不同型号的知识表示的无需使用正式语言的方法,这是一种基于结构化数据的有限集合来呈现描述这些对象的半结构化数据的方法
机译: 太阳能聚光器设备是一种基于循环的自然点火冷却和超音速结构,包括一个高平台,该平台最大程度地降低了Coseno效应,并且在其最终部分具有多个弹簧或浮动弹簧,一个或多个弹簧。太阳能电池
机译: 提供不同服务提供商的服务的方法以及用于执行一种这样的方法的基于中央计算机的平台。