点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在使用以下代码删除GOS附件。
数据:i_borident类型borident, i_attsrv类型对cl_gos_document_service的引用。 i_objectd-objtype ='YATTA'。 i_objectd-logsys ='BO'。 i_objectd-objkey = inumber。 选择* from srgbtbrel"获取GOS链接 到表i_srgbtbrel 其中instid_a eq i_objectd-objkey 和typeid_a eq i_objectd-objtype 和catid_a eq i_objectd-logsys 和reltype eq'ATTA'。 如果sy-subrc eq 0。 创建对象i_attsrv。 在i_srgbtbrel循环。 i_borident-objkey = i_srgbtbrel-instid_b。 调用方法i_attsrv-> delete_attachment 出口 * is_object = i_objectd ip_attachment = i_borident-objkey。 提交工作。 结束循环。 万一。
我从表SRGBTBREL获取正确的二进制密钥,并将其传递给方法DELETE_ATTACHMENT,并获取sy-subrc eq 0,然后附件也显示在文档中。 但是,如果要通过服务对象删除,则它已完美删除了附件。 代码中有什么错误?
谢谢
aRs
消息的编辑者:
aRs
您已注释掉一个参数。
导出
* is_object = i_objectd
ip_attachment = i_borident-objkey。
致谢。
Rich Heilman
嗨,由于我们有相同的要求,您如何解决此问题。
丰富
is_object是可选的,我们只需要传递文件夹密钥(二进制密钥)(即ip_attachment)
谢谢
aRs
嗨
如果要删除附件......
需要此程序来添加Class Method输入参数值
示例)请参阅以下源代码...
................
环遍i_srgbtbrel。
呼叫方法i_attsrv-> delete_attachment
导出
is_object = i_borident
ip_attachment = i_srgbtbrel-instid_b。
................
ENDLOOP。
祝你好运。
嗨。
您缺少SO_OBJECT_DELETE_IN_VB:
...
数据ls_folder_id类型为soodk。
数据ls_object_id类型为soodk。
在i_srgbtbrel处循环。
i_borident-objkey = i_srgbtbrel-instid_b。
调用方法i_attsrv-> delete_attachment
导出
* is_object = i_objectd
ip_attachment = i_borident-objkey。
ls_folder_id = i_borident-objkey(17)。
ls_object_id = i_borident-objkey + 17(17)。
调用函数'SO_OBJECT_DELETE_IN_VB'
在更新任务中
导出
folder_id = ls_folder_id
object_id = ls_object_id。
结束循环。
提交工作并等待。
在cl_gos_document_service-> delete_attachment的末尾,有一行:
调用函数'GOS_ADD_KEY'导出ip_objkey = ip_attachment。
此函数将已删除的项目添加到表gt_obj_to_delete中。
此后,该标准使用gt_obj_to_delete以包含LSGOSITSF01的形式从DELETE_OBJECTS调用SO_OBJECT_DELETE_IN_VB。
谢谢。
您可以在此处找到删除GOS文件的示例代码: https://github.com/keremkoseoglu/ABAP-Library/blob/master/zcl_bc_gos_toolkit.abap 。 此类还包括许多有关GOS的实用程序。
一周热门 更多>