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结构。