四川省电力公司企业资源管理(erp)系统实施项目 程序开发标准_第1页
四川省电力公司企业资源管理(erp)系统实施项目 程序开发标准_第2页
四川省电力公司企业资源管理(erp)系统实施项目 程序开发标准_第3页
四川省电力公司企业资源管理(erp)系统实施项目 程序开发标准_第4页
四川省电力公司企业资源管理(erp)系统实施项目 程序开发标准_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川省电力公司企业资源管理ERP系统实施项目程序开发标准四川省电力公司企业资源管理ERP系统实施项目程序开发标准目录3PROGRAMCODINGSTANDARD311PROGRAMSTRUCTURE712VARIABLESINPROGRAMS713CODINGSTYLE714REPORTSTANDARD815DATADEFINITION816BATCHPROGRAM/INTERFACESTANDARD917MESSAGE918PROGRAMLOGIC919DATAACCESS11110INTERNALTABLE11111STRINGOPERATION11112ONLINESTANDARDPROGRAMCODINGSTANDARDCURRENTLY,ABAPPROGRAMMINGLANGUAGESUPPORTSBOTHOBJECTORIENTEDPROGRAMMINGANDPROCEDURALPROGRAMMINGHOWEVER,INORDERTOINCREASETHEPROGRAMREADABILITYANDTOSHORTENTHEDEVELOPMENTTIME,PROCEDURALPROGRAMMINGISRECOMMENDEDFORTHEREPORTPROGRAMMINGTHISSECTIONWILLPROVIDESOMEGUIDELINESFORABAP/4DEVELOPERSTOFOLLOW11PROGRAMSTRUCTUREABAPPROGRAMSARERESPONSIBLEFORDATAPROCESSINGWITHININDIVIDUALDIALOGSTEPSOFANAPPLICATIONPROGRAMITMUSTBEDIVIDEDINTODIFFERENCEPROCESSINGBLOCKSINORDERTOINCREASETHEREADABILITY,THEPROCESSINGBLOCKSSHOULDBEPLACEDINSEQUENCEACCORDINGTOTHEPROCESSINGTIMEFOREXAMPLE,程序名称ZHRR0001程序描述岗位聘用合同书开发人员JESSZENG创建日期2006/08/01程序用途按照人事董事部“岗位聘用合同书”固定格式编写打印A4纸上,树排版。一般情况下,输入人员编号,打印某一个人的合同书。更改记录日期更改人更改版本主要更改内容描述2006/02/15JESSZENGDEVK926584新建2006/07/27JESSZENGDEVK926590REPORTZHRR0001NOSTANDARDPAGEHEADINGLINESIZE192LINECOUNT58MESSAGEIDZ001声明使用到的表TABLEST001,VBAK,VBAP定义常量CONSTANTSCNS_CHAR_X1TYPECVALUEX,CNS_CHAR_11TYPECVALUE1,CNS_CHAR_21TYPECVALUE2,CNS_CHAR_S1TYPECVALUES,CNS_GROUP20TYPECVALUEGIR_ZMMRB338,CNS_TCODE4TYPECVALUEME22,CNS_DISM1TYPECVALUEN,BDCMODECNS_UPDM1TYPECVALUESBDCUPDATE定义变量DATAW_SESSION_FLAG1TYPECSESSIONCREATEFLAG定义内表和结构TYPESBEGINOFTY_OPEN_PO,ZDIVISLIKEEKKOZDIVIS,DIVISIONCOMPANYBSARTLIKEEKKOBSART,POORDERTYPEBEDATLIKEEKKOBEDAT,PODATEEBELNLIKEEKKOEBELN,PONOEBELPLIKEEKPOEBELP,POITEMMATNRLIKEEKPOMATNR,MATERIALCODEMENGELIKEEKPOMENGE,OPENQUANTITYEINDTLIKEEKETEINDT,SCHEDULELINEDATEFLAG1TYPEC,1PARTIALLY2OPENENDOFTY_OPEN_PODATAIT_T90301TYPESTANDARDTABLEOFT90301WITHHEADERLINE,IT_OPEN_POTYPESTANDARDTABLEOFTY_OPEN_POWITHHEADERLINE,IT_GR_MENGETYPESTANDARDTABLEOFTY_GR_MENGEWITHHEADERLINE,IT_EKBETYPESTANDARDTABLEOFTY_EKBEWITHHEADERLINE,IT_EKETTYPESTANDARDTABLEOFTY_EKETWITHHEADERLINE定义选择屏幕SELECTIONSCREENBEGINOFBLOCKB1WITHFRAMETITLETEXT001SELECTIONOPTIONPARAMETERSP_ZDIVISLIKEEKKOZDIVISDIVISIONCOMPARYCODESELECTOPTIONSS_BSARTFOREKKOBSARTDEFAULTZN9B6,ORDERTYPES_CHILDFORT90301ZZCHILDCHILDCODEMATCHCODEOBJECTZSH_CHILDCODE,S_MOTHERFORT90301ZZMOTHERMOTHERCODEMATCHCODEOBJECTZSH_MOTHERCODE,S_EBELNFOREKKOEBELN,PURCHASEORDERS_BEDATFOREKKOBEDATPODATESELECTIONSCREENBEGINOFLINEPARAMETERSCB_TESTASCHECKBOXDEFAULTXSELECTIONSCREENCOMMENT360TEXT002TESTRUNSELECTIONSCREENENDOFLINESELECTIONSCREENENDOFBLOCKB1初始化INITIALIZATION定义页眉TOPOFPAGEDISPLAYTHETOPOFPAGEPERFORMFRM_COMMON_TOP_OF_REPORTUSINGSYTITLESTARTOFSELECTIONSTARTOFSELECTION清空变量PERFORMFRM_CLEAR_VARIANT获取未结POPERFORMFRM_GET_OPEN_PO使用BDC的方式,更改POIFP_TESTISINITIALPERFORMFRM_BDC_UPDATE_POENDIFENDOFSELECTIONENDOFSELECTION将结果显示出来PERFORMFRM_OUTPUT_DATAFORMFRM_GET_OPEN_PO获取未结PO,对所有PO明细项没有被打上删除标记得EKPOLOEKZL,检查PO明细项的历史记录表EKBE,当EBELNEKKOEBELN,EBELPEKPOEBELN累计所有收货数量的值PO的订购数量,这样的PO我们认为是未结POFORMFRM_GET_OPEN_PODATALW_MENGELIKEEKPOMENGE,LW_TABIXLIKESYTABIX,LW_MATNRLIKET90301ZZCHILD从表EKBE中获取PO收货历史记录数据PERFORMFRM_GET_EKBE累计收货数量IFNOTI_EKBEISINITIALLOOPATI_EKBEINTOWA_EKBEIFWA_EKBESHKZGEQHWA_EKBEMENGEWA_EKBEMENGE1ENDIFMOVECORRESPONDINGWA_EKBETOI_GR_MENGECOLLECTI_GR_MENGECLEARI_GR_MENGEENDLOOPENDIF取得PO订购数量LOOPATI_OPEN_POINTOWA_OPEN_POLW_TABIXSYTABIXCLEARWA_GR_MENGEREADTABLEI_GR_MENGEINTOWA_GR_MENGEWITHKEYEBELNWA_OPEN_POEBELNEBELPWA_OPEN_POEBELPBINARYSEARCHIFSYSUBRC0LW_MENGEWA_OPEN_POMENGEWA_GR_MENGEMENGEIFLW_MENGE0MOVELW_MENGETOWA_OPEN_POMENGEIFWA_GR_MENGEMENGE0MOVECNS_CHAR_1TOWA_OPEN_POFLAGELSEMOVECNS_CHAR_2TOWA_OPEN_POFLAGENDIFELSEGRQUANTITYPOQUANTITYCONTINUEENDIFELSEMOVECNS_CHAR_2TOWA_OPEN_POFLAGENDIFAPPENDWA_OUTTOI_OUTENDIFENDLOOP2006/07/27BEGINOFJESSZENGADDLOOPATI_OUTIFI_OUTZZCHILDI_OUTZZMOTHERDELETEI_OUTENDIFENDLOOP2006/07/27ENDOFJESSZENGADDEDENDFORMFRM_GET_OPEN_PO12VARIABLESINPROGRAMS关于变量在程序中的定义,请参考开发命名规则文件中的说明。13CODINGSTYLE序号需要注意的内容R(REQUIRED)/OOPTIONAL1THE“PRETTYPRINTER”FUNCTIONHASBEENUSEDTOLINEUPTHECODER2ANEXTENDEDSYNTAXCHECKHASBEENRUNONTHEABAPPROGRAMR3EVENTSAPPEARINTHEPROGRAMWITHTHEORDERTHEYAREGENERALLYEXECUTEDR4PROGRAMSHOULDHAVEACOMMENTBOXBEFORE“REPORT”STATEMENTACCORDINGTOTHEPROGRAMSPECIFICATIONR5EVERYMODIFICATIONSHOULDBEDOCUMENTEDWITHANADDITIONALCOMMENTBOXADDEDTOTHEPROGRAMR6COMMENTSAREUSEDTOINDICATETHEBUSINESSREASONORPURPOSEOFSUBROUTINES,EVENTS,SECTIONOFCODE,ETCCOMMENTSSHOULDNOTEXPLAININDIVIDUALABAPCOMMANDSR7EACHLOGICALSECTIONOFTHEPROGRAMHASDESCRIPTIVECOMMENTSPRIORTOTHEACTUALCODER8SUBROUTINEORFUNCTIONMODULESHOULDBECREATEDINSTEADOFREPLICATINGTHESAMECODEINMANYPLACESR9FORMENDFORMSTATEMENTSSHOULDBEPLACEDAFTERALLNONSUBROUTINEBLOCKSANDINTHEORDERWHICHTHEYAREEXECUTEDR10“DEADCODE”SHOULDBEREMOVEDFROMTHEPROGRAM,IE,THEFIELDSWHICHARENEVERREFERENCEDANDCODEWHICHCANNEVERBELOGICALLYEXECUTEDR11COMPUTEISNOTUSEDINARITHMETICEXPRESSIONEGDATADATA1ISUSEDINSTEADOFCOMPUTEDATA1R12CALCULATIONSOFFIELDSWITHAUNITOFMEASUREBOTHFIELDSMUSTHAVETHESAMEUOMR13BLANKLINESAREUSEDTOSEPARATEDIFFERENTSECTIONSOFCODEO14DATADATA1ISPREFERREDINSTEADOFADD1TODATAO14REPORTSTANDARD序号需要注意的内容R(REQUIRE)/OOPTION1REPORTISCODEDWITH“NOSTANDARDPAGEHEADING”,LINESIZESHOULDBEADDEDR2SELECTIONTEXTSAREUSEDTOSPECIFYLITERALFORPROGRAMPARAMETERSTHATWILLAPPEARONTHESCREENR3TEXTELEMENTSAREUSEDINSTEADOFHARDCODINGOFLITERALTEXTIEWRITE/TEXT001“CUSTOMERORWRITE/CUSTOMER001R4NOHARDCODINGOFCURRENCYOUTPUTFORMATSINTHEPROGRAMR5SKIPISUSEDINSTEADOFWRITE/,/STATEMENTR6USERDEFAULTDATEFORMATSEESU50ISUSEDINSTEADOFHARDCODINGOFDATEFORMATINTHEPROGRAMEXCEPTINGFORTHESITUATIONTHATALLTHEUSERHAVETHESAMEDATEFORMATO7BLOCKDEFINITIONSELECTIONSCREENOSELECTIONSCREENBEGINOFBLOCKNAMEWITHFRAMETITLETEXTELEMENTSELECTIONSCREENENDOFBLOCKNAME8COMMENTLINESELECTIONSCREENCOMMENT/STARTLENGTHTEXTELEMENTOSELECTIONSCREENULINE/STARTLENGTH9WHENOUTPUTISDESIGNEDTOPRINTONALASERPRINTERCONSIDERTHEOUTPUTOFTHEREPORTSOTHATITWILLFITFORBOTHA4ANDLETTERPAPERSO15DATADEFINITION序号需要注意的内容R(REQUIRE)/OOPTION1VARIABLESTHATARENOTCHANGEDINTHEPROGRAMAREDEFINEDWITHCONSTANTSTATEMENTCONSTANTPUTYPEFVALUE314159265359R2COMMENTSAREINCLUDEDAFTEREACHFIELDTABLES,FIELDSOFINTERNALTABLES,CONSTANTS,VARIABLES,ETCTODESCRIBETHEMEANINGORPURPOSEOFTHEFIELDR3LIKEVERBISUSEDWHILEDECLARINGTHEFIELDSWHENEVERFEASIBLER4WHENDECLARING,DATATYPEANDLENGTHARENOTLEFTASDEFAULTR5VARIABLENAMESAREDESCRIPTIVE,MEANINGFULANDUNDERSTANDABLER6GLOBALVARIABLESAREMINIMIZEDBYDECLARINGLOCALVARIABLESORBYPASSINGVARIABLESTHROUGHPARAMETERSANDARGUMENTSWHILECREATINGINTERNALSUBROUTINER7INCLUDESARECREATEDFORDATADECLARATIONSANDANYDATASTRUCTURETHATWILLBEUSEDINMORETHATONEABAPPROGRAMO16BATCHPROGRAM/INTERFACESTANDARD序号需要注意的内容R(REQUIRE)/OOPTION1OPENTHEDATASETBEFORETHEREAD/WRITEOPERATION,ANDALWAYSCLOSETHEFILEWHENFILEPROCESSINGFINISHEDR2“SUCCESS”MESSAGESTYPES,WHICHWILLBEOUTPUTTO“JOBLOG”WHENTHEBATCHPROGRAMMINGISBEINGPROCESSEDSHOULDBEUSEDGENEROUSLYTOPROVIDEANAUDITTRAILOFTHEPROGRAMSEXECUTIONR3PROGRAMVARIANTSAREUSEDIFAPROGRAMNEEDSTORUNWITHDIFFERENTPARAMETERSO17MESSAGE序号需要注意的内容R(REQUIRE)/OOPTION1MESSAGESAREINCLUDEDATAPPROPRIATEPLACESTOINDICATEILLEGALOPERATION,NOAUTHORIZATION,NODATAFOUND,ETCR2EVERYMESSAGEERROR/INFORMATION/WARNINGINTHEPROGRAMHASACOMMENTBEFOREHANDFOREXPLANATIONR3IFFUNCTIONMODULESUSED,EVERYERRORMESSAGESHOULDBECAPTUREDANDPROCESSEDACCORDINGLYR4CUSTOMERSPECIFIEDMESSAGEIDSHOULDBECREATEDANDMAINTAINEDINSTEADOFUSINGTHEDEFAULTMESSAGEIDSSUPPLIEDBYSAPASTHEYMAYCHANGEINFUTURERELEASESO18PROGRAMLOGIC序号需要注意的内容R(REQUIRE)/OOPTION1ALLLOOPS,IFS,CASES,ANDSIMILARSTATEMENTSAREBROKENDOWNTOTHEIRSIMPLESTFORMANDNESTINGISNOTCOMPLICATEDUNLESSABSOLUTELYNECESSARYR2IFWHENUSINGTHEANDOROROPERATOR,THEMOSTLIKELYELIMINATIONCRITERIAISSPECIFIEDFIRSTR3CLEARFIELDISREQUIREDBEFOREUSINGTHEVARIABLE,WORKAREAR4TABLEHEADERSANDWORKAREASARECLEAREDATTHEENDOFLOOPPROCESSINGRLOOPATIT_TABCLEARIT_TABENDLOOP5WHENCODINGIF,TESTINGCONDITIONSARENESTEDSOTHATTHEMOSTFREQUENTLYTRUECONDITIONSAREPROCESSEDFIRSTR6CASEISUSEDINSTEADOFIFWHENTESTINGFIELDS“EQUALTO”SOMETHING,BECAUSEITISEASIERTOREADANDMOREEFFICIENTAFTERABOUTFIVENESTEDIFSR7ALLCASESTATEMENTSMUSTHAVEAWHENOTHERSSTATEMENTTOCAPTUREUNEXPECTEDERRORSR8WHILEISUSEDINSTEADOFDOEXITSTATEMENTR9CHECKISUSEDINSTEADOFIF/ENDIFWHENEVERPOSSIBLEO19DATAACCESS序号需要注意的内容R(REQUIRE)/OOPTION1INSELECTSTATEMENT,ONLYTHEFIELDSTHATARENEEDEDARESELECTEDINTHEORDERTHATTHEYRESIDEONTHEDATABASER2THEORDERINGOFTHEWHERESTATEMENTSMATCHTHEARRANGEMENTOFTHEKEYSINTHETABLERECORDSR3FORSELECTINGSINGLEROWFROMADATABASETABLE,USE“SELECTSINGLE”INSTEADOF“SELECT”IFTHEFULLPRIMARYKEYISKNOWNOTHERWISE,USE“UPTO1ROWS”R4SYSUBRCISCHECKEDAFTERDATABASECALLSANDOTHERACTIVITIESWHENACTUALLYSETBYTHESYSTEMWHENLOGICMUSTBEUSEDFORERRORHANDLINGR5ALWAYSSPECIFYTHECONDITIONSINWHERECLAUSEINSTEADOFCHECKINGTHEMWITHCHECKSTATEMENTR6FIELDSCOMPAREDINTHEWHERECLAUSEOFSELECTSTATEMENTSHAVESIMILARTYPESR7WHENUSINGTHEANDOROROPERATOR,THEMOSTLIKELYELIMINATIONCRITERIAISSPECIFIEDFIRST,ANDSOONDOWNTOTHELEASTLIKELYCRITERIAR8FORCLUSTERTABLES,ONLYTHECONSECUTIVEFIELDSTHATAREPARTOFTHEKEYAREQUALIFIEDINTHEWHEREOPTIONTHECHECKCOMMANDISUSEDTOELIMINATEOTHERRECORDSR9AGGREGATEFUNCTIONSSHOULDBEUSEDWHENCALCULATINGTHEMAX,MIN,SUM,AVG,COUNTOFADATABASETABLER10ALWAYSSELECTINTOANINTERNALTABLE,EXCEPTWHENTHETABLEWILLBEVERYLARGEIE,WHENTHEINTERNALTABLEWILLBEGREATERTHAN500,000RECORDSUSE“UPTONROWS”WHENTHENUMBEROFRECORDSNEEDEDISKNOWNR11DONOTUSENESTEDSELECTUSE“INNERJOIN”AND/OR“FORALLENTRIES”INSTEAD“FORALLENTRIES”ISUSEDOVER“LOOPATITAB/SELECT/ENDLOOP”R12WHENUSINGFORALLENTRIES,MUSTCHECKTHATTHETABLEUSEDINTHEWHERECLAUSEISNOTEMPTYR13WHENEVERPOSSIBLE,USEARRAYOPERATIONSINSTEADOFSINGLEROWOPERATIONSTOMODIFYYOURDATABASETABLESR14SINCEVIEWSDONOTHAVEAPRIMARYKEY,ORDERBYPRIMARYKEYSHOULDONLYBEUSEDINTHEDATABASETABLESR15SINCE“ORDERBYF1FN”ISNOTAUTOMATICALLYSUPPORTEDBYASORTEDINDEX,YOUSHOULDSORTTHERESULTSETWITHSORTONTHEAPPLICATIONSSERVERINSTEADOFWITHORDERBYF1FNONTHEDATABASESERVERR16THEUSEOFNEGATIVELOGICINSELECTSISAVOIDEDWHENEVERPOSSIBLEO17SECONDARYINDEXUSAGEWHENPOSSIBLE,INTHEWHERECLAUSETHEFIELDSOFTHEINDEXAREINTHESPECIFIEDORDERANDLINKEDBYTHELOGICALANDWITHCOMPARISONSFOREQUALITYOASECONDARYINDEXHASBEENCONSIDEREDIF1NONKEYFIELDSORFIELDSFORWHICHINDEXSUPPORTDOESNOTEXISTAREREPEATEDLYUSEDTOMAKESELECTIONS2ONLYASMALLPARTOFALARGETABLEISSELECTED53THEWHERECONDITIONOFTHESELECTISSIMPLE4FIELDSTHATMAKEUPTHEINDEXSIGNIFICANTLYREDUCETHESELECTIONSETOFTHERECORDSBYMATCHINGTHEUNIQUEQUALIFIERSINTHEWHERECLAUSENOTEPRIORTOCREATINGSECONDARYINDEXES,CONSULTATIONWITHTHEDATABASEADMINISTRATORISREQUIRED18INNERJOINSINA1NRELATIONSHIPBETWEENTWOTABLES,THETABLEWITHTHE1RELATIONSHIPISTHEPREFERREDDRIVINGTABLETHE1RELATIONSHIPISTHESMALLESTDATASETASDEFINEDBYTHEHEADER/ITEMRELATIONSHIPAND/ORTHESMALLESTDATASETASDEFINEDBYTHEWHERECLAUSERESTRICTIONSO110INTERNALTABLE序号需要注意的内容R(REQUIRE)/OOPTION1MOVECORRESPONDINGISUSEDONLYWHENTWOINTERNALTABLESHAVEIDENTICALFIELDSANDYOUONLYWANTTOMOVEAFEWRECORDSFROMONETOTHEOTHEROTHERWISE,MOVESHOULDBEUSEDR2SORTFIELDSONTHESORTSTATEMENTSHOULDNOTBELEFTASDEFAULTIESORTITABBYFLD1INSTEADOFSORTITABR3LOOPATITABWHEREKXXXSHOULDBEUSEDINSTEADOFLOOPATITAB/CHECKITABKXXXR4INTERNALTABLESAREFREEDWHENNOLONGERNEEDEDEITHERBYTHEFREECOMMANDORASUBROUTINEEXIT,ESPECIALLYWHENTHETABLESARELARGEORTHEPROGRAMISABATCHPROGRAMR5USEAPPENDLINESOFITABLETOMERGETWOINTERNALTABLESR6APPENDSORTEDBYUSEDONLYFORREPORTSSUCHAS“TOP50”OR“TOP100”R7FORREADOPERATIONS,THEKEYFIELDSARESPECIFIEDFORT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论