2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 如何用ABAP代码读取SAP Business partner的附件数据

如何用ABAP代码读取SAP Business partner的附件数据

时间:2022-06-06 13:39:11

相关推荐

如何用ABAP代码读取SAP Business partner的附件数据

Sent: Wednesday, April 3, 9:47 PM

Subject: RE: how to read attachment in BP overview UI

我写了一个report:

DATA:ls_kw_business_object TYPE sibflporb,lv_relation_nameTYPE crmt_relation_name,lt_loios TYPE skwf_ios,lt_phios TYPE skwf_ios,ls_phios TYPE skwf_io,lt_prop_result TYPE crm_kw_propst,ls_prop_result TYPE crm_kw_props.ls_kw_business_object-instid = 'F8D9601DAFD6674F94EA19C1CDBE37DA'.ls_kw_business_object-catid = 'BO'.ls_kw_business_object-typeid = 'BUS1006'.CALL METHOD cl_crm_documents=>get_infoEXPORTINGbusiness_object = ls_kw_business_objectnewest_only = 'X'IMPORTINGios_properties_result = lt_prop_resultloios = lt_loiosphios = lt_phios.

我解决问题的思路:

首先在UI上debug打开contact detail page的时候,contact上面的attachment是怎样从DB里面读出来并且显示在UI上的。

可以参考product的debug:

这个方法的输入是一个bol entity,输出就是ui上的attachment。所以我通过观察lr_entity里面的attribute就能知道为了读取document,需要哪些输入参数。

这里可以发现instID必须传BP的guid进去。

那下一个问题就是如何在你的代码上下文里拿到BP guid呢?我们只知道contact的id。

如果你观察BP的model,你会发现BuilHeader有三个association都能到另一个root object BuilContactPerson,

而BuilContactPerson也有association到BuilHeader。

如果你在UI上修改account ID = 400646的description,你会发现对应的contact ID = 400646的description也自动变了。所以这里的contact和account对应DB(BUT000)里面是同一条entry,BP的guid也就是contact的GUID。

所以你直接用contact的guid作为api的输入就可以了。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。