Etiquetas

Mostrando entradas con la etiqueta OM. Mostrar todas las entradas
Mostrando entradas con la etiqueta OM. Mostrar todas las entradas

20120921

ABAP Tips: Mensaje de Error de una RFC a Bapiret2

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

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.
*&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