Difference between revisions of "SAP HCM OM"
| Line 167: | Line 167: | ||
===Leer Descripción de Objeto RH_OBJECT_DESCRIPTION_READ_2=== | ===Leer Descripción de Objeto RH_OBJECT_DESCRIPTION_READ_2=== | ||
| − | + | <nowiki>FORM read_description USING p_objid | |
| − | + | p_otype | |
| − | + | p_begda | |
| − | + | p_endda | |
| − | + | p_subty | |
| − | + | p_seqnr | |
| − | + | CHANGING p_longtext TYPE wcb_tdline_tab. | |
| − | + | ||
| − | + | DATA: i1002 TYPE TABLE OF p1002, | |
| − | + | i1002_exp TYPE TABLE OF p1002_exp WITH HEADER LINE, | |
| − | + | objects TYPE TABLE OF hrobject WITH HEADER LINE. | |
| − | + | DATA ls_longtext LIKE LINE OF p_longtext. | |
| − | + | ||
| − | + | objects-plvar = c_actual. | |
| − | + | objects-otype = p_otype. | |
| − | + | objects-objid = p_objid. | |
| − | + | APPEND objects. | |
| − | + | ||
| − | + | * read appraisal information and rating description | |
| − | + | CALL FUNCTION 'RH_OBJECT_DESCRIPTION_READ_2' | |
| − | + | EXPORTING | |
| − | + | * LANGU = SY-LANGU | |
| − | + | begda = p_begda | |
| − | + | endda = p_endda | |
| − | + | subty = p_subty | |
| − | + | TABLES | |
| − | + | i1002 = i1002 | |
| − | + | i1002_exp = i1002_exp | |
| − | + | OBJECTS = OBJECTS | |
| − | + | exceptions | |
| − | + | nothing_found = 1 | |
| − | + | infty_empty = 2 | |
| − | + | undefined = 3 | |
| − | + | OTHERS = 4. | |
| − | + | IF sy-subrc <> 0. | |
| − | + | CLEAR: i1002, | |
| − | + | i1002_exp. | |
| − | + | ENDIF. | |
| − | + | ||
| − | + | ||
| − | + | LOOP AT i1002_exp WHERE subty <> p_subty OR seqnr <> p_seqnr | |
| − | + | OR begda <> p_begda OR endda <> p_endda. | |
| − | + | DELETE i1002_exp INDEX sy-tabix. | |
| − | + | ENDLOOP. | |
| − | + | ||
| − | + | LOOP AT i1002_exp. | |
| − | + | MOVE i1002_exp-tline TO ls_longtext. | |
| − | + | APPEND ls_longtext TO p_longtext. | |
| − | + | ENDLOOP. | |
| − | + | ENDFORM. "read_description | |
| − | + | ||
| − | + | DATA: lt_p1002 TYPE TABLE OF p1002 WITH HEADER LINE, | |
| − | + | lt_relation TYPE hri1001_tab, | |
| − | + | lt_longtext TYPE wcb_tdline_tab. | |
| − | + | DATA ls_p1002 LIKE LINE OF lt_p1002. | |
| − | + | DATA l_subrc TYPE sy-subrc. | |
| − | + | ||
| − | + | CALL FUNCTION 'RH_READ_INFTY' | |
| − | + | EXPORTING | |
| − | + | plvar = '01' | |
| − | + | otype = 'S' | |
| − | + | objid = p_objid | |
| − | + | infty = '1002' | |
| − | + | TABLES | |
| − | + | innnn = lt_p1002 | |
| − | + | EXCEPTIONS | |
| − | + | all_infty_with_subty = 1 | |
| − | + | nothing_found = 2 | |
| − | + | no_objects = 3 | |
| − | + | wrong_condition = 4 | |
| − | + | wrong_parameters = 5 | |
| − | + | OTHERS = 6. | |
| − | + | ||
| − | + | LOOP AT lt_p1002 INTO ls_p1002 WHERE istat = '1'. | |
| − | + | ENDLOOP. | |
| − | + | IF sy-subrc = 0. | |
| − | + | PERFORM read_description IN PROGRAM zhr_sindicato_rutinas | |
| − | + | USING p_objid | |
| − | + | ls_p1002-otype | |
| − | + | ls_p1002-begda | |
| − | + | ls_p1002-endda | |
| − | + | ls_p1002-subty | |
| − | + | ls_p1002-seqnr | |
| − | + | CHANGING lt_longtext[]. | |
| − | + | ENDIF.</nowiki> | |
| − | + | ||
===RH_OBJECT_DESCRIPTION_WRITE=== | ===RH_OBJECT_DESCRIPTION_WRITE=== | ||
CALL FUNCTION 'RH_OBJECT_DESCRIPTION_WRITE' | CALL FUNCTION 'RH_OBJECT_DESCRIPTION_WRITE' | ||
Revision as of 21:44, 4 April 2020
Contents
Transacciones
- PP01 Actual.datos plan (guiado por menú)
- PO10 Actualizar unidad de organización
- PO03 Actualizar función
- PO13 Actualizar posición
- PO01 Actualizar puesto de trabajo
- Reportes
- RHGRENZ0 - Delimitar objetos
- RHCHECKRELATIONS - Borrado de enlaces sin objetos existentes
- RHCHECK1 - Verif.consistencia base datos
FM OM Infotypes
RH_OBJECT_CREATE
CALL FUNCTION 'RH_OBJECT_CREATE'
EXPORTING
plvar = '01'
otype = 'S'
short = ls_p1000-short
stext = ls_p1000-stext
begda = p_begda
endda = p_endda
vtask = 'B'
IMPORTING
objid = p_objid_new
EXCEPTIONS
text_required = 1
invalid_otype = 2
invalid_date = 3
error_during_insert = 4
error_ext_number = 5
undefined = 6
OTHERS = 7.
IF sy-subrc <> 0.
ROLLBACK WORK.
p_subrc = 7.
RETURN.
ENDIF.
RH_DELETE_OBJECT
FORM borrar_relaciones USING p_objid.
DATA: lt_p1001 TYPE TABLE OF p1001 WITH HEADER LINE,
l_objid TYPE p1000-objid.
CALL FUNCTION 'RH_READ_INFTY'
EXPORTING
plvar = '01'
otype = 'ZT'
objid = p_objid
infty = '1001'
istat = '1'
TABLES
innnn = lt_p1001
* OBJECTS =
EXCEPTIONS
all_infty_with_subty = 1
nothing_found = 2
no_objects = 3
wrong_condition = 4
wrong_parameters = 5
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_p1001 WHERE sclas = 'ZI'.
MOVE lt_p1001-sobid TO l_objid.
CALL FUNCTION 'RH_DELETE_OBJECT'
EXPORTING
plvar = '01'
otype = 'ZI'
objid = l_objid
vtask = 'B'
EXCEPTIONS
error_during_delete = 1
no_authorization = 2
corr_exit = 3
buffer_upd_with_foreign_data = 4
OTHERS = 5.
ENDLOOP.
CALL FUNCTION 'RH_UPDATE_DATABASE'
EXPORTING
vtask = 'D'
commit_flg = 'X' "VWMCOMMIT
clear_buffer = ' '
EXCEPTIONS
corr_exit = 04.
ENDFORM. " BORRAR_
RH_INSERT_INFTY
FORM insert_infty USING p_p TYPE any
CHANGING p_subrc TYPE sy-subrc.
DATA: wplog_record_tab TYPE TABLE OF wplog,
wplog_record TYPE wplog.
FIELD-SYMBOLS <wplog> TYPE c.
ASSIGN p_p TO <wplog> CASTING.
wplog_record = <wplog>.
APPEND wplog_record TO wplog_record_tab.
CALL FUNCTION 'RH_INSERT_INFTY'
EXPORTING
vtask = 'B'
TABLES
innnn = wplog_record_tab
EXCEPTIONS
no_authorization = 1
error_during_insert = 2
repid_form_initial = 2
corr_exit = 2
OTHERS = 2.
p_subrc = sy-subrc.
ENDFORM. "insert_infty
PERFORM insert_infty USING ls_P1010
CHANGING l_subrc.
IF l_subrc <> 0.
ROLLBACK WORK.
p_subrc = 5.
RETURN.
ENDIF.
RH_DELETE_INFTY
FORM delete_infotype USING p_p TYPE any
CHANGING p_subrc TYPE sy-subrc.
DATA: wplog_record_tab TYPE TABLE OF wplog,
wplog_record TYPE wplog.
FIELD-SYMBOLS <wplog> TYPE c.
ASSIGN p_p TO <wplog> CASTING.
wplog_record = <wplog>.
APPEND wplog_record TO wplog_record_tab.
CALL FUNCTION 'RH_DELETE_INFTY'
EXPORTING
vtask = 'B'
TABLES
innnn = wplog_record_tab
EXCEPTIONS
error_during_delete = 1
no_authorization = 2
delete_first_record = 3
corr_exit = 4
OTHERS = 5.
p_subrc = sy-subrc.
ENDFORM. "delete_infotype
PERFORM delete_infotype USING ls_p9005
CHANGING l_subrc.
IF l_subrc <> 0.
ROLLBACK WORK.
p_subrc = 5.
RETURN.
ENDIF.
Leer Descripción de Objeto RH_OBJECT_DESCRIPTION_READ_2
FORM read_description USING p_objid p_otype p_begda p_endda p_subty p_seqnr CHANGING p_longtext TYPE wcb_tdline_tab. DATA: i1002 TYPE TABLE OF p1002, i1002_exp TYPE TABLE OF p1002_exp WITH HEADER LINE, objects TYPE TABLE OF hrobject WITH HEADER LINE. DATA ls_longtext LIKE LINE OF p_longtext. objects-plvar = c_actual. objects-otype = p_otype. objects-objid = p_objid. APPEND objects. * read appraisal information and rating description CALL FUNCTION 'RH_OBJECT_DESCRIPTION_READ_2' EXPORTING * LANGU = SY-LANGU begda = p_begda endda = p_endda subty = p_subty TABLES i1002 = i1002 i1002_exp = i1002_exp OBJECTS = OBJECTS exceptions nothing_found = 1 infty_empty = 2 undefined = 3 OTHERS = 4. IF sy-subrc <> 0. CLEAR: i1002, i1002_exp. ENDIF. LOOP AT i1002_exp WHERE subty <> p_subty OR seqnr <> p_seqnr OR begda <> p_begda OR endda <> p_endda. DELETE i1002_exp INDEX sy-tabix. ENDLOOP. LOOP AT i1002_exp. MOVE i1002_exp-tline TO ls_longtext. APPEND ls_longtext TO p_longtext. ENDLOOP. ENDFORM. "read_description DATA: lt_p1002 TYPE TABLE OF p1002 WITH HEADER LINE, lt_relation TYPE hri1001_tab, lt_longtext TYPE wcb_tdline_tab. DATA ls_p1002 LIKE LINE OF lt_p1002. DATA l_subrc TYPE sy-subrc. CALL FUNCTION 'RH_READ_INFTY' EXPORTING plvar = '01' otype = 'S' objid = p_objid infty = '1002' TABLES innnn = lt_p1002 EXCEPTIONS all_infty_with_subty = 1 nothing_found = 2 no_objects = 3 wrong_condition = 4 wrong_parameters = 5 OTHERS = 6. LOOP AT lt_p1002 INTO ls_p1002 WHERE istat = '1'. ENDLOOP. IF sy-subrc = 0. PERFORM read_description IN PROGRAM zhr_sindicato_rutinas USING p_objid ls_p1002-otype ls_p1002-begda ls_p1002-endda ls_p1002-subty ls_p1002-seqnr CHANGING lt_longtext[]. ENDIF.
RH_OBJECT_DESCRIPTION_WRITE
CALL FUNCTION 'RH_OBJECT_DESCRIPTION_WRITE'
EXPORTING
plvar = '01'
otype = 'S'
objid = p_objid
begda = ls_p1002-begda
endda = ls_p1002-endda
subty = ls_p1002-subty
vtask = 'B'
TABLES
ptxt1002 = lt_longtext
EXCEPTIONS
object_not_found = 1
description_required = 2
no_authority = 3
error_during_insert = 4
invalid_date = 5
undefined = 6
OTHERS = 7.
IF sy-subrc <> 0.
ROLLBACK WORK.
l_subrc = 5.
RETURN.
ENDIF.