Está en la página 1de 6

Añadir nuevos campos en informes de partidas

de Controlling.
 
 
 
 
 
1 Vote
 

Siguiendo con la serie de ampliación de los informes estandar más


importantes de Sap, hoy vamos a ver la forma de añadir nuevos campos
en los informes de partidas individuales de Controlling.

 Informes de partidas reales: transacciones KSB1 para


Centros de Coste, KOB1 para Ordenes y  CJI3 para Proyectos.
 Informes de partidas planificadas: transacciones KSBP para
Cecos, KOBP para Ordenes y CJI4 para Proyectos.
 Informes de partidas comprometido: transacciones KSB2
para Cecos, KOB2 para Ordenes y CJI5 para Proyectos.
El procedimiento se describe en la Nota Oss 325546, y nos permite
añadir campos de cliente tanto en los informes de partidas abiertas
reales, planificadas o de comprometido. Vamos a ver un ejemplo práctico
utilizando las partidas abiertas reales de Proyectos, aunque tendremos la
posibilidad de ampliar también el resto de informes.

View this document on Scribd


Básicamente, hemos de utilizar la ampliacion COOMEP01 (transaccion
CMOD/SMOD), seleccionando la exit especifica según el lugar donde
queremos añadir la información, aunque habrá que realizar algunos
pasos adicionales a este. Veamos en detalle un ejemplo:

En nuestra empresa quieren añadir campos adicionales al informes de


partidas individuales de proyectos, para ver los siguientes valores:

Nombre y Departamento del empleado que esta imputando horas


a los proyectos.
 Nombre del Proyecto (descripción).
 Clase de elemento Pep y su descripción, para poder filtrar o
subtotalizar la información por este concepto.
Los pasos a seguir son los siguientes:

Ampliación de la estructura KAEP_COAC.


A través de la transacción SE11, en la estructura KAEP_COAC, en el
include CI_RKPOS, añadiremos todos los campos necesarios. Siempre
seguir la nomenclatura ZZ_NOMBRECAMPO.

Una vez concluida la ampliación de la estructura, activaremos los


cambios para que esten disponibles.

Proyecto de ampliación COOMEP01.


En este proyecto de ampliación Sap nos deja la puerta para incluir el
código Abap con el que llenaremos los campos definidos en la estructura
anterior. El proyecto de ampliación lo gestionaremos con
la transacción CMOD. Para ello, creo el proyecto ZCO_PART CO:
incluir nuevos campos en informes partidas individuales, y lo asigno la
ampliación COOMEP01.
En la exit EXIT_SAPLKAEP_001, en el include ZXKAEPU01,
introducimos el código fuente que va a leer de las diferentes tablas:

 IF cs_record-obart = 'PR'.
* Ampliar campos varios del proyecto.
* Descripcion del proyecto.
  CLEAR proj.
  SELECT SINGLE * FROM  proj
         WHERE  pspid  = cs_record-pspid.
  cs_record-zz_post1 = proj-post1.
* Clase de elemento Pep y su descripcion.
  CLEAR prps.
  SELECT SINGLE * FROM  prps
*       where PSPNR   = cs_record-objid.
         WHERE  posid  = cs_record-posid.
  cs_record-zz_prart = prps-prart.

  CLEAR tcj1t.
  SELECT  SINGLE * FROM  tcj1t
         WHERE  langu  = sy-langu
         AND    prart  = prps-prart.
  cs_record-zz_pratx = tcj1t-pratx.

* Nombre del empleado.
  IF cs_record-pernr IS NOT INITIAL.
    CLEAR pa0002.
    SELECT SINGLE * FROM pa0002 WHERE pernr = cs_record-pernr.
    CONCATENATE pa0002-vorna pa0002-nachn pa0002-nach2 INTO cs_record-
zz_cname
       SEPARATED BY space.

* Departamento y descripcion de este.
    CLEAR pa0001.
    SELECT SINGLE * FROM pa0001 WHERE pernr = cs_record-pernr
       AND begda <= cs_record-budat
       AND endda >= cs_record-budat.
    cs_record-zz_orgeh = pa0001-orgeh.
    CLEAR t527x.
    SELECT SINGLE * FROM  t527x
           WHERE  sprsl  = sy-langu
           AND    orgeh  = pa0001-orgeh
           AND    endda  >= cs_record-budat
           AND    begda  <= cs_record-budat.
    cs_record-zz_orgtx = t527x-orgtx.
  ENDIF.
ENDIF.

A continuación activamos el programa y activamos el proyecto de


ampliación.

NOTA IMPORTANTE: EL CÓDIGO ABAP SE EJECUTARA EN


CADA LECTURA DE CADA PARTIDA INDIVIDUAL. ES
IMPORTANTE QUE LOS ACCESOS A BASE DE DATOS ESTEN
BIEN OPTIMIZADOS PARA NO PENALIZAR EL
RENDIMIENTO DE LOS INFORMES.

Mantenimiento de la vista V_TKALV.


El último paso sera realizar el mantenimiento de la vista donde se
controlan los campos que aparecen en el listado de las partidas, y que
controla el uso de los catalogos (lo que nos permite seleccionar los
campos para su visualización, hacer totales, etc). Para ello, desde la
transacción SM34, accedemos al diálogo Datos para la estructura de
campos, incluyendo los nuevos campos en la estructura KAEP_COAC.
Los campos siempre hay que añadirlos con Grupo de Campos K (Campos
de cliente). En el caso de que la lectura del campo tenga alguna
dependencia con otro campo (es necesario que ese campo este leido
antes de hacer la lectura del siguiente),  habrá que completar la sección
Dependencias de selección.

Por ejemplo, el campo ZZ_CNAME (Nombre del empleado), tiene


dependencia del campo PERNR (Número de empleado), que ha de estar
leido antes.
Una vez completada esta parametrización, el informe esta listo para ser
utilizado. En alguna ocasión, hemos de resetear el buffer ALV para que
nos aparezcan los nuevos campos. Esto se hace con el report
BALVBUFDEL, tal y como se describe en la nota 122975.

Con esta configuración estamos ampliado la funcionalidad de los


informes de partidas abiertas de Controlling, permitiendo
más criterios de analisis al usuario final sin un gran esfuerzo
de desarrollo.

También podría gustarte