版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
ABAP數(shù)據(jù)批量導(dǎo)入庫表
通用
1.需求說明
開發(fā)說明:在程序開發(fā)過程中,需要為Table準(zhǔn)備大量的測試數(shù)據(jù),手動錄入效率低,
不專業(yè),我們可以采用其他的高級編輯工具(例如:EXCEL,EditPlus)按照Table數(shù)據(jù)存儲結(jié)構(gòu)
準(zhǔn)備好數(shù)據(jù),最后保存為ASC的文本文件,通過執(zhí)行下面開發(fā)的程序,下面的程序執(zhí)行的
功能就是把編輯好的文本文件上的數(shù)據(jù)上載到SAP對應(yīng)的Table中,小程序非常實用,也適
用于我們大量更新Table數(shù)據(jù)時使用,ABAPer們的手頭必備?。?/p>
2.開發(fā)步驟
>文本文件上載技術(shù)
>動態(tài)程序代碼生成技術(shù)
>ABAP動態(tài)程序執(zhí)行技術(shù)
ATXT文本文件對應(yīng)用Table字段編輯技術(shù)
3.代碼示例
REPORTzr_excel__to_db.
TABLES:dd03l,dd02t.
*內(nèi)表
DATA:BEGINOFtabOCCURS10t
fcode(4),
ENDOFtab.
DATA:BEGINOFitabOCCURS0,
chk(1)TYPEc,Checkbox
tabnameLIKEdd031-tabname,"TabIename
fieldnameLIKEdd031-fieIdname,nFeldName
positionLIKEdd031-position,wTable
keyfIagLIKEdd031-keyfIag,nPrimaryKey
datatypeLIKEdd031datatype,"DataType
intlenLIKEdd03l-leng,
ENDOFitab.
DATAitablLIKEitabOCCURSOWITHHEADERLINE.
DATA:BEGINOFuptabOCCURS0,
*text(72)TYPEc,
text(100)TYPEc,
ENDOFuptab.
DATA:BEGINOFerror_message,
linel(72),
Iine2(72),
Iine3(72),
ENDOFerror_message.
DATA:cnt1(8)TYPEc,
fcodeLIKEsyucomm,
changedLIKEs38ebuf__varied,
prog(8)TYPEc,
msg(120)TYPEc,
er_includeLIKEsy-repid,
er_lineLIKEsy-index,
er_offLIKEsytabix,
er_subrcLIKEsy-subrc.
**
*選擇畫面
PARAMETERS:tabnameLIKEdd031-tabname.
**
*START-OF-SELECTION*
START-OF-SELECTION.
IFtabnameISINITIAL
MESSAGE'請輸入數(shù)據(jù)表名稱!,TYPESDISPLAYLIKEE'.
EXIT.
ENDIF.
*上載Tab/e字段分析
SELECTSINGLE*FROMdd02tWHEREtabname=tabname.
IFsy-subrc<>0.
MESSAGE'請輸入正確的數(shù)據(jù)表名稱!'TYPE,S'DISPLAYLIKE'E'.
EXIT.
ENDIF.
SETPF-STATUS'STATUS1.
SELECT*INTOCORRESPONDINGFIELDSOFTABLEitabFROMdd031
WHEREtabname=tabname
ANDas4local="A'
ORDERBYposition.
itabchk='X,.
MODIFYitabINDEX1TRANSPORTINGchk.
*動態(tài)上載程序代碼生成函數(shù)
PERFORMgenerate_upIoad_code.
PERFORMedit_generator_code.
ATUSER-COMMAND.
IFsy-ucomm='EDIT'.
PERFORMedit_generator_code.
ELSEIFsyucomm='EXEC*.
GENERATESUBROUTINEPOOLuptabNAMEprogMESSAGEmsg.
IFmsgISNOTINITIAL
MESSAGEmsgTYPE'S'DISPLAYLIKE'E'.
EXIT.
ENDIF.
*程序代碼語法檢測
PERFORMchcek_syntax_error.
*動態(tài)程序代碼執(zhí)行
PERFORMdyn1INPROGRAM(prog).
ELSEIF(sy-ucomm=*EXIT'ORsyucomm='BACK'ORsyucomm='CANC*).
EXIT.
ENDIF.
*&
*&Formgenerate_up/oad_code
*&
FORMgenerate_upIoad_code.
REFRESHuptab.
uptab-text='REPORTZUPLOAD_TABLENOSTANDARDPAGEHEADING.a.
APPENDuptab.
CONCATENATE'TABLES:'tabname'INTOuptabtext
SEPARATEDBYspace.
APPENDuptab.
uptabtext=*TYPE-POOLS:truxs.
APPENDuptab.
uptab-text="DATA:wa_rowTYPEtruxs_t_text_data.
APPENDuptab.
uptabtext='DATA:BEGINOFUPTABOCCURS0,
APPENDuptab.
LOOPATitabWHEREchk=1
CLEARuptab.
CONCATENATE''itab-fieldname'('itab-intlen')''TYPEC,,
INTOuptabtext+10(80).
APPENDuptab.
ENDLOOP.
uptabtext+6(82)='ENDOFUPTAB.,.
APPENDuptab.
uptab-text='DATA:BEGINOFRESULTOCCURS0.
APPENDuptab.
CLEARuptab.
CONCATENATE'INCLUDESTRUCTURE'itab-tabname
INTOuptab-text+10(80)SEPARATEDBYspace.
APPENDuptab.
uptabtext='DATA:ENDOFRESULT.1.
APPENDuptab.
uptab-text='data:fiIenametyperIgrap-fiIename.'.
APPENDuptab.
uptab-text=T0RMDYN1.1.
APPENDuptab.
uptab-text=1CALLFUNCTION"WS_FILENAME_GET"'.
APPENDuptab.
uptab-text='EXPORTING'.
APPENDuptab.
uptab-text='def_fiIename='*'*'.
APPENDuptab.
uptabtext=1def_path='*D:\'*
APPENDuptab.
r1
uptab-text=MASK=',*xIs,*.xIs;f*.xIsx,*xIsx.
APPENDuptab.
uptab-text='MODE='f0'1\
APPENDuptab.
uptabtext=1TITLE=*'UPLOADfiIe'
APPENDuptab.
uptab-text=rIMPORTING,.
APPENDuptab.
uptab-text='fiIename=fiIename'.
APPENDuptab.
uptab-text='EXCEPTIONS'.
APPENDuptab.
uptab-text='inv_winsys=1
APPENDuptab.
uptabtext="no_batch=2'.
APPENDuptab.
uptab-text=*seIection_canceI=3'.
APPENDuptab.
uptabtext=1selection_error=4'.
APPENDuptab.
uptab-text='OTHERS=5.\
APPENDuptab.
CLEARuptab.
uptab-text+2(88)='CALLFUNCTION''TEXT.CONVERT.XLS.TO.SAP'''.
APPENDuptab.
CLEARuptab.
uptabtext+4(86)='EXPORTING,.
APPENDuptab.
CLEARuptab.
uptab-text+6(84)='i_fiIename=fiIename'.
APPENDuptab.
CLEARuptab.
uptab-text+6(84)='i_line_header=''X'''.
APPENDuptab.
uptab-text+6(84)='i_tab_raw__data=wa_row'.
APPENDuptab.
uptab-text+4(86)='TABLES'.
APPENDuptab.
CLEARuptab.
uptab-text+6(84)='i_tab_converted_data=UPTAB'.
APPENDuptab.
uptab-text='EXCEPTIONS
APPENDuptab.
uptab-text='conversion_faiIed=1'.
APPENDuptab.
uptab-text='OTHERS=2.r.
APPENDuptab.
uptab-text=1IFsy-subrc<>0.1.
APPENDuptab.
uptabtext='MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno".
APPENDuptab.
uptab-text='WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.'.
APPENDuptab.
uptab-text=rENDIF.
APPENDuptab.
uptab-text+2(88)='LOOPATUPTAB.
APPENDuptab.
CLEARuptab.
uptabtext+4(86)='CLEARRESULT.f.
APPENDuptab.
uptab-text+4(86)='MOVE-CORRESPONDINGUPTABTORESULT.,.
APPENDuptab.
uptabtext+4(86)='APPENDRESULT.
APPENDuptab.
uptabtext+2(88)='ENDLOOP.f.
APPENDuptab.
CLEARuptab.
CONCATENATE'MODIFY'itabtabnameFROMTABLERESULT.,
INTOuptabtext+2(88)SEPARATEDBYspace.
APPENDuptab.
uptabtext=1DATA:LINETYPEstring.
APPENDuptab.
uptabtext='DATA:msgTYPEstring.
APPENDuptab.
uptab-text='LINE=LINES(resu11).'.
APPENDuptab.
uptabtext=1CONCATENATE一成功導(dǎo)入…LINE條數(shù)據(jù)!''INTOmsg」.
APPENDuptab.
uptab-text='MESSAGEmsgTYPE,,l".\
APPENDuptab.
uptab-text=1ENDFORM.,.
APPENDuptab.
CLEARuptab.
ENDFORM."generate_upload_code
*
*&Formedit_generator_code
*&*
FORMedit_generator_code.
*&注意:此句話如果要顯示代碼編輯界面,ECC可以不加此句,如果是S47.5以上版本,必需
加上此句
EXPORTbuffer=uptab[]TODATABASEindx(bf)ID'SourceCode
CALLFUNCTION'EDITOR.APPLICATION'
EXPORTING
appIication='BF'
display=1*
name='SourceCode'
IMPORTING
fcode=fcode
changed=changed
TABLES
content=uptab[].
LOOPATuptab.
WRITE:/1uptabtext.
ENDLOOP.
ENDFORM."PRINT_GENERATOR_CODE
*&
*&Formchcek_syntax_error
*&
FORMchcek_syntax_error.
CALLFUNCTION'EDITOR_SYNTAX_CHECK'
EXPORTING
i_global_check=sy-caIId
i_gIobaI_program=sy-repid
ijjrogram=1ZUPLOAD_TABLE'
*i_r2_check-''
*i_r2_destination=''
*i_trdir-z7
IMPORTING
o_error_include=er_include
o_error_line=er_line
o_error_message=error_message
o_error__offset=er_off
o_error_subrc=er_subrc
TABLES
i_source=uptab.
IFer_subrc<>0.
er_line=er_line-2.
WRITE:/1'ErrorLine:*,er_line.
WRITE:/1error_message-line1,error_messageIine2,
error_message-line3.
STOP.
ENDIF.
ENDFORM.“chcek_syntax_error
4.界面執(zhí)行步驟
4.1程序初始界面,輸入Upload的table名.
ABAP動態(tài)生成-Table數(shù)據(jù)Upload程序
數(shù)據(jù)表名稱ZTETS02
4.2程序運行第一界面,顯示程序自動生成的上載程序代碼
緩沖電旦)編輯(或轉(zhuǎn)到叵)實用程序乜)系統(tǒng)(工)幫助也)
。a目fa圈i?的心的國團(tuán)
___干
EditingBufferSourceCode?????
由刷新
REPORTZUPLOAD.TABLE.
TABLES:ZTETS02.
TYPE-POOLS:truxs.
DATA:wa_rowTYPEtruxs_t_text_data.
□DATA:BEGINOFUPTABOCCURS0「
ZCHAR(000020)TYPEC,
ZDATS(000016)TYPEC,
ZTIME'000012)TYPEC,
ZINT(000004)TYPEC,
ioZCURRi000007)TYPEC,
iiZQUAN(000007)TYPEC,
12ENDOFUPTAB.
13□DATA:BEGINOFRESULTOCCURS0.
1-4INCLUDESTRUCTUREZTETS02.
15LDATA:ENDOFRESULT,
16data:filenametyperlgrap-filename.
17□FORMDYN1.
18CALLFUNCTION'WS_FILENAME_GET,
19EXPORTING
20def_filename=''
21def-path='D:\'
22MASK=J,*.Xis,*.xls*.xlsx,*.xlsx.
23MODE='O'
24TITLE='UPLOADfill
25IMPORTING
26filename=filename
27EXCEPTIONS
28inv_winsys=1
29no_batch=2
30selection_cancel=3
31selection_error=4
32OTHERS=5.
4.3程序運行第二界面,確認(rèn)程序自動生成的上載程序代碼,
執(zhí)行
ABAP動數(shù)據(jù)Upload程序
展上傳
夕好|
ABAP動態(tài)生成-Table數(shù)據(jù)Upload程序
REPORTZUPLOAD_TABLE.
TABLES:ZTETS02.
TYPE-POOLS:truxs.
DATA:wa_rowTYPEtruxs_t_text_data.
DATA:BEGINOFUPTABOCCURS0,
ZCHAR(000020)TYPEC,
ZDATS(000016)TYPEC,
ZTIME(000012)TYPEC,
ZINT(000004)TYPEC,
ZCURR(000007)TYPEC,
ZQUAN(000007)TYPEC,
ENDOFUPTAB.
4.程序運行第三界面中小界面,程序執(zhí)行提示輸入上在數(shù)據(jù)具體路徑
UPLOADfils團(tuán)0
查找范圍豆):廠工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實踐教學(xué)與理論教學(xué)的完美結(jié)合
- 竇琴的離婚協(xié)議書
- 課程設(shè)計如何通過檢測
- 二零二五年度風(fēng)險管控企業(yè)安全管理服務(wù)合同2篇
- 學(xué)校食品衛(wèi)生安全防范體系
- 數(shù)字化轉(zhuǎn)型咨詢服務(wù)協(xié)議
- 2024年網(wǎng)絡(luò)廣告代理經(jīng)營權(quán)轉(zhuǎn)讓合同
- 裝飾裝修基礎(chǔ)課程設(shè)計
- 枕式包裝機課程設(shè)計
- 培養(yǎng)孩子的自主消費決策能力-家長的教育責(zé)任
- 制造業(yè)成本精細(xì)化管理
- 工業(yè)互聯(lián)網(wǎng)標(biāo)準(zhǔn)體系(版本3.0)
- 平面直角坐標(biāo)系(單元教學(xué)設(shè)計)大單元教學(xué)人教版七年級數(shù)學(xué)下冊
- 初中生物老師經(jīng)驗交流課件
- 柴油發(fā)電機組采購施工 投標(biāo)方案(技術(shù)方案)
- 股權(quán)招募計劃書
- 新公司成立商業(yè)計劃書
- (精)公司向個人借款合同
- 創(chuàng)業(yè)之星學(xué)創(chuàng)杯經(jīng)營決策常見問題匯總
- 公豬站工作總結(jié)匯報
- 醫(yī)學(xué)專業(yè)醫(yī)學(xué)統(tǒng)計學(xué)試題(答案見標(biāo)注) (三)
評論
0/150
提交評論