1

で変更BKPF-BKTXTできFM CHANGE_DOCUMENTたのに、なぜ変更できないBSEG-ZUONRFM CHANGE_DOCUMENTですか?

は次のFM CHANGE_DOCUMENTとおりです。

CALL FUNCTION 'CHANGE_DOCUMENT'
  TABLES
    T_BKDF           = t_bkdf
    T_BKPF           = t_bkpf
    T_BSEC           = t_bsec
    T_BSED           = t_bsed
    T_BSEG           = t_bseg
    T_BSET           = t_bset
*   T_BSEG_ADD       =
          .

変更するコードは次のBKPF-BKTXTとおりです (成功):

wa_t_bkpf-mandt = sy-mandt.
wa_t_bkpf-bukrs = '1000'.
wa_t_bkpf-gjahr = gjahr_import.
wa_t_bkpf-belnr = belnr_import.
wa_t_bkpf-bktxt = zuonr_import.
APPEND wa_t_bkpf TO t_bkpf.

変更するコードは次のBSEG-ZUONRとおりです (失敗):

wa_t_bseg-mandt = sy-mandt.
wa_t_bseg-bukrs = '1000'.
wa_t_bseg-gjahr = gjahr_import.
wa_t_bseg-belnr = belnr_import.
wa_t_bseg-buzei = '1'.
wa_t_bseg-zuonr = zuonr_import.
APPEND wa_t_bseg TO t_bseg.
4

3 に答える 3

1

著者は確認する時間がないので、このケースをテストしたばかりなので、私は彼のためにこれを行うことができます. 署名からすべてのパラメーターを FM に渡すと、更新はスムーズに実行されます。たとえば、次のようにします。

DATA: lt_bkdf TYPE TABLE OF bkdf,
      lt_bkpf TYPE TABLE OF bkpf,
      wa_bkpf TYPE bkpf,
      lt_bsec TYPE TABLE OF bsec,
      wa_bseg  TYPE bseg,
      lt_bsed TYPE TABLE OF bsed,
      lt_bseg TYPE TABLE OF bseg,
      lt_bset TYPE TABLE OF bset.

wa_bkpf-mandt = sy-mandt.
wa_bkpf-bukrs = '5900'.
wa_bkpf-gjahr = gjahr_import.
wa_bkpf-belnr = belnr_import.
wa_bkpf-bktxt = 'Batch'.
APPEND wa_bkpf TO lt_bkpf.

wa_bseg-mandt = sy-mandt.
wa_bseg-bukrs = '5900'.
wa_bseg-gjahr = gjahr_import.
wa_bseg-belnr = belnr_import.
wa_bseg-buzei = '1'.
wa_bseg-zuonr = '20151131'.
APPEND wa_bseg TO lt_bseg.

  CALL FUNCTION 'CHANGE_DOCUMENT'
    TABLES
      t_bkdf           = lt_bkdf
      t_bkpf           = lt_bkpf
      t_bsec           = lt_bsec
      t_bsed           = lt_bsed
      t_bseg           = lt_bseg
      t_bset           = lt_bset
      .

COMMIT WORK.

最後のパラメータを除くすべての FM テーブル パラメータは必須です。

于 2015-12-24T14:09:24.283 に答える
0

フィールド zuonr は、それが属するオブジェクトを参照します。たとえば、発注書です。

買い注文のポジションを支払うと仮定しましょう。bkpf/bseg 内のドキュメントが作成されます (およびそれ以上)。Bseg-Zuonr には、この購入注文ポジションの番号が含まれています。

このフィールドを変更できると、データの参照整合性が失われます。それは、それが作成されたものではない発注書のポジション、またはまったく存在しないものを指します。

したがって、ビジネスの観点から、このフィールドを作成後に変更することは意味がありません。したがって、SAP は変更を許可しません。

于 2015-12-29T22:48:38.177 に答える