Simular una nomina de simulación

Bueno, aqui voy a dejar algo que intente hace poco y la verdad lo hice porque un compañero consultor me comento que una Tx estandar lo hace pero el ya porque sabia el punto sino hubiese tenido que debugear un ratoooo para caerle pero aqui dejo lo que es el punto a tratar…Simular una nomina.

DATA: cs_buffer     TYPE hrpay_buffer,
        ct_ee_numbers TYPE TABLE OF pay_sim_pernr,
        ls_numbers    TYPE pay_sim_pernr,
        lt_rgdir      TYPE hrpy_tt_rgdir,
        lt_pay_result TYPE hrpaycl_tab_of_results,
        lv_tfill      TYPE sytfill,
        ls_pay_result TYPE paycl_result,
        ct_rt         TYPE hrpay99_rt,
        lv_schema     TYPE schem,
        ls_rt         TYPE pc207.

  ls_numbers-pernr = u_9000-nrore.

  APPEND ls_numbers TO ct_ee_numbers.

  lv_schema = ps-key.

  CALL FUNCTION 'HR_PAYROLL'
    EXPORTING
      payroll_area        = u_aper-abkrs
      payroll_period      = u_aper-paper-pabrp
      payroll_year        = u_aper-paper-pabrj
      selection_variant   = 'SAP&CALC'
      program_name        = sy-repid
      country_grp         = '39'
      imp_buff            = 'X'
      prt_prot            = 'X'
      schema              = lv_schema
    TABLES
      employee_numbers    = ct_ee_numbers[]
      buffer              = cs_buffer-tbuff[]
      buffer_directory    = cs_buffer-buffer_dir[]
    EXCEPTIONS
      program_not_exist   = 1
      variant_not_exist   = 2
      missing_parameter   = 3
      wrong_parameter     = 4
      wrong_country_group = 5
      OTHERS              = 6.

  CALL FUNCTION 'CU_READ_RGDIR'
    EXPORTING
      persnr          = u_9000-nrore
      buffer          = cs_buffer
    TABLES
      in_rgdir        = lt_rgdir[]
    EXCEPTIONS
      no_record_found = 1
      OTHERS          = 2.

  CALL FUNCTION 'HR_CL_READ_RGDIR_PAYRESULTS'
    EXPORTING
      pernr                          = u_9000-nrore
      begda                          = u_aper-begda
      endda                          = u_aper-endda
      read_only_buffer               = 'X'
      iv_first_payroll               = 'X'
    TABLES
      paycl_result                   = lt_pay_result[]
      buffer_rgdir                   = lt_rgdir[]
    EXCEPTIONS
      error_in_cu_read_rgdir         = 1
      error_in_cd_select_date_range  = 2
      error_in_cd_select_srtza       = 3
      error_in_cd_select_void        = 4
      error_in_cd_select_payty_range = 5
      error_in_cd_select_payid_range = 6
      error_in_cd_select_fpper       = 7
      error_in_cd_select_permo       = 8
      error_in_cd_select_abkrs       = 9
      error_in_cd_select_juper       = 10
      error_in_read_rgdir_payresults = 11
      error_incorrect_date_range     = 12
      error_incorrect_fpper_range    = 13
      error_others                   = 14
      OTHERS                         = 15.

  DESCRIBE TABLE lt_pay_result LINES lv_tfill.
  READ TABLE lt_pay_result INTO ls_pay_result INDEX lv_tfill.

  ct_rt[] = ls_pay_result-inter-rt[].

NOTA: Estos modulos de funciones no nuevos “18.08.2015”, habria que ver si existen en su version. Tengo que confirmar si es solo para SAP R/4 o sirve para el R/3 pero no tengo acceso a ningun cliente con R/3 ahorita.

Pero esto es un reporte?
Que hace?
con que finalidad lo desarrollaste?
Lo paso a tutoriales

Sería #tutoriales si fuese un paso a paso.
Lo moví a Educación :slight_smile:

@canuto, danos más info sobre lo que hace el código =)

1 me gusta

Eso, es mas como un aporte u orientacion…estos 2 modulos de funciones te ayudan a generar la simulacion de un empleado, serviria para ver los cc-nominas de una nomina pero en simulacion !! es como si ejecuratas la Tx pc00_mxx_calc_simu, que ves la nomina simulada pero aqui lo generas en codigo y lo puedes mostrar, leer o la necesidad que tengas !! yo la hice porque tenia que consultar la nomina simulada de X empleado para leer X concepto !! y menos mal llegaron ustedes para editar el codigo porque yo estoy raspado en eso jejejejejejejeje

Y lo pongo porque yo busque por google mas o menos algo asi o que me arientara y nada…entonces ahi pienso que es algo util

2 Me gusta