Saltar al contenido

usar una declaración COLLECT

Un Usuario hizo la siguiente pregunta

Quiero colocar comandos abiertos (VBBE-OMENG) de la tabla VBBE por tema no. y planta. ¿Puedo usar la declaración COLLECT? ¿Como puedo usar lo?

5 respuestas

  • Hola ..

    Aquí está el código: pruébelo …..

    TIPOS: COMIENZO DE ST_VBBE,

    TIPO MATNR VBBE-MATNR,

    TRABAJOS TIPO VBBE-TRABAJOS,

    VBBE-OMENG TIPO OMENG,

    END ST_VBBE.

    detalles: IT_VBBE TYPE TABLE OF ST_VBBE,

    WA_VBBE TIPO ST_VBBE.

    INICIO-SELECCIONAR.

    SELECCIÓN DE MATNR WERKS OMENGE

    De VBBE EN LA TABLA IT_VBBE.

    LOOP AG IT_VBBE EN WA_VBBE.

    RECOGER WA_VBBE EN IT_VBBE.

    ENDLOOP.

    recompensa si es útil eso

  • Este mensaje ha sido modificado.

  • Ex miembro

    Hola Vishal,

    Obtenga el documento para COLLECT.

    Por lo general, se utiliza para recopilar registros para su inclusión en una tabla interna ……

    COLLECT Diagrama de sintaxis

    La forma básica de COLLECT [wa INTO] itab.

    Adición:

    … CLASIFICADO POR f

    En el contexto de los objetos ABAP, hay una verificación de sintaxis más estricta

    lo ha hecho en otras áreas ABAP. Ver formularios cortos en línea

    operaciones no permitidas.

    Effect COLLECT le permite crear un conjunto de datos único o resumido.

    El sistema intenta ingresar a una tabla correspondiente

    clave de tabla (consulte Definición de clave para tablas internas). El es

    los valores clave se toman de la línea del encabezado

    itab tabla interna, o de la obra expresamente especificada

    área de wa. itab debe tener una estructura plana, es decir, no puede

    otras mesas internas allí. No todos los componentes

    parte de la clave debe tener tipos numéricos (ver ABAP numérico

    tipos).

    Si el sistema encuentra una entrada, los campos numéricos no son

    parte de la clave de la tabla (ver tipos de números ABAP) se agrega al

    la suma total de las entradas existentes. Si no lo consigue

    entrada, el sistema crea una nueva entrada en su lugar.

    La forma en que el sistema encuentra las entradas depende de la

    tipo de mesa interna:

    – MESA ESTÁNDAR:

    El sistema crea un hash temporal para el

    tabla para encontrar las entradas. Esto significa el tiempo de ejecución

    no es necesario encontrarlos dependiendo del número de

    entradas de la tabla. La administración es temporal, ya que es

    inválido por operaciones como ELIMINAR, INSERTAR, MODIFICAR o

    ESCRIBE. COLLECT ya no es independiente

    el tamaño de la mesa, porque se debe utilizar el sistema lineal

    buscar entradas. Por esta razón, no debería

    use COLLECT para completar tablas estándar.

    – LA MESA CLASIFICADA:

    El sistema utiliza la búsqueda binaria para encontrar las entradas. sí

    Es una relación logarítmica entre los números de la tabla.

    entradas y tiempo de búsqueda.

    – TABLA HASHED:

    El sistema de administración interno utiliza el hash

    tabla para la obtención de registros. Dado que (a diferencia de las tablas estándar), este

    permanece intacto incluso después de las operaciones de modificación de la tabla,

    el tiempo de búsqueda es siempre independiente del número de

    entradas de la tabla.

    Para tablas estándar y TABLAS CLASIFICADAS, campo del sistema

    SY-TABIX incluye el número de personas existentes o recién agregadas

    entrada de la tabla después del APÉNDICE. Con HASHED TABLES, hay SY-TABIX

    establecido en 0.

    Notas 1. COLLECT te permite crear uno único o resumido

    conjunto de datos, y solo debe usarlo cuando sea necesario.

    Si no se requiere ninguno de estos atributos, o donde

    la naturaleza de la tabla en la aplicación significa que

    imposible que se produzcan entradas duplicadas, debe utilizarlas

    INSERTAR [wa INTO] TABLE itab en lugar de COLLECT. Si lo haces

    requieren que la tabla sea única o resumida, COLLECT es el

    forma más eficaz de lograrlo.

    2. Si usa COLLECT con un área de trabajo, el área de trabajo debe ser

    compatible con el tipo de línea de la mesa interna.

    3. Si edita una tabla estándar usando COLLECT, solo debe hacerlo

    utilice RECOGER o MODIFICAR … TRANSPORTE f1 f2 …

    declaraciones (donde la clave no puede contener ninguno de f1, f2, …)

    enthalten sein). Solo entonces puede estar seguro:

    – La tabla interna es realmente única o resumida.

    – COLLECT funciona de manera eficiente. Compruebe si el conjunto de datos

    ya existe una entrada con la misma clave

    constante

    tiempo de búsqueda (procedimiento hash).

    Si usa cualquier otra declaración de modificación de tabla, el

    verificar entradas en el conjunto de datos con la misma clave solamente

    ejecutar usando la búsqueda lineal (y aceptar en consecuencia

    más extenso). Puede utilizar el módulo de funciones

    ABL_TABLE_HASH_STATE para probar si un

    tiempo de búsqueda constante o lineal para una tabla estándar en particular.

    Ejemplo Resumen de cifras de ventas por empresa:

    TIPOS: DENTRO DE LA EMPRESA,

    NOMBRE (20) TIPO C,

    TIPO DE VENTA I,

    FIN DE EMPRESA.

    DETALLES: COMPAÑÍA TIPO COMP,

    TABLA DE TIPO DE COMPAÑÍA COMPTAB

    PARA EL NOMBRE PRINCIPAL.

    COMP-NAME = ‘pato’. COMP-VENTAS = 10. COMP-VENTAS

    COMPTAB.

    COMP-NAME = ‘Tigre’. COMP-VENTAS = 20. COMP-VENTAS

    COMPTAB.

    COMP-NAME = ‘pato’. COMP-VENTAS = 30. RECOGIDA COMP IN

    COMPTAB.

    La tabla COMPTAB ahora contiene el siguiente material:

    VENTA VENTA

    Pato 40

    Tigre 20

    Adición … CLASIFICADO POR f

    RECOGER EFECTO … CLASIFICADO POR fi obsoleto, y ya no debería ser

    se utiliza. Solo se aplica a tablas estándar, y tienen lo mismo

    funciona como un APÉNDICE … ORDENADO POR f, debe usar

    en lugar de. (Ver también declaraciones obsoletas).

    Nota de rendimiento:

    1. Evite tareas innecesarias para la línea del encabezado cuando utilice

    tablas internas con una línea de encabezado. Siempre que sea posible, utilice

    declaraciones con un alcance de trabajo explícito.

    Por ejemplo, “APPEND wa TO itab”. aproximadamente el doble de

    rápidamente como “itab = wa. APPEND itab.”. Lo mismo va para

    COBRO Y SEGURO.

    2. El tiempo de ejecución de COLLECT aumenta con el ancho del

    clave de tabla y el número de campos numéricos cuyo contenido

    se resumen.

    Errores en tiempo de ejecución Nota:

    – COLLECT_OVERFLOW: Desbordamiento en campo entero con nosotros

    tan bueno como eso

    – COLLECT_OVERFLOW_TYPE_P: Desbordamiento en el campo de tipo P durante

    tan bueno como eso.

    – TABLE_COLLECT_CHAR_IN_FUNCTION: COLLECT en no numérico

    Gort.

    Recompensa si es útil.

    Sobre

    Sasidhar Reddy Matli.

  • Ex miembro

    Hola

    siga este sencillo programa.

    TIPOS: DENTRO DE LA EMPRESA,

    NOMBRE (20) TIPO C,

    TIPO DE VENTA I,

    FIN DE EMPRESA.

    DETALLES: COMPAÑÍA TIPO COMP,

    TABLA DE TIPO DE COMPAÑÍA COMPTAB

    PARA EL NOMBRE PRINCIPAL.

    COMP-NAME = ‘pato’. COMP-VENTAS = 10. RECOGER COMP EN COMPTAB.

    COMP-NAME = ‘Tigre’. COMP-VENTAS = 20. COMP-RECOGIDA EN COMPTAB.

    COMP-NAME = ‘pato’. COMP-VENTAS = 30. RECOGER COMP EN COMPTAB.

    La tabla COMPTAB ahora contiene el siguiente material:

    NOMBRE | VENTAS


    Pato | 40

    Tigre 20

    en nuestro programa, use recolectar VBBE-werks.

  • Hola, en mi opinión cometiste un pequeño error, por lo que no puedes obtener los datos mediante la recopilación de estado.

    Aquí está el código incorrecto, así que si estás contento.

    TIPOS: COMIENZO DE ST_VBBE,
    TIPO MATNR VBBE-MATNR,
    TRABAJOS TIPO VBBE-TRABAJOS,
    VBBE-OMENG TIPO OMENG,
    END ST_VBBE.
    detalles: IT_VBBE TYPE TABLE de ST_VBBE,
    WA_VBBE TIPO ST_VBBE,
    it_vbbe_f TIPO DE TABLA st_vbbe,
    WA_VBBE_F TIPO ST_VBBE.
    INICIO-SELECCIONAR.
    SELECCIÓN MATNR WERKS OMENG
    Desde VBBE IN TABLE IT_VBBE Hasta 500 filas.
    PUNTO DE ROTURA.
    LOOP AG IT_VBBE EN WA_VBBE.
    RECOGER WA_VBBE EN IT_VBBE_f.
    ENDLOOP.

    Espero que esto resuelva tu pregunta.

    gracias.