Un método útil para esa parte del CALL FUNCTION, cuando el SY-SUBRC es distinto de 0, pasarla directamente a una estructura de tipo BAPIRET2.
En este ejemplo se utiliza para la llamada una Función de OM que permite obtener el siguiente número disponible para la creación de objetos, que también es bastante útil.
CALL FUNCTION 'RH_GET_NEXT_NUMBER'
EXPORTING
action = 'GIVE'
ext_number = l_objid
otype = 'D'
plvar = '01'
IMPORTING
number = l_objid
EXCEPTIONS
invalid_action = 1
number_must_be_zero = 2
invalid_object = 3
no_external_interval_found = 4
no_internal_interval_found = 5
invalid_number = 6
no_more_numbers_available = 7
OTHERS = 8.
IF sy-subrc <> 0.
PERFORM get_message USING sy-msgty sy-msgid sy-msgno
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
CHANGING e_return.
ENDIF.
*&---------------------------------------------------------------------*
*& Form get_message
*&---------------------------------------------------------------------*
FORM get_message USING type id num m1 m2 m3 m4
CHANGING e_ret STRUCTURE bapiret2.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = type
cl = id
number = num
par1 = m1
par2 = m2
par3 = m3
par4 = m4
IMPORTING
return = e_ret.
ENDFORM. " get_message
(Esos pequeños tips que no quiero volver a buscar) By Daniel F. Ruiz, Santiago, Chile.
Mostrando entradas con la etiqueta OM. Mostrar todas las entradas
Mostrando entradas con la etiqueta OM. Mostrar todas las entradas
20120921
20120110
ABAP HR: Macro para leer Infotipos de OM
Es increible cuántas veces hice SELECT a las tablas de OM por no investigar un poco. Supongo que existe una macro estándar para leer los Infotipos de OM así como existe para HR, pero mientras no la encuentre, ocuparé esta pequeña macro de ejemplo para leer esos registros.
*&---------------------------------------------------------------------*
*& Define RH_READ_INFTY
*&---------------------------------------------------------------------*
*& Define RH_READ_INFTY
*&---------------------------------------------------------------------*
DEFINE rh_read_infty.
*&1 otype
*&2 objid
*&3 infty
*&4 innnn
*&5 begda
*&6 endda
refresh &4.
call function 'RH_READ_INFTY'
exporting
plvar = '01'
otype = &1
objid = &2
infty = '&3'
istat = '1'
* SUBTY = ' '
begda = &5
endda = &6
tables
innnn = &4
* 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.
END-OF-DEFINITION.
*&1 otype
*&2 objid
*&3 infty
*&4 innnn
*&5 begda
*&6 endda
refresh &4.
call function 'RH_READ_INFTY'
exporting
plvar = '01'
otype = &1
objid = &2
infty = '&3'
istat = '1'
* SUBTY = ' '
begda = &5
endda = &6
tables
innnn = &4
* 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.
END-OF-DEFINITION.
* proceso de ejemplo
DATA p1001 TYPE TABLE OF p1001 WITH HEADER LINE.
rh_read_infty 'O' <objid> 1001 p1001 sy-datum sy-datum.
20111229
ABAP HR: Buscar el jefe directo de una persona
Una función que lee mediante vías de evaluación el jefe más cercano de una persona, considerando que su Unidad Organizativa no tiene jefe directo.
*&---------------------------------------------------------------------**& Form BUSCA_JEFE
*&---------------------------------------------------------------------*
FORM busca_jefe USING pernr TYPE persno
CHANGING idjefe TYPE persno
nombrejefe TYPE pad_cname.
20111212
ABAP HR: Leer Vías de Evaluación
Leer Vías de evaluación
CALL FUNCTION 'RH_STRUC_GET'
EXPORTING
act_otype = <tipo objeto padre>
act_objid = <id objeto padre>
act_wegid = <vía de evaluación>
ACT_PLVAR = '01'
* ACT_BEGDA = SY-DATUM
* ACT_ENDDA = SY-DATUM
ACT_TDEPTH = <0: Todos los niveles ; 2 - N: Profundidad>
* ACT_TFLAG = 'X'
* ACT_VFLAG = 'X'
* AUTHORITY_CHECK = 'X'
* TEXT_BUFFER_FILL =
* BUFFER_MODE =
TABLES
RESULT_TAB =
RESULT_OBJEC =
RESULT_STRUC =
EXCEPTIONS
NO_PLVAR_FOUND = 1
NO_ENTRY_FOUND = 2
OTHERS = 3.
La ruta IMG para conocer las vías de evaluación es:
- Gestión de Personal
- Gestión de Organización
- Parametrizaciones Básicas
x Actualizar Vías de Evaluación
CALL FUNCTION 'RH_STRUC_GET'
EXPORTING
act_otype = <tipo objeto padre>
act_objid = <id objeto padre>
act_wegid = <vía de evaluación>
ACT_PLVAR = '01'
* ACT_BEGDA = SY-DATUM
* ACT_ENDDA = SY-DATUM
ACT_TDEPTH = <0: Todos los niveles ; 2 - N: Profundidad>
* ACT_TFLAG = 'X'
* ACT_VFLAG = 'X'
* AUTHORITY_CHECK = 'X'
* TEXT_BUFFER_FILL =
* BUFFER_MODE =
TABLES
RESULT_TAB =
RESULT_OBJEC =
RESULT_STRUC =
EXCEPTIONS
NO_PLVAR_FOUND = 1
NO_ENTRY_FOUND = 2
OTHERS = 3.
La ruta IMG para conocer las vías de evaluación es:
- Gestión de Personal
- Gestión de Organización
- Parametrizaciones Básicas
x Actualizar Vías de Evaluación
Suscribirse a:
Entradas (Atom)