insertar registros en una tabla interna

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • phuacacolqui
    Junior Member
    • mar
    • 13

    #1

    insertar registros en una tabla interna

    estimados su ayuda por favor,
    soy programador java estoy iniciándome en abap, y mi pregunta es como puedo conseguir esto en abap .

    LOOP AT EMPLEADOS.
    WHILE CONTADO<=3.
    FECHA=FECHA-CONTADOR.
    INSERT INTO TABLAINTERNA(CAM1,CAM2)
    VALUES(CODTRAB, FECHA)
    CONTADOR++.
    ENDWHILE.
    CONTADOR=1.
    ENDLOOP.
  • acha3318
    Senior Member
    • abr
    • 182

    #2
    Hola, debes hacer lo siguiente:

    1- Debes declarar una tabla interna para procesar y leer los empleados

    DATA: BEGIN OF ti_empleados OCCURS 0,
    CODTRAB(12) TYPE C ,
    FECHA TYPE DATUM,
    END OF ti_empleados .

    2- Debes declarar una tabla interna que contendra los registros insertados y que cumplen con la condición.

    DATA: ti_empleados_especiales TYPE TABLE OF ti_empleados WITH HEADER LINE.

    3- Leer la tabla transparente de EMPLEADOS (la puedes condicionar con un WHERE).

    SELECT * INTO TABLE ti_empleados FROM Empleados. ==> Lee todo el universo de empleados
    Select * INTO TABLE ti_empleados FROM Empleados WHERE CODTRAB = pcodtrab.

    4- Armar cada registro que cumplió la condición y van a ser insertados en los empleados especiales.

    LOOP AT ti_empleados WHERE fecha >= pFechaIni AND fecha <= pFechaFin.
    ti_empleados_especiales-CODTRAB = ti_empleados-CODTRAB.
    ti_empleados_especiales-FECHA = ti_empleados-FECHA.

    INSERT ti_empleados_especiales.
    ENDLOOP.

    Espero haberte podido ayudar......

    Suerte.

    Originalmente publicado por phuacacolqui
    estimados su ayuda por favor,
    soy programador java estoy iniciándome en abap, y mi pregunta es como puedo conseguir esto en abap .

    LOOP AT EMPLEADOS.
    WHILE CONTADO<=3.
    FECHA=FECHA-CONTADOR.
    INSERT INTO TABLAINTERNA(CAM1,CAM2)
    VALUES(CODTRAB, FECHA)
    CONTADOR++.
    ENDWHILE.
    CONTADOR=1.
    ENDLOOP.

    Comentario

    • phuacacolqui
      Junior Member
      • mar
      • 13

      #3
      Gracias por tu ayuda acha3318 aqui dejo el codigo.
      Código PHP:
      LOOP AT gdt_empleados.
          
      CONTADOR 1.
          PE 
      = -1.
          
      WHILE CONTADOR <= 3.
      *DATE_IN_FUTURE resta la fecha
            CALL 
      FUNCTION 'DATE_IN_FUTURE' 
              
      EXPORTING
                ANZAHL_TAGE  
      PE
                IMPORT_DATUM 
      FA
              IMPORTING
                EXPORT_DATUM_EXT_FORMAT 
      FECH.
            
      CONCATENATE FECH+6(4FECH+3(2FECH+0(2INTO FECHA2.
      devuelve horario de trabajador ZHR_RFC_SELE_HORARIO
            CALL 
      FUNCTION 'ZHR_RFC_SELE_HORARIO'
              
      EXPORTING
                P_PERNR     
      gdt_empleados-PERNR
                P_FECINI    
      FECHA2
                P_FECFIN    
      FECHA2
              TABLES
                T_HORARIO   
      THORARIOS.
              
      DESCRIBE TABLE THORARIOS LINES L.
               IF 
      L NE 0.
                 LOOP AT THORARIOS
      .
                    IF 
      THORARIOS-TPROG NE 'LIBR' OR THORARIOS-TPROG NE 'LIBRE'.
                      
      CONTADOR CONTADOR 1.
                      PE 
      PE 1.
                      TZ
      -MANDT gdt_empleados-MANDT.
                      
      TZ-BUKRS gdt_empleados-BUKRS.
                      
      TZ-PERNR gdt_empleados-PERNR.
                      
      TZ-NACHN gdt_empleados-NACHN.
                      
      TZ-NACH2 gdt_empleados-NACH2.
                      
      TZ-VORNA gdt_empleados-VORNA.
                      
      TZ-ZTERF gdt_empleados-ZTERF.
                      
      TZ-STAT2 gdt_empleados-STAT2.
                      
      TZ-DIA   FECHA2.
                      
      APPEND TZ.
                    ELSE.
                      
      PE PE 1.
                    
      ENDIF.
                  
      ENDLOOP.
               ELSE.
                 
      CONTADOR 4.
               
      ENDIF.
          ENDWHILE.
        
      ENDLOOP

      Comentario

      Trabajando...