删除附件-GOS

2020-09-02 09:12发布

         点击此处--->   EasySAP.com群内免费提供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

         点击此处--->   EasySAP.com群内免费提供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

付费偷看设置
发送
6条回答
SAP小黑
1楼-- · 2020-09-02 09:29

您已注释掉一个参数。

导出

* is_object = i_objectd

ip_attachment = i_borident-objkey。

致谢。

Rich Heilman

hengyuye
2楼-- · 2020-09-02 09:39

嗨,由于我们有相同的要求,您如何解决此问题。

粗暴的香蕉
3楼-- · 2020-09-02 09:31

丰富

is_object是可选的,我们只需要传递文件夹密钥(二进制密钥)(即ip_attachment)

     调用方法i_attsrv-> delete_attachment
        出口
 * is_object = i_objectd
          ip_attachment = i_borident-objkey。

 

谢谢

aRs

哎,真难
4楼-- · 2020-09-02 09:29

如果要删除附件......

需要此程序来添加Class Method输入参数值

示例)请参阅以下源代码...

................

环遍i_srgbtbrel。

呼叫方法i_attsrv-> delete_attachment

导出

is_object = i_borident

ip_attachment = i_srgbtbrel-instid_b。

................

ENDLOOP。

祝你好运。

渐行渐远_HoldOn
5楼-- · 2020-09-02 09:34

嗨。

您缺少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。

谢谢。

SAP砖家
6楼-- · 2020-09-02 09:15

您可以在此处找到删除GOS文件的示例代码: https://github.com/keremkoseoglu/ABAP-Library/blob/master/zcl_bc_gos_toolkit.abap 。 此类还包括许多有关GOS的实用程序。

一周热门 更多>