Table Maintenance - ooxxvv/MySAPnotes GitHub Wiki

Table Maintenance

  • 簡易的維護 Table 資料的程式 。
  • 有時會稱之為 Table Maintenance 。

在建立 Table 時的設定

建立 Table Maintain 的設定

  • 若發現在 PRD 上無法使用,出現 TK 430 的訊息,請做如下設定:
  • Dialog Data Transport Detalis -> no, or user, recording routine
  • Compare Flag -> Automatically Adjustable

在 Table Maintain 中寫程式

  • Event

  • 05 (Creating a new entry) => 新增資料時,在按下 「Enter」後,會一筆一筆的檢查資料,並觸發此事件。

  • 系統變數

  • <VIEW_NAME>_total => 整個 Table 的資料會放置到此 Internal table 中。

  • <table1> => Event 被觸發時,游標所指向的那一筆資料。

  • <table2> => Event 被觸發時,游標「將要」指向的那一筆資料 (下一筆資料)。

  • Screen

  • 若程式有改變值,則要用 <status>-upd_flag = 'X'. 來更新資料

Tcode

Function

View Cluster

  • SE54 => 建立較複雜的 Table maintain

Lock 機制

  • 預設是 Lock 整個 Table
  • VIEW_ENQUEUE => Lock 或 Unlock 都是用此 Function。
  • 依條件只 Lock 特定記錄的方式有以下幾種:
  • 建立 Report 來呼叫 Table Maintenance,在程式中先解掉預設的整個 Table 的 Lock Object,再以自行客製的 Lock Object 來 Lock 資料
  • 建立 Report 來呼叫 Table Maintenance,但利用 VIEW_MAINTENANCE_LOW_LEVEL 這個 Function 決定要抓取那些資料到 Table Maintenance 中
  • 建立 Maintenance View,並把要當作條件的欄位的 Maintenance Flag 設為「S」,並以此 View 建立 Table Maintenance。使用者在維護時系統會出現一個小視窗,要求必需輸入這個幾個欄位的條件(只能單選),這樣系統就只會 Lock 此條件下的記錄,而不是整個 Table 。
    • 輸入條件只能單選,沒有像自已寫的 Selection Screen 那樣靈活彈性
    • 輸入條件會出現在多筆資料的上方,和一般的 Table Maintenance 的畫面有一些不同,例如下圖: TableMaintenance_Subset.png
⚠️ **GitHub.com Fallback** ⚠️