<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Creating MIME for XML in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768372#M906769</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am reading XML tags from the Spool and converting that into a XML file and displaying in the screen.  But it is not displaying &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the following code for that.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
    p_regex = '.[^.]+$'.
    condense p_regex.
    create object regex
      exporting
        pattern     = p_regex
        ignore_case = ''.
* For REGEX match
    matcher = cl_abap_matcher=&amp;gt;create(
                   pattern     = p_regex
                   ignore_case = ' '
                   table       = i_files ).
    lt_result = matcher-&amp;gt;find_all( ).


    find first occurrence of regex '.[^.]+$' in lt_result match offset v_offset.

    add 1 to v_offset.
    v_extension = v_filename+v_offset.
    call function 'SDOK_MIMETYPE_GET'
      exporting
        extension = v_extension
      importing
        mimetype  = v_mimetype.

    v_mime_string = v_mimetype.

    call method cl_wd_runtime_services=&amp;gt;attach_file_to_response
      exporting
        i_filename      = v_filename
        i_content       = v_xstring
        i_mime_type     = v_mime_string
        i_in_new_window = abap_true
        i_inplace       = abap_true.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; a®&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 24 Apr 2008 19:08:34 GMT</pubDate>
    <dc:creator>former_member194669</dc:creator>
    <dc:date>2008-04-24T19:08:34Z</dc:date>
    <item>
      <title>Creating MIME for XML</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768372#M906769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am reading XML tags from the Spool and converting that into a XML file and displaying in the screen.  But it is not displaying &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the following code for that.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
    p_regex = '.[^.]+$'.
    condense p_regex.
    create object regex
      exporting
        pattern     = p_regex
        ignore_case = ''.
* For REGEX match
    matcher = cl_abap_matcher=&amp;gt;create(
                   pattern     = p_regex
                   ignore_case = ' '
                   table       = i_files ).
    lt_result = matcher-&amp;gt;find_all( ).


    find first occurrence of regex '.[^.]+$' in lt_result match offset v_offset.

    add 1 to v_offset.
    v_extension = v_filename+v_offset.
    call function 'SDOK_MIMETYPE_GET'
      exporting
        extension = v_extension
      importing
        mimetype  = v_mimetype.

    v_mime_string = v_mimetype.

    call method cl_wd_runtime_services=&amp;gt;attach_file_to_response
      exporting
        i_filename      = v_filename
        i_content       = v_xstring
        i_mime_type     = v_mime_string
        i_in_new_window = abap_true
        i_inplace       = abap_true.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; a®&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Apr 2008 19:08:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768372#M906769</guid>
      <dc:creator>former_member194669</dc:creator>
      <dc:date>2008-04-24T19:08:34Z</dc:date>
    </item>
    <item>
      <title>Re: Creating MIME for XML</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768373#M906770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi check this example .......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Moises Moreno &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAMA    : ZHR02597 Batch Input Datos Reloj Checador              *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       leyendo un archivo XML                        *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AUTOR       : Moises Moreno De Leon (GALVAK)                         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FECHA       : Junio 23, 2004                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;REPORT ZHR02597 MESSAGE-ID ZG LINE-SIZE  80 LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                                               NO STANDARD PAGE HEADING.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tablas                                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;       PA0000,         "HR Master Record: Infotype 0000 (Events)&lt;/P&gt;&lt;P&gt;       PA0001,         "HR Master Record: Infotype 0001 (Org. Assignment&lt;/P&gt;&lt;P&gt;       PA0007,         "HR Master Record: Infotype 0007 (Work Schedule)&lt;/P&gt;&lt;P&gt;       PA0008,         "HR Master Record: Infotype 0008 (Basic Pay)&lt;/P&gt;&lt;P&gt;       PA2003,         "HR Time Record: Infotype 2003 (Substitutions)&lt;/P&gt;&lt;P&gt;       T508A,          "Work Schedule Rules&lt;/P&gt;&lt;P&gt;       T552A,          "Monthly Work Schedules&lt;/P&gt;&lt;P&gt;       T550A,          "Daily Work Schedules&lt;/P&gt;&lt;P&gt;       ZCATEGORIA.     "Pay Scale Groups - Categorias&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de Tablas                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Estructura                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF BDC_TABLE OCCURS 100.   "Tabla para BIS&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE BDCDATA.&lt;/P&gt;&lt;P&gt;DATA: END OF BDC_TABLE.&lt;/P&gt;&lt;P&gt;DATA BEGIN OF TH_MESSTAB OCCURS 10.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE BDCMSGCOLL.&lt;/P&gt;&lt;P&gt;DATA END OF TH_MESSTAB.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF TH_ARCHIVO OCCURS 100,&lt;/P&gt;&lt;P&gt;          NUMERO(8),                   "P2011-PERNR  Numero del empleado&lt;/P&gt;&lt;P&gt;          FECHA LIKE SY-DATUM,         "P2011-LDATE  Logical date&lt;/P&gt;&lt;P&gt;          AUSENTISMO(4),               "&lt;/P&gt;&lt;P&gt;          HORA(4),                     "P2011-LTIME  Logical time&lt;/P&gt;&lt;P&gt;          TERMINAL(3),                 "P2011-TERID  Terminal ID&lt;/P&gt;&lt;P&gt;          RAZON(4),                    "P2011-ABWGR  Att/absence reason&lt;/P&gt;&lt;P&gt;          TURNO(2),                    "PA2003-TPROG Daily work schedule&lt;/P&gt;&lt;P&gt;          DEPARTAMENTO(4),             "KOSTL        Cost center&lt;/P&gt;&lt;P&gt;          EMPLEADO2(8),                "PA2003-VPERN Personnel no.to be&lt;/P&gt;&lt;P&gt;          COORDINADOR_AUTORIZA(8),&lt;/P&gt;&lt;P&gt;          IN_OUT(2) TYPE N,&lt;/P&gt;&lt;P&gt;       END OF TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF TH_ERROR OCCURS 100,&lt;/P&gt;&lt;P&gt;          NUMERO(5),                   "P2011-PERNR  Numero del empleado&lt;/P&gt;&lt;P&gt;          FECHA LIKE SY-DATUM,         "P2011-LDATE  Logical date&lt;/P&gt;&lt;P&gt;          AUSENTISMO(4),&lt;/P&gt;&lt;P&gt;          HORA(4),                     "P2011-LTIME  Logical time&lt;/P&gt;&lt;P&gt;          TERMINAL(3),                 "P2011-TERID  Terminal ID&lt;/P&gt;&lt;P&gt;          RAZON(4),                    "P2011-ABWGR  Att/absence reason&lt;/P&gt;&lt;P&gt;          TURNO(2),                    "PA2003-TPROG Daily work schedule&lt;/P&gt;&lt;P&gt;          DEPARTAMENTO(4),             "KOSTL        Cost center&lt;/P&gt;&lt;P&gt;          EMPLEADO2(5),                "PA2003-VPERN Personnel no.to be&lt;/P&gt;&lt;P&gt;       END OF TH_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF REG,&lt;/P&gt;&lt;P&gt;          CAMBIO_TURNO,&lt;/P&gt;&lt;P&gt;          DIA(10),&lt;/P&gt;&lt;P&gt;          AUSENTISMO(4),&lt;/P&gt;&lt;P&gt;          TURNO(2),&lt;/P&gt;&lt;P&gt;          HORA(5),&lt;/P&gt;&lt;P&gt;          TIPO,&lt;/P&gt;&lt;P&gt;          INCIDENCIA(3),&lt;/P&gt;&lt;P&gt;          CCOSTOS(4),&lt;/P&gt;&lt;P&gt;          SOCIO_REEMPLAZA(8),&lt;/P&gt;&lt;P&gt;       END   OF REG.&lt;/P&gt;&lt;P&gt;DATA: REGISTRO TYPE REG OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF EMPLEADO,&lt;/P&gt;&lt;P&gt;          NUMERO(8),&lt;/P&gt;&lt;P&gt;          REGISTRO LIKE REGISTRO OCCURS 0,&lt;/P&gt;&lt;P&gt;       END   OF EMPLEADO.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF CIERRE OCCURS 0,&lt;/P&gt;&lt;P&gt;         EMPLEADO TYPE EMPLEADO,&lt;/P&gt;&lt;P&gt;      END   OF CIERRE.&lt;/P&gt;&lt;P&gt;DATA: CHECADAS TYPE REG OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de estrucutras                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables                                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: SW_ERROR,                          "Swich existencia de empleado&lt;/P&gt;&lt;P&gt;      SW_I2002(1) TYPE C VALUE 'F',&lt;/P&gt;&lt;P&gt;      WC_FECHA(10),                      "Fecha con formato dd.mm.aaaa&lt;/P&gt;&lt;P&gt;      WC_DIA(2),                         "Filtra el día de la fecha&lt;/P&gt;&lt;P&gt;      WC_MES(2),                         "Filtra el mes de la fecha&lt;/P&gt;&lt;P&gt;      WC_YEAR(4),                        "Filtra el año de la fecha&lt;/P&gt;&lt;P&gt;      WC_TIPO(2),                        "Tipo de Substitución&lt;/P&gt;&lt;P&gt;      WC_TPR00(4),                       "Turno del empleado&lt;/P&gt;&lt;P&gt;      WC_TURNO(4),                       "Turno del empleado GK(Turno)&lt;/P&gt;&lt;P&gt;      WC_TURNO_SUST(4),                  "Turno Sustitucion&lt;/P&gt;&lt;P&gt;      WC_TURNO_R(4),                     "Turno del RELOJ GK(Turno)&lt;/P&gt;&lt;P&gt;      WC_TURNO_S(4),                     "Turno del SAP   GK(Turno)&lt;/P&gt;&lt;P&gt;      WC_CATEGORIA(8),                   "Categoria del empleado&lt;/P&gt;&lt;P&gt;      WN_IN_OUT(2)  TYPE N,              "Tipo de evento IN/OUT&lt;/P&gt;&lt;P&gt;      WN_PERNR LIKE PA2003-PERNR,&lt;/P&gt;&lt;P&gt;      WI_BETRG1 LIKE ZCATEGORIA-BETRG,   "Cantidad por turno Emple. 1&lt;/P&gt;&lt;P&gt;      WI_BETRG2 LIKE ZCATEGORIA-BETRG,   "Cantidad por turno Emple. 2&lt;/P&gt;&lt;P&gt;      WT_TIEMPO LIKE P2011-LTIME,        "Hora de chacada&lt;/P&gt;&lt;P&gt;      WT_INICIO(4)   TYPE N,             "Hora de chacada I2002&lt;/P&gt;&lt;P&gt;      WT_FINAL(4)    TYPE N,             "Hora de chacada I2002&lt;/P&gt;&lt;P&gt;      WT_HORA   LIKE P2011-LTIME VALUE '120000',  "Sumar Doce horas&lt;/P&gt;&lt;P&gt;      ARCH1(40) TYPE C VALUE '/users/interf/datos/hr/errores.txt',&lt;/P&gt;&lt;P&gt;      WC_ARCHIVO(40) TYPE C,             "Nombre del archivo&lt;/P&gt;&lt;P&gt;      WI_LC     TYPE I VALUE 0,          "Contador lineas&lt;/P&gt;&lt;P&gt;      WD_FECHA_DESC    LIKE SY-DATUM,    "Fecha de Descanso&lt;/P&gt;&lt;P&gt;      WD_FECHA  LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;      WI_INDICE LIKE SY-TABIX,           "Indice de la tabla interna&lt;/P&gt;&lt;P&gt;      SW_DELETE(1) TYPE C VALUE 'F',&lt;/P&gt;&lt;P&gt;      WC_REGISTRO1(35) TYPE C,           "Registro de la tabla interna&lt;/P&gt;&lt;P&gt;      WC_REGISTRO2(35) TYPE C.           "Registro de la tabla interna&lt;/P&gt;&lt;P&gt;DATA: QID LIKE APQI-QID,&lt;/P&gt;&lt;P&gt;      B-NAME LIKE RFPDO-ALLGBINA,&lt;/P&gt;&lt;P&gt;      EXCEPT TYPE I.&lt;/P&gt;&lt;P&gt;DATA: ME TYPE REF TO CL_XML_DOCUMENT.&lt;/P&gt;&lt;P&gt;DATA: SUBRC LIKE SY-SUBRC.&lt;/P&gt;&lt;P&gt;DATA: GVK_MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de variables                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Parámetros de Selección                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK BL_01 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;   PARAMETERS: ARCHIVO TYPE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK BL_01.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de parametros de sleccion                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT SELECTION SCREEN                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR ARCHIVO.&lt;/P&gt;&lt;P&gt;   PERFORM ESPECIFICA_RUTA USING '0'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT SELECTION SCREEN                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of selection                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;   CLEAR GVK_MODE.&lt;/P&gt;&lt;P&gt;   GVK_MODE = 'N'.&lt;/P&gt;&lt;P&gt;   IF SY-UNAME&lt;EM&gt;0(6) NE 'GKRHUM' AND SY-UNAME&lt;/EM&gt;0(6) NE 'GK_961' AND&lt;/P&gt;&lt;P&gt;      SY-UNAME+0(6) NE 'GKSIST' AND SY-UNAME      NE 'EXUANL_MML'.&lt;/P&gt;&lt;P&gt;      WRITE:/ 'Usuario no pertenece a GALVAK, S.A. de C.V.'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   PERFORM LEE_ARCHIVO_XML.&lt;/P&gt;&lt;P&gt;   PERFORM LLENA_TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;   SORT TH_ARCHIVO BY NUMERO FECHA HORA.&lt;/P&gt;&lt;P&gt;   PERFORM ELIMINA_DUPLICADOS.&lt;/P&gt;&lt;P&gt;   LOOP AT TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;      PERFORM VALIDA_INFO.&lt;/P&gt;&lt;P&gt;      MOVE ' ' TO : WC_DIA,    WC_MES,   WC_YEAR,   WC_FECHA,&lt;/P&gt;&lt;P&gt;                    WC_TIPO,   WC_TPR00, WC_TURNO,  WC_CATEGORIA,&lt;/P&gt;&lt;P&gt;                    WT_TIEMPO, WN_PERNR, WN_IN_OUT, WT_INICIO,&lt;/P&gt;&lt;P&gt;                    WT_FINAL.&lt;/P&gt;&lt;P&gt;      MOVE 0 TO: WI_LC.&lt;/P&gt;&lt;P&gt;      IF SW_ERROR EQ '0'.&lt;/P&gt;&lt;P&gt;         SELECT *&lt;/P&gt;&lt;P&gt;           FROM PA0001&lt;/P&gt;&lt;P&gt;          WHERE PERNR = TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;         ENDSELECT.&lt;/P&gt;&lt;P&gt;         IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;            IF TH_ARCHIVO-DEPARTAMENTO = PA0001-KOSTL+6(4).&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-DEPARTAMENTO = ' '.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         PERFORM FORMATO_FECHA.&lt;/P&gt;&lt;P&gt;         MOVE TH_ARCHIVO-HORA TO WT_TIEMPO.&lt;/P&gt;&lt;P&gt;         IF TH_ARCHIVO-EMPLEADO2 NE ' '.&lt;/P&gt;&lt;P&gt;            WN_PERNR = TH_ARCHIVO-EMPLEADO2.&lt;/P&gt;&lt;P&gt;         ELSE.&lt;/P&gt;&lt;P&gt;            WN_PERNR = TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF TH_ARCHIVO-AUSENTISMO = 'DESC'.&lt;/P&gt;&lt;P&gt;            CONCATENATE WD_FECHA&lt;EM&gt;6(2) '.' WD_FECHA&lt;/EM&gt;4(2) '.' WD_FECHA(4)&lt;/P&gt;&lt;P&gt;                   INTO WC_FECHA.&lt;/P&gt;&lt;P&gt;            PERFORM DATOS_DESC.           "Actualiza 2003&lt;/P&gt;&lt;P&gt;         ELSE.&lt;/P&gt;&lt;P&gt;            PERFORM EVENTO_IN_OUT.&lt;/P&gt;&lt;P&gt;            CONCATENATE WD_FECHA&lt;EM&gt;6(2) '.' WD_FECHA&lt;/EM&gt;4(2) '.' WD_FECHA(4)&lt;/P&gt;&lt;P&gt;                   INTO WC_FECHA.&lt;/P&gt;&lt;P&gt;            PERFORM TRANS_PA61.&lt;/P&gt;&lt;P&gt;            CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE&lt;/P&gt;&lt;P&gt;                 UPDATE 'S' MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;               IF WC_TURNO &amp;lt;&amp;gt; WC_TPR00      OR&lt;/P&gt;&lt;P&gt;                  WC_TURNO &amp;lt;&amp;gt; WC_TURNO_SUST OR&lt;/P&gt;&lt;P&gt;                  WC_TURNO = 'DESC'         OR&lt;/P&gt;&lt;P&gt;                  WC_TURNO = 'FREE'.&lt;/P&gt;&lt;P&gt;                  IF TH_ARCHIVO-IN_OUT = '01'.&lt;/P&gt;&lt;P&gt;                     PERFORM OTROS_DATOS.           "Actualiza 2003&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;               ELSE.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;               MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;               APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;   DESCRIBE TABLE TH_ERROR LINES WI_LC.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de start of selection                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of selection                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;   IF WI_LC NE 0.&lt;/P&gt;&lt;P&gt;      PERFORM ARCHIVO_ERROR.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   PERFORM BDC_CLOSE USING EXCEPT.&lt;/P&gt;&lt;P&gt;   MESSAGE I100.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DELETE DATASET ARCHIVO.  "moises 02.06.1999&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de end of slection                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion  valida_info                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM VALIDA_INFO.&lt;/P&gt;&lt;P&gt;   MOVE '0' TO SW_ERROR.&lt;/P&gt;&lt;P&gt;   SELECT DISTINCT *&lt;/P&gt;&lt;P&gt;     FROM PA0000&lt;/P&gt;&lt;P&gt;    WHERE PERNR EQ TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;      WRITE:/ 'El empleado  ', TH_ARCHIVO-NUMERO,&lt;/P&gt;&lt;P&gt;              '  no esta dado de alta'.&lt;/P&gt;&lt;P&gt;      FORMAT INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      MOVE '1' TO SW_ERROR.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion valida_info                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion formato_fecha                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM FORMATO_FECHA.&lt;/P&gt;&lt;P&gt;   WC_DIA  = TH_ARCHIVO-FECHA(2).&lt;/P&gt;&lt;P&gt;   WC_MES  = TH_ARCHIVO-FECHA+2(2).&lt;/P&gt;&lt;P&gt;   WC_YEAR = TH_ARCHIVO-FECHA+4(4).&lt;/P&gt;&lt;P&gt;   CONCATENATE WC_YEAR WC_MES WC_DIA INTO WD_FECHA.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funicon formato_fecha                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion evento_in_out                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM EVENTO_IN_OUT.&lt;/P&gt;&lt;P&gt;   SELECT *&lt;/P&gt;&lt;P&gt;     FROM PA0007&lt;/P&gt;&lt;P&gt;    WHERE PERNR EQ WN_PERNR&lt;/P&gt;&lt;P&gt;      AND BEGDA &amp;lt;= WD_FECHA&lt;/P&gt;&lt;P&gt;      AND ENDDA &amp;gt;= WD_FECHA.&lt;/P&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC EQ 0 AND PA0007-SCHKZ NE ' '.&lt;/P&gt;&lt;P&gt;      SELECT *&lt;/P&gt;&lt;P&gt;        FROM T508A&lt;/P&gt;&lt;P&gt;       WHERE MOFID EQ 'GK'&lt;/P&gt;&lt;P&gt;         AND SCHKZ = PA0007-SCHKZ.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;      SELECT *&lt;/P&gt;&lt;P&gt;        FROM T552A&lt;/P&gt;&lt;P&gt;       WHERE SCHKZ EQ PA0007-SCHKZ&lt;/P&gt;&lt;P&gt;         AND   KJAHR EQ WC_YEAR&lt;/P&gt;&lt;P&gt;         AND   MONAT EQ WC_MES.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;         PERFORM BUSCA_DIA.&lt;/P&gt;&lt;P&gt;         WC_TURNO = WC_TPR00.&lt;/P&gt;&lt;P&gt;         PERFORM VERIFICA_P2003.&lt;/P&gt;&lt;P&gt;         IF WC_TURNO_SUST IS INITIAL.&lt;/P&gt;&lt;P&gt;            WC_TURNO_SUST = WC_TURNO.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF WC_TURNO EQ 'FREE' OR WC_TURNO EQ 'DESC'.&lt;/P&gt;&lt;P&gt;            WC_TIPO = '02'.&lt;/P&gt;&lt;P&gt;            IF TH_ARCHIVO-RAZON NE 'ETI ' AND&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-RAZON NE 'EPM ' AND&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-RAZON NE 'ERP ' AND&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-RAZON NE 'STI ' AND&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-RAZON NE 'SPM ' AND&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-RAZON NE 'SRP '.&lt;/P&gt;&lt;P&gt;               PERFORM VALIDA_SIGUIENTE_DIA.&lt;/P&gt;&lt;P&gt;               IF WC_TPR00 = 'GM11' OR WC_TPR00 = 'GK01'.&lt;/P&gt;&lt;P&gt;                  WC_TURNO = WC_TPR00.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ELSEIF WC_TPR00 = 'DESC' OR WC_TPR00 = 'FREE'.&lt;/P&gt;&lt;P&gt;            WC_TIPO = '02'.&lt;/P&gt;&lt;P&gt;         ELSE.&lt;/P&gt;&lt;P&gt;            WC_TIPO = '01'.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      PERFORM TIEMPOS_EXTRA.&lt;/P&gt;&lt;P&gt;      WC_TURNO_S = WC_TURNO.&lt;/P&gt;&lt;P&gt;      IF TH_ARCHIVO-TURNO NE ' '.&lt;/P&gt;&lt;P&gt;       IF TH_ARCHIVO-TURNO = 'S1' OR TH_ARCHIVO-TURNO = 'S2' OR&lt;/P&gt;&lt;P&gt;          TH_ARCHIVO-TURNO = 'S3'.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'DE' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;          WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;       ELSEIF TH_ARCHIVO-TURNO = 'T1' OR TH_ARCHIVO-TURNO = 'T2'.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'GK' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;          WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;       ELSE.&lt;/P&gt;&lt;P&gt;         IF TH_ARCHIVO-TURNO &amp;lt; 10.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'GK' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ELSEIF TH_ARCHIVO-TURNO &amp;gt; 10.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'GM' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF WC_TURNO NE WC_TURNO_R. " and th_archivo-razon = ' '. moises&lt;/P&gt;&lt;P&gt;            WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF WC_TURNO EQ 'GM11' OR WC_TURNO = 'GK01'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WT_TIEMPO = WT_TIEMPO + WT_HORA.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT *&lt;/P&gt;&lt;P&gt;        FROM T550A&lt;/P&gt;&lt;P&gt;       WHERE MOTPR EQ T508A-MOTPR&lt;/P&gt;&lt;P&gt;         AND TPROG EQ WC_TURNO.&lt;/P&gt;&lt;P&gt;         IF ( T550A-BTBEG &amp;lt;= WT_TIEMPO AND T550A-BTEND &amp;gt;= WT_TIEMPO ) OR&lt;/P&gt;&lt;P&gt;            ( TH_ARCHIVO-RAZON = 'IJ  ' OR TH_ARCHIVO-RAZON = 'II  '  OR&lt;/P&gt;&lt;P&gt;              TH_ARCHIVO-RAZON = 'ESU ' OR TH_ARCHIVO-RAZON = 'EPM '  OR&lt;/P&gt;&lt;P&gt;              TH_ARCHIVO-RAZON = 'ERP ' OR TH_ARCHIVO-RAZON = 'ETI ' ).&lt;/P&gt;&lt;P&gt;            WN_IN_OUT = '01'.&lt;/P&gt;&lt;P&gt;            IF WC_TURNO EQ 'GM11' OR WC_TURNO = 'GK01'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              WD_FECHA = WD_FECHA + 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ELSEIF ( T550A-ETBEG &amp;lt;= WT_TIEMPO AND&lt;/P&gt;&lt;P&gt;                  T550A-ETEND &amp;gt;= WT_TIEMPO ) OR&lt;/P&gt;&lt;P&gt;                ( TH_ARCHIVO-RAZON = 'FJ  '  OR&lt;/P&gt;&lt;P&gt;                  TH_ARCHIVO-RAZON = 'FI  '  OR&lt;/P&gt;&lt;P&gt;                  TH_ARCHIVO-RAZON = 'SSU '  OR&lt;/P&gt;&lt;P&gt;                  TH_ARCHIVO-RAZON = 'SPM '  OR&lt;/P&gt;&lt;P&gt;                  TH_ARCHIVO-RAZON = 'SRP '  OR&lt;/P&gt;&lt;P&gt;                  TH_ARCHIVO-RAZON = 'STI ' ).&lt;/P&gt;&lt;P&gt;            WN_IN_OUT = '02'.&lt;/P&gt;&lt;P&gt;         ELSE.&lt;/P&gt;&lt;P&gt;            WN_IN_OUT = '02'.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF TH_ARCHIVO-RAZON = 'ETI ' AND&lt;/P&gt;&lt;P&gt;          ( T550A-BTBEG &amp;lt;= WT_TIEMPO AND T550A-BTEND &amp;gt;= WT_TIEMPO ).&lt;/P&gt;&lt;P&gt;            WT_INICIO = WT_TIEMPO(4).&lt;/P&gt;&lt;P&gt;            WT_FINAL  = T550A-SOBEG(4).&lt;/P&gt;&lt;P&gt;            SW_I2002 = 'T'.&lt;/P&gt;&lt;P&gt;         ELSEIF TH_ARCHIVO-RAZON = 'STI ' AND&lt;/P&gt;&lt;P&gt;              ( T550A-ETBEG &amp;lt;= WT_TIEMPO AND T550A-ETEND &amp;gt;= WT_TIEMPO ).&lt;/P&gt;&lt;P&gt;            WT_INICIO = T550A-SOEND(4).&lt;/P&gt;&lt;P&gt;            WT_FINAL  = WT_TIEMPO(4).&lt;/P&gt;&lt;P&gt;            SW_I2002 = 'T'.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;      IF SW_I2002 = 'T'.&lt;/P&gt;&lt;P&gt;         SW_I2002 = 'F'.&lt;/P&gt;&lt;P&gt;         CONCATENATE WD_FECHA&lt;EM&gt;6(2) '.' WD_FECHA&lt;/EM&gt;4(2) '.' WD_FECHA(4)&lt;/P&gt;&lt;P&gt;                INTO WC_FECHA.&lt;/P&gt;&lt;P&gt;         PERFORM ALTA_I2002.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion evento_in_out                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion busca_dia                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM BUSCA_DIA.&lt;/P&gt;&lt;P&gt;   CASE WC_DIA.&lt;/P&gt;&lt;P&gt;      WHEN 01.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR01 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 02.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR02 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 03.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR03 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 04.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR04 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 05.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR05 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 06.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR06 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 07.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR07 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 08.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR08 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 09.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR09 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 10.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR10 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 11.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR11 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 12.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR12 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 13.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR13 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 14.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR14 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 15.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR15 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 16.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR16 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 17.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR17 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 18.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR18 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 19.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR19 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 20.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR20 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 21.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR21 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 22.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR22 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 23.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR23 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 24.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR24 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 25.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR25 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 26.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR26 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 27.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR27 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 28.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR28 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 29.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR29 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 30.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR30 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;      WHEN 31.&lt;/P&gt;&lt;P&gt;         MOVE T552A-TPR31 TO WC_TPR00.&lt;/P&gt;&lt;P&gt;   ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion busca_dia                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion verifica_p2003                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM VERIFICA_P2003.&lt;/P&gt;&lt;P&gt;   DATA: WFECHA LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;   CONCATENATE TH_ARCHIVO-FECHA&lt;EM&gt;4(4) TH_ARCHIVO-FECHA&lt;/EM&gt;2(2)&lt;/P&gt;&lt;P&gt;               TH_ARCHIVO-FECHA(2) INTO WFECHA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CLEAR WC_TURNO_SUST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   SELECT SINGLE *&lt;/P&gt;&lt;P&gt;     FROM PA2003&lt;/P&gt;&lt;P&gt;    WHERE PERNR = WN_PERNR&lt;/P&gt;&lt;P&gt;      AND BEGDA &amp;lt;= WFECHA&lt;/P&gt;&lt;P&gt;      AND ENDDA &amp;gt;= WFECHA.&lt;/P&gt;&lt;P&gt;   CHECK  SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;   IF PA2003-TPROG NE ' ' AND PA2003-TPROG NE WC_TURNO.&lt;/P&gt;&lt;P&gt;      MOVE PA2003-TPROG TO: WC_TURNO, WC_TURNO_SUST.&lt;/P&gt;&lt;P&gt;   ELSEIF PA2003-SCHKZ NE ' '.&lt;/P&gt;&lt;P&gt;      SELECT *&lt;/P&gt;&lt;P&gt;        FROM T552A&lt;/P&gt;&lt;P&gt;       WHERE SCHKZ EQ PA2003-SCHKZ&lt;/P&gt;&lt;P&gt;         AND KJAHR EQ WC_YEAR&lt;/P&gt;&lt;P&gt;         AND MONAT EQ WC_MES.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;         PERFORM BUSCA_DIA.&lt;/P&gt;&lt;P&gt;         IF WC_TPR00 NE WC_TURNO.&lt;/P&gt;&lt;P&gt;            WC_TURNO = WC_TPR00.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VERIFICA_P2003&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion verifica_p2003                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funion valida_siguiente_dia                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM VALIDA_SIGUIENTE_DIA.&lt;/P&gt;&lt;P&gt;   WD_FECHA_DESC = WD_FECHA + 1.&lt;/P&gt;&lt;P&gt;   WC_DIA = WD_FECHA_DESC+6(2).&lt;/P&gt;&lt;P&gt;   SELECT *&lt;/P&gt;&lt;P&gt;     FROM T552A&lt;/P&gt;&lt;P&gt;    WHERE SCHKZ EQ PA0007-SCHKZ&lt;/P&gt;&lt;P&gt;      AND KJAHR EQ WC_YEAR&lt;/P&gt;&lt;P&gt;      AND MONAT EQ WC_MES.&lt;/P&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_DIA.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " VALIDA_SIGUIENTE_DIA&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion valida_siguiente_dia                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion alta_i2002                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM ALTA_I2002.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-TURNO = 'S1' OR TH_ARCHIVO-TURNO = 'S2' OR&lt;/P&gt;&lt;P&gt;      TH_ARCHIVO-TURNO = 'S3'.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;      REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2002'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-SUBTY' '0020'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2050'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2002-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2002-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2002-BEGUZ' WT_INICIO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2002-ENDUZ' WT_FINAL.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE UPDATE 'S'&lt;/P&gt;&lt;P&gt;                                           MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;         MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;         APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ALTA_I2002&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion alta_i2002                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion trnas_pa61                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM TRANS_PA61.&lt;/P&gt;&lt;P&gt;   REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-AUSENTISMO IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2011'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 20.08.00&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2500'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2011-LDATE' WC_FECHA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2011-LTIME' WT_TIEMPO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM DYNPRO_FIELD USING 'P2011-SATZA' WN_IN_OUT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2011-SATZA' TH_ARCHIVO-IN_OUT.&lt;/P&gt;&lt;P&gt;      IF TH_ARCHIVO-RAZON &amp;lt;&amp;gt; 'ARR'.&lt;/P&gt;&lt;P&gt;         PERFORM DYNPRO_FIELD USING 'P2011-ABWGR' TH_ARCHIVO-RAZON.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2011-TERID' TH_ARCHIVO-TERMINAL.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2001'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'RP50G-SUBTY' TH_ARCHIVO-AUSENTISMO..&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 20.08.00&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2001'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2001-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2001-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " TRANS_PA61&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion trans_pa61                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion otros_datos                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM OTROS_DATOS.&lt;/P&gt;&lt;P&gt;   IF WC_TURNO_SUST = 'DESC' OR WC_TURNO_SUST = 'FREE'.&lt;/P&gt;&lt;P&gt;      PERFORM ELIMINA_SUSTITUCION.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-TURNO = 'S1' OR TH_ARCHIVO-TURNO = 'S2' OR&lt;/P&gt;&lt;P&gt;      TH_ARCHIVO-TURNO = 'S3'.&lt;/P&gt;&lt;P&gt;      PERFORM GENERA_SUSTITUCION_S.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE&lt;/P&gt;&lt;P&gt;           UPDATE 'S' MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;         MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;         APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;      IF WN_IN_OUT = '01'. "or wn_in_out = '02'.&lt;/P&gt;&lt;P&gt;         PERFORM GENERATE_BDC_DATA_1.                 "Actualiza 2003&lt;/P&gt;&lt;P&gt;         CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE&lt;/P&gt;&lt;P&gt;              UPDATE 'S' MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;         IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;            APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF WN_IN_OUT = '02'.&lt;/P&gt;&lt;P&gt;        IF TH_ARCHIVO-RAZON = 'SSU'.&lt;/P&gt;&lt;P&gt;            PERFORM GENERATE_BDC_DATA_1.&lt;/P&gt;&lt;P&gt;            CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE&lt;/P&gt;&lt;P&gt;                 UPDATE 'S' MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;               MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;               APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;            PERFORM GENERATE_BDC_DATA_1.&lt;/P&gt;&lt;P&gt;            CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE&lt;/P&gt;&lt;P&gt;                 UPDATE 'S' MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;               MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;               APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " OTROS_DATOS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funicion ortors_datos                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion generate_bdc_data_1                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM GENERATE_BDC_DATA_1.&lt;/P&gt;&lt;P&gt;   REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2003'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-VTART' WC_TIPO.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-EMPLEADO2 NE ' '  AND&lt;/P&gt;&lt;P&gt;      TH_ARCHIVO-EMPLEADO2 NE TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF WC_TURNO &amp;lt;&amp;gt; WC_TURNO_SUST.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2003-TPROG' WC_TURNO.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;      IF TH_ARCHIVO-TURNO NE ' ' AND TH_ARCHIVO-TURNO NE WC_TURNO_S.&lt;/P&gt;&lt;P&gt;         PERFORM DYNPRO_FIELD USING 'P2003-TPROG' WC_TURNO.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF WC_TURNO &amp;lt;&amp;gt; WC_TPR00.&lt;/P&gt;&lt;P&gt;         PERFORM DYNPRO_FIELD USING 'P2003-TPROG' WC_TURNO.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF WI_BETRG1 &amp;lt; WI_BETRG2.           "Cambia categoria del Empleado 1&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' 'DIFP'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2221'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2APL-TRFGR' WC_CATEGORIA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '/8'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-DEPARTAMENTO NE ' '.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' 'PRIM'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'SAPLHRTV' '0300'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'COBL-KOSTL' TH_ARCHIVO-DEPARTAMENTO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '/8'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GENERATE_BDC_DATA_1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion generate_bdc_data_1                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion busca_categoria                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;   SELECT *&lt;/P&gt;&lt;P&gt;     FROM PA0008&lt;/P&gt;&lt;P&gt;    WHERE PERNR EQ TH_ARCHIVO-NUMERO.    "Empleado 1&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;         SELECT *&lt;/P&gt;&lt;P&gt;           FROM ZCATEGORIA&lt;/P&gt;&lt;P&gt;          WHERE TRFGR EQ PA0008-TRFGR.&lt;/P&gt;&lt;P&gt;            WI_BETRG1    = ZCATEGORIA-BETRG.&lt;/P&gt;&lt;P&gt;         ENDSELECT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;P&gt;   SELECT *&lt;/P&gt;&lt;P&gt;     FROM PA0008&lt;/P&gt;&lt;P&gt;    WHERE PERNR EQ TH_ARCHIVO-EMPLEADO2. "Empleado 2&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;         SELECT *&lt;/P&gt;&lt;P&gt;           FROM ZCATEGORIA&lt;/P&gt;&lt;P&gt;          WHERE TRFGR EQ PA0008-TRFGR.&lt;/P&gt;&lt;P&gt;            WI_BETRG2 = ZCATEGORIA-BETRG.&lt;/P&gt;&lt;P&gt;            WC_CATEGORIA = ZCATEGORIA-TRFGR.&lt;/P&gt;&lt;P&gt;         ENDSELECT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcin busca_categoria                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fucion archivo_error                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM ARCHIVO_ERROR.&lt;/P&gt;&lt;P&gt;   OPEN DATASET ARCH1 FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      STOP. EXIT.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   LOOP AT TH_ERROR.&lt;/P&gt;&lt;P&gt;      TRANSFER TH_ERROR TO ARCH1.&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;   CLOSE DATASET ARCH1.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de archivo_error                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion bdc_close                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM BDC_CLOSE USING EXCEPT.&lt;/P&gt;&lt;P&gt;   CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;         NOT_OPEN    = 1&lt;/P&gt;&lt;P&gt;         QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;         OTHERS      = 3.&lt;/P&gt;&lt;P&gt;         EXCEPT = SY-SUBRC.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funicon bdc_close                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion dynpro_start                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM DYNPRO_START USING PROGRAM DYNPRO.&lt;/P&gt;&lt;P&gt;   CLEAR BDC_TABLE.&lt;/P&gt;&lt;P&gt;   BDC_TABLE-PROGRAM = PROGRAM.&lt;/P&gt;&lt;P&gt;   BDC_TABLE-DYNPRO = DYNPRO.&lt;/P&gt;&lt;P&gt;   BDC_TABLE-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;   APPEND BDC_TABLE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DYNPRO_START&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion dynpro_start                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funion dynpro_field                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM DYNPRO_FIELD USING FIELD VALUE.&lt;/P&gt;&lt;P&gt;   CLEAR BDC_TABLE.&lt;/P&gt;&lt;P&gt;   BDC_TABLE-FNAM = FIELD.&lt;/P&gt;&lt;P&gt;   BDC_TABLE-FVAL = VALUE.&lt;/P&gt;&lt;P&gt;   APPEND BDC_TABLE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DYNPRO_FIELD&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion dypro_field                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fucnion tiempos_extra                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM TIEMPOS_EXTRA.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-TURNO = 'S1' OR TH_ARCHIVO-TURNO = 'S2' OR&lt;/P&gt;&lt;P&gt;      TH_ARCHIVO-TURNO = 'S3'.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'DE' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;      WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;   ELSEIF TH_ARCHIVO-TURNO = 'T1' OR TH_ARCHIVO-TURNO = 'T2'.&lt;/P&gt;&lt;P&gt;     CONCATENATE 'GK' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;     WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;      IF ( TH_ARCHIVO-RAZON = 'ETI ' OR TH_ARCHIVO-RAZON = 'EPM ' OR&lt;/P&gt;&lt;P&gt;           TH_ARCHIVO-RAZON = 'ERP ' ) AND TH_ARCHIVO-TURNO NE ' '.&lt;/P&gt;&lt;P&gt;         IF TH_ARCHIVO-TURNO &amp;lt; 10.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'GK' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ELSEIF TH_ARCHIVO-TURNO &amp;gt; 10.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'GM' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF ( WC_TURNO = 'FREE' OR WC_TURNO = 'DESC' ).&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GM13' OR WC_TURNO_R = 'GK03'.&lt;/P&gt;&lt;P&gt;               PERFORM VALIDA_SIGUIENTE_DIA.&lt;/P&gt;&lt;P&gt;               IF WC_TPR00 = 'GM11' OR WC_TPR00 = 'GK01'.&lt;/P&gt;&lt;P&gt;                  IF WC_TPR00 = 'GK01'.&lt;/P&gt;&lt;P&gt;                     WC_TURNO = 'GK01'.&lt;/P&gt;&lt;P&gt;                  ELSEIF WC_TPR00 = 'GM11'.&lt;/P&gt;&lt;P&gt;                     WC_TURNO = 'GM11'.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;               ELSE.&lt;/P&gt;&lt;P&gt;                  WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;               WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF ( WC_TURNO NE 'FREE' OR WC_TURNO NE 'DESC' ).&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GK02' AND WC_TURNO = 'GK03'.&lt;/P&gt;&lt;P&gt;               WC_TURNO = 'GK03'.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GK03' AND WC_TURNO = 'GK01'.&lt;/P&gt;&lt;P&gt;               WC_TURNO = 'GK01'.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GK01' AND WC_TURNO = 'GK02'.&lt;/P&gt;&lt;P&gt;               WC_TURNO = 'GK02'.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF ( TH_ARCHIVO-RAZON = 'STI ' OR TH_ARCHIVO-RAZON = 'SPM ' OR&lt;/P&gt;&lt;P&gt;           TH_ARCHIVO-RAZON = 'SRP ' ) AND TH_ARCHIVO-TURNO NE ' '.&lt;/P&gt;&lt;P&gt;         IF TH_ARCHIVO-TURNO &amp;lt; 10.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'GK' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ELSEIF TH_ARCHIVO-TURNO &amp;gt; 10.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'GM' TH_ARCHIVO-TURNO INTO WC_TURNO_R.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF ( WC_TURNO = 'FREE' OR WC_TURNO = 'DESC' ).&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GM11' OR WC_TURNO_R = 'GK01'.&lt;/P&gt;&lt;P&gt;               WD_FECHA_DESC = WD_FECHA - 2.&lt;/P&gt;&lt;P&gt;               PERFORM VALIDA_SIGUIENTE_DIA. "En realidad DIA ANTERIOR&lt;/P&gt;&lt;P&gt;               IF WC_TPR00 = 'GM13' OR WC_TPR00 = 'GK03'.&lt;/P&gt;&lt;P&gt;                  IF WC_TPR00 = 'GK03'.&lt;/P&gt;&lt;P&gt;                     WC_TURNO = 'GK03'.&lt;/P&gt;&lt;P&gt;                  ELSEIF WC_TPR00 = 'GM13'.&lt;/P&gt;&lt;P&gt;                     WC_TURNO = 'GM13'.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;               ELSE.&lt;/P&gt;&lt;P&gt;                  WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;               WC_TURNO = WC_TURNO_R.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         IF ( WC_TURNO NE 'FREE' OR WC_TURNO NE 'DESC' ).&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GK03' AND WC_TURNO = 'GK02'.&lt;/P&gt;&lt;P&gt;               WC_TURNO = 'GK02'.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GK01' AND WC_TURNO = 'GK03'.&lt;/P&gt;&lt;P&gt;               WC_TURNO = 'GK03'.&lt;/P&gt;&lt;P&gt;           ENDIF.&lt;/P&gt;&lt;P&gt;            IF WC_TURNO_R = 'GK02' AND WC_TURNO = 'GK01'.&lt;/P&gt;&lt;P&gt;               WC_TURNO = 'GK01'.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funicon tiempos_extra                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Funcion elimina_duplicados                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM ELIMINA_DUPLICADOS.&lt;/P&gt;&lt;P&gt;   DELETE ADJACENT DUPLICATES FROM TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fin de funcion elimina_duplicados                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  LEE_ARCHIVO_XML                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM LEE_ARCHIVO_XML.&lt;/P&gt;&lt;P&gt;   CREATE OBJECT ME.&lt;/P&gt;&lt;P&gt;   REFRESH CIERRE.&lt;/P&gt;&lt;P&gt;   CALL METHOD ME-&amp;gt;CREATE_WITH_FILE&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;         FILENAME = ARCHIVO&lt;/P&gt;&lt;P&gt;      RECEIVING&lt;/P&gt;&lt;P&gt;         RETCODE  = SUBRC.&lt;/P&gt;&lt;P&gt;   CALL METHOD ME-&amp;gt;GET_DATA&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         RETCODE    = SUBRC&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;         DATAOBJECT = CIERRE[].&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  LEE_ARCHIVO_XML                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM ESPECIFICA_RUTA                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM ESPECIFICA_RUTA USING PAR_VALOR.&lt;/P&gt;&lt;P&gt;   CASE PAR_VALOR.&lt;/P&gt;&lt;P&gt;      WHEN '0'.&lt;/P&gt;&lt;P&gt;         CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;            MASK       = 'C:*.xml'&lt;/P&gt;&lt;P&gt;            STATIC     = 'X'&lt;/P&gt;&lt;P&gt;         CHANGING&lt;/P&gt;&lt;P&gt;            FILE_NAME  = ARCHIVO.&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           MASK       = 'C:*.txt'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           STATIC     = 'x'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        CHANGING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_NAME  = DESCARGA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM ESPECIFICA_RUTA                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  LLENA_TH_ARCHIVO                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM LLENA_TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;   CONSTANTS GVK_12HRS LIKE P2011-LTIME VALUE '120000'.&lt;/P&gt;&lt;P&gt;   CONSTANTS GVK_1159  LIKE P2011-LTIME VALUE '115900'.&lt;/P&gt;&lt;P&gt;   CONSTANTS GVK_0630  LIKE P2011-LTIME VALUE '063000'.&lt;/P&gt;&lt;P&gt;   CONSTANTS GVK_0715  LIKE P2011-LTIME VALUE '071500'.&lt;/P&gt;&lt;P&gt;   CONSTANTS GVK_1830  LIKE P2011-LTIME VALUE '183000'.&lt;/P&gt;&lt;P&gt;   CONSTANTS GVK_1915  LIKE P2011-LTIME VALUE '191500'.&lt;/P&gt;&lt;P&gt;   DATA:     GVK_HORA  LIKE P2011-LTIME.&lt;/P&gt;&lt;P&gt;   DATA:     GVK_FECHA LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;   CLEAR CIERRE.&lt;/P&gt;&lt;P&gt;   REFRESH TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;   LOOP AT CIERRE.&lt;/P&gt;&lt;P&gt;      CLEAR TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;      CHECADAS[] = CIERRE-EMPLEADO-REGISTRO[].&lt;/P&gt;&lt;P&gt;      LOOP AT CHECADAS.&lt;/P&gt;&lt;P&gt;         CLEAR TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;         MOVE: CIERRE-EMPLEADO-NUMERO   TO TH_ARCHIVO-NUMERO,&lt;/P&gt;&lt;P&gt;               CHECADAS-INCIDENCIA      TO TH_ARCHIVO-RAZON,&lt;/P&gt;&lt;P&gt;               CHECADAS-CCOSTOS         TO TH_ARCHIVO-DEPARTAMENTO,&lt;/P&gt;&lt;P&gt;               CHECADAS-SOCIO_REEMPLAZA TO TH_ARCHIVO-EMPLEADO2.&lt;/P&gt;&lt;P&gt;         CONCATENATE CHECADAS-DIA(2)   CHECADAS-DIA+3(2)&lt;/P&gt;&lt;P&gt;                     CHECADAS-DIA+6(4) INTO TH_ARCHIVO-FECHA.&lt;/P&gt;&lt;P&gt;         CONCATENATE CHECADAS-HORA(2) CHECADAS-HORA+3(2)&lt;/P&gt;&lt;P&gt;                INTO TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;         IF CHECADAS-TURNO = 'S1' OR CHECADAS-TURNO = 'S2' OR&lt;/P&gt;&lt;P&gt;            CHECADAS-TURNO = 'S3'.&lt;/P&gt;&lt;P&gt;            MOVE CHECADAS-TURNO TO TH_ARCHIVO-TURNO.&lt;/P&gt;&lt;P&gt;            IF CHECADAS-TIPO = 'E'.&lt;/P&gt;&lt;P&gt;               MOVE 'ETI' TO TH_ARCHIVO-RAZON.&lt;/P&gt;&lt;P&gt;            ELSEIF CHECADAS-TIPO = 'S'.&lt;/P&gt;&lt;P&gt;               MOVE 'STI' TO TH_ARCHIVO-RAZON.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;         ELSE.&lt;/P&gt;&lt;P&gt;            MOVE CHECADAS-TURNO TO TH_ARCHIVO-TURNO.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         IF CHECADAS-CAMBIO_TURNO = 1.&lt;/P&gt;&lt;P&gt;            MOVE CHECADAS-TURNO TO TH_ARCHIVO-TURNO.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         MOVE CHECADAS-AUSENTISMO TO TH_ARCHIVO-AUSENTISMO.&lt;/P&gt;&lt;P&gt;         CASE CHECADAS-TURNO.&lt;/P&gt;&lt;P&gt;            WHEN '01' OR 'S1'.&lt;/P&gt;&lt;P&gt;               IF CHECADAS-TIPO = 'E'.&lt;/P&gt;&lt;P&gt;                  CLEAR GVK_FECHA.&lt;/P&gt;&lt;P&gt;                  CONCATENATE CHECADAS-DIA&lt;EM&gt;6(4) CHECADAS-DIA&lt;/EM&gt;3(2)&lt;/P&gt;&lt;P&gt;                              CHECADAS-DIA(2)&lt;/P&gt;&lt;P&gt;                         INTO GVK_FECHA.&lt;/P&gt;&lt;P&gt;                  GVK_FECHA = GVK_FECHA + 1.&lt;/P&gt;&lt;P&gt;                  CONCATENATE GVK_FECHA&lt;EM&gt;6(2) GVK_FECHA&lt;/EM&gt;4(2) GVK_FECHA(4)&lt;/P&gt;&lt;P&gt;                         INTO TH_ARCHIVO-FECHA.&lt;/P&gt;&lt;P&gt;               ELSEIF CHECADAS-TIPO = 'S'.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  IF GVK_HORA &amp;gt; GVK_1159.&lt;/P&gt;&lt;P&gt;                    CLEAR GVK_FECHA.&lt;/P&gt;&lt;P&gt;                    CONCATENATE CHECADAS-DIA&lt;EM&gt;6(4) CHECADAS-DIA&lt;/EM&gt;3(2)&lt;/P&gt;&lt;P&gt;                                CHECADAS-DIA(2)&lt;/P&gt;&lt;P&gt;                           INTO GVK_FECHA.&lt;/P&gt;&lt;P&gt;                    GVK_FECHA = GVK_FECHA + 1.&lt;/P&gt;&lt;P&gt;                    CONCATENATE GVK_FECHA&lt;EM&gt;6(2) GVK_FECHA&lt;/EM&gt;4(2)&lt;/P&gt;&lt;P&gt;                                GVK_FECHA(4)&lt;/P&gt;&lt;P&gt;                           INTO TH_ARCHIVO-FECHA.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;               CLEAR GVK_HORA.&lt;/P&gt;&lt;P&gt;               GVK_HORA = TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;               GVK_HORA = GVK_HORA + GVK_12HRS.&lt;/P&gt;&lt;P&gt;               CLEAR TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;               CONCATENATE GVK_HORA(2) GVK_HORA+2(2)&lt;/P&gt;&lt;P&gt;                      INTO TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;            WHEN 'T1'.&lt;/P&gt;&lt;P&gt;               IF CHECADAS-TIPO = 'E'.&lt;/P&gt;&lt;P&gt;                  CLEAR GVK_FECHA.&lt;/P&gt;&lt;P&gt;                  CLEAR GVK_HORA.&lt;/P&gt;&lt;P&gt;                  CONCATENATE CHECADAS-DIA&lt;EM&gt;6(4) CHECADAS-DIA&lt;/EM&gt;3(2)&lt;/P&gt;&lt;P&gt;                              CHECADAS-DIA(2)&lt;/P&gt;&lt;P&gt;                         INTO GVK_FECHA.&lt;/P&gt;&lt;P&gt;                  GVK_FECHA = GVK_FECHA + 1.&lt;/P&gt;&lt;P&gt;                  CONCATENATE GVK_FECHA&lt;EM&gt;6(2) GVK_FECHA&lt;/EM&gt;4(2) GVK_FECHA(4)&lt;/P&gt;&lt;P&gt;                         INTO TH_ARCHIVO-FECHA.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = GVK_HORA + GVK_12HRS.&lt;/P&gt;&lt;P&gt;                  CLEAR TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  CONCATENATE GVK_HORA(2) GVK_HORA+2(2)&lt;/P&gt;&lt;P&gt;                         INTO TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;               ELSEIF CHECADAS-TIPO = 'S'.&lt;/P&gt;&lt;P&gt;                  MOVE 'STI' TO TH_ARCHIVO-RAZON.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  IF GVK_HORA &amp;gt; GVK_1159.&lt;/P&gt;&lt;P&gt;                    CLEAR GVK_FECHA.&lt;/P&gt;&lt;P&gt;                    CONCATENATE CHECADAS-DIA&lt;EM&gt;6(4) CHECADAS-DIA&lt;/EM&gt;3(2)&lt;/P&gt;&lt;P&gt;                                CHECADAS-DIA(2)&lt;/P&gt;&lt;P&gt;                           INTO GVK_FECHA.&lt;/P&gt;&lt;P&gt;                    GVK_FECHA = GVK_FECHA + 1.&lt;/P&gt;&lt;P&gt;                    CONCATENATE GVK_FECHA&lt;EM&gt;6(2) GVK_FECHA&lt;/EM&gt;4(2)&lt;/P&gt;&lt;P&gt;                                GVK_FECHA(4)&lt;/P&gt;&lt;P&gt;                           INTO TH_ARCHIVO-FECHA.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  IF GVK_HORA BETWEEN GVK_0630 AND GVK_0715.&lt;/P&gt;&lt;P&gt;                     GVK_HORA = GVK_0630.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = GVK_HORA + GVK_12HRS.&lt;/P&gt;&lt;P&gt;                  CLEAR TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  CONCATENATE GVK_HORA(2) GVK_HORA+2(2)&lt;/P&gt;&lt;P&gt;                         INTO TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;            WHEN 'T2'.&lt;/P&gt;&lt;P&gt;               IF CHECADAS-TIPO = 'S'.&lt;/P&gt;&lt;P&gt;                  MOVE 'STI' TO TH_ARCHIVO-RAZON.&lt;/P&gt;&lt;P&gt;                  CLEAR GVK_HORA.&lt;/P&gt;&lt;P&gt;                  GVK_HORA = TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  IF GVK_HORA BETWEEN GVK_1830 AND GVK_1915.&lt;/P&gt;&lt;P&gt;                     GVK_HORA = GVK_1830.&lt;/P&gt;&lt;P&gt;                     CONCATENATE GVK_HORA(2) GVK_HORA+2(2)&lt;/P&gt;&lt;P&gt;                            INTO TH_ARCHIVO-HORA.&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;               ENDIF.&lt;/P&gt;&lt;P&gt;         ENDCASE.&lt;/P&gt;&lt;P&gt;         IF CHECADAS-TIPO = 'E'.&lt;/P&gt;&lt;P&gt;            TH_ARCHIVO-IN_OUT = '01'.&lt;/P&gt;&lt;P&gt;         ELSEIF CHECADAS-TIPO = 'S'.&lt;/P&gt;&lt;P&gt;            TH_ARCHIVO-IN_OUT = '02'.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;         APPEND TH_ARCHIVO.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  LLENA_TH_ARCHIVO                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DATOS_DESC&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM DATOS_DESC.&lt;/P&gt;&lt;P&gt;   REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2003'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-VTART' '01'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-TPROG' 'DESC'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE UPDATE 'S'&lt;/P&gt;&lt;P&gt;                                        MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;      APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DATOS_DESC&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERA_SUSTITUCION_S&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM GENERA_SUSTITUCION_S.&lt;/P&gt;&lt;P&gt;   REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2003'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-VTART' '02'.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-EMPLEADO2 NE ' '  AND&lt;/P&gt;&lt;P&gt;      TH_ARCHIVO-EMPLEADO2 NE TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF WC_TURNO &amp;lt;&amp;gt; WC_TURNO_SUST.&lt;/P&gt;&lt;P&gt;         PERFORM DYNPRO_FIELD USING 'P2003-TPROG' WC_TURNO.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;      IF TH_ARCHIVO-TURNO NE ' ' AND TH_ARCHIVO-TURNO NE WC_TURNO_S.&lt;/P&gt;&lt;P&gt;         PERFORM DYNPRO_FIELD USING 'P2003-TPROG' WC_TURNO.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF WI_BETRG1 &amp;lt; WI_BETRG2.           "Cambia categoria del Empleado 1&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' 'DIFP'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2221'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2APL-TRFGR' WC_CATEGORIA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '/8'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-DEPARTAMENTO NE ' '.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' 'PRIM'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'SAPLHRTV' '0300'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'COBL-KOSTL' TH_ARCHIVO-DEPARTAMENTO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '/8'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  GENERATE_BDC_DATA_2                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM GENERATE_BDC_DATA_2.&lt;/P&gt;&lt;P&gt;   REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2003'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=INS'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-VTART' WC_TIPO.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-EMPLEADO2 NE ' '  AND&lt;/P&gt;&lt;P&gt;      TH_ARCHIVO-EMPLEADO2 NE TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'P2003-TPROG' WC_TURNO.&lt;/P&gt;&lt;P&gt;   IF WI_BETRG1 &amp;lt; WI_BETRG2.           "Cambia categoria del Empleado 1&lt;/P&gt;&lt;P&gt;      PERFORM BUSCA_CATEGORIA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' 'DIFP'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2221'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'P2APL-TRFGR' WC_CATEGORIA.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '/8'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   IF TH_ARCHIVO-DEPARTAMENTO NE ' '.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' 'PRIM'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'SAPLHRTV' '0300'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'COBL-KOSTL' TH_ARCHIVO-DEPARTAMENTO.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '/8'.&lt;/P&gt;&lt;P&gt;      PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPD'. "MML QA&amp;amp;C 08.02.00&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  GENERATE_BDC_DATA_2                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  ELIMINA_SUSTITUCION                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM ELIMINA_SUSTITUCION.&lt;/P&gt;&lt;P&gt;   REFRESH BDC_TABLE.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-PERNR' TH_ARCHIVO-NUMERO.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-BEGDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-ENDDA' WC_FECHA.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'RP50G-CHOIC' '2003'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=DEL'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_START USING 'MP200000' '2100'.&lt;/P&gt;&lt;P&gt;   PERFORM DYNPRO_FIELD USING 'BDC_OKCODE' '=UPDL'.&lt;/P&gt;&lt;P&gt;   CALL TRANSACTION 'PA61' USING BDC_TABLE MODE GVK_MODE&lt;/P&gt;&lt;P&gt;        UPDATE 'S' MESSAGES INTO TH_MESSTAB.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING TH_ARCHIVO TO TH_ERROR.&lt;/P&gt;&lt;P&gt;      APPEND TH_ERROR.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ELIMINA_SUSTITUCION&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  ELIMINA_SUSTITUCION                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;venkat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Apr 2008 19:27:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768373#M906770</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-24T19:27:29Z</dc:date>
    </item>
    <item>
      <title>Re: Creating MIME for XML</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768374#M906771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Solved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem was in the RegEX not in cl_wd_runtime_services ( I think it was in this class)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RegEX not found occurances from the pattern.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a®&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Apr 2008 19:48:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/creating-mime-for-xml/m-p/3768374#M906771</guid>
      <dc:creator>former_member194669</dc:creator>
      <dc:date>2008-04-24T19:48:43Z</dc:date>
    </item>
  </channel>
</rss>

