更新表bsid的功能模块(字段:cession_kz) [英] Function modules to update table bsid (field: cession_kz)

查看:22
本文介绍了更新表bsid的功能模块(字段:cession_kz)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于某个程序,我需要更新表 bsid.字段 cession_kz 需要更新.我找了很多功能模块,但没有一个能满足我的需求.有人知道解决这个问题的最佳实践吗?

For a certain program I need to update table bsid. The field cession_kz needs to be updated. I've looked for many function modules but none of them fit my needs. Does someone know a best practice to solve this problem?

推荐答案

BSID 是 BSEG 客户项目的二级索引,所以直接更新会导致数据库不一致,任何更新必须通过 BSEG.

BSID is a secondary index for BSEG customer items, so updating it directly will lead to database inconsistencies and any update must go via BSEG.

你可以使用像FI_ITEMS_MASS_CHANGE这样的功能模块.此 FM 通过为事务 FB02(更改文档)运行 BDC 来更新 BSEG.当 BSEG 中的相关(客户)项目发生变化时,相应的 BSID 记录也会发生变化.

You can use a function module like FI_ITEMS_MASS_CHANGE. This FM updates BSEG by running a BDC for transaction FB02 (Change Document). When a relevant (customer) item is changed in BSEG, the corresponding BSID record is changed as well.

参见下面的示例代码:

DATA: ls_bseg   TYPE bseg,
      lt_errdoc TYPE tpit_t_errdoc,
      lt_fname  TYPE tpit_t_fname,
      lt_buztab TYPE tpit_t_buztab.

* Field name to be changed
APPEND 'CESSION_KZ' TO lt_fname.

* New field value
ls_bseg-cession_kz = 'AB'.

* Selection of items to be changed
* Only select customer items to avoid problems in batch input
SELECT bukrs belnr gjahr buzei koart umskz bschl mwart mwskz
  FROM bseg
  INTO CORRESPONDING FIELDS OF TABLE lt_buztab
  WHERE belnr = '1400000000' AND
        bukrs = '1000' AND
        koart = 'D'. "Customers

CALL FUNCTION 'FI_ITEMS_MASS_CHANGE'
  EXPORTING
    s_bseg     = ls_bseg
  IMPORTING
    errtab     = lt_errdoc[]
  TABLES
    it_buztab  = lt_buztab
    it_fldtab  = lt_fname
  EXCEPTIONS
    bdc_errors = 1
    OTHERS     = 2.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

确保您允许使用事务 SM30 或通过自定义在维护视图 V_TBAER 中进行更改:
财务会计→财务会计全局设置→文档→行项目→文档更改规则,行项目.

Make sure you allow changes in maintenance view V_TBAER with transaction SM30 or through customizing:
Financial Accounting → Financial Accounting Global Settings → Document → Line Item → Document Change Rules, Line Item.

注意:
应为传递给 FM 的所有公司代码定义质押指标:

Note:
Pledging indicators should be defined for all company codes passed to the FM:

财务会计→应收账款和应付账款→客户账户→主数据→准备创建主数据→定义应收账款质押指标.

否则,该字段将不可用于批量输入并且 FM 将导致错误.

If not, the field will not be available for the batch input and the FM will result in an error.

这篇关于更新表bsid的功能模块(字段:cession_kz)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆