首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更新BUT050 & BUT051表?

如何更新BUT050 & BUT051表?
EN

Stack Overflow用户
提问于 2021-12-21 16:45:36
回答 1查看 428关注 0票数 1

我有以下场景:我使用BAPI BAPI_BUPR_RELATIONSHIP_CHANGE来更改validuntildate。(BUT050-DATE_TO / BUT051-DATE_TO)。但我还需要更新字段BUT051-PAFKTBUT050中的自定义字段(让我们称之为ZZFIELD)。为此,我从内部表中更新BUT050 / BUT051

最后,如果我编写COMMIT WORK或调用FM BAPI_TRANSACTION_COMMIT,则只更新来自BAPI_BUPR_RELATIONSHIP_CHANGE的字段。如果我在结尾没有写任何东西,那么只有来自UPDATE FROM TABLE的字段会被更新。

如何更新所有字段?是否有任何BAPI可以允许我从BUT051-PAFKT修改BUT050和自定义字段?

用于测试的示例代码:

代码语言:javascript
运行
复制
DATA: lt_return   TYPE bapiret2_t,
      lv_kunnr    TYPE kunnr VALUE '111',
      lv_partner  TYPE bu_partner VALUE '222',
      lv_rel_cat  TYPE bu_reltyp VALUE 'BUR001',
      lv_new_date TYPE sy-datum VALUE '20300101',
      lt_but051   TYPE TABLE OF but051.

CALL FUNCTION 'BAPI_BUPR_RELATIONSHIP_CHANGE'
      EXPORTING
        businesspartner1               = lv_kunnr
        businesspartner2               = lv_partner
        relationshipcategory           = lv_rel_cat
        validfromdate                  = sy-datum
        validuntildate                 = sy-datum
        validuntildatenew              = lv_new_date
        datetox                        = abap_true
     TABLES
       RETURN                         = lt_return.

SELECT *
  FROM but051
  INTO TABLE lt_but051
    WHERE partner1 = lv_kunnr
      AND partner2 = lv_partner
      AND reltyp   = lv_rel_cat.

LOOP AT lt_but051 ASSIGNING FIELD-SYMBOL(<ls_but051>).
  <ls_but051>-pafkt = '0003'.
ENDLOOP.

UPDATE but051 FROM TABLE lt_but051.

COMMIT WORK.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 10:31:46

试试这个(或它的包装器BAPI_BUPR_CONTP_CHANGE):

代码语言:javascript
运行
复制
DATA: ls_person                    TYPE bapibus1006_central_person.
DATA: ls_person_x                  TYPE bapibus1006_central_person_x.
DATA: ls_central                   TYPE bapibus1006_central.
DATA: ls_central_x                 TYPE bapibus1006_central_x.
DATA: lt_return                    TYPE bapiret2_t.

is_data-function = '0001'. "<-- your PAFKT
is_data_x-function = abap_true.

* changes of the central data
CALL FUNCTION 'BUPR_CONTP_CHANGE'
  EXPORTING
    iv_partner                     = is_data-partner1
*   IV_PARTNER_GUID                =
    iv_contactperson               = is_data-partner2
*   IV_CONTACTPERSON_GUID          =
*   IV_DATE_FROM                   =
*   IV_DATE_TO                     =
*   IV_DEFAULTRELATIONSHIP         =
*   IV_DEFAULTRELATIONSHIP_X       =
    is_data                        = is_data-data
    is_data_x                      = is_data_x-central
*   IV_TESTRUN                     = ' '
  TABLES
    et_return                      = lt_return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  EXPORTING
    WAIT = abap_true.

还检查我的回答关于更新关系和相应的注意事项。

对于BUT050中的自定义字段,你不能就这样添加一个新字段并更新它,您需要改变BOL模型

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70438844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档