Автор Тема: Тестовый расчет з/п (из программы)  (Прочитано 6428 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RoadRunner

  • Newbie
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Тестовый расчет з/п (из программы)
« : Июнь 15, 2007, 05:18:17 pm »
Маялся долго с этим - нужно было рассчитать определенный кусок з/п (не всю) и результаты обработать. После исканий пришел к такому решению:
Код: You are not allowed to view links. Register or Login
TYPE-POOLS: hrpay.
TABLES: pcl1,  "IMPORT/EXPORT
        pcl2.  "IMPORT/EXPORT

*DATA: payroll TYPE pay99_result.
*DATA: result TYPE TABLE OF pc207 WITH HEADER LINE.
*DATA: error_table LIKE rpbenerr OCCURS 0.
DATA: molga(2) VALUE '33', subrc LIKE sy-subrc.
DATA: payroll_driver TYPE t596f-pgmna.
DATA: buffer TYPE hrpay_buffer.
DATA: rgdir_line   LIKE pc261.

DATA: BEGIN OF mem_id_iprel,
        pernr    LIKE p0001-pernr,
        value(5) VALUE 'IPREL',
      END OF mem_id_iprel.

DATA: pernrs LIKE pay_sim_pernr OCCURS 1 WITH HEADER LINE.

DATA: BEGIN OF rx-key.            "Cluster Key
        INCLUDE STRUCTURE pc200.
DATA: END   OF rx-key.
DATA: BEGIN OF  ry-version.
        INCLUDE STRUCTURE pc201_pay.
DATA: END OF  ry-version.
DATA: BEGIN OF ory-version.
        INCLUDE STRUCTURE pc201_pay.
DATA: END OF ory-version.
DATA:  BEGIN OF bt OCCURS 3.
        INCLUDE STRUCTURE pc209.
DATA:  END   OF bt.

DATA: rp-imp-ry-subrc LIKE sy-subrc.

DATA  last_rgdir_entry TYPE i.

DATA: BEGIN OF memo_key,
        uname LIKE sy-uname,
        datum LIKE sy-datum,
      END OF memo_key.

CONSTANTS: pernr TYPE pernr_d VALUE <таб.номер для тестирования>.

INCLUDE rpc2cd09.
INCLUDE rpc2rx02.
INCLUDE hrupaymacro.
INCLUDE h99paydata.
INCLUDE rpppxd00.
INCLUDE rpppxd10.
INCLUDE rpppxm00.


START-OF-SELECTION.

  pernrs-pernr = pernr. APPEND pernrs.
  MOVE-CORRESPONDING sy TO memo_key.

  CALL FUNCTION 'HR_PAYROLL'
    EXPORTING
      payroll_area              = <payroll_area>
      payroll_period            = <month>
      payroll_year              = <year>
      selection_variant         = <variant_name>
      program_name              = 'RPCALCY0'    "соотв. системе название
      log_mem_key               = memo_key
      country_grp               = '33'
*     TST_ON                    = 'X'
    TABLES
      employee_numbers          = pernrs
      buffer                    = tbuff
      buffer_directory          = buffer_dir
      del_pclx                  = del_pclx_tab
    EXCEPTIONS
      program_not_exist         = 1
      variant_not_exist         = 2
      missing_parameter         = 3
      wrong_parameter           = 4
      wrong_country_group       = 5
      OTHERS                    = 6
            .
  buffer-tbuff[] = tbuff[].
  buffer-buffer_dir[] = buffer_dir[].
  buffer-del_pclx_tab[] = del_pclx_tab[].

  CALL FUNCTION 'CU_READ_RGDIR'
       EXPORTING
            persnr          = pernr
            buffer          = buffer
       IMPORTING
            molga           = molga
       TABLES
            in_rgdir        = rgdir
       EXCEPTIONS
            no_record_found = 1
            OTHERS          = 2.

  CALL FUNCTION 'CD_READ_LAST_RESULT_IN_RGDIR'
       IMPORTING
            ptx_rgdir_nv = rgdir_line
       TABLES
            pt_rgdir     = rgdir.

  rx-key-pernr = pernr.
  rx-key-seqno = rgdir_line-seqnr.
  rp-imp-c2-ry.

  IF rp-imp-ry-subrc NE 0.
  ENDIF.
Сами понимаете, это шаблон. Тем более, для HR - наверное, мало интересующихся будет... Все равно, хочу поделиться с общественностью - может, кому пригодится. Будут вопросы, пишите в этой теме - рад ответить.