ECC 6.0中ABAP调用HANA存储过程,带有输入、输出参数
(2014-12-23 14:50:41)
					
											标签:
																				
                            cl_sql_statementstoredprocedurehana输入输出参数 | 
					分类: HANA | 
			我们知道ECC6.0中有几个native SQL的类: cl_sql_statement, cl_sql_connection,
cl_sql_result_set。
     
lr_connection =  cl_sql_connection=>get_connection(  lv_con_name ).
      CREATE  OBJECT lr_sql
        EXPORTING
          con_ref =  lr_connection.
      LV_VBELV =  '4110021559'.
      GET  REFERENCE  OF  LV_VBELV INTO  I_ref.
      lr_sql->set_param(  data_ref =  I_ref
                         inout    =  cl_sql_statement=>c_param_in ).
*
      GET  REFERENCE  OF  lt_results[] INTO  o_ref.
      lr_sql->set_param(  data_ref =  o_ref
                         inout    =  cl_sql_statement=>c_param_out ).
      lr_sql->execute_procedure(  '"_SYS_BIC"."hope.tmp/YZ_PROC_GET_VBFA"'  ).                                                                                                                                    
						
		
		
		
		
		
		
							
		
				
		
				
	可以使用cl_sql_statement的方法EXECUTE_PROCEDURE来调用存储过程,但是在使用方法SET_PARAM设置输入参数时遇到了问题,系统返回的SQL
exception文本为空,sy-subrc值为8, internal error。部分代码如下,
*
纠结了一天都没有搞定,只好放弃这种方式。采用以下方案完成:
1,在HANA系统创建表tt_para,用来记录输入参数,加入唯一码来区分并发执行的情况
2,在HANA系统创建表tt_resulst,用来记录存储过程运行结果
3,修改HANA中的存储过程,不用输入输出参数,修改逻辑为读取tt_para作为输入参数,并将处理结果insert到表tt_result。
ECC中abap程序按如下方式修改:
1,将输入参数insert到HANA表tt_para
2,执行HANA存储过程
3,读取HANA表tt_result
遗留问题:类cl_sql_statement怎么设置输入输出参数呢,为什么报错文本为空,会不会是SAP
BUG?
							
		
加载中…