LSMW應用


LSMW應用... 43

創建項目... 43

步驟詳解... 44

1步:基本屬性維護Maintain Object Attributes. 45

2步:創建數據源結構Maintain Source Structures. 47

3步:維護數據源結構字段Maintain Source Fields. 47

4步:數據源結構與目標結構關聯Maintain Structure Relations. 48

5步:源與目標結構字段映射及轉換規則配置Maintain Field Mapping and Conversion Rules. 48

6固定值、翻譯規則、自定義Form維護Maintain Fixed Values, Translations, User-Defined Routines. 52

7指定數據源文件Specify Files. 52

8為數據源結構分配文件Assign Files. 53

9將文件內容讀取到服務器上Read Data. 53

10查看讀取到數據Display Read Data. 54

11數據轉換Convert Data. 54

12查看轉換后的數據Display Converted Data. 55

13步:創建批量輸入(BDC)會話Create Batch Input Session. 55

14步:執行批量輸入(BDC)會話Run Batch Input Session

LSMW應用

全稱為Legacy System Migration Workbench(舊系統遷移工作台),該工具設計的初衷是為了SAP初期的數據導入,例如在ERP切換時將舊系統中的商品主數據導入SAP,但在運維階段,該工具也可以實現數據的批量維護操作。

 

本節同樣以 AS02 為例來講解如何通過LSMW平台來實現對AS02數據的批量修改。

創建項目

image083

輸入項目名稱及描述:

image084

繼續輸入子項目名稱與Object名稱,名稱沒有特殊要求:

image085

 

點擊執行,進入LSMW維護工作台:

點擊按鈕,前面將顯示執行步驟順序號,共需要維護14步:

雙擊某行,可以進行到每個步驟的維護界面

 

注:上面的14步是以錄屏方式來更新業務數據,如果是采用其他方式如IDOCBAPI程序方式來更新時,則列出的步驟會不同,具體不同的步驟可以點擊按鈕來查看:

但是后面兩個紅框中是否有,要依賴於你在第1步所選擇的數據更新方式,這兩個紅框中的步驟應該不會同時出現,即使你全部鈎上了

步驟詳解

通過上面看到,LSMW維護數據操作可以分十幾個步驟,每個步驟表示不同的操作,在數據導入時必須按步驟的順序來操作

1步:基本屬性維護Maintain Object Attributes

此步主要是選擇批量維護方式(圖中四選一),這里我們選擇像前面BDCCATT那樣,過錄屏幕代碼進行批量維護(此種方式需借助於SM35SHDB)。從下圖看出,還可以通過程序、BAPIIdoc的方式來批量數據的維護,總之,就是數據最終是采取什么方式來進行修改

 

點擊按鈕:

維護好事務代碼確定后,將進入到AS02事務錄屏中,本例也只能描述及主資產號文本進行修改,修改后保存,返回到Create Recording界面。在該界面可以看到所錄制的屏幕字段信息:

並按以下表修改資產編號、公司代碼、描述及資產文本號碼四個字段:

如在第一個NAME字段維護名稱“ANLN1”,該字段名即為后面5ZAS02目標結構中的成員字段

上面除了手工定義每個字段外,還可以采用快速默認方式,點擊按鈕,則會使用錄屏中的屏幕字段的字段名作為目標結構ZAS02的成員字段名:

注:不需要的字段,請一定要清空或不填,否則會成為目標結構ZAS02的成員字段

 

最后將上面錄制的名為ZAS02記錄輸入到屬性界面的批量錄制方式中:

2步:創建數據源結構Maintain Source Structures

要實現數據的導入必須有數據源,該步就是定義此結構的

3步:維護數據源結構字段Maintain Source Fields

此步是能上一步(第2)所定義的結構具體的分配字段,並在該維護界面中顯示出了上一步創建的結構名:

 

 

4步:數據源結構與目標結構關聯Maintain Structure Relations

上面第23步配置的是存放數據源結構的一些維護,所配置的名為ZAS02_STRUCT(用來存儲服務器上的ZAS02_SUBPROJECT_OBJECT.lsmw.read中的數據)的數據源結構最終要賦值給名為ZAS02目標結構中。ZAS02里存儲的就是業務所使用的最終數據(實質上存儲的是服務服務器上的ZAS02_SUBPROJECT_OBJECT.lsmw.conv文件中的數據),數據源ZAS02_STRUCT里的數據賦值給ZAS02目標時,可能會存在一些轉換規則而不是直接賦值,這些都是在下一步所配置的,這里只是指定一下需要將哪個結構(這里為上面第2步所配置的數據源ZAS02_STRUCT)與目標結構進行關聯

 

因為上面第2只創建一個數據源結構ZAS02_STRUCT,所以就默認配置好關系,此步可以直接跳過。如果配置了多個數據源結構,則這里需要手工進行指定:

5步:源與目標結構字段映射及轉換規則配置Maintain Field Mapping and Conversion Rules

上面第4步中只是指定將數據源結構ZAS02_STRUCT映射到目標結構ZAS02,但具體怎么映射(哪個字段到哪個字段、賦值時是直接賦值還是要經過轉換等)是沒有的,這里就是對這兩個結構中的字段時行映射及轉換

 

打開維護界面時,顯示出了目標結構ZAS02的具體內部字段結構(發現有4個字段,4個字段就是在第1步中所配置的那4個字段),現將目標結構中的字段與數據源結構中的字段進行映射:

 

映射完后,界面如下:

上面只是指定每個字段的映射關系,但映射時之間的轉換規則沒有特意去指定,都是默認的,默認就是直接進行普通的賦值操作(MOVE)。這里還提供了其他很多的轉換規則,點擊按鈕,可以看到提供的轉換規則:

 

下面具體來看每個規則的使用:

 

:目標字段不會做映射,直接采用ABAP內存中變量初使值:

:常量

 

:固定值,其實與上面常量差不多,只不是該固定值有個名:

 

:應該是翻譯??有待驗證

將數據源結構ZAS02_STRUCT-ANLN1字段的值按照'AxbXCydYEzfZ'對照表進行翻譯,並將翻譯結構存儲到目標結構ZAS02-ANLN1字段中。傳入的'AxbXCydYEzfZ'為翻譯對照表串包含成對字母其中每對的第一個字母用第二個字母替換lsmw_translate Form應該是調用TRANSLATE <c> USING <r>語句來進行翻譯的(具體的翻譯規則還可以在下一步第6步進行配置)。

 

:加上前綴后賦值給目標字段

 

:加上后綴

 

將多個源字段串連起來賦給目標字段。注:需要至少分配兩個源字段都可以操作

 

刪除左邊前面所有空格,實現就是調用 SHIFT 語句來實現

 

:如果系統提供的轉換規則不適用,則還可以自己來寫一些ABAP轉換代碼

 

:調用定義的Form這里只是定義Form接口,具體的定義在下一步第6步完成

 

還沒弄明白!

 

:對C類型的字段在不足長時,在前面補全前導0

6固定值、翻譯規則、自定義Form維護Maintain Fixed Values, Translations, User-Defined Routines

在這一步主要是對上一步第5步規則中使用到的固定值、翻譯規則、自定義Form的維護,而固定值在第5步就可以直接維護了,且翻譯規則基本上不用具體配置,使用TRANSLATE語句的默認規則?

 

在這時主要是對第5步用到的自定義Form進行定義

ur_ANLN1為第5ANLN1字段所配的轉換規則Form

7指定數據源文件Specify Files

可以選擇本地文件也可以將本地文件上傳到服務器后作為數據源

 

這里只是定義數據源文件,具體將文件內容讀取后存儲到哪個數據源結構內表,是在下面第8步中分配的,這里只作文件的定義

 

上面ZAS02_SUBPROJECT_OBJECT.lsmw.readZAS02_SUBPROJECT_OBJECT.lsmw.conv兩個文件是自動生成的,其中 *.read文件是用來直接存儲從用戶指定的數據源中的文件內容,是沒有經過任何轉換的原始數據,在后面9會使用到此文件;而 *.conv文件則是存儲最后的轉換的最終數據,即最終業務所需的數據,此文件會在11用到

 

 

經后面的測試,這里雖然是 ASCII 編碼,但如果使用中文登錄后上傳,是不會出現亂碼的

8為數據源結構分配文件Assign Files

此步的作用是將上面第7步定義的文件分配到2定義的數據源結構中,即文件與結構內表的映射

上面的ZAAA結構是為了測試亂定義的,在此演示中沒有用

9將文件內容讀取到服務器上Read Data

可以指定數據的讀取的范圍,不指定時,會默認從數據行的第一行讀取到數據行的最后一行

執行后,文件中的內容已經將被讀入到ZAS02_SUBPROJECT_OBJECT.lsmw.read文件中了:

10查看讀取到數據Display Read Data

此步就是顯示上一步第9所讀取的內容

 

 

注:如果文件中有中文字符,則要使用中文語言登錄,否則會出現亂碼

11數據轉換Convert Data

此步會按鈕5指定的規則,對每個字段進行轉換,數據會從ZAS02_SUBPROJECT_OBJECT.lsmw.read文件中,經轉換后存儲到ZAS02_SUBPROJECT_OBJECT.lsmw.conv文件中

由於本演示中各字段沒有經過特殊的轉換,只是簡單的賦值操作,所以實質上也只是簡單賦值過程

 

12查看轉換后的數據Display Converted Data

此步就是顯示上面第10轉換后的數據

 

 

13步:創建批量輸入(BDC)會話Create Batch Input Session

 

創建后我們可以使用SM35來查看到剛被創建的會話:

 

同時,通過SM35可以監測在服務器上產生的*read*.conV兩個文件,操作如下:

SM35界面上,點擊會輸入SHDB,在SHDB操作界面,打開文件監視器:

14步:執行批量輸入(BDC)會話Run Batch Input Session

此步實質上就是進入到SM35操作界面:

 

由於本例是通過錄屏的方式來修改業務數據,所以運行時實質上是按 SM35方式來執行的。

 

當執行完后,數據就會更新到SAP系統中,整個LSMW就完成了。會話執行完后,會被刪除掉

,如果是修改了文件,需要重新執行第91113步,及第14步即可

 

總體來說,LSMW功能可以將數據讀取到后台來進行處理,適合於那些耗時大的批量數據,但LSMW操作麻煩,不適合用戶直接操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM