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.
    CALL FUNCTION 'ENQUEUE_EHPLOGIE'
      EXPORTING
        plvar          = '01'
        otype          = HRP1001-OTYPE
        objid          = HRP1001-OBJID
      EXCEPTIONS
        foreign_lock   = 1
        system_failure = 2
        OTHERS         = 3.
    1. Populate data yang ingin di-update di table HRP.
      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.
    1. 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.
    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.
    1. Bila vtask = B digunakan, panggil FM RH_CLEAR_BUFFER & RH_CLEAR_BUFFER untuk membersihkan buffer. Bila sukses, panggil FM RH_UPDATE_DATABASE.
      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.
    1. Panggil FM DEQUEUE_EHPLOGIE untuk unlock data.
    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

%d bloggers like this: