sapdev logo background
sapdev logo sapdev logo
Comments

Function module HR_INFOTYPE_OPERATION to maintain SAP HR infotypes




The HR_INFOTYPE_OPERATION function module is used for the Maintenance of HR infotypes, such as inserting, changing, deleting data etc

Parameters Explained
Here is a list of the fm's parameters and how they are used, obviously not all parameters will be used depending on what function you are performing i.e. insert, change, delet etc

infty - Infotype being updated

objectid - object id from infotype

number - Personnel number

validityend - validity end date

validitybegin - validity begin date

record - infotype record values to be updated, inserted etc (will be structure of infortyoe you are updating)

recordnumber - sequence nunber from infotype record you are updating

Operation - describes what operation is to be performed
COP = Copy
DEL = Delete
DIS = Display
EDQ = Lock/unlock
INS = Create
LIS9 = Delimit
MOD = Change
INSS = Create for Actions is not converted to Change

nocommit - commit yes('X') / no(' ')

dialog_mode - dialog mode or not, default is '0'

Example coding for MOD operation
      CONSTANTS: change TYPE pspar-actio VALUE 'MOD'.

      "This code is requred and locks the record ready for modification
      CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
        EXPORTING
         number = p_pernr.


      "loop at p0071 into p_p0071.  "added to put code in context
      validitybegin = p_record-begda.
      validityend   = p_record-endda.
      p_record-endda = pn-begda - 1.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty         = '0071'
          subtype       = p_record-subty
          objectid      = P_record-objps
          number        = p_record-pernr     "employeenumber
          validityend   = validityend
          validitybegin = validitybegin
          record        = p_record
          recordnumber  = p_record-SEQNR
          operation     = change
          nocommit      = nocommit
          dialog_mode   = '0'
        IMPORTING
          return        = return_struct
          key           = personaldatakey
        EXCEPTIONS
          OTHERS        = 0.

       "endloop.

     "unlock record after modification
     CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
       EXPORTING
        number = p_pernr.

Example coding for INS operation
      CONSTANTS: insert TYPE pspar-actio VALUE 'INS'.

      "This code is requred and locks the record ready for modification
      CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
        EXPORTING
         number = p_pernr.


      validitybegin = p_record-begda.
      validityend   = p_record-endda.
      p_record-pernr = p_pernr
      p_record-begda =  pn-begda.
      p_record-endda =  validityend.
      p_record-subty = p_SUBTY.  "subtype of new entry
      p_record-SCREF = p_SUBTY.  "subtype of new entry
      "plus populate any other fields you need to update

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty         = '0071'
          subtype       = p_record-subty
          number        = p_record-pernr     "employeenumber
          validityend   = validityend
          validitybegin = validitybegin
          record        = p_record
          operation     = insert
          nocommit      = nocommit
          dialog_mode   = '0'
        IMPORTING
          return        = return_struct
          key           = personaldatakey
        EXCEPTIONS
          OTHERS        = 0.

     "unlock record after modification
     CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
       EXPORTING
        number = p_pernr.

INS operation example coding for infotype 0105
Also see BAPI_EMPLCOMM_CREATE for updating infotype 0105

      CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
        EXPORTING
          number = p_pernr.

      p_record-subty    = p_subtype. "subtype of new entry
      p_record-pernr    =  p_pernr.
      p_record-SEQNR    = '000'.
      validityend       = '99991231'.
      validitybegin     = sy-datum.
      p_record-begda    = sy-datum.
      p_record-endda    = '99991231'.
      p_record-usrid    = 'TESTUSR'.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty         = '0105'
          subtype       = p_record-subty
          objectid      = P_record-objps
          number        = p_record-pernr     "employeenumber
          validityend   = validityend
          validitybegin = validitybegin
          record        = p_record
          operation     = 'INS'
          nocommit      = nocommit
          dialog_mode   = '0'
        IMPORTING
          return        = return_struct
          key           = personaldatakey
        EXCEPTIONS
          OTHERS        = 0.
      if sy-subrc eq 0.
*       success
      endif.

      CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
        EXPORTING
          number = p_pernr.

see BAPI_EMPLCOMM_CREATE if updating infotype 0105!!

Check out sap documentation and pattern details for function module hr_infotype_operation on website se80.co.uk




comments powered by Disqus