已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 春季学校卫生防护
- 建筑工地化学教师劳动合同
- 环保联盟个人劳务合同
- 脐橙病虫害防治:专家建议
- 倒挂金钟病虫害防治新策略
- 供货合同7篇 供货合同协议范本
- 2022-2023学年温州市瑞安五校七年级语文下学期期中考试卷附答案解析
- 发行权转让合同署名
- 停水停电紧急预案
- 函数与导数经典常考压轴大题(学生版)
- 精酿啤酒项目商业计划书
- 厂房空调调试方案(大型厂房空调配套方案)
- 通信行业深度洞察报告
- 防高坠自查自纠台账
- 临床营养诊疗流程的建立与发展
- 2023-2028年混凝土机械市场现状与前景调研报告
- 研究中央空调维保中的技术难点与解决方案
- 水利工程设计师专业职业生涯规划书
- 中药贴敷课件
- 绿色施工方案(四节一环保)
- 小学数学单元整体教学论文
评论
0/150
提交评论