删除订单BOM的链接的文档(linked document)[BAPI_DOCUMENT_SAVEOBJECTLINKS]

1, 前台操作

Tcode:CSKB 输入销售订单号和行项目,点击start order browser展开订单BOM(order BOM).

2017-02-16_15-27-02

<img class="alignnone size-full wp-image-3025" src="http://www.baidusap.com/wp-content/uploads/2017-02-16_15-27-02.png" alt="2017-02-16_15-27-02" width="854" height="548" srcset="http://www.baidusap.com/wp-content/uploads/2017-02-16_15-27-02.png 854w, http://www.baidusap.com/wp-content/uploads/2017-02-16_15-27-02-740x475.png 740w, http://www.baidusap.com/wp-content/uploads/2017-02-16_15-27-02-768x493.png 768w" sizes="(max-width: 854px) 100vw, 854px" />

找到对应的物料,右键display

2017-02-16_15-28-06

<img class="alignnone size-full wp-image-3026" src="http://www.baidusap.com/wp-content/uploads/2017-02-16_15-28-06.png" alt="2017-02-16_15-28-06" width="812" height="545" srcset="http://www.baidusap.com/wp-content/uploads/2017-02-16_15-28-06.png 812w, http://www.baidusap.com/wp-content/uploads/2017-02-16_15-28-06-740x497.png 740w, http://www.baidusap.com/wp-content/uploads/2017-02-16_15-28-06-768x515.png 768w" sizes="(max-width: 812px) 100vw, 812px" />

可以看到链接的文档信息,

2017-02-16_15-28-36

<img class="alignnone size-full wp-image-3027" src="https://i-blog.csdnimg.cn/blog_migrate/ec07f2cd6766d704922d3d4f67dda569.png" alt="2017-02-16_15-28-36" width="774" height="520" srcset="https://i-blog.csdnimg.cn/blog_migrate/ec07f2cd6766d704922d3d4f67dda569.png 774w, http://www.baidusap.com/wp-content/uploads/2017-02-16_15-28-36-740x497.png 740w, http://www.baidusap.com/wp-content/uploads/2017-02-16_15-28-36-768x516.png 768w" sizes="(max-width: 774px) 100vw, 774px" />

2, 例子程序

可以通过函数BAPI_DOCUMENT_SAVEOBJECTLINKS删除order BOM中链接的文档。

逻辑如下:

删除order bom 行项目中链接的文档

1,STPO中读取objectkey,如果要删除订单BOM 头中的链接文档需要从STKO中读取

2,调用BAPI_DOCUMENT_GETOBJECTDOCS取得链接的文档信息

3,调用BAPI_DOCUMENT_SAVEOBJECTLINKS删除文档和订单BOM的链接关系

REPORT ztest_del_link.
DATA:g_guidx         TYPE stpo-guidx,
     g_objectkey     TYPE bapi_doc_drad-objectkey,
     git_list        TYPE STANDARD TABLE OF bapi_doc_keys,
     gwa_list        TYPE bapi_doc_keys,
     git_objectlinks TYPE TABLE OF bapi_doc_drad,
     gwa_objectlinks TYPE bapi_doc_drad,
     gwa_return      TYPE bapiret2.
* 测试,所以只取了1条,实际会有多条的情况
SELECT SINGLE stpo~guidx
  INTO g_guidx
  FROM stpo
 INNER JOIN kdst ON stpo~stlnr = kdst~stlnr
 WHERE stpo~stlty = 'K'
   AND stpo~idnrk = 'B1-10'      "Material Number
   AND kdst~vbeln = '0690000318' "Sales Order Number
   AND kdst~vbpos = '200'        "Sales order Item
   AND kdst~werks = '8800'       "Plant
       .
g_objectkey = g_guidx.
refresh:git_list.
CALL FUNCTION 'BAPI_DOCUMENT_GETOBJECTDOCS'
  EXPORTING
    objecttype   = 'STPO_DOC'  "order bom 头用STKO_DOC
    objectkey    = g_objectkey
*   CURRENTVERSIONSONLY       =
    date         = sy-datum
*  IMPORTING
*   RETURN       =
  TABLES
    documentlist = git_list[].

LOOP AT git_list INTO gwa_list.
  CLEAR   gwa_objectlinks.
  REFRESH:git_objectlinks.
  gwa_objectlinks-deletevalue = 'X'.
  gwa_objectlinks-objecttype  = 'STPO_DOC'. "Order BOM头用STKO_DOC
  gwa_objectlinks-objectkey   = g_guidx.
  APPEND gwa_objectlinks TO git_objectlinks.
  CALL FUNCTION 'BAPI_DOCUMENT_SAVEOBJECTLINKS'
    EXPORTING
      documenttype    = gwa_list-documenttype
      documentnumber  = gwa_list-documentnumber
      documentpart    = gwa_list-documentpart
      documentversion = gwa_list-documentversion
    IMPORTING
      return          = gwa_return
    TABLES
      objectlinks     = git_objectlinks.

* Commit or Rollback
  IF gwa_return-type NA 'AE'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ENDIF.

ENDLOOP.

运行结果,订单BOM行项目上的链接的文档已删除,也就是文档与订单BOM没有链接关系了。

2017-02-16_16-08-14

<img class="alignnone size-full wp-image-3028" src="http://www.baidusap.com/wp-content/uploads/2017-02-16_16-08-14.png" alt="2017-02-16_16-08-14" width="695" height="542" />

以上。

转载于:https://www.cnblogs.com/datie/p/11435829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值