************************************************************************
* Programa : ZHR_CI010 *
* Módulo : HR - Recursos Humanos *
* Documento: *
* Usuario responsable: *
* Consultor funcional: Gabriela Mogollón *
* Consultor ABAP : Alvaro Tejada Galindo *
* *
* Descripción: Carga inicial Infotipos PA30 - Emolumentos Básicos *
* Transacción: *
* Juego de datos: *
************************************************************************
REPORT ZHR_CI010 NO STANDARD PAGE HEADING MESSAGE-ID ZMENSAJE.
*=======================================================================
* Includes
*=======================================================================
INCLUDE ZBC_IN001. "rutinas de batch inputs
*=======================================================================
* Estructuras
*=======================================================================
*- Estructura de Archivo a cargar
DATA: BEGIN OF T_DATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF T_DATA.
DATA: BEGIN OF T_CARGAHONOR OCCURS 0,
FECHAINI(10) TYPE C,
FECHAFIN(10) TYPE C,
CODEMP(8) TYPE C,
GRUPO(8) TYPE C,
SUBGRP(2) TYPE C,
GRADO(5) TYPE C,
IMPORTE(15) TYPE C,
MONEDA(5) TYPE C,
END OF T_CARGAHONOR.
*=======================================================================
* Variables
*=======================================================================
DATA:
LONG TYPE I,
COUNT TYPE I,
MONEDA(3) TYPE C.
CONSTANTS SUBGRUPO(2) TYPE C VALUE '01'.
CONSTANTS INFOTYPE(1) TYPE C VALUE '8'.
*=======================================================================
* Selection screen
*=======================================================================
SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME TITLE TEXT-T01.
PARAMETERS:
FILEMON(128) TYPE C OBLIGATORY.
SELECTION-SCREEN END OF BLOCK DATA.
*=======================================================================
* At selection-screen
*=======================================================================
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILEMON.
PERFORM NOMBRE_ARCHIVO USING FILEMON.
*=======================================================================
* Start-of-selection
*=======================================================================
START-OF-SELECTION.
PERFORM ABRE_ARCHIVO_PC_HR TABLES T_CARGAHONOR USING FILEMON.
PERFORM CREAR_SESION USING 'CI_CPA30EB'.
REFRESH T_BDCDATA.
LOOP AT T_CARGAHONOR.
COUNT = COUNT + 1.
PERFORM TRANSFIERE_DATOS_HONORARIOS.
PERFORM INSERTA_DATOS USING 'PA30'.
ENDLOOP.
PERFORM CERRAR_SESION USING 'CI_CPA30EB'.
WRITE: / 'Registros leidos:', COUNT,
/,
/ 'Se ha creado el juego de datos: CI_CPA30EB',
/ 'Ejecutar desde transacción SM35'.
END-OF-SELECTION.
*=======================================================================
* Subrutinas
*=======================================================================
FORM ABRE_ARCHIVO_PC_HR TABLES TABLA USING ARCHIVO .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = 'IBM'
FILENAME = ARCHIVO
FILETYPE = 'ASC'
IMPORTING
FILELENGHT = LONG
TABLES
DATA_TAB = TABLA
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
IF SY-SUBRC NE 0.
MESSAGE E001.
ENDIF.
ENDFORM. " ABRE_ARCHIVO_PC
*&---------------------------------------------------------------------*
*& Form TRANSFIERE_DATOS_HONORARIOS
*&---------------------------------------------------------------------*
* Transfiere los datos del registro del archivo plano leído a la
* tabla interna t_bdcdata.
*----------------------------------------------------------------------*
FORM TRANSFIERE_DATOS_HONORARIOS.
*- Limpia la tabla interna t_bdcdata
REFRESH T_BDCDATA.
CLEAR T_BDCDATA.
IF T_CARGAHONOR-MONEDA NE SPACE.
MONEDA = T_CARGAHONOR-MONEDA.
ELSE.
MONEDA = 'PEN'.
ENDIF.
PERFORM DYNPRO USING:
*- Primera Pantalla
'X' 'SAPMP50A' '1000',
'' 'RP50G-PERNR' T_CARGAHONOR-CODEMP, "Codigo Empleado
'' 'RP50G-BEGDA' T_CARGAHONOR-FECHAINI, "Fecha Inicial
'' 'RP50G-ENDDA' T_CARGAHONOR-FECHAFIN, "Fecha Final
'' 'RP50G-CHOIC' INFOTYPE, "Clave Infotipo
'' 'BDC_OKCODE' '=INS', "Enter
*- Primera Pantalla
'X' 'MP000800' '2000',
'' 'P0008-BEGDA' T_CARGAHONOR-FECHAINI, "Fecha Inicio
'' 'P0008-ENDDA' T_CARGAHONOR-FECHAFIN, "Fecha Fin
'' 'P0008-TRFGR' T_CARGAHONOR-GRUPO, "Grupo
'' 'P0008-TRFST' SUBGRUPO, "Sub Grupo
'' 'P0008-BSGRD' T_CARGAHONOR-GRADO, "Grado Ocupacion
'' 'Q0008-BETRG(01)' T_CARGAHONOR-IMPORTE, "Importe
'' 'P0008-WAERS' MONEDA, "Moneda
'' 'BDC_OKCODE' '=UPD'. "Actualizar
ENDFORM. " TRANSFIERE_DATOS_HONORARIOS