Abap 如何导入任意类型的参数?

Abap 如何导入任意类型的参数?,abap,Abap,当参数的类型为ANY时,如何将方法(在本例中为get\u properties)提供的内容放入局部变量中 "ES_ATTRIBUTES Exporting Type ANY some_object->get_properties( IMPORTING es_attributes = ????? ). 我试图将其放入此变量中,但不起作用: FIELD-SYMBOLS: <ls_attributes> TYPE any. 字段符号: 键入任何。 在ABA

当参数的类型为
ANY
时,如何将方法(在本例中为
get\u properties
)提供的内容放入局部变量中

"ES_ATTRIBUTES  Exporting   Type    ANY
some_object->get_properties( IMPORTING es_attributes = ????? ).
我试图将其放入此变量中,但不起作用:

FIELD-SYMBOLS:
      <ls_attributes> TYPE any.
字段符号:
键入任何。

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

但根据开发人员编写方法的方式,它可能更具限制性


在这里,我认识到WebUI组件(CRM、SOLMAN等)的一种方法,因此数据对象必须与您正在访问的“
some\u object
”相对应。如果不确定,请调试GET_属性。

实际上,作为调用者,您应该知道要为此
任何
参数导入的类型

您必须了解
GET_PROPERTIES
的协议,并对其进行调试以了解参数的返回类型。在您的方法中,创建一个
数据引用
,并将其分配给
任何
字段符号

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>.
数据:
lr_数据类型参考数据。
字段符号:
键入任何。
创建数据lr_数据类型类型_名称。'你应该知道它的类型
将lr_数据->*分配给。
从我个人的观点来看,用
export
参数类型
ANY
定义方法不是一个很好的做法

您可以使用IF**u属性定义一个接口,并拥有该接口的返回表


或者返回一个名称-值对表。(从方法签名中,它应该返回一个表,GET
PROPERTIES

)。

但是如果我声明了某种类型的数据对象,如何确保导入不会丢失任何信息。在这种情况下,某些_对象是非常通用的,它所引用的确切实体是在运行时设置的。有时get_属性导入一个包含3个字段的结构,有时导入10个具有不同名称的字段。您确定它是如此通用吗?我认为你应该用WebUI或CRM标签来标记你的问题。或者在SAP“SCN”论坛中提问,并准确解释您需要提供更多信息的上下文(CRM、SOLMAN等),例如您正在使用的业务对象层(BOL)中的哪个业务实体。请注意,您还可以使用
GET\u property\u AS\u STRING
一次访问一个属性(如果您知道名称)。您将事务命名为GENIL,以显示用于属性的BOL实体和DDIC结构。