會計科目作爲 FI 模塊非常重要的主數據,數據導入是非常重要的一環。本篇介紹利用 SAP 標準的批輸入導入程序 RFBISA00
結合 LSMW 進行導入的方法。使用標準導入程序的優點是通用性比較好,不必每個項目都重複操作一遍。
批輸入程序 RFBISA00
適用於 ECC6 之前的版本,因爲 S/4 Hana 變更了會計科目主數據的數據表 SKB1 的字段結構,而 RFBISA00
的程序代碼並沒有考慮這些字段結構的變化,相應變更程序的字段結構,所以不能使用。具體來說:
1)增加了 總賬科目類型 字段,該字段有如下幾種類型:
- X: 資產負債表科目
- P: 初級成本和收入 (既是會計科目,又是成本要素)
- N: 營業外收支 (只在 FI 中作爲科目使用,不是成本要素)
- S: 次級成本
2)增加了 Cost Element Type: 如果啓用了 Controlling area,並且科目的類型爲 P 或者 N , 才顯示這個字段
會計科目主數據的字段結構
RFBISA00
程序定義的數據結構包括如下類型:
BGR00 record type 0 session prefix
BSK00 record type 1 header data
BSKA1 record type 2 data record (chart of accounts data)
BSKAT record type 2 data record (name of G/L accounts)
BSKB1 record type 2 data record (company code data)
BSKX record type 5 extended header record
程序並且規定導入文件必須符合下面的兩種結構:
Alternative 1
Record type 0 (BGR00)
Record type 1 (BSK00)
Record type 2 (BSKA1)
Record type 2 (BSKAT)
Record type 2 (BSKB1)
Record type 1 (BSK00)
...
Record type 0 (BGR00)
...
Alternative 2
Record type 0 (BGR00)
Record type 5 (BSKX)
Record type 5 (BSKX)
...
Record type 0 (BGR00)
...
好在我們並不需要進入源代碼瞭解各個結構所包含的字段,SAP 提供的數據傳輸工具 SXDA_TOOLS 可以幫我們瞭解主數據的數據結構。用事務碼 SXDA_TOOLS 進入下面的界面,選擇對象類型和程序:
然後通過菜單 Goto -> Mapping plan 進入下面界面:
界面列出了會計科目主數據的所有字段,點擊 Save to PC File 按鈕導出爲文件,最好保存爲 Excel File,以方便在後續步驟中利用本步驟導出的數據。對導出的文件稍作整理,保留必要的字段,一般來說,下面這些字段已經夠了:
LSMW 導入會計科目主數據
創建 LSMW 工程
LSMW 工程包括project、sub-project 和 object 三個層次,這個主要是爲了增加靈活性,比如可以定義:
- Project: ZFI, 表示 FI 模塊數據導入
- Sub-project: ZFI01 表示主數據導入,ZFI02 表示業務數據導入
- Object: ZFICOA 表示會計科目導入
維護工程的屬性
LSMW 工程屬性定義採取什麼方法來導入數據,可以是以下 4 種:
- 錄屏
- Batch input / Direct input
- BAPI
- IDoc
會計科目主數據導入使用 SAP 提供的 Batch input 程序:
完成該步驟後保存。下面界面是選擇的程序:
維護源結構
對於程序 RFBISA00
來說,需要的字段是確定的,在導入的時候,數據來自文本文件,所以關鍵就是確定文本文件包括哪些字段,與目標結構如何對應。源結構 (source structure)就是定義一個包含導入字段的容器。因爲後面我們基於事務碼 FS01 來導入,所以把源結構命名爲 FS01:
維護源字段
在這個步驟中,利用 Table Maintenance 界面,可以將 SXDA_TOOLS 導出的數據拷貝過來,注意 CHAR 類型需要替換爲 C。操作過程:
維護後,源結構下面的字段如下:
維護結構的關係
本步驟定義源結構與目標結構的關係。目標結構是批輸入程序定義的,源結構只有一個,點擊創建關係按鈕,自動選擇爲 FS01。
維護字段映射
在維護源字段的時候,使用過的是系統字段名稱,這樣在本步驟中,可以利用 Auto field mapping 功能。
因爲我們在維護源結構的時候,沒有包括 TCODE 這個字段,因爲對於導入數據來說,都將用 FS01 這個事務碼,所以不用從文件中導入,在本步驟維護爲固定值即可。 選中 TCODE 字段,點擊工具欄上的 Insert Rule 按鈕,在彈出的對話框中,選擇 Constant,然後維護爲 FS01:
指定文件
LSMW 從文本文件中導入數據,在指定文件前,我們先編制要導入的數據,這一步也利用 SXDA_TOOLS 下載的 Excel 文件,用於生成所需要的列。將 Excel 另存爲製表符分割的 txt 文件,可以保留第一行表頭。
注意下面界面要與文本文件的結構一致。
讀取文件的數據
下面的幾個步驟,包括 Assign Files, Read Data, Display Read Data ,Convert Data , Display Converted Data 依次執行即可。到 Display Converted Data 這個步驟,SAP 顯示了目標結構及導入的內容,可以點進去查看。
點擊 RGB00,可以看到各字段被填充爲:
創建批輸入會話
要執行文件數據導入,需要選擇 Update File Immediately。
如果這一步驟在創建 Batch Input Session 時有錯誤,需要根據錯誤返回到 Read Data 這一步修改數據後再重複後面的操作步驟,直到問題解決。
如果本步驟無錯誤,使用事務碼 SM35 查看生成的批輸入會話,然後在 SM35 中執行或者 在 LSMW 中執行最後一步跳轉到 SM35。
LSMW 導入導出
LSMW 支持將操作步驟導出爲腳本,並在另外系統中導入,從而支持不同的項目間共享。
- 導出:Extras -> Export Project
- 導入: Extras -> Import Projects