SAP模塊化技術(shù)與異常處理_第1頁
SAP模塊化技術(shù)與異常處理_第2頁
SAP模塊化技術(shù)與異常處理_第3頁
SAP模塊化技術(shù)與異常處理_第4頁
SAP模塊化技術(shù)與異常處理_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、模塊化技術(shù)與異常處理模塊化:a)好處有三:使程序更加的清晰,易讀,易于維護。實現(xiàn)代碼的復(fù)用。實現(xiàn)數(shù)據(jù)封裝,數(shù)據(jù)或功能僅通過接口與模塊外部發(fā)生聯(lián)系,這也相應(yīng)地增加了程序的可讀寫和可維護性。b)分類:i.子程序ii.功能模塊子程序:子程序的定義方式:using參數(shù)名type類型using參數(shù)名using參數(shù)名changing參數(shù)名Form(子程序名)Form(子程序名)Form(子程序名)Endform.在調(diào)用此form時,調(diào)用的方式為:Perform子程序名.注意:當(dāng)定義的子程序有輸入和輸出參數(shù)的時候。一定要保持調(diào)用時傳入的參數(shù)和在定義子程序的參數(shù)的類型要一致。功能模塊:功能模塊建立的方法與過程

2、:進入功能函數(shù)的界面(t-code:se37或者se80一下以se80為準(zhǔn))先將建立的類型選擇為一個函數(shù)組:3.如果在以有的函數(shù)組下建立functiongroup的話。直接輸入所要建立的函數(shù)組名或者是已有的名字。函數(shù)組Z_TEST_SAP4輸入短文本,保存到本地對象。保存以后直接active本函數(shù)組。錯誤提示:REPORT/PROGRAMstatementmissing,orprogramtypeisI_(INCLUDE).如果出現(xiàn)此錯誤。那么函數(shù)組肯定是沒有active,進入se80對函數(shù)組active一下。就可以了。4.進入se37建立functiongroup。輸入已有的函數(shù)組。保存到本

3、地對象。進行對functiongroup的import、export、changing、tablelen進行設(shè)置。最后進入sourcecode標(biāo)簽進行對此functiongroup進行代碼的編輯。編碼結(jié)束,active后回執(zhí)行程序進行調(diào)試。在se38程序中調(diào)用此functiongroup時的方式為CALLFUNCTIONZ_SAP4_TEST_YYEXPORTINGINPUT_1=INPUT_2=*IMPORTINGOUTPUT變量的生存周期:在程序中可以定義全局變量和局部變量。當(dāng)全局變量和局部變量同名時,局部變量起作用,而全局變量的值不改變。還有一點就是如果當(dāng)調(diào)用一個form并且傳入其參數(shù)時

4、,而form中對其值進行修改,那么在另一個form中調(diào)用全局變量時,其值不變。也就是說,在form中對全局變量進行修改以后,其修改的值值存在于此form中。還可以建立靜態(tài)變量,建立的方式為:Static變量名type類型。在程序中建立一個靜態(tài)變量以后。無論時在程序中任何一個位置對其進行修改,那么其值會直接更新為修改以后的值。代碼的復(fù)用:代碼的復(fù)用可以大量的降低程序的耦合度,也可以讓程序更加的清晰,易于維護,在開發(fā)的代碼量也會相應(yīng)的減少。主要使用的方式有include程序、宏程序、functiongroup等方式。主要說一下宏程序。宏程序的建立方式:Define宏的名字.statementsEn

5、d-of-definition.在一個宏中可以調(diào)用多個宏,方式為。Define宏名字statements.調(diào)用宏的名字并給他所需要的占位符的個數(shù)End-of-definition.Define之前調(diào)用的宏名字statements.End-of-definition.注意:在一個宏中最多可以定義9個占位符。而占位符的方式是&1,&2&9.不可以遞歸調(diào)用,可以調(diào)用其他宏。異常處理:1.靜態(tài)異常這種異常引起的原因基本上是語法的錯誤,因此比較容易更改。2.運行時異常運行時異常的捕獲與處理:將需要處理異常的語句塊放在,非類異常如下:Catchsystem-exceptions非類異常的名字=數(shù)字.End

6、catch.ifsy-subrc=數(shù)字.進行異常處理.Endif.類的異常:dataMYREFtypereftoCX_SY_ARITHMETIC_ERROR.“定義一個異常類的對象dataERR_TEXTtypeSTRING.dataRESULTtypeI.try.RESULT=1/0.catchcx_sy_arithmetic_errorintoMYREF.ERR_TEXT=MYREF-GET_TEXT().endtry.類異常的異常類型與名字和從屬的關(guān)系:(Associatedsuperclass:CXSYARITHMETIC_ERROR)BCDZERODIVIDECXSYZERODIVI

7、DECOMPUTE_FLOAT_ZERODIVIDECX_SY_ZERODIVIDECOMPUTEINTZERODIVIDECX_SY_ZERODIVIDEADDFINTOVERFLOWCX_SY_ARITHMETIC_OVERFLOWBCDOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEBCDOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTECOSHOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEEXPRANGECXSYARITHMETICOVERFLOWC0MPUTEFL0ATDIV0VERFL0WCX_SY

8、_ARITHMETIC_OVERFLOWCOMPUTEFLOATMINUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEFLOATPLUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEFLOATTIMESOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEINTABSOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEINTDIVOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEINTMINUSOVERFLOWCX_SY_ARITHMETIC_OVERF

9、LOWCOMPUTEINTPLUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEINTTIMESOVERFLOWCX_SY_ARITHMETIC_OVERFLOWC0MPUTE_L0G10_ERR0RCX_SY_ARITHMETIC_OVERFLOW,CXSYARGOUTOFDOMAINC0MPUTE_L0G_ERR0RCX_SY_ARITHMETIC_OVERFLOW,CXSYARGOUTOFDOMAINCOMPUTEMATHOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEPOWRANGECX_SY_ARITHMETIC_OV

10、ERFLOWCOMPUTESINHOVERFLOWCX_SY_ARITHMETIC_OVERFLOWC0MPUTEAC0SD0MAINCXSYARGOUTOFDOMAINCOMPUTEASINDOMAINCXSYARGOUTOFDOMAINCOMPUTEATANDOMAINCXSYARGOUTOFDOMAINC0MPUTEC0SHD0MAINCXSYARGOUTOFDOMAINC0MPUTEC0SD0MAINCXSYARGOUTOFDOMAINCOMPUTEEXPDOMAINCXSYARGOUTOFDOMAINCOMPUTEMATHDOMAINCXSYARGOUTOFDOMAINC0MPUTE

11、P0WD0MAINCXSYARGOUTOFDOMAINCOMPUTESINHDOMAINCXSYARGOUTOFDOMAINCOMPUTESINDOMAINCXSYARGOUTOFDOMAINCOMPUTE_SQRT_DOMAINCXSYARGOUTOFDOMAINCOMPUTE_TANH_DOMAINCXSYARGOUTOFDOMAINCOMPUTECOSLOSSCX_SY_PRECISION_LOSSCOMPUTEMATHLOSSCX_SY_PRECISION_LOSSCOMPUTESINLOSSCXSYPRECISIONLOSSCOMPUTETANLOSSCXSYPRECISIONLOS

12、SBCDFIELDOVERFLOWCX_SY_CONVERSION_OVERFLOWExceptiongroup:CONVERSION_ERRORS(Associatedsuperclass:CX_SY_CONVERSION_ERROR)BCDFIELDOVERFLOWCX_SY_CONVERSION_OVERFLOWCONVTOVERFLOWCX_SY_CONVERSION_OVERFLOWCONVTCODEPAGECXSYCONVERSIONCODEPAGECONVTNONUMBERCXSYCONVERSIONNONUMBERBCD_OVERFLOWCX_SY_ARITHMETIC_OVE

13、RFLOWExceptiongroup:CREATE_DATA_ERRORS(Associatedsuperclass:CX_SY_CREATE_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringthecreationofdataobjects.CREATE_DATA_UNKNOWN_TYPECX_SY_CREATE_DATA_ERRORCREATE_DATA_NOT_ALLOWED_TYPECX_SY_CREATE_DATA_ERRORCREATEDATALENNOTALLOWEDCX_SY_CREATE_DATA_ERRORCREA

14、TEDATAILLEGALLENGTHCX_SY_CREATE_DATA_ERRORCREATEDATAILLEGALDECIMALSCXSYCREATEDATAERRORCREATEDATAILLEGALINITSIZECXSYCREATEDATAERRORExceptiongroup:CREATE_OBJECT_ERRORS(Associatedsuperclass:CX_SY_CREATE_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringthecreationofobjects.CREATEOBJECTCLASSNOTFOUND

15、CXSYCREATEOBJECTERRORCREATEOBJECTCLASSABSTRACTCX_SY_CREATE_OBJECT_ERRORCREATEOBJECTCREATEPRIVATECX_SY_CREATE_OBJECT_ERRORCREATEOBJECTCREATEPROTECTEDCX_SY_CREATE_OBJECT_ERRORExceptiongroup:DATA_ACCESS_ERRORS(Associatedsuperclass:CX_SY_DATA_ACCESS_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduring

16、subfieldaccess(withoffset/length)todataobjects.DATAOFFSETNEGATIVECX_SY_RANGE_OUT_OF_BOUNDSDATALENGTHNEGATIVECXSYRANGEOUTOFBOUNDSDATALENGTH0CXSYRANGEOUTOFBOUNDSDATALENGTHTOOLARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSREFIWRONGSECTIONCX_SY_RANGE_OUT_OF_BOUNDSSTRI

17、NGOFFSETNEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRINGOFFSETTOOLARGECXSYRANGEOUTOFBOUNDSSTRINGLENGTHNEGATIVECXSYRANGEOUTOFBOUNDSSTRINGLENGTHTOOLARGECX_SY_RANGE_OUT_OF_BOUNDSSTRINGOFFSETLENGTHTOOLARGECXSYRANGEOUTOFBOUNDSDATAOFFSETLENGTHNOTALLOWEDCXSYOFFSETNOTALLOWEDSinceasubfieldaccesscanoccurinalmostallsta

18、tements,nokeywordscanbeassigned.Exceptiongroup:DYNAMIC_CALL_METHOD_ERRORS(Associatedsuperclass:CX_SY_DYN_CALL_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringadynamicmethodcall.Thesearenormallyerrorsthattriggerasyntaxerrorifthecallisstatic.DYNCALLMETHCLASSABSTRACTCXSYDYNCALLILLEGALCLASSDYNCALL

19、METHCLASSNOTFOUNDCXSYDYNCALLILLEGALCLASSDYNCALLMETHCLASSCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHNOTFOUNDCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHNOCLASSMETHODCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHPRIVATECX_SY_DYN_CALL_ILLEGAL_METHODDYNCA

20、LLMETHPROTECTEDCXSYDYNCALLILLEGALMETHODDYNCALLMETHEXCPNOTFOUNDCXSYDYNCALLEXCPNOTFOUNDDYNCALLMETHPARAMKINDCX_SY_DYN_CALL_ILLEGAL_TYPEDYNCALLMETHPARAMLITLMOVECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMTABTYPECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMTYPECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMMISSINGCXSYDYNCALLP

21、ARAMMISSINGDYN_CALL_METH_PARREF_INITIALCX_SY_DYN_CALL_PARAM_MISSINGDYNCALLMETHPARAMNOTFOUNDCXSYDYNCALLPARAMNOTFOUNDDYNCALLMETHREFISINITIALCX_SY_REF_IS_INITIALThefollowingkeywordsareassignedtothisexceptiongroup:CALLMETHODExceptiongroup:FILE_ACCESS_ERRORS(Associatedsuperclass:CX_SY_FILE_ACCESS_ERROR)T

22、hisgroupcontainsruntimeerrorsthatmayoccurduringfileaccess.Typicalexamplesareifthesystemcannotfindthefile,ifnomorespaceisavailabletowriteorcreatethefile,oriftheauthorizationtoaccessthefileismissing.DATASETCANTCLOSECX_SY_FILE_CLOSEDATASETCANTOPENCX_SY_FILE_OPENEXPORTDATASETCANNOTOPENCX_SY_FILE_OPENDAT

23、ASETWRITEERRORCX_SY_FILE_IODATASETREADERRORCXSYFILEIOEXPORTDATASETWRITEERRORCXSYFILEIODATASETSEEKERRORCX_SY_FILE_POSITIONDATASETNOPOSITIONCX_SY_FILE_POSITIONDATASETREADONLYCX_SY_FILE_OPEN_MODEDATASETNOTOPENCX_SY_FILE_OPEN_MODEOPENDATASETNOAUTHORITYCXSYFILE_AUTHORITYOPENPIPENOAUTHORITYCXSYFILE_AUTHOR

24、ITYDATASET_TOO_MANY_FILESCX_SY_TOO_MANY_FILESDATASET_NO_PIPECX_SY_PIPES_NOT_SUPPORTEDExceptiongroup:IMPORT_MISMATCH_ERRORS(Commonclass:CXSIMPORTMISMATCHERROR)ThisgroupcontainsruntimeerrorsthatmayoccurduringtheimportofdatafromtheABAPmemory,fromthedatabase,fromtheSHAREDBUFFER,orfromafileifthetypeorthe

25、lengthofthedatastoredisnotidenticalwiththatofthetargettype.CONNEIMPORTWRONGCOMPDECSCXSYIMPORTMISMATCHERRORCONNEIMPORTWRONGCOMPLENGCX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGCOMPTYPECX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGFIELDDECSCX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGFIELDLENGCX_SY_IMPORT_MI

26、SMATCH_ERRORCONNEIMPORTWRONGFIELDTYPECXSYIMPORTMISMATCHERRORCONNEIMPORTWRONGOBJECTTYPECXSYIMPORTMISMATCHERRORCONNE_IMPORT_WRONG_STRUCTURECX_SY_IMPORT_MISMATCH_ERRORIMPORT_ALIGNMENT_MISMATCHCX_SY_IMPORT_MISMATCH_ERRORIMPORTWRONGENDPOSCX_SY_IMPORT_MISMATCH_ERRORExceptiongroup:LOCALIZATION_ERRORS(Commo

27、nclass:CX_SY_LOCALIZATION_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurwhenyouswitchtoanothertextenvironment.Typicalexamplesareiftherequiredlanguageisnotallowedorifthesystemwantstoswitchtoacharactersetwhichhasnotbeenreleased.TEXTENVCODEPAGENOTALLOWEDCX_SY_LOCALIZATION_ERRORTEXTENVINVALIDCX_SY_LOC

28、ALIZATION_ERRORTEXTENVKEYINVALIDCXSYLOCALIZATIONERRORExceptiongroup:REMOTE_CALL_ERRORS(Associatedsuperclass:CX_SY_REMOTE_CALL_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringcallsinremotesystems(currentlyonlyCALLMETHOD).Typicalexamplesarenetworkerrorsortheunexpectedterminationoftheconnection.R

29、MCCOMMUNICATIONFAILURECX_SY_RMC_COMM_FAILURERMCINVALIDSTATUSCX_SY_RMC_INVALID_STATUSRMCSYSTEMFAILURECXSYRMCSYSTEMFAILURECALLMETHODNotassignedtoanexceptiongroup:ASSIGNCASTINGILLEGALCASTCXSYASSIGNCASTILLEGALCASTASSIGNCASTINGUNKNOWNTYPECXSYASSIGNCASTUNKNOWNTYPEASSIGNFIELDNOTINRANGECX_SY_ASSIGN_OUT_OF_R

30、ANGEDATASETOFFSETTOOLARGECX_SY_FILE_POSITIONDYNCALLMETHNOTIMPLEMENTEDCX_SY_DYN_CALL_ILLEGAL_METHODEXPORTBUFFERNOMEMORYCX_SY_EXPORT_BUFFER_NO_MEMORYGENERATESUBPOOLDIRFULLCXSYGENERATESUBPOOLFULLMOVECASTERRORCXSYMOVECASTERRORPERFORMPROGRAMNAMETOOLONGCXSYPROGRAMNOTFOUNDREPLACEINFINITELOOPCX_SY_REPLACE_I

31、NFINITE_LOOPI|-CX_SY_GEN_SOURCE_TOO_WIDEI|-CX_SY_GEN_SOURCE_TOO_WIDE|-CX_SY_CREATE_ERROR6、類異常類樹CX_SY_ROOT|-cx_static_check|-CX_DYNAMIC_CHECK|-CX_SY_ARITHMETIC_ERROR|-CX_SY_ZERODIVIDE|-CX_SY_ARITHMETIC_OVERFLOW|CXSYARGOUTOFDOMAJN|-CX_SY_PRECISION_LOSS|I-cx_sy_assign_errorTOC o 1-5 h z|-CX_SY_ASSIGN_C

32、AST_ERROR|-CX_SY_ASSIGN_CAST_ILLEGAL_CAST|-CX_SY_ASSIGN_CAST_UNKNOWN_TYPE|-CX_SY_ASSIGN_OUT_OF_RANGE|-CX_SY_CODEPAGE_CONVERTER_INIT|-CX_SY_CONVERSION_ERROR|-CX_SY_CONVERSION_OVERFLOW|-CX_SY_CONVERSION_NO_NUMBER|-CX_SY_CONVERSION_CODEPAGE|-CX_SY_CONVERSION_BASE64|-CX_SY_CONV_ILLEGAL_DATE_TIME|TOC o 1-5 h z|-CX_SY_CREATE_OBJECT_ERROR|-CX_SY_CREATE_DATA_ERROR|-CX_SY_DATA_ACCESS_ERROR|-CX_SY_RANGE_OUT_OF_BOUNDS|-CX_SY_OFFSET_NOT_ALLOWED|-CX_SY_DYN_CALL_ERROR|-CX_SY_DYN_CALL_ILLEGAL_CLASS|-CX_SY_DYN_CALL_ILLEGAL_FUNC|-cx_sy_dyn_call_illegal_method|-CX_SY_DYN_CALL_PA

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論