字段“GET_ATTRIBUTE(”是未知的。它既不在指定的表之一中,也不在“DATA”语句中定义

时间:2018-04-17 09:48:16

标签: abap webdynpro

我正在开发我的第一个webdynpro应用程序。 我使用向导从我的componentcontroller调用一个功能模块。我使用另一个向导从视图方法调用componentcontroller方法。 之后我尝试使用节点属性作为参数,但是我得到了标题中的错误。错误指向第一个参数(Activestatus)。

这是view方法的代码。

private <T> T getResult(Class clazz){
    String fileName = "/path/file.json";
    File file = new File(BaseEndpoint.class.getResource(fileName.getFile());
    T result = null;

    try {
        result = mapper.readValue(file, clazz);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return result;
}

将函数作为参数调用是非法的,我是否必须为每个参数创建一个局部变量,否则就会出现其他问题。

我是ABAP和Webdynpro的新手。谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

1)您似乎正在使用ABAP的旧版本(在7.02之前),您不能将方法指示为参数的参数(或者由于下面的问题,编译器会给出错误的消息))

2)此外,GET_ATTRIBUTE不是一种功能性方法,例如你不能进行variable = instance->method( ... )之类的操作;您必须使用IMPORTING字来获取属性值。

解决方案:您可以编写类似的代码(使用正确的类型声明lv_activestatus):

lo_el_filternode->get_attribute( EXPORTING name = 'ACTIVESTATUS'
                                 IMPORTING value = lv_activestatus ).
lo_componentcontroller->execute_getorders(
            activestatus = lv_activestatus
            ...