Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

Enhancement : CATS0002 CATS: Supplement recorded data

Customer Exit : EXIT_SAPLCATS_002


Z_Include : ZXCATU02

*----------------------------------------------------------------------*
* INCLUDE ZXCATU02 *
*----------------------------------------------------------------------*
*&----------------------------------------------------------------------*
*&�HISTORIAL�DE�MODIFICACIONES���������������������������� � *
*&----------------------------------------------------------------------*
*
*&----------------------------------------------------------------------*

TABLES: cskt, " Texto CeCo


cslt, " Texto clase actividad
cbpt, " Proceso empresarial
ckpht, " Objetos de costo
aufk, " Ordenes
afko, " Ordenes
proj, " Proyecto
prps. " Elemento PEP

TABLES: ztobjper, " Objetos personalizados


ztceco, " Objetos en CeCo�s
ztcceco. " Objetos para CeCo�s

DATA: vcval(1) TYPE c. " Objeto V�lido

LOOP AT enrich_table.
CLEAR: enrich_table-zzktext,
enrich_table-zztxtact,
enrich_table-zztxtproc,
enrich_table-zztxtorden,
enrich_table-zztxtpep,
enrich_table-zztxtgrafo,
enrich_table-zzpsphi,
enrich_table-zztxtproy,
enrich_table-zztxtobj.

**Verificar si la sociedad CO, esta en blanco, se debe derivar


* { CO_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* IF enrich_table-kokrs IS INITIAL.
* IF enrich_table-bukrs IS INITIAL.
* } CO_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT SINGLE bukrs INTO enrich_table-bukrs FROM pa0001 WHERE
pernr EQ enrich_table-pernr AND begda <= enrich_table-workdate
AND endda >= enrich_table-workdate.
SELECT SINGLE kokrs INTO enrich_table-kokrs FROM tka02 WHERE
bukrs EQ enrich_table-bukrs.
* { CO_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* ENDIF.
* ENDIF.
* } CO_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT

** Buscar denominaciones

* Buscar denominaci�n CeCo


SELECT SINGLE * FROM cskt WHERE spras = 'S'
AND kokrs = enrich_table-kokrs
AND kostl = enrich_table-rkostl.
IF sy-subrc = 0.
enrich_table-zzktext = cskt-ktext.
ENDIF.
* Buscar denominaci�n clase de actividad
SELECT SINGLE * FROM cslt WHERE spras = 'S'
AND kokrs = enrich_table-kokrs
AND lstar = enrich_table-lstar.
IF sy-subrc = 0.
MOVE: cslt-ktext TO enrich_table-zztxtact.
ENDIF.
* Buscar denominaci�n proceso empresarial
SELECT SINGLE * FROM cbpt WHERE spras = 'S'
AND kokrs = enrich_table-kokrs
AND prznr = enrich_table-rprznr.
IF sy-subrc = 0.
MOVE: cbpt-ktext TO enrich_table-zztxtproc.
ENDIF.
* Buscar denominaci�n de orden
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF NOT enrich_table-raufnr IS INITIAL.
SELECT SINGLE * FROM aufk CLIENT SPECIFIED WHERE mandt = sy-mandt
AND aufnr = enrich_table-raufnr
AND kokrs = enrich_table-kokrs
AND bukrs = enrich_table-bukrs.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT SINGLE * FROM aufk WHERE aufnr = enrich_table-raufnr
* AND bukrs = enrich_table-kokrs.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF sy-subrc = 0.
MOVE: aufk-ktext TO enrich_table-zztxtorden.
ELSE.
MESSAGE e081(zco) WITH enrich_table-raufnr.
ENDIF.
ENDIF.
* Buscar denominaci�n elemento PEP
SELECT SINGLE * FROM prps WHERE pspnr = enrich_table-rproj.
IF sy-subrc = 0.
MOVE: prps-post1 TO enrich_table-zztxtpep.
ENDIF.
* Buscar denominaci�n grafo
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT SINGLE * FROM aufk WHERE aufnr = enrich_table-rnplnr
* AND kokrs = enrich_table-kokrs.
IF NOT enrich_table-rnplnr IS INITIAL.
SELECT SINGLE * FROM aufk CLIENT SPECIFIED WHERE mandt = sy-mandt
AND aufnr = enrich_table-rnplnr
AND autyp = '20'
AND bukrs = enrich_table-bukrs
AND kokrs = enrich_table-kokrs.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT SINGLE * FROM aufk WHERE aufnr = enrich_table-rnplnr
* AND bukrs = enrich_table-kokrs.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF sy-subrc = 0.
MOVE: aufk-ktext TO enrich_table-zztxtgrafo.
ELSE.
MESSAGE e082(zco) WITH enrich_table-rnplnr.
ENDIF.
ENDIF.
* Buscar proyecto a partir del grafo
SELECT SINGLE * FROM afko WHERE aufnr = enrich_table-rnplnr.
IF sy-subrc = 0.
MOVE: afko-pronr TO enrich_table-zzpsphi.
* Buscar descripci�n de proyecto
SELECT SINGLE * FROM proj WHERE pspnr = afko-pronr.
IF sy-subrc = 0.
MOVE: proj-post1 TO enrich_table-zztxtproy.
ENDIF.
ENDIF.
* Buscar descripci�n Objeto de coste
SELECT SINGLE * FROM ckpht WHERE spras = 'S'
AND kstrg = enrich_table-rkstr
AND datbi >= sy-datum.
IF sy-subrc = 0.
MOVE: ckpht-ktext TO enrich_table-zztxtobj.
ENDIF.

** Realizar validaciones de objetos en personalizaci�n

* Validar si la Orden est� permitido para el CeCo en personalizaci�n


CLEAR vcval.
IF enrich_table-raufnr NE space.
SELECT * FROM ztcceco WHERE kostlp = enrich_table-skostl.
IF ztcceco-xaufnr EQ 'X'.
MESSAGE e017(zco) WITH enrich_table-skostl.
ELSE.
SELECT * FROM ztobjper WHERE pernr = enrich_table-pernr
AND kostlp = enrich_table-skostl.
IF ztobjper-aufnr = enrich_table-raufnr.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF sy-subrc NE 0 OR vcval NE 'X'.
* Validar si la orden est� personalizada
SELECT * FROM ztobjper WHERE aufnr = enrich_table-raufnr.
vcval = ' '.
MESSAGE e032(zco) WITH ztceco-aufnr.
ENDSELECT.
* Validar el Centro de costos en CeCo
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs
AND kostlp = enrich_table-skostl.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT

* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs


* AND kostlp = enrich_table-skostl.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF ztceco-aufnr = enrich_table-raufnr.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF vcval NE 'X'.
* Buscar en todos los CeCo�s
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs.
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF ztceco-aufnr = enrich_table-raufnr.
IF ztceco-kostlp NE enrich_table-skostl.
MESSAGE e013(zco) WITH ztceco-aufnr.
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.

* Validar si el CeCo est� permitido para el CeCo en personalizaci�n


CLEAR vcval.
IF enrich_table-rkostl NE space.
SELECT * FROM ztcceco WHERE kostlp = enrich_table-skostl.
IF ztcceco-xkostl EQ 'X'.
MESSAGE e017(zco) WITH enrich_table-skostl.
ELSE.
SELECT * FROM ztobjper WHERE pernr = enrich_table-pernr.
IF ztobjper-kostl = enrich_table-rkostl.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF sy-subrc NE 0 OR vcval NE 'X'.
* Validar el Centro de costos en CeCo
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs
AND kostlp = enrich_table-skostl.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs
* AND kostlp = enrich_table-skostl.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF ztceco-kostl = enrich_table-rkostl.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF vcval NE 'X'.
* Buscar en todos los CeCo�s
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF ztceco-kostl = enrich_table-rkostl.
IF ztceco-kostlp NE enrich_table-skostl.
MESSAGE e013(zco) WITH ztceco-kostl.
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.

* Validar si el Objeto de costo est� permitido para el CeCo


* en personalizaci�n
CLEAR vcval.
IF enrich_table-rkstr NE space.
SELECT * FROM ztcceco WHERE kostlp = enrich_table-skostl.
IF ztcceco-xprznr EQ 'X'.
MESSAGE e017(zco) WITH enrich_table-skostl.
ELSE.
SELECT * FROM ztobjper WHERE pernr = enrich_table-pernr.
IF ztobjper-prznr = enrich_table-rkstr.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF sy-subrc NE 0 OR vcval NE 'X'.
* Validar el proceso en CeCo
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs
AND kostlp = enrich_table-skostl.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs
* AND kostlp = enrich_table-skostl.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF ztceco-prznr = enrich_table-rkstr.
vcval = 'X'.
ENDIF.
ENDSELECT.
ENDIF.

IF vcval NE 'X'.
MESSAGE e012(zco) WITH enrich_table-skostl.
ENDIF.
ENDIF.
ENDSELECT.
IF vcval NE 'X'.
MESSAGE e012(zco) WITH enrich_table-skostl.
ENDIF.
ENDIF.

* Validar si el Grafo est� permitido para el CeCo en personalizaci�n


CLEAR vcval.
IF enrich_table-rnplnr NE space.
SELECT * FROM ztcceco WHERE kostlp = enrich_table-skostl.
IF ztcceco-xnplnr EQ 'X'.
MESSAGE e017(zco) WITH enrich_table-skostl.
ELSE.
SELECT * FROM ztobjper WHERE pernr = enrich_table-pernr.
IF ztobjper-nplnr = enrich_table-rnplnr.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF sy-subrc NE 0 OR vcval NE 'X'.
* Validar el Grafo en CeCo
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs
AND kostlp = enrich_table-skostl.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs
* AND kostlp = enrich_table-skostl.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
IF ztceco-nplnr = enrich_table-rnplnr.
vcval = 'X'.
ENDIF.
ENDSELECT.
IF vcval NE 'X'.
* Buscar en todos los CeCo�s
* { MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
SELECT * FROM ztceco WHERE bukrs = enrich_table-bukrs.
IF ztceco-nplnr = enrich_table-rnplnr.
IF ztceco-kostlp NE enrich_table-skostl.
MESSAGE e013(zco) WITH ztceco-nplnr.
ENDIF.
ENDIF.
ENDSELECT.
* } MA_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* { MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT
* SELECT * FROM ztceco WHERE bukrs = enrich_table-kokrs.
* IF ztceco-nplnr = enrich_table-rnplnr.
* IF ztceco-kostlp NE enrich_table-skostl.
* MESSAGE e013(zco) WITH ztceco-nplnr.
* ENDIF.
* ENDIF.
* ENDSELECT.
* } MC_0008216: INCGB0005975353_SS_CO_Ajustar ZOBJCAT

ENDIF.
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.

* HIR 16-01-2008 (CO - Req 21365484 - Validaci�n de procesos empresarial vs clase


de actividad en Registro de Tiempos ? CAT2)
CLEAR vcval.
IF enrich_table-rprznr IS NOT INITIAL.
IF enrich_table-lstar NE enrich_table-rprznr.
MESSAGE e031(zco).
ENDIF.
ENDIF.
* ENDHIR 16-01-2008 (CO - Req 21365484 - Validaci�n de procesos empresarial vs
clase de actividad en Registro de Tiempos ? CAT2)

MODIFY enrich_table.

ENDLOOP.

You might also like