HANA ABAP AMDP方法中的CONVERT_CURRENCY

2020-08-23 21:01发布

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

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


通过HDB语言SQLSCRIPT的数据库过程进行METHOD convert_curr
                      选项为只读。
    
     声明lv_date日期;
     声明lv_new_currency nvarchar(3);
        
     从" PUBLIC"中选择" current_date"到" lv_date"。
    
     lv_new_currency:='EUR';
    
     et_result =选择不同的航空公司,
                                 flight_connection,
                                 价格为old_price,
                                 货币为old_currency,
                                 CONVERT_CURRENCY(
                                     " AMOUNT" =>价格,
                                     " SOURCE_UNIT" =>货币,
                                     " TARGET_UNIT" =>:lv_new_currency,
                                     " REFERENCE_DATA" =>:lv_date,
                                     "客户" =>'100',
                                     " ERROR_HANDLING" =>'设置为空',
                                     " SCHEMA" => current_schema
                                         )作为new_price,
                                    :lv_new_currency作为new_currency
                           来自:it_flights;
   终结法。


 上面的代码行在CONVERT_CURRENCY行上给出了错误,下面我提到了错误声明


 SQLSCRIPT消息:函数或过程的名称无效:CONVERT_CURRENCY&A0&A1&A2&A3&A4&A5&A6&A7&A8&A9

 不知道是什么问题。 上面这行有什么问题。

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

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


通过HDB语言SQLSCRIPT的数据库过程进行METHOD convert_curr
                      选项为只读。
    
     声明lv_date日期;
     声明lv_new_currency nvarchar(3);
        
     从" PUBLIC"中选择" current_date"到" lv_date"。
    
     lv_new_currency:='EUR';
    
     et_result =选择不同的航空公司,
                                 flight_connection,
                                 价格为old_price,
                                 货币为old_currency,
                                 CONVERT_CURRENCY(
                                     " AMOUNT" =>价格,
                                     " SOURCE_UNIT" =>货币,
                                     " TARGET_UNIT" =>:lv_new_currency,
                                     " REFERENCE_DATA" =>:lv_date,
                                     "客户" =>'100',
                                     " ERROR_HANDLING" =>'设置为空',
                                     " SCHEMA" => current_schema
                                         )作为new_price,
                                    :lv_new_currency作为new_currency
                           来自:it_flights;
   终结法。


 上面的代码行在CONVERT_CURRENCY行上给出了错误,下面我提到了错误声明


 SQLSCRIPT消息:函数或过程的名称无效:CONVERT_CURRENCY&A0&A1&A2&A3&A4&A5&A6&A7&A8&A9

 不知道是什么问题。 上面这行有什么问题。
付费偷看设置
发送
4条回答
jovirus
1楼-- · 2020-08-23 21:34

在您的编码中,REFERENCE_DATE参数的名称错误。 您将其命名为" REFERENCE_DATA"。 它必须是" REFERENCE_DATE"。 修复该功能将被识别之后。

路亽曱_Ryan
2楼-- · 2020-08-23 21:57

我尝试构建以下的FLIGHT示例中的FLIGHT示例,我提到了完整的类代码,其中在CONVERT_CURRENCY函数上存在代码错误,但我没有 知道那里是什么问题。

 CLASS zcl_hex_amdp_001定义
   上市
   最后
   创建公众。


 公共部分。
   接口if_amdp_marker_hdb。
   接口if_oo_adt_class运行。


  TYPES:开始于ty_result_line,
          航空公司s_carrname,
          flight_connection TYPE s_conn_id,
          old_price TYPE s_price,
          old_currency TYPE s_currcode,
          new_price TYPE s_price,
          new_currency TYPE s_currcode,
         结束于ty_result_line。


  TYPES:开始于ty_flight_line,
          航空公司s_carrname,
          flight_connection TYPE s_conn_id,
          价格类型s_price,
          货币类型s_currcode,
          结束于ty_flight_line。


 类型tt_result_tab带有空键的ty_result_line类型标准表。
 类型tt_flight_tab带有Empty键的ty_flight_line类型标准表。


  方法get_flights
         出口
            VALUE(et_result)类型tt_result_tab
         引发cx_amdp_execution_error。


  方法convert_curr
           输入
             VALUE(it_flights)类型tt_flight_tab
           出口
             VALUE(et_result)类型tt_result_tab
           引发cx_amdp_execution_error。


 受保护的部分。
 专用部分。
 ENDCLASS。


 类别zcl_hex_amdp_001实施。


   方法if_oo_adt_classrun〜main。


   终结法。


   用于HDB语言SQLSCRIPT的数据库过程convert_curr方法
                      选项为只读。
    
     声明lv_date日期;
     声明lv_new_currency nvarchar(3);
        
     从" PUBLIC"中选择" current_date"到" lv_date"。
    
     lv_new_currency:='EUR';
    
     et_result =选择不同的航空公司,
                                 flight_connection,
                                 价格为old_price,
                                 货币为old_currency,
                                 CONVERT_CURRENCY(
                                     " AMOUNT" =>价格,
                                     " SOURCE_UNIT" =>货币,
                                     " TARGET_UNIT" =>:lv_new_currency,
                                     " REFERENCE_DATA" =>:lv_date,
                                     "客户" =>'100',
                                     " ERROR_HANDLING" =>'设置为空',
                                     " SCHEMA" => current_schema
                                         )作为new_price,
                                    :lv_new_currency作为new_currency
                           来自:it_flights;
   终结法。


   HDB语言SQLSCRIPT的数据库过程get_flights方法
                      使用SFLIGHT SCARR只读选项
                      ZCL_ID0163E_AMDP_001 => CONVERT_CURR。


   it_flights =选择不同的c.carrname作为航空公司,
                               f.connid为flight_connection,
                               f。价格为价格,
                               f。货币作为货币
                                  来自" SFLIGHT",为F
                                  内部联接" SCARR"为c
                                  在f.carrid = c.CARRID上;
                                 
       调用" ZCL_ID0163E_AMDP_001 => CONVERT_CURR"(:it_flights,et_result);
   终结法。


 ENDCLASS。
 
Nir深蓝
3楼-- · 2020-08-23 21:36

您可以检查该函数存在于哪个架构中吗? 快速查找的方法是在HANA级别上触发此查询SELECT * FROM SYS.OBJECTS WHERE OBJECT_NAME ='CONVERT_CURRENCY'。

找到后,请在该模式之前添加此函数名称。

一只江湖小虾
4楼-- · 2020-08-23 21:35

您好@ iyankannu Iyankannu

您可以找到解决方案。 我也面临着同样的问题。

问候,

坦美。

一周热门 更多>