Thursday, 27 April 2017

Project System and HCM Module Integration and Relations Table

HR Tables
T527O - Organizational Key Validation
SELECT
            orgky
            nodty
            text1
            text2
            FROM t527o INTO TABLE it_org_f4 WHERE orgky IN so_org AND hirar '1'.

T500P - Personnel Areas
T001P - Personnel Area/Subarea
T529U - Staus of employee master

SELECT  text1 FROM t529u INTO TABLE it_stat1_f4 WHERE sprsl 'EN'
                AND   statn '2' AND text1 IN so_stat1.
T528T - Position Texts

SELECT SINGLE plstx FROM t528t INTO gs_final1-g15 WHERE sprsl 'EN' AND otype 'S' AND plans lv_p0001-plans.

T530T- Reason for Action Texts
SELECT SINGLE stat1 stat2 massn massg FROM pa0000 INTO lv_stat1,lv_stat2,lv_massn,lv_massg WHERE pernr =  gs_pa0000-pernr "gs_hrp1001-objid
                  AND begda <= so_date-low AND endda >= so_date-high.


SELECT SINGLE mgtxt FROM  t530t INTO gs_final1-g38 WHERE sprsl 'EN' AND massn 'Z3' AND massg lv_massg.


T503T - Employee Subgroup or employee type Table text

SELECT SINGLE ptext FROM t503t INTO gs_final1-g36 WHERE sprsl 'EN' AND persk = wa_p0001-persk.
********************************************************************************


PS TABLES:

Project Allocation Table

SELECT
          otype
          objid
          rsign
          relat
          varyf
          begda
          endda
          sobid
          prozt
          FROM hrp1001
          INTO CORRESPONDING FIELDS OF TABLE gt_hrp1001
          FOR ALL ENTRIES IN gt_pa0000
          WHERE objid gt_pa0000-pernr
          AND begda <= so_date-low AND  ENDDA >= so_date-high
          AND otype 'P'
          AND sclas 'PJ' .



CONCATENATE 'PR' gs_hrp1001-sobid INTO gs_hrp1001-sobid.
      CONDENSE gs_hrp1001-sobid.


 SELECT SINGLE pspnr post1 FROM prps INTO lv_ps_posnr,gs_final1-g19 WHERE objnr gs_hrp1001-sobid.

      CALL FUNCTION 'CJDW_PRPS_SELECT_SINGLE'
        EXPORTING
          posnr             lv_ps_posnr
        IMPORTING
          e_prps            gv_prps
        EXCEPTIONS
          missing_parameter 1
          not_found         2
          OTHERS            3.




*****************************************************************************

1.SELECT-OPTIONSso_emp FOR pa9011-pernr OBLIGATORY ,
*                so_date FOR sy-datum NO INTERVALS NO-EXTENSION OBLIGATORY DEFAULT sy-datum,
                so_date for sy-datum OBLIGATORY ,
                so_org FOR p0001-vdsk1 ,
                so_area FOR t500p-name1,
                so_sarea FOR p0001-btrtl," MATCHCODE OBJECT hrpad_btrtl,
                so_wbs FOR prps-pspnr MATCHCODE OBJECT ash_prpm, " Wbs element
                so_cust FOR kna1-kunnr MATCHCODE OBJECT debi,     " Customer
                so_stat FOR prps-astnr MATCHCODE OBJECT h_tcj05,   " billing status
                so_stat1 FOR t529u-text1." t529t-mntxt." MATCHCODE OBJECT h_t529a. " employee atatus
SELECTION-SCREENEND OF BLOCK b1.



2.Initialization
INITIALIZATION.
* Description for the parameter

SO_DATE-LOW SY-DATUM.
SO_DATE-OPTION 'BT'.
SO_DATE-SIGN 'I'.
SO_DATE-HIGH SY-DATUM.
APPEND SO_DATE.

3.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_org-low.
  CLEAR it_org[].


  SELECT
        orgky
        nodty
        text1
        text2
        FROM t527o INTO TABLE it_org WHERE hirar '1'.
*  SELECT
*        persa
*        name1
*        FROM t500p
*        INTO TABLE it_org.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    'ORGKY' "'PERSA'
      dynpprog    sy-repid
      dynpnr      sy-dynnr
      dynprofield 'SO_ORG-LOW'
      value_org   'S'
    TABLES
      value_tab   it_org.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_org-high.
  CLEAR it_org[].
  SELECT
        orgky
        nodty
        text1
        text2
        FROM t527o INTO TABLE it_org WHERE hirar '1'.

*  SELECT
*        persa
*        name1
*        FROM t500p
*        INTO TABLE it_org.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    'ORGKY' "'PERSA'
      dynpprog    sy-repid
      dynpnr      sy-dynnr
      dynprofield 'SO_ORG-HIGH'
      value_org   'S'
    TABLES
      value_tab   it_org.





4. To check Authorization for Organization Key : p0001-vdsk1

AT SELECTION-SCREEN.

LOOP AT so_org.
    TRANSLATE so_org-low TO UPPER CASE,
                           so_org-high TO UPPER CASE.
    MODIFY so_org.
  ENDLOOP.


CLEAR g_message_v1,g_message_v2,g_message_v3,g_message_v4.
  IF so_org-low IS NOT INITIAL.
    AUTHORITY-CHECK OBJECT 'P_ORGIN' ID 'VDSK1' FIELD so_org-low.
    IF sy-subrc <> 0.
      CLEAR g_message_v1,g_message_v2,g_message_v3,g_message_v4.
      g_message_v1 'No authorization for'.
      g_message_v2 'Organizational Key - '.
      g_message_v3 so_org-low.
      CONDENSE g_message_v1,g_message_v2,g_message_v3.
      MESSAGE e000(zps_msgWITH g_message_v1 g_message_v2 g_message_v3.
    ENDIF.
  ENDIF.


DATA it_usvalues TYPE TABLE OF usvalues,
       wa_usvalues TYPE usvalues.


IF so_org IS INITIAL.
    lv_org 'X'.
    CLEAR it_usvalues[].
    CALL FUNCTION 'EFG_USER_AUTH_FOR_OBJ_GET'
      EXPORTING
        x_uname     sy-uname
        x_object    'P_ORGIN'
      TABLES
        yt_usvalues it_usvalues.
  ENDIF.


 IF it_usvalues[] IS NOT INITIAL.
    LOOP AT it_usvalues INTO wa_usvalues.
      IF wa_usvalues-field <> 'VDSK1'.
        wa_usvalues-field 'X'.
      ENDIF.
      MODIFY it_usvalues FROM wa_usvalues INDEX sy-tabix TRANSPORTING field.
      CLEAR wa_usvalues.
    ENDLOOP.
    DELETE it_usvalues WHERE field 'X'.
    LOOP AT it_usvalues INTO wa_usvalues.
      so_org-sign 'I'.
      so_org-option 'EQ'.
      so_org-low wa_usvalues-von.
      APPEND so_org.
      CLEAR wa_usvalues.
    ENDLOOP.
  ENDIF.

IF so_org IS NOT INITIAL.
    IF so_org-low '*' OR so_org-high '*'.
      REFRESH so_org.
      SELECT
            orgky
            nodty
            text1
            text2
            FROM t527o INTO TABLE it_org_f4 WHERE orgky IN so_org AND hirar '1'.
    ELSE.
      SELECT
            orgky
            nodty
            text1
            text2
            FROM t527o INTO TABLE it_org_f4 WHERE orgky IN so_org AND hirar '1'.
    ENDIF.
    IF it_org_f4[] IS INITIAL.
      CLEAR g_message_v1,g_message_v2.
      g_message_v1 'Organizational Key'.
      g_message_v2 'Wrong'.
      CONDENSE g_message_v1,g_message_v2.
      MESSAGE e000(zps_msgWITH g_message_v1 g_message_v2.
    ENDIF.
  ENDIF.





No comments:

Post a Comment