PM创建外部对象链接

2020-08-26 13:37发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


伙计们,

我有以下FM代码:

 功能Z_ANLAGE_HINZUFUEGEN5。
 *" ------------------------------------------------  ----------------------
 *" *" Lokale Schnittstelle:
 *"正在导入
 *" VALUE(I_OBJECTTYPE)喜欢BORIDENT-OBJTYPE
 *" VALUE(I_OBJECTKEY)喜欢BORIDENT-OBJKEY
 *" VALUE(I_URL)喜欢SOLI-LINE
 *" VALUE(I_URLDES)喜欢SOOD1-OBJDES
 *" VALUE(I_NOCOMMIT)类型XFELD可选
 *"表格
 *" OT_RETURN结构BAPIRET2
 *" ------------------------------------------------  ----------------------


  数据:l_owner像soud-usrnam,
          l_folderid像soodk,
          l_obj_id就像soodk,
          l_objdata像sood1,

          带有标题行的sol_lt_objcont类型表,
          带有标题行的sol_lt_objhead类型表,

          l_object像borident,
          l_reldoc像borident,

          l_syst就像syst。
 * -------------------------------------------------  ----------------------


 * 1。 获取文件夹ID。
    l_owner = sy-uname。
    调用函数" SO_FOLDER_ROOT_ID_GET"
      出口
        所有者= l_owner
        地区='B'
      输入
        folder_id = l_folderid
      例外情况
        communication_failure = 1
        owner_not_exist = 2
        system_failure = 3
        x_错误= 4
        其他= 5。
    如果sy-subrc <> 0。
      l_syst = syst。
      使用ot_return l_syst'1.FolderRoot'执行collect_message2。
      附加ot_return。
      出口。
    万一。

 * 2。 插入物件

    l_objdata-objla ='EN'。
    l_objdata-objdes = i_urldes。
    l_objdata-objsns ='O'。

    将"&KEY&" i_url连接到lt_objcont。
    附加lt_objcont。


    数据ld_document_data类型为SODOCCHGI1。
    ld_document_data-OBJ_DESCR ='测试'。
    " ld_document_data-DOC_SIZE = 100。
    " ld_document_data-OBJ_Name = null。



     数据:ld_document_info类型为SOFOLENTI1。

    调用函数" SO_DOCUMENT_INSERT_API1"
    出口
     folder_id = l_folderid
     document_data = ld_document_data
     document_type ='URL'

   输入
     document_info = ld_document_info
  桌子

   " contents_hex = it_contents_hex

   例外情况
     FOLDER_NOT_EXIST = 1
     DOCUMENT_TYPE_NOT_EXIST = 2
     OPERATION_NO_AUTHORIZATION = 3
     PARAMETER_ERROR = 4
     X_ERROR = 5
     ENQUEUE_ERROR = 6
     。

    如果sy-subrc <> 0。
      l_syst = syst。
      使用ot_return l_syst'2.ObjectInsert'执行collect_message2。
      附加ot_return。
      出口。
    万一。

 * 3。 创建二进制关系

    l_object-objkey = i_objectkey。
    l_object-objtype = i_objecttype。

    将l_folderid ld_document_info连接到l_reldoc-objkey中。
    l_reldoc-objtype ='MESSAGE'。



    调用函数" BINARY_RELATION_CREATE"
      出口
        obj_rolea = l_object
        obj_roleb = l_reldoc
        关系类型='ATTA'
      例外情况
        no_model = 1
        internal_error = 2
        未知= 3
        其他= 4。
    如果sy-subrc <> 0。
      l_syst = syst。
      使用ot_return l_syst执行collect_message2
      '3.BinaryRelationCreate'。
      附加ot_return。
      出口。
    万一。

 * 4。 提交LUW
 *所有成功,发送成功消息。

    清除:l_syst-msgid,l_syst-msgno。
    l_syst-msgty ='S'。
    l_syst-msgv1 ='链接创建成功'。

    使用ot_return l_syst'4执行collect_message2。  URLLinkCreated"。
    附加ot_return。
    如果i_nocommit是初始的。
      调用函数" BAPI_TRANSACTION_COMMIT"。
    万一。




 结束功能。

 像bapiret2一样使用o_return形成collect_message2
                             i_syst像syst
                             i_callpoint像bapiret2-parameter。

    清除o_return。
    o_return-type = i_syst-msgty。
    如果i_syst-msgty是初始的。
      o_return-type ='E'。
      i_syst-msgty ='E'。
    万一。
    o_return-id = i_syst-msgid。
    o_return-number = i_syst-msgno。
    o_return-message_v1 = i_syst-msgv1。
    o_return-message_v2 = i_syst-msgv2。
    o_return-message_v3 = i_syst-msgv3。
    o_return-message_v4 = i_syst-msgv4。

    o_return-parameter = i_callpoint。

    消息ID i_syst-msgid类型i_syst-msgty编号i_syst-msgno
    o_return-message。

  最终形式。

 

现在,当我执行FM时,它将创建一个对象。 就像图片一样,但是其中有noch数据。

我看不到链接和描述。

我需要更改什么?

许多问候
 塔哈

(32.8 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


伙计们,

我有以下FM代码:

 功能Z_ANLAGE_HINZUFUEGEN5。
 *" ------------------------------------------------  ----------------------
 *" *" Lokale Schnittstelle:
 *"正在导入
 *" VALUE(I_OBJECTTYPE)喜欢BORIDENT-OBJTYPE
 *" VALUE(I_OBJECTKEY)喜欢BORIDENT-OBJKEY
 *" VALUE(I_URL)喜欢SOLI-LINE
 *" VALUE(I_URLDES)喜欢SOOD1-OBJDES
 *" VALUE(I_NOCOMMIT)类型XFELD可选
 *"表格
 *" OT_RETURN结构BAPIRET2
 *" ------------------------------------------------  ----------------------


  数据:l_owner像soud-usrnam,
          l_folderid像soodk,
          l_obj_id就像soodk,
          l_objdata像sood1,

          带有标题行的sol_lt_objcont类型表,
          带有标题行的sol_lt_objhead类型表,

          l_object像borident,
          l_reldoc像borident,

          l_syst就像syst。
 * -------------------------------------------------  ----------------------


 * 1。 获取文件夹ID。
    l_owner = sy-uname。
    调用函数" SO_FOLDER_ROOT_ID_GET"
      出口
        所有者= l_owner
        地区='B'
      输入
        folder_id = l_folderid
      例外情况
        communication_failure = 1
        owner_not_exist = 2
        system_failure = 3
        x_错误= 4
        其他= 5。
    如果sy-subrc <> 0。
      l_syst = syst。
      使用ot_return l_syst'1.FolderRoot'执行collect_message2。
      附加ot_return。
      出口。
    万一。

 * 2。 插入物件

    l_objdata-objla ='EN'。
    l_objdata-objdes = i_urldes。
    l_objdata-objsns ='O'。

    将"&KEY&" i_url连接到lt_objcont。
    附加lt_objcont。


    数据ld_document_data类型为SODOCCHGI1。
    ld_document_data-OBJ_DESCR ='测试'。
    " ld_document_data-DOC_SIZE = 100。
    " ld_document_data-OBJ_Name = null。



     数据:ld_document_info类型为SOFOLENTI1。

    调用函数" SO_DOCUMENT_INSERT_API1"
    出口
     folder_id = l_folderid
     document_data = ld_document_data
     document_type ='URL'

   输入
     document_info = ld_document_info
  桌子

   " contents_hex = it_contents_hex

   例外情况
     FOLDER_NOT_EXIST = 1
     DOCUMENT_TYPE_NOT_EXIST = 2
     OPERATION_NO_AUTHORIZATION = 3
     PARAMETER_ERROR = 4
     X_ERROR = 5
     ENQUEUE_ERROR = 6
     。

    如果sy-subrc <> 0。
      l_syst = syst。
      使用ot_return l_syst'2.ObjectInsert'执行collect_message2。
      附加ot_return。
      出口。
    万一。

 * 3。 创建二进制关系

    l_object-objkey = i_objectkey。
    l_object-objtype = i_objecttype。

    将l_folderid ld_document_info连接到l_reldoc-objkey中。
    l_reldoc-objtype ='MESSAGE'。



    调用函数" BINARY_RELATION_CREATE"
      出口
        obj_rolea = l_object
        obj_roleb = l_reldoc
        关系类型='ATTA'
      例外情况
        no_model = 1
        internal_error = 2
        未知= 3
        其他= 4。
    如果sy-subrc <> 0。
      l_syst = syst。
      使用ot_return l_syst执行collect_message2
      '3.BinaryRelationCreate'。
      附加ot_return。
      出口。
    万一。

 * 4。 提交LUW
 *所有成功,发送成功消息。

    清除:l_syst-msgid,l_syst-msgno。
    l_syst-msgty ='S'。
    l_syst-msgv1 ='链接创建成功'。

    使用ot_return l_syst'4执行collect_message2。  URLLinkCreated"。
    附加ot_return。
    如果i_nocommit是初始的。
      调用函数" BAPI_TRANSACTION_COMMIT"。
    万一。




 结束功能。

 像bapiret2一样使用o_return形成collect_message2
                             i_syst像syst
                             i_callpoint像bapiret2-parameter。

    清除o_return。
    o_return-type = i_syst-msgty。
    如果i_syst-msgty是初始的。
      o_return-type ='E'。
      i_syst-msgty ='E'。
    万一。
    o_return-id = i_syst-msgid。
    o_return-number = i_syst-msgno。
    o_return-message_v1 = i_syst-msgv1。
    o_return-message_v2 = i_syst-msgv2。
    o_return-message_v3 = i_syst-msgv3。
    o_return-message_v4 = i_syst-msgv4。

    o_return-parameter = i_callpoint。

    消息ID i_syst-msgid类型i_syst-msgty编号i_syst-msgno
    o_return-message。

  最终形式。

 

现在,当我执行FM时,它将创建一个对象。 就像图片一样,但是其中有noch数据。

我看不到链接和描述。

我需要更改什么?

许多问候
 塔哈

(32.8 kB)
付费偷看设置
发送
1条回答
歪着头看世界
1楼 · 2020-08-26 14:19.采纳回答

因此,一旦成功创建了Office文档,就需要创建GOS二进制关系。

您可以使用FM BINARY_RELATION_CREATE_COMMIT。

< p> PeteA

一周热门 更多>