版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ABAP數(shù)據(jù)批量導(dǎo)入庫表
通用
1.需求說明
開發(fā)說明:在程序開發(fā)過程中,需要為Table準(zhǔn)備大量的測試數(shù)據(jù),手動(dòng)錄入效率低,
不專業(yè),我們可以采用其他的高級(jí)編輯工具(例如:EXCEL,EditPlus)按照Table數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)
準(zhǔn)備好數(shù)據(jù),最后保存為ASC的文本文件,通過執(zhí)行下面開發(fā)的程序,下面的程序執(zhí)行的
功能就是把編輯好的文本文件上的數(shù)據(jù)上載到SAP對應(yīng)的Table中,小程序非常實(shí)用,也適
用于我們大量更新Table數(shù)據(jù)時(shí)使用,ABAPer們的手頭必備?。?/p>
2.開發(fā)步驟
>文本文件上載技術(shù)
>動(dòng)態(tài)程序代碼生成技術(shù)
>ABAP動(dòng)態(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.
*動(dòng)態(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.
*動(dòng)態(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程序初始界面,輸入U(xiǎn)pload的table名.
ABAP動(dòng)態(tài)生成-Table數(shù)據(jù)Upload程序
數(shù)據(jù)表名稱ZTETS02
4.2程序運(yùn)行第一界面,顯示程序自動(dòng)生成的上載程序代碼
緩沖電旦)編輯(或轉(zhuǎn)到叵)實(shí)用程序乜)系統(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程序運(yùn)行第二界面,確認(rèn)程序自動(dòng)生成的上載程序代碼,
執(zhí)行
ABAP動(dòng)數(shù)據(jù)Upload程序
展上傳
夕好|
ABAP動(dòng)態(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.程序運(yùn)行第三界面中小界面,程序執(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年撰寫:中國來電閃自動(dòng)搜索收音機(jī)行業(yè)發(fā)展趨勢及競爭調(diào)研分析報(bào)告
- 2024-2030年撰寫:中國RFID識(shí)別系統(tǒng)項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2024-2030年成品鞋加工行業(yè)市場深度調(diào)研及發(fā)展前景與投資研究報(bào)告
- 2024-2030年屋頂自然通風(fēng)器公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年國家甲級(jí)資質(zhì):中國木工園鋸機(jī)融資商業(yè)計(jì)劃書
- 2024-2030年吹風(fēng)系統(tǒng)公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024年短視頻平臺(tái)推廣合作合同
- 2024-2030年單缸液壓舉升機(jī)公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年動(dòng)漫軟件公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年全球及中國高架式開門器行業(yè)產(chǎn)銷狀況及需求前景預(yù)測報(bào)告
- 初一數(shù)學(xué)期中考試分析
- 松果體區(qū)腫瘤護(hù)理
- 招聘司機(jī)方案
- 《施工現(xiàn)場安全防護(hù)標(biāo)準(zhǔn)化防高墜篇》測試附有答案
- 浙江省寧波市2023-2024學(xué)年高一上學(xué)期1月期末地理試題【含答案解析】
- 流動(dòng)資金貸款管理辦法培訓(xùn)1
- 期末測試(試題)-2023-2024學(xué)年冀教版英語五年級(jí)上冊
- 2022年1月上海春季高考英語真題(學(xué)生版+解析版+聽力音頻)
- 教育實(shí)習(xí)匯報(bào)課件
- 如何制作一個(gè)簡易的動(dòng)物細(xì)胞模型
- 2024年便攜式X光機(jī)行業(yè)分析報(bào)告及未來發(fā)展趨勢
評(píng)論
0/150
提交評(píng)論