当参数类型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>.
从我个人的角度来看,定义参数类型EXPORTING
ANY
的方法并不是一个很好的做法。
您可以使用 IF_**_PROPERTY 定义一个接口,并且您有一个此接口的返回表。
或者返回名称-值对表。(从方法签名中,它应该返回一个TABLE,GET_属性(。