如何导入 ANY 类型的参数?



当参数类型ANY时,我如何将方法 - 在这个例子中get_properties- 给我一个局部变量?

"ES_ATTRIBUTES  Exporting   Type    ANY
some_object->get_properties( IMPORTING es_attributes = ????? ).

我试图将其放入此变量中,但这不起作用:

FIELD-SYMBOLS:
<ls_attributes> TYPE any.

在 ABAP 中,这意味着您可以使用任何类型的数据对象(最简单的方法是用DATA声明它(。

但根据开发人员对方法进行编码的方式,它可能更具限制性。

在这里,我认识到WebUI组件的方法(CRM,SOLMAN,...(,因此数据对象必须对应于您正在访问的"some_object"。如果您不确定,请对GET_PROPERTIES进行调试。

实际上,作为调用方,您应该知道要为此ANY参数导入的类型。

您必须知道GET_PROPERTIES协议并对其进行调试才能知道参数的返回类型。在方法中,创建一个DATA REFERENCE并将其分配给ANY字段符号。

Data:
lr_data type ref to data.
Field-symbols:
<lt_properties> type any. 
create data lr_data type TYPE_NAME.  'You should know the type
assign lr_data->* to <lt_properties>.

从我个人的角度来看,定义参数类型EXPORTINGANY的方法并不是一个很好的做法。

您可以使用 IF_**_PROPERTY 定义一个接口,并且您有一个此接口的返回表。

或者返回名称-值对表。(从方法签名中,它应该返回一个TABLE,GET_属性(。

相关内容

  • 没有找到相关文章