Update Table HRP*

Selain table infotype PA*, pada SAP HR juga terdapat table HRP*. Pada postingan ini akan dijelaskan bagaimana caranya mengupdate table HRP*, dimana sebelumnya sudah dijelaskan untuk table infotype PA*.

Contoh table HRP* adalah HRP1001 yang berisi relasi antar object.

Berikut ini adalah step yang bisa dijalankan untuk update table HRP* :

  1. Panggil FM ENQUEUE_EHPLOGIE untuk lock data.
  2.     CALL FUNCTION 'ENQUEUE_EHPLOGIE'
          EXPORTING
            plvar          = '01'
            otype          = HRP1001-OTYPE
            objid          = HRP1001-OBJID
          EXCEPTIONS
            foreign_lock   = 1
            system_failure = 2
            OTHERS         = 3.
  3. Populate data yang ingin di-update di table HRP.
  4.       DATA: lt_hrp1001 LIKE p1001 OCCURS 0 WITH HEADER LINE.
          lt_hrp1001-mandt = sy-mandt.
          lt_hrp1001-otype = HRP1001-OTYPE.
          lt_hrp1001-objid = HRP1001-OBJID.
          lt_hrp1001-plvar = '01'.
          lt_hrp1001-rsign = HRP1001-RSIGN.
          lt_hrp1001-relat = HRP1001-RELAT.
          lt_hrp1001-istat = '1'.
          lt_hrp1001-begda = HRP1001-BEGDA.
          lt_hrp1001-endda = HRP1001-ENDDA.
          lt_hrp1001-infty = '1001'.
          lt_hrp1001-sclas = HRP1001-SCLAS.
          lt_hrp1001-sobid = HRP1001-SOBID.
          APPEND lt_hrp1001.
    
  5. Panggil FM RH_UPDATE_INFTY untuk update table HRP. Atau panggil FM RH_INSERT_INFTY untuk insert data ke table HRP. Atau panggil FM RH_DELETE_INFTY untuk insert data ke table HRP. Gunakan vtask = D bila langsung update ke dalam table. Atau gunakan vtask = B bila ingin disimpan ke dalam buffer terlebih dahulu. Konsepnya, vtask = B mirip seperti nocommit = ‘X’ pada FM HR_INFOTYPE_OPERATION.
  6.     CALL FUNCTION 'RH_INSERT_INFTY'
          EXPORTING
            vtask               = 'D'
          TABLES
            innnn               = lt_hrp1001
          EXCEPTIONS
            no_authorization    = 1
            error_during_insert = 2
            repid_form_initial  = 3
            corr_exit           = 4
            begda_greater_endda = 5
            OTHERS              = 6.
    
  7. Bila vtask = B digunakan, panggil FM RH_CLEAR_BUFFER & RH_CLEAR_BUFFER untuk membersihkan buffer. Bila sukses, panggil FM RH_UPDATE_DATABASE.
  8.       CALL FUNCTION 'RH_CLEAR_BUFFER'.
          CALL FUNCTION 'RH_CLEAR_PLOG_TAB'.
    
        CALL FUNCTION 'RH_UPDATE_DATABASE'
          EXPORTING
            vtask     = 'D'
          EXCEPTIONS
            corr_exit = 1
            OTHERS    = 2.
    
  9. Panggil FM DEQUEUE_EHPLOGIE untuk unlock data.
  10.     CALL FUNCTION 'DEQUEUE_EHPLOGIE'
          EXPORTING
            plvar = '01'
            otype = HRP1001-OTYPE
            objid = HRP1001-OBJID.
    

Hope it helps.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s