Escolar Documentos
Profissional Documentos
Cultura Documentos
TABLES :
*&---------------------------------------------------------------------* TYPE-POOLS : slis. * TYPES: BEGIN OF t_cdhdr, objectid changenr LIKE cdhdr-objectid, LIKE cdhdr-changenr,
objectclas LIKE cdhdr-objectclas, tcode udate username utime flag END OF t_cdhdr, * BEGIN OF t_eban, banfn bnfpo LIKE eban-banfn, LIKE eban-bnfpo, "Purchase requisition number "Item number of purch.req. LIKE cdhdr-tcode, LIKE cdhdr-udate, LIKE cdhdr-username, LIKE cdhdr-utime, TYPE c,
bsart LIKE eban-bsart, "Purch.req document type frgkz LIKE eban-frgkz, "Release indicator frgzu LIKE eban-frgzu, "Release status frgst LIKE eban-frgst, "Release strategy in purc. req. ekgrp LIKE eban-ekgrp, "Purchasing group ernam LIKE eban-ekgrp, "Name of Person Crea'd Object
txz01 LIKE eban-txz01, "Short text matnr LIKE eban-matnr, "Material number werks LIKE eban-werks, "Plant menge LIKE eban-menge, "Purchase requisition quantity meins LIKE eban-meins, "Purch.req unit of measure badat LIKE eban-badat, "Requisition (request) date frgdt LIKE eban-frgdt, "Purch.req release date preis LIKE eban-preis, "Price in purchase requisition peinh LIKE eban-peinh, "Price Unit
flief LIKE eban-flief, "Fixed vendor ebeln LIKE eban-ebeln, "Purchase order number ebelp LIKE eban-ebelp, "Purchase order item number frggr LIKE eban-frggr, "Release group waers LIKE eban-waers, "Currency Key END OF t_eban, * BEGIN OF t_ebkn, banfn bnfpo kostl LIKE eban-banfn, LIKE eban-bnfpo, LIKE ebkn-kostl, "Purchase requisition number "Item number of purch.req. "Cost Center
END OF t_ebkn, * BEGIN OF t_output, werks banfn bnfpo bsart frggr frgzu LIKE eban-werks, LIKE eban-banfn, LIKE eban-bnfpo, LIKE eban-bsart, LIKE eban-frggr, LIKE eban-frgzu, "Plant -1
"Purchase Requisition-2 "Item Pur.Requisition-3 "Document Type "Release Group "Release Status "Release Code "Release Strategy -5 -6 -7 -4
frgkz ernam kostl matnr txz01 menge meins badat frgdt preis waers peinh flief ebeln ebelp afnam
LIKE eban-frgkz, LIKE eban-ernam, LIKE ebkn-kostl, LIKE eban-matnr, LIKE eban-txz01, LIKE eban-menge, LIKE eban-meins, LIKE eban-badat, LIKE eban-frgdt, LIKE eban-preis, LIKE eban-waers, LIKE eban-peinh, LIKE eban-flief, LIKE ekpo-ebeln, LIKE ekpo-ebelp, LIKE eban-afnam,
"Release Indicator
-8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23
"Person Responsible "Cost Center "Material "Short Text "Quantity Requested "Unit of Measure "Req Date "Release Date "Valuation Price "Currency "Per Unit "Fixed Vendor "Purchase Order "Item PO "Requisitioner
END OF t_output, * BEGIN OF t_tcdrp, object LIKE tcdrp-object, END OF t_tcdrp, * BEGIN OF t_t16fs, frggr LIKE t16fs-frggr, frgsx LIKE t16fs-frgsx, frgc1 LIKE t16fs-frgc1, frgc2 LIKE t16fs-frgc2, frgc3 LIKE t16fs-frgc3, frgc4 LIKE t16fs-frgc4, frgc5 LIKE t16fs-frgc5, frgc6 LIKE t16fs-frgc6,
frgc7 LIKE t16fs-frgc7, frgc8 LIKE t16fs-frgc8, END OF t_t16fs, * BEGIN OF t_cdpos, objectid changenr LIKE cdpos-objectid, LIKE cdpos-changenr,
objectclas LIKE cdpos-objectclas, tabkey fname value_new value_old END OF t_cdpos, * BEGIN OF t_cdpos1, objectid changenr LIKE eban-banfn, LIKE cdpos-changenr, LIKE cdpos-tabkey, LIKE cdpos-fname, LIKE cdpos-value_new, LIKE cdpos-value_old,
objectclas LIKE cdpos-objectclas, value_new END OF t_cdpos1. * *&---------------------------------------------------------------------* * Table Declarations * LIKE cdpos-value_new,
*&---------------------------------------------------------------------* DATA : i_eban i_ebkn TYPE STANDARD TABLE OF t_eban, TYPE STANDARD TABLE OF t_ebkn,
i_output TYPE STANDARD TABLE OF t_output, i_tcdrp i_cdhdr i_t16fs i_cdpos TYPE STANDARD TABLE OF t_tcdrp, TYPE STANDARD TABLE OF t_cdhdr, TYPE STANDARD TABLE OF t_t16fs, TYPE STANDARD TABLE OF t_cdpos,
i_cdpos1 TYPE STANDARD TABLE OF t_cdpos1, i_cdpos3 TYPE STANDARD TABLE OF t_cdpos. * DATA * *&---------------------------------------------------------------------* * Work Area Declarations * : t_fcat TYPE slis_t_fieldcat_alv.
*&---------------------------------------------------------------------* DATA : wa_eban wa_ebkn wa_output wa_tcdrp wa_t16fs wa_cdpos wa_cdpos3 * DATA * *&---------------------------------------------------------------------* * Constants Declarations * : wa_fcat TYPE slis_fieldcat_alv. LIKE LINE OF i_eban, LIKE LINE OF i_ebkn, LIKE LINE OF i_output, LIKE LINE OF i_tcdrp, LIKE LINE OF i_t16fs, LIKE LINE OF i_cdpos, LIKE LINE OF i_cdpos.
*&---------------------------------------------------------------------* CONSTANTS: c_me c_inc(1) c_eq(2) LIKE tcdrp-devclass VALUE 'ME', TYPE c VALUE 'I', TYPE c VALUE 'EQ',
c_frgzu(5) TYPE c VALUE 'FRGZU', c_frgkz(5) TYPE c VALUE 'FRGKZ', c_eban(4) c_update * *&---------------------------------------------------------------------* * Input parameters * TYPE c VALUE 'EBAN', TYPE c VALUE 'U'.
*&---------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-033. SELECT-OPTIONS : s_bukrs s_ekorg s_ekgrp s_bsart s_value s_frggr s_user s_date s_tcode s_werks FOR ekko-bukrs FOR eban-ekorg FOR eban-ekgrp, FOR eban-bsart, FOR cdhdr-objectid, FOR ekko-frggr, FOR cdhdr-username, FOR cdhdr-udate, FOR cdhdr-tcode FOR t001w-werks OBLIGATORY, OBLIGATORY. OBLIGATORY, OBLIGATORY,
SELECTION-SCREEN END OF BLOCK b1. * SELECT-OPTIONS : s_object FOR cdhdr-objectclas NO-DISPLAY. *&---------------------------------------------------------------------* * INITIALIZATION
START-OF-SELECTION.
*&---------------------------------------------------------------------* START-OF-SELECTION. * Get all Transactions from CDHDR PERFORM get_cdhdr. * Get Purchase Requisition Data PERFORM doc_details. * Get Release codes PERFORM get_relcode. *&---------------------------------------------------------------------* * END-OF-SELECTION.
*&---------------------------------------------------------------------* END-OF-SELECTION. IF i_eban IS INITIAL. MESSAGE s000(zm) WITH 'No Records Found for the Selection'(001). ELSE. * Prepare O/P Table PERFORM fill_output. * Submit to ALV O/P PERFORM alv_output. ENDIF. *&---------------------------------------------------------------------* *& Form get_object_class
*----------------------------------------------------------------------* FORM get_object_class. * SELECT object INTO TABLE i_tcdrp FROM tcdrp
s_object-option = c_eq. s_object-low APPEND s_object. ENDLOOP. * ENDFORM. " get_object_class = wa_tcdrp-object.
*----------------------------------------------------------------------* FORM get_cdhdr. * SELECT objectid changenr objectclas tcode udate username utime INTO TABLE i_cdhdr FROM cdhdr WHERE objectclas IN s_object AND AND AND AND objectid tcode udate username IN s_value IN s_tcode IN s_date IN s_user
AND IF sy-subrc = 0.
change_ind =
'U'.
SORT i_cdhdr BY objectclas objectid. * SELECT objectid changenr objectclas tabkey fname value_new value_old INTO TABLE i_cdpos FOR ALL ENTRIES FROM cdpos
IN i_cdhdr
WHERE objectclas EQ i_cdhdr-objectclas AND AND AND AND AND * SELECT objectid changenr objectclas tabkey fname value_new value_old INTO TABLE i_cdpos3 FROM cdpos FOR ALL ENTRIES IN i_cdhdr objectid changenr tabname fname chngind EQ i_cdhdr-objectid EQ i_cdhdr-changenr EQ c_eban EQ c_frgzu EQ c_update.
i_cdpos1[] = i_cdpos[]. SORT i_cdpos1 BY objectid. DELETE ADJACENT DUPLICATES FROM i_cdpos1[] COMPARING objectid. ENDIF. ENDIF. * ENDFORM. " get_cdhdr
*----------------------------------------------------------------------* FORM doc_details. * IF NOT i_cdpos1[] IS INITIAL. SORT i_cdpos1 BY objectid. * SELECT banfn bnfpo bsart frgkz frgzu frgst ekgrp ernam "Purchase requisition number "Item number of purchase requisition "Purchase requisition document type "Release indicator "Release status "Release strategy in the purc. requisition "Purchasing group "Name of Person who Created the Object
afnam txz01 matnr werks menge meins badat frgdt preis peinh flief ebeln ebelp frggr waers
"Name of requisitioner/requester "Short text "Material number "Plant "Purchase requisition quantity "Purchase requisition unit of measure "Requisition (request) date "Purchase requisition release date "Price in purchase requisition "Price Unit "Fixed vendor "Purchase order number "Purchase order item number "Release group "Currency Key INTO TABLE i_eban FROM eban FOR ALL ENTRIES IN i_cdpos1 WHERE banfn EQ i_cdpos1-objectid AND AND AND AND AND bsart IN s_bsart ekgrp IN s_ekgrp ekorg IN s_ekorg frggr IN s_frggr werks IN s_werks.
* REFRESH i_cdpos1. * IF sy-subrc = 0. SORT i_eban BY banfn bnfpo. SELECT banfn bnfpo kostl "Purchase requisition number "Item number of purchase requisition "Cost Center
INTO TABLE i_ebkn FROM ebkn FOR ALL ENTRIES IN i_eban WHERE banfn EQ i_eban-banfn AND IF sy-subrc = 0. SORT i_ebkn BY banfn bnfpo. ENDIF. ENDIF. * ENDIF. * ENDFORM. " doc_details bnfpo EQ i_eban-bnfpo.
*----------------------------------------------------------------------* FORM fill_output. * DATA : v_count v_chng_flg * v_count = 0. * SORT i_cdpos BY tabkey changenr. TYPE i, TYPE c.
SORT i_cdpos3 BY objectid changenr objectclas tabkey fname. * LOOP AT i_cdpos INTO wa_cdpos. * ON CHANGE OF wa_cdpos-tabkey. v_chng_flg = 'X'.
CLEAR : v_count. ENDON. * v_count = v_count + 1. * READ TABLE i_eban INTO wa_eban WITH KEY banfn = wa_cdpos-objectid bnfpo = wa_cdpos-tabkey+13(5) BINARY SEARCH. IF sy-subrc = 0. * READ TABLE i_ebkn INTO wa_ebkn WITH KEY banfn = wa_eban-banfn bnfpo = wa_eban-bnfpo BINARY SEARCH. IF sy-subrc = 0. wa_output-kostl = wa_ebkn-kostl. ENDIF. * Get all release codes for the current Rel. Strategy READ TABLE i_t16fs INTO wa_t16fs WITH KEY frggr = wa_eban-frggr frgsx = wa_eban-frgst BINARY SEARCH. IF sy-subrc = 0. * Prepare Release Code PERFORM relcode USING v_count. ENDIF. * Read Release Indicator PERFORM read_indicator. IF sy-subrc = 0. IF v_chng_flg = 'X'. wa_output-frgkz = wa_cdpos3-value_old. ELSE. wa_output-frgkz = wa_cdpos3-value_new.
ENDIF. ENDIF. * wa_output-werks = wa_eban-werks. wa_output-banfn = wa_eban-banfn. wa_output-bnfpo = wa_eban-bnfpo. wa_output-bsart = wa_eban-bsart. wa_output-frggr = wa_eban-frggr. wa_output-frgst = wa_eban-frgst. wa_output-ernam = wa_eban-ernam. wa_output-matnr = wa_eban-matnr. wa_output-txz01 = wa_eban-txz01. wa_output-menge = wa_eban-menge. wa_output-meins = wa_eban-meins. wa_output-badat = wa_eban-badat. wa_output-frgdt = wa_eban-frgdt. wa_output-preis = wa_eban-preis. wa_output-waers = wa_eban-waers. wa_output-peinh = wa_eban-peinh. wa_output-flief = wa_eban-flief. wa_output-ebeln = wa_eban-ebeln. wa_output-ebelp = wa_eban-ebelp. wa_output-afnam = wa_eban-afnam. wa_output-frgzu = wa_cdpos-value_new. * APPEND * CLEAR: wa_output, wa_eban, wa_ebkn, wa_t16fs, wa_output TO i_output.
*----------------------------------------------------------------------* FORM alv_output. * PERFORM fill_field_catalog. * CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_grid_title it_fieldcat TABLES t_outtab . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * ENDIF.* ENDFORM. " alv_output WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. = i_output = = text-034 t_fcat
*&---------------------------------------------------------------------*
= 'Plant'(010). = = 1. 'X'.
= 'Item'(012). = = 3. 'X'.
= 'Document Type'(013). = 4.
= 'Grp.'(014). = 5.
= 'Rel Stat'(015). = 6.
APPEND wa_fcat TO t_fcat. * CLEAR wa_fcat. wa_fcat-fieldname wa_fcat-outputlen wa_fcat-seltext_m wa_fcat-col_pos = 'RCODE' . = 24. "colume width
= 'Rel. Code'(016). = 7.
= 'Rel'(017). = 8.
= 'Person Resp.'(018). = 9.
= 'Material'(020). = 11.
= 'Un.'(023). = 14.
= 'Curr'(027). = 18.
= 'Per'(028).
wa_fcat-col_pos
19.
= 'Item'(031). = 22.
wa_fcat-seltext_m wa_fcat-col_pos
= 'Requisitioner'(032). = 23.
*----------------------------------------------------------------------* FORM get_relcode. IF NOT i_eban IS INITIAL. * SELECT frggr frgsx frgc1 frgc2 frgc3 frgc4 frgc5 frgc6 frgc7 frgc8 INTO TABLE i_t16fs FROM t16fs FOR ALL ENTRIES IN i_eban WHERE frggr = i_eban-frggr AND IF sy-subrc = 0. SORT i_t16fs BY frggr frgsx. ENDIF. * frgsx = i_eban-frgst.
*----------------------------------------------------------------------* FORM relcode USING p_v_count TYPE i. * DATA : v_ind TYPE sy-index. * FIELD-SYMBOLS <fs> TYPE ANY. * v_ind = 3. * DO p_v_count TIMES. ASSIGN COMPONENT v_ind OF STRUCTURE wa_t16fs TO <fs>. IF sy-subrc = 0. CONCATENATE wa_output-rcode <fs> INTO wa_output-rcode SEPARATED BY space. v_ind = v_ind + 1. ENDIF. ENDDO. * ENDFORM. " relcode
*----------------------------------------------------------------------*
FORM read_indicator. * READ TABLE i_cdpos3 INTO wa_cdpos3 WITH KEY objectid changenr objectclas tabkey fname IF sy-subrc <> 0. * READ TABLE i_cdpos3 INTO wa_cdpos3 WITH KEY objectid objectclas tabkey fname ENDIF. ENDFORM.
Labels parameters
Edit
" read_indicator
Add Labels http://w iki.sdn.sa 23913 Snippets
Labels