logo资料库

sap开发 PR自动生成PO的方法.docx

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
PR 自动生成 PO 的方法 实现原理:通过后台作业变式实现 SAP 标准功能已有 ME59N 可实现,但创建的变式很容易被用户修改删除,为了防止用户修 改,只有复制 ME59N 的代码重新开发一个报表: 第一步:复制 ME59N 源代码,如下: *-------------------------------------------------------------------- -* * Program ID * * Program Name : 序 *-------------------------------------------------------------------- -* * Date Created : < 2014/04/15> * MAXIMO 传 输 至 SAP 的 服 务 PR 自 动 转 FO 程 ZMM_RE0813 : * < 赵 : * By : * Created Description * 序> * *断,删除框架协议号为空的PR 记录,取消后台针对外部服务自动PO 的配置判断。通 * *过该程序选择屏幕条件决定哪些采购组织和工厂的PR 需要自动转换成FO。在ZMM090 * *增加开关,只有zmm090 和选择条件同时满足时才执行该程序 * *-------------------------------------------------------------------- -* *Modification : * Date Modified Modified By Description * * * * *-------------------------------------------------------------------- -* <更新理由/内容> <修改人> REPORT ZMM_RE0813. INCLUDE FM06LCIM. INCLUDE RM06BB30F00. SELECT-OPTIONS: S_EKGRP FOR EBAN-EKGRP MEMORY ID EKG, S_EKORG FOR EBAN-EKORG MEMORY ID EKO, S_FLIEF FOR EBAN-FLIEF MATCHCODE OBJECT KRED MEMORY ID LIF, S_KONNR FOR EBAN-KONNR MATCHCODE OBJECT MEKK,
S_WERKS FOR EBAN-WERKS MEMORY ID WRK, S_LGORT FOR EBAN-LGORT MODIF ID LGO, S_RESWK FOR EBAN-RESWK, S_RESLO FOR EBAN-RESLO MODIF ID RLO, S_BESWK FOR EBAN-BESWK MEMORY ID BWK. "CCP SELECTION-SCREEN SKIP 1. SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-009. "NO INTERVALS. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_GEKGRP LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT SELECTION-SCREEN POSITION 40. PARAMETERS: P_GLFDAT LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT 42(35) TEXT-S05 FOR FIELD P_GLFDAT. SELECTION-SCREEN END OF LINE. 3(35) TEXT-S01 FOR FIELD P_GEKGRP. "Delivery date "Purchasing group SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_GWERKS LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT SELECTION-SCREEN POSITION 40. PARAMETERS: P_GLTSNR LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT 42(35) TEXT-S06 FOR FIELD P_GLTSNR. SELECTION-SCREEN END OF LINE. 3(35) TEXT-S02 FOR FIELD P_GWERKS. "Plant "Vendor subrange SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_GLGORT LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT SELECTION-SCREEN POSITION 40. PARAMETERS: P_GBANFN LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT 42(35) TEXT-S09 FOR FIELD P_GBANFN. SELECTION-SCREEN END OF LINE. 3(35) TEXT-S04 FOR FIELD P_GLGORT. "Requisition "Storage location SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_GPSTYP LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT SELECTION-SCREEN POSITION 40. PARAMETERS: P_GBNFPO LIKE RM06A-P_GRUPP. SELECTION-SCREEN COMMENT 42(35) TEXT-S07 FOR FIELD P_GBNFPO. SELECTION-SCREEN END OF LINE. 3(35) TEXT-S03 FOR FIELD P_GPSTYP. "Requisition "Item category SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_GBUKRS LIKE RM06A-P_GRUPP DEFAULT 'X'. "Company code
3(35) TEXT-S10 FOR FIELD P_GBUKRS. SELECTION-SCREEN COMMENT SELECTION-SCREEN POSITION 40. PARAMETERS: P_GKONNR LIKE RM06A-P_GRUPP DEFAULT 'X'. ntract SELECTION-SCREEN COMMENT 42(30) TEXT-S12 FOR FIELD P_GKONNR. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK BL1. "Co 40(25) TEXT-S21 FOR FIELD P_DETPRO. SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-016. "NO INTERVALS. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_ETERZ LIKE RM06A-P_ETERZ."Generate sched. lines SELECTION-SCREEN COMMENT 3(35) TEXT-S08 FOR FIELD P_ETERZ. SELECTION-SCREEN COMMENT SELECTION-SCREEN POSITION 66. PARAMETERS: P_DETPRO TYPE ME59PROTOCOL. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_POSERR LIKE RM06A-P_POSERR. SELECTION-SCREEN COMMENT 3(35) TEXT-S11 FOR FIELD P_POSERR. SELECTION-SCREEN COMMENT 40(25) TEXT-S23 FOR FIELD P_SEBAKZ. SELECTION-SCREEN POSITION 66. PARAMETERS: P_SEBAKZ TYPE SET_EBAKZ DEFAULT '1'. SELECTION-SCREEN END OF LINE. "EBAKZ "Detailed protocol "Omit faulty items LIKE RM06A-P_TESTL. SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_TEST SELECTION-SCREEN COMMENT 3(35) TEXT-S22 FOR FIELD P_TEST. PARAMETERS P_LATECW TYPE C LENGTH 1 NO-DISPLAY. "late commit work SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK BL2. "Test run SELECTION-SCREEN SKIP 1. SELECT-OPTIONS: S_MATKL FOR EBAN-MATKL, S_FRGDT FOR EBAN-FRGDT, "Freigabedatum S_LFDAT FOR EBAN-LFDAT, "Lieferdatum S_BADAT FOR EBAN-BADAT, "请求日期 S_DISPO FOR EBAN-DISPO, "Disponent S_BANFN FOR EBAN-BANFN MATCHCODE OBJECT MBAN, S_MATNR FOR EBAN-MATNR MATCHCODE OBJECT MAT1, S_BEDNR FOR EBAN-BEDNR, S_BSART FOR EBAN-BSART, "Bestellart
S_PSTYP FOR RM06B-EPSTP, S_KNTTP FOR EBAN-KNTTP, S_STATU FOR EBAN-STATU, S_BANPR FOR EBAN-BANPR, S_PRIO_R FOR EBAN-PRIO_REQ MODIF ID REQ, "priority (of requirement "Positionstyp "Kontierungstyp "Bearbeitungsstatus "DCM ) S_ADVCOD FOR (GV_ADVCODE_SELFIELD) MODIF ID ADV. "advice code *-------------------------------------------------------------------- --* * Parameters * *-------------------------------------------------------------------- --* PARAMETERS: P_AFNAM LIKE EBAN-AFNAM, P_TXZ01 LIKE EBAN-TXZ01, P_VRTYPK LIKE RM06A-P_VRTYP DEFAULT 'X'. "Anforderer "Kurztext *- für Positionstyp im internen Format ------------------------------ --* RANGES: R_PSTYP FOR EBAN-PSTYP. INCLUDE FM06BCS3. INCLUDE RM06BB30F01. INCLUDE RM06BB30F02. INCLUDE RM06BB30F03. INCLUDE ZMM_RE0813_F01. *-------------------------------------------------------------------- --* * Make fields invisible if specific processes are not active * *-------------------------------------------------------------------- --* AT SELECTION-SCREEN OUTPUT. DATA: LF_CCP_ACTIVE. * Cross Company Procurement CALL FUNCTION 'ME_CCP_ACTIVE_CHECK' IMPORTING EF_CCP_ACTIVE = LF_CCP_ACTIVE. IF LF_CCP_ACTIVE IS INITIAL. LOOP AT SCREEN.
SEARCH SCREEN-NAME FOR 'S_BESWK'. IF SY-SUBRC EQ 0. SCREEN-ACTIVE = '0'. MODIFY SCREEN. ENDIF. ENDLOOP. ENDIF. IF GV_DEL_STRG_LOC_ACT IS INITIAL OR GV_MM_PRIO_ACTIVE IS INITIAL OR GV_DFPS_ACTIVE IS INITIAL. LOOP AT SCREEN. * * * ENDIF. ENDLOOP. ENDIF. Supplying and Receiving Storage Location IF ( SCREEN-GROUP1 = 'LGO' OR SCREEN-GROUP1 = 'RLO' ) AND GV_DEL_STRG_LOC_ACT IS INITIAL. SCREEN-ACTIVE = '0'. MODIFY SCREEN. ENDIF. priority (of requirement) IF SCREEN-GROUP1 = 'REQ' AND GV_MM_PRIO_ACTIVE IS INITIAL. ENDIF. adviccode IF SCREEN-GROUP1 = 'ADV' AND GV_DFPS_ACTIVE IS INITIAL. SCREEN-ACTIVE = '0'. MODIFY SCREEN. SCREEN-ACTIVE = '0'. MODIFY SCREEN. * integration RealEstate REFX PERFORM RE_MODIF_SELECTION_SCREEN. 41 "SPC_953041 "SPC_9530 AT SELECTION-SCREEN ON S_PSTYP. CALL FUNCTION 'ME_ITEM_CATEGORY_SELOPT_INPUT' TABLES EXT_PSTYP = S_PSTYP INT_PSTYP = R_PSTYP. *-------------------------------------------------------------------- --*
* F4 auf dem Selektionsbild / F4 on the selection screen * *-------------------------------------------------------------------- --* AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PSTYP-LOW. CALL FUNCTION 'HELP_VALUES_EPSTP' = SY-CPROG = SY-DYNNR EXPORTING PROGRAM DYNNR FIELDNAME = 'S_PSTYP-LOW' BSART BSTYP = = * * IMPORTING EPSTP EXCEPTIONS OTHERS = S_PSTYP-LOW = 0. * Anschluß Immobilienverwaltung 4.6A * F4-Hilfe für Feld Objektart bei Feldern für Immobilienverwaltung * AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_obart-low. INCLUDE IFVIIMSLF4. INITIALIZATION. DATA: L_SET_VARIANT L_REPORT LIKE RSVAR-VARIANT VALUE 'SAP&STANDARD', LIKE RSVAR-REPORT VALUE SY-REPID. IF SY-SLSET IS INITIAL. * set variant for report CALL FUNCTION 'RS_SUPPORT_SELECTIONS' EXPORTING REPORT VARIANT = L_SET_VARIANT = L_REPORT EXCEPTIONS OTHERS = 0. ENDIF. * Supplying and Receiving Storage Location CALL FUNCTION 'ME_DELIV_STRG_LOC_ACTIVE' IMPORTING EF_DEL_STRG_LOC_ACT = GV_DEL_STRG_LOC_ACT. * priority (of requirement)
CALL FUNCTION 'GET_DEFAULT_PRIO_ACTIVE' EV_MM_PRIO_ACTIVE = GV_MM_PRIO_ACTIVE IMPORTING EXCEPTIONS NO_PACT_ENTRY OTHERS IF SY-SUBRC <> 0. = 1 = 2. CLEAR GV_MM_PRIO_ACTIVE. ENDIF. * EA-DFPS: type the selection parameter s_advcode, if * Add On is active * GV_DFPS_ACTIVE = CL_CHECK_SWITCH=>DFPS_IS_ACTIVE( ). IF gv_dfps_active IS NOT INITIAL OR gv_dfps_active NE space. IF GV_DFPS_ACTIVE = 'X'. GV_ADVCODE_SELFIELD = 'EBAN-ADVCODE'. ENDIF. START-OF-SELECTION. PERFORM START_OF_SELECTION_NEW CHANGING GT_EBAN GS_PAR. IF GT_EBAN IS INITIAL. MESSAGE S261(ME). ELSE. PERFORM PROCESS_REQUISITIONS USING GT_EBAN GS_PAR GT_TODO. CHANGING PERFORM PROCESS_PROTOCOL USING GT_TODO. ENDIF. 第二步:给新实现的功能,创建变式:ZMM_RE0813
分享到:
收藏