为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > SAP_ABAP_工作流开发流程

SAP_ABAP_工作流开发流程

2022-11-09 5页 doc 541KB 16阅读

用户头像 个人认证

is_620433

热爱文库,热爱新浪。

举报
SAP_ABAP_工作流开发流程工作流开发流程2012年02月14日修改记录目录TOC\o"1-5"\h\zHYPERLINK\l"bookmark6"文档结构1SAP工作流术语1HYPERLINK\l"bookmark8"BUSINESSOBJECT的创建1HYPERLINK\l"bookmark10"2-1什么是BUSINESSOBJECT1HYPERLINK\l"bookmark12"2-2BUSINESSOBJECT的组成1HYPERLINK\l"bookmark14"2-3仓1」建BUSINESSOBJECT的步骤2...
SAP_ABAP_工作流开发流程
工作流开发流程2012年02月14日修改记录目录TOC\o"1-5"\h\zHYPERLINK\l"bookmark6"文档结构1SAP工作流术语1HYPERLINK\l"bookmark8"BUSINESSOBJECT的创建1HYPERLINK\l"bookmark10"2-1什么是BUSINESSOBJECT1HYPERLINK\l"bookmark12"2-2BUSINESSOBJECT的组成1HYPERLINK\l"bookmark14"2-3仓1」建BUSINESSOBJECT的步骤2丁。0也.5〃01,输入BO的名字,点击创建2HYPERLINK\l"bookmark16"输入BO的属性,其中Application为S2HYPERLINK\l"bookmark18"创建BO的Key,光标放到Keyfields上,点击Create,选择NO2HYPERLINK\l"bookmark20"光标放在Methods上,点击创建,选择NO3光标放到Events上,点击Create,先创建一个触发工作流的Event4HYPERLINK\l"bookmark24"在Interfaces中,添加一个接口/FAPPROVE5HYPERLINK\l"bookmark26"修改新建的Method,Event状态5HYPERLINK\l"bookmark28"BusinessObject已经创建完毕,整体截图6工作流模板的开发63-1工作流模板的创建6HYPERLINK\l"bookmark36"3-2CE新开发工作流步骤介绍(WS99900049为例)7HYPERLINK\l"bookmark38"排除工作流触发者(类型:ContainerOperation)7HYPERLINK\l"bookmark40"检查Department字段(类型:Condition)7HYPERLINK\l"bookmark42"Waitforreleaseobjecttobechanged(类型:Fork)8逻辑删除工作流(类型:Wait)8HYPERLINK\l"bookmark46"checkifsteps=0(类型:Loop)9HYPERLINK\l"bookmark51"根据TransType来执行Rule(类型:MultipleCondition)9HYPERLINK\l"bookmark57"审批任务(类型:Activity)9HYPERLINK\l"bookmark64"同意-排除当前用户(类型:ContainerOperation)10HYPERLINK\l"bookmark69"同意-审批通过Steps减1(类型:ContainerOperation)11HYPERLINK\l"bookmark74"同意-Current_Step力口1(类型:ContainerOperation)11HYPERLINK\l"bookmark80"同意-是否是最后的审批(类型:Condition)12HYPERLINK\l"bookmark86"同意-判断拒绝原因是否为空(类型:Condition)12HYPERLINK\l"bookmark92"同意-拒绝原因为空-发送成功邮件(类型:SendMail)12HYPERLINK\l"bookmark102"同意-拒绝原因不为空-发送审批失败邮件(类型:SendMail)13HYPERLINK\l"bookmark106"拒绝-审批被拒绝Steps赋值为0(类型:ContainerOperation)13HYPERLINK\l"bookmark110"拒绝-发送审批被拒绝邮件(类型:SendMail)13HYPERLINK\l"bookmark116"审批屏幕的接口定义及调用144-1接口定义144.2调用方式14HYPERLINK\l"bookmark126"触发工作FUNCTIONMODULE编写16接口的定义16查询Event触发需要的参数16查询录入合同的详细信息16HYPERLINK\l"bookmark136"查询录入人的姓名及交易类型16HYPERLINK\l"bookmark138"查询录入人的所在机构号17拼接BO的KEY.17HYPERLINK\l"bookmark146"给EventContainer里面的变量赋值17HYPERLINK\l"bookmark150"调用触发工作流的FM181文档结构SAP工作流术语SAP工作流术语简写描述SAP工作流模板是用基于SAP平台的工作流而开发出WorkflowTemplateWF来运行于SAP系统中的业务工作流,用户可以自定义各种类型的工作流模板。工作流AgentDetermination规则,根据规则里面定义RuleRule的数据和变量,可以排列组合出很多种职责,不同的职责可以分配给不同的岗位,从而达到动态决定当前这个工作流任务的处理人是谁。OrganizationStructure组织结构TaskTS任务在SAP工作流模板中一个非常重要的组件,它一般定义成链接到某个BOR的。业务对象资源库,可以理解BusinessObjectBORBORRepository为一个定义了工作流模板所需要的功能和触发事件的一个业务对象类LoanManagementLM贷款管理系统CollateralManagementCMS抵押品管理系统ReleaseObjectsR.OLM和CMS已经提供了一些标准的审批对象,这些对象对应到系统里面的一些业务流程,和一些审批记录,和一些支持的FunctionModule,详细的信息请参考组织结构设计和命名规则文件。触发工作流所定义的事件,定在BOR对象中,可以附EventEvent带的参数,在工作流模板中可以使用这个事件,并且可以将Event带的参数传到工作流模板里面FunctionModuleFM在SAP系统里面定义的功能函数BusinessObject的创建什么是BusinessObjectBusinessObject是将一个具体的业务进行了抽象,业务中包含的数据库表被封装。通过发布接口,来让外部程序调用,修改业务对象。其实,BO和JAVA中的类概念是一样的,是R/3系统中面向对象过程中的体现。BusinessObject的组成ElementNameDescriptionInterfacesBO的接口,可以通过继承接口,来实现相应的功能KeyfieldsB0生成实例后唯一AttributesBO的属性MethodsBO的方法,通常被工作流模板中的Task调用Events与工作流模板绑定后可以触发工作流2.3创建BusinessObject的步骤TCode:SWO1,输入BO的名字,点击创建BusinessObjectBuilder:InitialScreen圆画图回回胡图|口弓uhty痴|日UEhEss口比,吐Rap口sit口ryObjEct/InFrhKETypefliarge回TestCazeoofY..@ObjecttypeQ[nteiface二叩己湖口即即输入BO的属性,其中Application为S创建BO的Key,光标放到Keyfields上,点击Create,选择NO.输入KEY的名字,和数据字典中对应的字段光标放在Methods上,点击创建,选择NO输入ResultType的结果类型GeneralriethodApprovalobjectt?叩&ZHQ_DSReleaseTOOStatusmodeledNarreApprovalDe£criptbnApproval1号ch叩芈口T)口白ZHJOij区]/ResultiypEABAP⑥ABAPDicTcnaryReferencetali匕SWF_IFAPPRReferencefieldSWF_APFRES|色SearchHelpOObjectt>'pe□Mutire光标放到Events上,点击Create,先创建一个触发工作流的Event再创建一个终止工作流的Event在Interfaces中,添加一个接口IFAPPROVEChangeObjectTypeZHQ_06修改新建的Method,Event状态把Method状态变成Implement,以Method为例,光标放在Method-Approval上,选择菜单(BO状态修改同理)2.3.8BusinessObject已经创建完毕,整体截图DisplayObjectTypeZHQ06倒叵回鼠鱼回回|PmgraE11ParaEeterJ]|ExceptipngObjecttype2HQ_06ZHQ_06mInterfacesIFAPPR07EApprovalIFSaPSAPstandardmtcrfacc一臼Keyfields।2HQ_06.KEY1KEY1田Attributes一三MethodsbzEC!_08,ExijtcnccChcckZLQOG.Di5alav2HQ_06.ApprovalCheckesisienceofobjectDisplayoti;cciApproval-3EventsZHQ_06.HQ_06_TE?IGCHR_¥ORKFLOW2HQ_06.HQ_06_TERNINATE_VORKFLO1?HQ_06_TE?IGCHR_¥ORKFLJOWHQ_06_TERNINATE_V0RKFU31?工作流模板的开发工作流模板的创建输入TCode:$川口口,进入工作流模板创建界面,其中开始和结束是已经创建好的,你要做的是在他们中间,创建Steps。点击空白的Step,右键点击Create,你可以在菜单中选择你要创建的Step类型,如下图:GaphicaModel看『茨|滋'「苜'『清'『茴晶]丁茜1西『;5T喏「'邑]T;圣CsnteponseeczedotClickHersWorkflowstartcdojtl^ckGapybo±Delebe»)Workflowcowleledfined-le-click32CE新开发工作流步骤介绍(WS99900049为例)排除工作流触发者(类型:ContainerOperation)作用:把触发工作流的人员添加到表ExcludedAgents中,使他不会再去审批本次工作流。使用原因:同一个工作流实例录入触发工作流的人和审批人不能为同一个人。StepName排嗓工怕耦破者OuLcamaname画和缸憎就蜷若PIStepnotinworkflowlogOperation--,ResutiElanient自吐后皿隈⑹ExcLd^dAg^ntgAsagnment=杷日。口[contentsoft^blearedeleted二rst)日平他时in&丫而[NFT加一口版BidatorofWorkfbt^instanceOpenrtar「qsignnnEn工囱Expreeecn检查Department字段(类型:Condition)作用:检查Department(录入人所在的分支行号)是否为空,不为空的话将值赋给Business_Area(合同所属结构的分支行号)使用原因:审批会录入人的分支行号为第一优先级查找审批人,其次是合同所在的分支行号1检查口叩mrtmen啜再为空Check:Departcnerrt32,3Waitforreleaseobjecttobechanged(类型:Fork)作用:把整个流程分为两个分支使用原因:一个分支走正常的审批流程,一个分支等待DeleteEvent触发,如批量结束程序。逻辑删除工作流(类型:Wait)作用:这个Step可以与一个BO的Event绑定,等待Event触发后,结束这个分支。使用原因:为了批量结束工作流而设置的Step,等批量工作流结束程序被后台JOB程序调用后,就会触发Wait的Event,结束工作流实例,实例状态变为LogicDelete。湿V;art000206坦辑拙除工作?EVj'ntforEvant3luseCorreiaitiffnwartGjntrdOuzcomes〔NotfiCfidonLaze^tEndRequeWEd£尚rt.La二已或575rtRequs=-"edErStepname生管图1除工作流Outcomensrn=画咫辑的除工作濡1stepnotnworkftowlog3.2.5checkifsteps=0(类型:Loop)作用:循环,当变量steps等于0的时候,循环结束。使用原因:动态的多级审批,方便以后的调整。rConb-oR,Loop(llnti)0DO219匚h«kif交白。与〜口PropertiesChen口已DstsStepNarecheckfsteps=0Condtion,&STEPS&=0根据TransType来执行Rule(类型:MultipleCondition)作用:可以根据条件判断,来走不同的分支,类似编程中的Case语句使用原因:当不同的场景公用同一个工作流模板时,场景对应的Rule不同,可以用TransType(交易类型缩写)来归类,走不同的分支,方便日后工作流模板的维护。叩02西提竞Tr-antType未执行RlE*MutapeCandcionControlPropertiesChangeDatastepnams根据imn灯丫段正由行叼佗Typeb橱.”审批任务(类型:Activity)作用:根据不同的参数,找到对应的审批人使用原因:可以让审批人在ECC系统中的邮箱中收到审批任务Task初的TS—口口钻|U)LoansRelease-RepeynnentfbrCorpamte5gNeme还吁作蹄批「作舔和T.Sk讲打绑中.宪同ndnjj心司5K会与B。的Method讲Agenzs-.行绑岸Rne守一如Cl。LT性相蠹即驾制筌爵|至Bindi门口I旦zfcijlt+r士灿EJH*■Excluded来胤撤般口世人是越丁办长口加口白巾卵//q『4r函□Agnt4EEiqnrre+',武的,目1户列表,丁J但口Taskcompdm<>BsckgroundProcessing◎ConfirmBidofProcessnqBActivity0QD231还款工作流审批CGntri&lOutcomesNatfiQtionLag文EndRequestedS^rtL式2丸5tsltRequastSiTask的属性,必须是GeneralTask,因为审批是由人来操作的,Task不能选BackProcess3.2.8同意-排除当前用户(类型:ContainerOperation)作用:把当前审批人添加排除用户列表中使用原因:更新排除用户列表,防止复核人再去审批。5tepName井除当前用户Odzcomename画并除当前用户0StepnotnworkflowlogPropetiesChangeC己匕理Containerop-aman50002361招噫前用尸ControlOpention/ResultElementEtdud&zA口白ntmExcudedAgentsi\ssanmenzExpressenAddonlyto岫但;匚口ntentsareextended)ActualAgent329同意■审批通过Steps减1(类型:ContainerOperation)作用:变量Steps减一使用原因:控制审批级次,Steps等于0的时候,循环结束Contame-oDerationDOO23&还款审批超过£t配编1ControlProDertiasC^anaeDmG同意-Current_Step加1(类型:ContainerOperation)作用:变量Current_Step加1Step等使用原因:当场景为两级审批时,后台屏幕程序会判断Current_Step的值,当Current于2的时候,才会调用后台程序弊CentsneroperationDDD24D匚urrenc_5tepXm1ControlPropertiesChangeData3.2.11同意•是否是最后的审批(类型:Condition)作用:判断Steps是否等于0使用原因:当最后一级审批完成后,发送邮件给录入人,通知审批已经通过;如果不是最后一级的审批,则直接跳过,继续循环。QCondition000242是否是最后的甲批controlIPinpertleschangeData北q是否■星最后的审批「Steprot「loqcondiuon■■■■■&STEPS&=□同意■判断拒绝原因是否为空(类型:Condition)作用:拒绝原因(Rejectjeason)初始为空,审批过后判断是否为空使用原因:审批出错后,工作流程序会将后台BAPI返回的错误信息返回到Rejectjeason中,通过判断它是否为空,就可以确定审批是否失败。同意-拒绝原因为空-发送成功邮件(类型:SendMail)作用:直接发送邮件给录入人,通知审批成功TTsendMail的丽打苣期05件CgntralProqEmExrtsPnouEit暗51匚hanoeDataRecipientsReep启口二type不。anEJTlcinElQMKCtExpressiDn1工作流录入入此湫口「门,口岫叫m由皿SubjectOJBaX_COHTENTSiAppro---ed;Contract&RA.NL&I邮件标留-R^l_L1」」」倒匚画HfllOr邮件内容extractftR^.NUE.w用口xjzcjntehta5approved.CMBCSSYETLATUMSi3.2.14同意•拒绝原因不为空-发送审批失败邮件(类型:SendMail)作用:发送审批失败邮件给录入人发送邮件之前,用一个类型为ContainerOperation的Step,把拒绝原因(Rejectjeason)赋给表变量REJECT_REASON_TAB,可以防止因为字符过多出现截断的现象。stepu^me拒蛆原因若行皿伯Outcomensma雷拒蚪原田娈行眼值EStopnotinworkfljwlogrControl期Contaneroperauon加隹后拒招原因罢行赋值PropertiesChangeDataOperation-"ResultSeinentreje匚丁reub:小』丁一♦reject_reason_tabAssgninant<-Addonlytotabla(cortantsaresxtendedjExpression&EEJECT旺A5-I&Rejecteeason拒绝-审批被拒绝Steps赋值为0(类型:ContainerOperation)作用:Steps赋值为0使用原因:拒绝后审批流程结束,循环终止留ContainerooeratiDn000251磅;审批被拒建Step-=-0ControlPropertiesChangeDateStepName磅:谕批谢跳Outcomename啦还款审批调巨典stepnotirworkflowlagResultElementstepsAssignment=Assign(contentsoftablearedeletedfirst]ExpreEEbn0OpeiatarAssignment目ExpreEEonOperztian.拒绝-发送审批被拒绝邮件(类型:SendMail)作用:通知录入人审批被拒绝WqndEEi口匚3二:|:凌送函邮件匚口口口•口IP「口口mmExitsP「口口chmnqqeraRedpients."Recipienttype□「*nizmti口ml□均set总Expresgon可区的下川仃]—函]小灯升口「ofWorkflnwInstance-__-Bendex口但驾弓此犯巨&]HHOX_8NTENT&的曰也3二Contract&RANL氏邮件标题料用।严।诲国丽口门固同比邮件正文LaancontractEtRAMLSi区口出C0.拼接BO的KEY为了让BusinessObject生成的实例在系统中有唯一的标示,我们用前台生成的23位流水号来做BO的Key给EventContainer里面的变量赋值EventContainer里的变量类似Java中Map语句,是成对出现的,每对有一个名字和Value对应的5ecNesMJcryVialactoCc?nS:5iner]DkTA:BEGINOFeVEZL_ConlsinerCCZUR50.INCLCTDZSI^UCIUREswccnt.DATA:LHDOFeven"_container.CLZAR亡丫亡口七_匚二1:1£:1二七工・RE7^E5rfevent_c.onteincr,5STEXTEETDIE5WCS=t.e1C3TJE□tst_e1er.eswc_ssL_e1erehlswc_seL^elerjenL3wc_55t_e1er.entswc_3ez_e1erjenrswe_ss匚_e1eren匚rt_c1er.rntswc_abt_e1erentSRC_5ar_elerjenr二三二二虱OFF-eventcancaxD-revent_coD.3二工revemL_con.iaznEre'jenLconcaiDerevent_conce.inereven'c_coiLZa工hereven匚_uci口匚a1口e二c',rent_conc口ine匚event_corLZaznere',reiLC_corL"al£i.ar■Stepa1Coneany_^ode8Frailucr:_Iype,"BusinessJLr-ea1'Relea5t_0bject1FRmnl・Inbax_Ca口工型口匚■'Tx5e(i_Id,CETianaacticinTypE口叩―11lwcL_cor._bcLa_xnfdcc^E;c.iiy_caie.lwa_con_tas_±i!.ro-pz20^^peaIwzeontaainro-bosinesaarea.SMEZ!--lwa_con_tas_xnfo=ccn.z-racl._hd™1_1ntiox_ccir!c.enc..3rq^encr_nc.lwa_3ta3Tjs_reccrdtran.a_3^TE™lv_opevazoi_E;ranc£i_ld.5ETEXTEtTDZDCr:ECK0:E54调用触发工作流的FM气触发工作流距;□bjectkEy=3equence_no・二二FONCTION'SHEEVl^TCREATE1EXPORTINGot3LiTie□kjkcyeventcreatorTJLXE^ORKITE^_JiEQUE2TERSTART_WITH_DELA7START_RECFB_SYHICHRG111JO_CGMMIT_FOR_QUEUEDEHUG__FLAGlHO_LOGGITiGIDENTIMPORTINGEVENT_IDRECEIVER_CQUNTTABLESeventcontc.inexEXCEPTIONSohjnotfoundOTEER5=根据场景选中BO=1okjectkey=BOS§_Event,=l_creator=71=1rtr=/『=71=1rtr_event_c0E.tiiner=1=2
/
本文档为【SAP_ABAP_工作流开发流程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索