簡體   English   中英

標准表中更新字段 LIPS-LFIMG 期間的問題

[英]Problem during update field LIPS-LFIMG in standard table

所有的流程看起來都很好,但是當通過調用函數時,更新也失敗了,需要更新的字段沒有更新,不知道問題出在哪里,有人可以幫我解決這個問題嗎? 我錯過了任何一步嗎?

錯誤信息登錄 LT_PROT

按這里查看

DATA: LT_PROT LIKE PROTT OCCURS 10 WITH HEADER LINE.
  DATA: LT_VBPOK  LIKE VBPOK OCCURS 500  WITH HEADER LINE.
  DATA: LS_VBKOK  LIKE VBKOK.
  DATA: GT_LIPS LIKE LT_LIPS.
  DATA: WA_LIPS TYPE LTY_LIPS.


  DATA: EF_ERROR_ANY_0                TYPE C,
        EF_ERROR_IN_ITEM_DELETION_0   TYPE C,
        EF_ERROR_IN_POD_UPDATE_0      TYPE C,
        EF_ERROR_IN_INTERFACE_0       TYPE C,
        EF_ERROR_IN_GOODS_ISSUE_0     TYPE C,
        EF_ERROR_IN_FINAL_CHECK_0     TYPE C.


  SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF TABLE LT_LIPS
      WHERE VGBEL = LT_BCODE_I-VGBEL
      AND VGPOS = LT_BCODE_I-VGPOS. 
LOOP AT LT_LIPS INTO WA_LIPS.
              WA_LIPS-LFIMG = LT_BCODE_I-MENGE.
              MODIFY LT_LIPS FROM WA_LIPS INDEX SY-TABIX.
            ENDLOOP.

             "VBPOK IS CHANGE INDICATOR, AFTERWARD CALL FUNCTION TO CHANGE FIELD LFIMG IN STANDART TABLE LIPS.
             LOOP AT LT_LIPS INTO GT_LIPS.
               LT_VBPOK-LFIMG = GT_LIPS-LFIMG.
               APPEND LT_VBPOK.
             ENDLOOP.
            ls_vbkok-vbeln_vl   = LT_BCODE_I-REF_DOC.
            CALL FUNCTION 'WS_DELIVERY_UPDATE'
              EXPORTING
                vbkok_wa                    = ls_vbkok    " DELIVERY DOCUMENT NUMBER
                synchron                    = 'X'
                no_messages_update          = ' '
                update_picking              = 'X'
                commit                      = 'X'
                delivery                    = LT_BCODE_I-REF_DOC   "VARIABLE OF DELIVERY DOCUMENT
                nicht_sperren               = 'X'
                if_error_messages_send_0    = space
              IMPORTING
                ef_error_any_0              = ef_error_any_0
                ef_error_in_item_deletion_0 = ef_error_in_item_deletion_0
                ef_error_in_pod_update_0    = ef_error_in_pod_update_0
                ef_error_in_interface_0     = ef_error_in_interface_0
                ef_error_in_goods_issue_0   = ef_error_in_goods_issue_0
                ef_error_in_final_check_0   = ef_error_in_final_check_0
              TABLES
                vbpok_tab                   = lt_vbpok     "TABLE TO BE CHANGE
                prot                        = lt_prot.

首先,此功能模型在其屬性選項卡上的狀態為“未發布”。 這意味着不應在客戶代碼中使用它,因為

  1. SAP 可能會在未來的更新中更改或刪除它而不會發出警告,然后您的代碼將不再工作。
  2. 它很可能沒有正確記錄。
  3. 它可能有隱藏和意想不到的陷阱。 例如,只為特定的極端情況工作,而不是做你期望它做的所有事情,或者需要在之前或之后調用一些其他功能模塊來做某事。
  4. 錯誤處理可能會丟失,或者可能會提供在通常使用模塊的上下文之外具有誤導性的信息

因此,在您使用“未發布”功能模塊之前,您應該檢查事務代碼BAPI是否有官方的 bapi 功能模塊可以滿足您的要求。 Bapi 功能模塊專門用於客戶代碼。 它們有據可查,保證能處理好一切,SAP 承諾在未來的更新中不會破壞它們。


講了這么多,讓我們看看你的實際問題。

每當您遇到包含MSGNOMSGTYMSGID等字段和最多四個通用變量的數據結構時,您就是在處理一條消息。 您可以在事務SE91中查找類似的消息代碼。 在那里我們可以看到消息類 VL 中的數字 280 表示:

交付更新界面中的必填字段缺少 VBELN 00000 00000

這可以引用結構ls_vbkok或表lt_vbpok 我建議您在代碼中設置調試器斷點並找出該 VBELN 字段可能缺少值的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM