Inicio del área de contenido

Documentación conceptual Acoplamiento Localizar documento en árbol de navegación

Un proceso de acoplamiento de dos o más infotipos. Se facilitan los datos de esos infotipos para un mes parcial específico.

Ejemplo

Nos gustaría saber en qué tabla horaria trabajó un empleado, en qué función y en qué dirección vivía durante ese tiempo.

Están disponibles las siguientes direcciones :

enero - junio

Hamburgo

junio - diciembre

Munich


Están disponibles los siguientes datos del puesto de trabajo:

enero - abril

Programador

mayo - diciembre

Instructor de curso


Si se facilitan la dirección y los datos del puesto de trabajo para meses parciales, esto tiene el siguiente resultado:

enero - abril

Hamburgo/programador

mayo - junio

Hamburgo / instructor de curso

julio - diciembre

Munich / instructor de curso


La sintaxis ABAP/4 de este acoplamiento es la siguiente:

PROVIDE * FROM Pmmmm
        * FROM Pnnnn
        BETWEEN PN-BEGDA AND PN-ENDDA.

Los meses parciales para infotipos Pmmmm y Pnnnn y para todos los demás infotipos del acoplamiento se definen en los campos BEGDA y ENDDA.

Los datos de cada infotipo del acoplamiento deben estar disponibles durante todo el período de validez del infotipo. Las tablas horarias de los registros de infotipo pueden no superponerse; por tanto, el acoplamiento no puede contener infotipos con el enlace temporal "tres".

La tabla horaria de los registros se superponen si se lee un infotipo sin ningún tipo de restricciones de subtipo. Por ejemplo, el infotipo Dirección tiene los subtipos Residencia permanente, Segunda residencia y Dirección en el país de origen.

Al final, se superpondrán las tablas horarias si se leen todas las direcciones. Por tanto, debe seleccionar siempre un subtipo para un acoplamiento, y ese subtipo no necesita tener el enlace temporal "tres".

El código del programa para el acoplamiento para los datos de puesto de trabajo y dirección es:

REPORT RPABAP03.
TABLES:PERNR.
INFOTYPES: 0001, 0006.
GET PERNR.

  
PROVIDE * FROM P0001
          * FROM P0006 BETWEEN PN-BEGDA
AND PN-ENDDA
          WHERE P0006-SUBTY eq '1'.

    
WRITE: / PERNR-PERNR, P0001-STELL,
             P0006-STRAS, P0006-BEGDA,P0006-ENDDA.

  
ENDPROVIDE.

A veces no hay datos disponibles para un determinado infotipo en el mes parcial seleccionado. Los períodos de validez del infotipo pueden no superponerse, pero están permitidos los vacíos.

Por ejemplo, pueden producirse vacíos cuando se acoplan los datos personales con direcciones.

Datos personales :

enero 1960 - mayo 1998

Miller

mayo 1998 - diciembre 1998

Smith


Direcciones:

enero 1998 - diciembre 1998

Hamburgo


Un acoplamiento para datos personales y direcciones se presenta como sigue:

enero 1960 - diciembre 1997

Miller

enero 1998 - abril 1998

Miller / Hamburgo

mayo 1998 - diciembre 1998

Smith / Hamburgo


En el primer mes parcial sólo están disponibles los datos de personal. Puesto que el registro no facilita la información necesaria, la función de acoplamiento de suministro de datos de los infotipos asociados no se ha cumplido.

La variable Pnnnn_VALID identifica que sólo se dispone de datos incompletos para un mes parcial determinado.

Se forma esta variable cuando se ejecuta el informe para cada infotipo Pnnnn incluido en un acoplamiento.

Si los datos existen en el mes parcial para el infotipo Pnnnn, se rellena la variable Pnnnn_VALID con el valor X.

Esas variables se evalúan como sigue:

REPORT RPDEMO03.
TABLES:PERNR.
INFOTYPES:  0002,
            0006.
GET PERNR.

  
PROVIDE * FROM P0002
          * FROM P0006 BETWEEN PN-BEGDA AND PN-ENDDA
          WHERE P0006-SUBTY = '1'.

    
IF P0006_VALID EQ 'X'.
      
WRITE:  /  PERNR-PERNR,
                 P0002-BEGDA DD/MM/YYYY,
                 P0002-ENDDA DD/MM/YYYY,
                 P0002-NACHN,
                 P0006-ORT01.

    
ENDIF.
  
ENDPROVIDE.

Sólo se genera una lista si las direcciones están disponibles. El primer mes parcial, que sólo tiene datos personales, se suprime.

 

 

 

Fin del área de contenido