‎2006 Feb 21 3:03 PM
This post is just for help in case you intend to extract data from the logical database PSJ. It could be very helpful in your way.
The program is part of an interfase I developed and the input is a work area(structure) with the fields you normaly fill when you call the PSJ LDB. The structure of this import you can replace it with values you put in the selection screen for your testing, for example:
Replace this code (comment the code):
IMPORT wa_master_data FROM MEMORY ID sy-uname.
cn_profd = wa_master_data-profile.
cn_imtp-sign = wa_master_data-sign.
cn_imtp-option = wa_master_data-option.
cn_imtp-low = wa_master_data-prog_inversiones.
APPEND cn_imtp.
cn_imprp = wa_master_data-id_de_posicion.
cn_imtpj = wa_master_data-a_autoriz.
With this code:
cn_profd = '000000000005'. "wa_master_data-profile.
cn_imtp-sign = 'I'. "wa_master_data-sign.
cn_imtp-option = 'EQ'. "wa_master_data-option.
cn_imtp-low = 'PRO2005'. "wa_master_data-prog_inversiones.
APPEND cn_imtp.
cn_imprp = 'ALAMBRICO'. "wa_master_data-d_de_posicion.
cn_imtpj = '2005'. "wa_master_data-a_autoriz.
At the end the interfase fill an internal table which it's going to be exported to the calling program. The internal table name is itdata and contain the following information:
cod_proj = WBS element short identification
descrip = PS: Short description
inv_real = actual
dispuesto = assigned
disponible = available
presupuesto = budget
comprometido = commitment
POC = porcent of completion
cod_proj LIKE prps_r-poski
descrip LIKE prps_r-post1 "project description
inv_real LIKE cosp1-wkg005,"actual
dispuesto LIKE cosp1-wkg005,"
disponible LIKE cosp1-wkg005,
presupuesto LIKE cosp1-wkg005,
comprometido LIKE cosp1-wkg005,
poc LIKE ev_poc-meg007,
Just go to the fields description in the ABAP dictionary to see the details and descriptions in english.
You can put other fields in this table if you need it and modify the program as you like in order to extract the desired data.
This is the entire code:
-
-
*&----
*
REPORT zcharli_project_system .
************************************************************************
INFORMACION GENERAL
Nombre programa :
TÃtulo : Genera archivo proyectos alámbricos
Autor : Charli Florimón
Fecha Elaboración : 10/2005
Tipo : Interfase
Copia de :
Propósito : Crea archivos interfase "Proyectos Alámbricos"
Módulo : <PS> Project System
*
ABAP´s Includes :
Restricciones :
Modificacion :
Fecha Modificación:
************************************************************************
*-Nodes to be used by the program
NODES: ev_poc.
*- Selection tables
RANGES: r_jerar FOR prps_r-objnr,
st_object FOR onr00-objnr.
*- Tables that are going to be used
TABLES: rsthie, proj, prps_r, aufk, act01,
psdypd, psdypr, psdynp, psdynv,
cosp1, pstx, tcndb, tcnds, impr, coss1, rpsco1, onr00, bpja1,
tcnt, sscrfields, pstat.
*-Data objects declarations
DATA:
presupuesto LIKE rpsco1-wlp00,
real LIKE cosp1-wkg005,
comprometido LIKE cosp1-wkg005,
dispuesto LIKE cosp1-wkg005,
disponible LIKE cosp1-wkg005,
presupuesto_total LIKE cosp1-wkg005,
real_total LIKE cosp1-wkg005,
comprometido_total LIKE cosp1-wkg005,
dispuesto_total LIKE cosp1-wkg005,
disponible_total LIKE cosp1-wkg005,
proyecto1 LIKE prps-posid,
descripcion LIKE prps-post1,
contador1 LIKE bkpf-monat,
contador2 LIKE bkpf-monat,
contador3 LIKE bkpf-monat,
poc LIKE ev_poc-meg007,
aux_cod_proj LIKE prps_r-poski,
aux_objnr LIKE rpsco1-objnr,
vmes(17).
*-Field symbols declarations
FIELD-SYMBOLS .
*-Types definitions
TYPES:
*--CO Object: Cost Totals for External Postings
BEGIN OF it,
objnr LIKE cosp1-objnr,
wrttp LIKE cosp1-wrttp,
kstar LIKE cosp1-kstar,
vrgng LIKE cosp1-vrgng,
wkg001 LIKE cosp1-wkg001,
wkg002 LIKE cosp1-wkg002,
wkg003 LIKE cosp1-wkg003,
wkg004 LIKE cosp1-wkg004,
wkg005 LIKE cosp1-wkg005,
wkg007 LIKE cosp1-wkg007,
wkg008 LIKE cosp1-wkg008,
wkg009 LIKE cosp1-wkg009,
wkg010 LIKE cosp1-wkg010,
wkg011 LIKE cosp1-wkg011,
wkg012 LIKE cosp1-wkg012,
wkg013 LIKE cosp1-wkg013,
wkg014 LIKE cosp1-wkg014,
wkg015 LIKE cosp1-wkg015,
wkg016 LIKE cosp1-wkg016,
END OF it,
*--Project Hierarchy Reporting Structure
BEGIN OF itab,
objnr LIKE prps_r-objnr, "número de objeto
posid LIKE prps_r-posid, "Proyecto sin guiones
post1 LIKE prps_r-post1, "Descripción proyecto
poski LIKE prps_r-poski, "Proyecto con guiones
stufe LIKE prps_r-stufe, "HerarquÃa posiciones
psphi LIKE prps_r-psphi, "Nivel principal en jerarquÃa
END OF itab,
*--Project definition
BEGIN OF itpr,
pspid LIKE proj-pspid,
post1 LIKE proj-post1,
END OF itpr,
*--Structure for PDB PSJ (Percentage of Completion)
BEGIN OF t_poc,
proyecto LIKE prps_r-poski,
objnr LIKE ev_poc-objnr,
meg007 LIKE ev_poc-meg007,
wrttp LIKE ev_poc-wrttp,
acpos LIKE ev_poc-acpos,
END OF t_poc,
*--Internal Table with totals
BEGIN OF t_data,
cod_proj LIKE prps_r-poski,
descrip LIKE prps_r-post1,
inv_real LIKE cosp1-wkg005,
dispuesto LIKE cosp1-wkg005,
disponible LIKE cosp1-wkg005,
presupuesto LIKE cosp1-wkg005,
comprometido LIKE cosp1-wkg005,
poc LIKE ev_poc-meg007,
END OF t_data,
*--CO Object: Cost Totals for Internal Postings
BEGIN OF t_coss1,
objnr LIKE coss1-objnr, "Object number
wrttp LIKE coss1-wrttp,
versn LIKE coss1-versn,
kstar LIKE coss1-kstar, "Cost Element
twaer LIKE coss1-twaer,
perbl LIKE coss1-perbl,
vrgng LIKE coss1-vrgng, "CO Business Transaction
wkg001 LIKE coss1-wkg001, "Total Value in Controlling Area Currency
wkg002 LIKE coss1-wkg002,
wkg003 LIKE coss1-wkg003,
wkg004 LIKE coss1-wkg004,
wkg005 LIKE coss1-wkg005,
wkg007 LIKE coss1-wkg007,
wkg008 LIKE coss1-wkg008,
wkg009 LIKE coss1-wkg009,
wkg010 LIKE coss1-wkg010,
wkg011 LIKE coss1-wkg011,
wkg012 LIKE coss1-wkg012,
wkg013 LIKE coss1-wkg013,
wkg014 LIKE coss1-wkg014,
wkg015 LIKE coss1-wkg015,
wkg016 LIKE coss1-wkg016,
beltp LIKE coss1-beltp,
END OF t_coss1,
*--Tabla interna con los Object Numbers
BEGIN OF t_onr00,
posid LIKE prps_r-posid,
objnr LIKE onr00-objnr,
END OF t_onr00,
*--Summarization Table for Project Reporting
BEGIN OF t_rpsco1,
psphi LIKE prps_r-psphi,
objnr LIKE rpsco1-objnr, "número de objeto
poski LIKE prps_r-poski,
posid LIKE prps_r-posid,
lednr LIKE rpsco1-lednr,
wrttp LIKE rpsco1-wrttp,
trgkz LIKE rpsco1-trgkz,
gjahr LIKE rpsco1-gjahr,
acpos LIKE rpsco1-acpos, "CategorÃa de valor
vorga LIKE rpsco1-vorga, "Clase presupuesto presupuestación/planificación
versn LIKE rpsco1-versn,
abkat LIKE rpsco1-abkat,
geber LIKE rpsco1-geber,
twaer LIKE rpsco1-twaer, "moneda de transacción
perbl LIKE rpsco1-perbl,
beltp LIKE rpsco1-beltp,
wlp00 LIKE rpsco1-wlp00, "Valor de perÃodo en moneda de ledger
wlp01 LIKE rpsco1-wlp00,
wlp02 LIKE rpsco1-wlp00,
wlp03 LIKE rpsco1-wlp00,
wlp04 LIKE rpsco1-wlp00,
wlp05 LIKE rpsco1-wlp00,
wlp06 LIKE rpsco1-wlp00,
wlp07 LIKE rpsco1-wlp00,
wlp08 LIKE rpsco1-wlp00,
wlp09 LIKE rpsco1-wlp00,
wlp10 LIKE rpsco1-wlp00,
wlp11 LIKE rpsco1-wlp00,
wlp12 LIKE rpsco1-wlp00,
wlp13 LIKE rpsco1-wlp00,
wlp14 LIKE rpsco1-wlp00,
wlp15 LIKE rpsco1-wlp00,
wlp16 LIKE rpsco1-wlp00,
wtp00 LIKE rpsco1-wtp00, "Valor anual en moneda de transacción
wtp01 LIKE rpsco1-wtp00,
wtp02 LIKE rpsco1-wtp00,
wtp03 LIKE rpsco1-wtp00,
wtp04 LIKE rpsco1-wtp00,
wtp05 LIKE rpsco1-wtp00,
wtp06 LIKE rpsco1-wtp00,
wtp07 LIKE rpsco1-wtp00,
wtp08 LIKE rpsco1-wtp00,
wtp09 LIKE rpsco1-wtp00,
wtp10 LIKE rpsco1-wtp00,
wtp11 LIKE rpsco1-wtp00,
wtp12 LIKE rpsco1-wtp00,
wtp13 LIKE rpsco1-wtp00,
wtp14 LIKE rpsco1-wtp00,
wtp15 LIKE rpsco1-wtp00,
wtp16 LIKE rpsco1-wtp00,
poc LIKE ev_poc-meg007,
sttxt_int LIKE pstat-sttxt_int, "status del sistema
END OF t_rpsco1,
BEGIN OF t_pstat,
objnr LIKE pstat-objnr,
sttxt_int LIKE pstat-sttxt_int,
sttxt_ext LIKE pstat-sttxt_ext,
astex LIKE pstat-astex,
END OF t_pstat.
*Parámetros que vienen del programa principal
*----
*
TYPES: BEGIN OF t_master_data,
profile LIKE zfps_params-profile,
prog_inversiones LIKE zfps_params-prog_inversiones,
id_de_posicion LIKE zfps_params-id_de_posicion,
a_autoriz LIKE zfps_params-a_autoriz,
sign TYPE c,
option TYPE c LENGTH 2,
END OF t_master_data.
DATA: it_master_data TYPE TABLE OF t_master_data,
wa_master_data LIKE LINE OF it_master_data.
DATA: aux_id TYPE c LENGTH 8,
aux_id2 TYPE c LENGTH 8,
aux_pstat_objnr LIKE pstat-objnr,
awx_sttxt_int LIKE pstat-sttxt_int.
*----
*
*-Internal table declarations
DATA:itcosp1 TYPE TABLE OF it WITH DEFAULT KEY INITIAL SIZE 0,
itprps TYPE TABLE OF itab WITH DEFAULT KEY INITIAL SIZE 0,
itproj TYPE TABLE OF itpr WITH DEFAULT KEY INITIAL SIZE 0,
itev_poc TYPE TABLE OF t_poc WITH DEFAULT KEY INITIAL SIZE 0,
itdata TYPE TABLE OF t_data WITH DEFAULT KEY INITIAL SIZE 0,
itjerar TYPE TABLE OF itab WITH DEFAULT KEY INITIAL SIZE 0,
itcoss1 TYPE TABLE OF t_coss1 WITH DEFAULT KEY INITIAL SIZE 0,
itpstat TYPE TABLE OF t_pstat WITH DEFAULT KEY INITIAL SIZE 0,
itrpsco1 TYPE TABLE OF t_rpsco1,
itonr00 TYPE TABLE OF t_onr00,
*-Work area declarations
itcosp1_wa TYPE it,
itprps_wa TYPE itab,
itprps_wa2 TYPE itab,
itproj_wa TYPE itpr,
itev_poc_wa TYPE t_poc,
itdata_wa TYPE t_data,
itjerar_wa TYPE itab,
itcoss1_wa TYPE t_coss1,
itrpsco1_wa LIKE LINE OF itrpsco1,
itonr00_wa LIKE LINE OF itonr00,
itpstat_wa LIKE LINE OF itpstat.
****----
Get data from Logical Database----
******
INITIALIZATION.
*Llenado de los parámetros que necesita el perfÃl
*de la base de datos lógica PSJ.
*----
*
IMPORT wa_master_data FROM MEMORY ID sy-uname.
cn_profd = wa_master_data-profile.
cn_imtp-sign = wa_master_data-sign.
cn_imtp-option = wa_master_data-option.
cn_imtp-low = wa_master_data-prog_inversiones.
APPEND cn_imtp.
cn_imprp = wa_master_data-id_de_posicion.
cn_imtpj = wa_master_data-a_autoriz.
*----
*
*Inicio de lógica para extraer la data de proyectos
*----
*
GET pstat.
itpstat_wa-objnr = pstat-objnr.
itpstat_wa-sttxt_int = pstat-sttxt_int.
itpstat_wa-sttxt_ext = pstat-sttxt_ext.
itpstat_wa-astex = pstat-astex.
APPEND itpstat_wa TO itpstat.
GET proj.
WRITE: / 'PROJ', proj-pspid.
GET proj LATE.
WRITE: / 'PROJ LATE', proj-pspid.
GET prps_r.
itprps_wa-poski = prps_r-poski.
itprps_wa-objnr = prps_r-objnr.
itprps_wa-posid = prps_r-posid.
itprps_wa-post1 = prps_r-post1.
itprps_wa-psphi = prps_r-psphi.
itprps_wa-stufe = prps_r-stufe.
APPEND itprps_wa TO itprps.
itjerar_wa-poski = prps_r-poski.
itjerar_wa-objnr = prps_r-objnr.
itjerar_wa-posid = prps_r-posid.
itjerar_wa-post1 = prps_r-post1.
itjerar_wa-psphi = prps_r-psphi.
itjerar_wa-stufe = prps_r-stufe.
APPEND itjerar_wa TO itjerar.
WRITE: / 'PRPS', prps_r-posid, prps_r-post1.
GET prps_r LATE.
WRITE: / 'PRPS LATE', prps_r-posid.
GET pstx.
WRITE: / 'PSTX', pstx-pstxtky.
GET pstx LATE.
WRITE: / 'PSTX LATE', pstx-pstxtky.
GET aufk.
WRITE: / 'AUFK', aufk-aufnr.
GET aufk LATE.
WRITE: / 'AUFK LATE', aufk-aufnr.
GET act01.
WRITE: / 'ACT01', act01-aufpl, act01-aplzl.
GET act01 LATE.
WRITE: / 'ACT01 LATE', act01-aufpl, act01-aplzl.
*
GET impr.
WRITE:/ 'IMPR', impr-posid, impr-prnam, impr-parnr.
GET psdypd.
GET psdypr.
GET psdynp.
GET psdynv.
GET onr00.
itonr00_wa-posid = prps_r-posid.
itonr00_wa-objnr = onr00-objnr.
APPEND itonr00_wa TO itonr00.
GET rpsco1.
*-De aquà obtenemos el presupuesto, real, comprometido por proyecto
itrpsco1_wa-objnr = rpsco1-objnr. "número de objeto
itrpsco1_wa-psphi = prps_r-psphi. "Número actual del proyecto correspondiente
itrpsco1_wa-posid = prps_r-posid. "(elemento PEP)
itrpsco1_wa-poski = prps_r-poski.
itrpsco1_wa-lednr = rpsco1-lednr.
itrpsco1_wa-wrttp = rpsco1-wrttp.
itrpsco1_wa-trgkz = rpsco1-trgkz.
itrpsco1_wa-gjahr = rpsco1-gjahr.
itrpsco1_wa-acpos = rpsco1-acpos. "CategorÃa de valor
itrpsco1_wa-vorga = rpsco1-vorga. "Clase presupuesto presupuestación/planificación
itrpsco1_wa-versn = rpsco1-versn.
itrpsco1_wa-abkat = rpsco1-abkat.
itrpsco1_wa-geber = rpsco1-geber.
itrpsco1_wa-twaer = rpsco1-twaer. "moneda de transacción
itrpsco1_wa-perbl = rpsco1-perbl.
itrpsco1_wa-beltp = rpsco1-beltp.
itrpsco1_wa-wlp00 = rpsco1-wlp00. "Valor de perÃodo en moneda de ledger
itrpsco1_wa-wlp01 = rpsco1-wlp01.
itrpsco1_wa-wlp02 = rpsco1-wlp02.
itrpsco1_wa-wlp03 = rpsco1-wlp03.
itrpsco1_wa-wlp04 = rpsco1-wlp04.
itrpsco1_wa-wlp05 = rpsco1-wlp05.
itrpsco1_wa-wlp06 = rpsco1-wlp06.
itrpsco1_wa-wlp07 = rpsco1-wlp07.
itrpsco1_wa-wlp08 = rpsco1-wlp08.
itrpsco1_wa-wlp09 = rpsco1-wlp09.
itrpsco1_wa-wlp10 = rpsco1-wlp10.
itrpsco1_wa-wlp11 = rpsco1-wlp11.
itrpsco1_wa-wlp12 = rpsco1-wlp12.
itrpsco1_wa-wlp13 = rpsco1-wlp13.
itrpsco1_wa-wlp14 = rpsco1-wlp14.
itrpsco1_wa-wlp15 = rpsco1-wlp15.
itrpsco1_wa-wlp16 = rpsco1-wlp16.
itrpsco1_wa-wtp00 = rpsco1-wtp00. "Valor anual en moneda de transacción
itrpsco1_wa-wtp01 = rpsco1-wtp01.
itrpsco1_wa-wtp02 = rpsco1-wtp02.
itrpsco1_wa-wtp03 = rpsco1-wtp03.
itrpsco1_wa-wtp04 = rpsco1-wtp04.
itrpsco1_wa-wtp05 = rpsco1-wtp05.
itrpsco1_wa-wtp06 = rpsco1-wtp06.
itrpsco1_wa-wtp07 = rpsco1-wtp07.
itrpsco1_wa-wtp08 = rpsco1-wtp08.
itrpsco1_wa-wtp09 = rpsco1-wtp09.
itrpsco1_wa-wtp10 = rpsco1-wtp10.
itrpsco1_wa-wtp11 = rpsco1-wtp11.
itrpsco1_wa-wtp12 = rpsco1-wtp12.
itrpsco1_wa-wtp13 = rpsco1-wtp13.
itrpsco1_wa-wtp14 = rpsco1-wtp14.
itrpsco1_wa-wtp15 = rpsco1-wtp15.
itrpsco1_wa-wtp16 = rpsco1-wtp16.
itrpsco1_wa-poc = ev_poc-meg007. "Percent of Completion
variables auxiliares que pueden utilizarse en el futuro
aux_pstat_objnr = pstat-objnr.
awx_sttxt_int = pstat-sttxt_int.
READ TABLE itpstat INTO itpstat_wa WITH KEY objnr = itrpsco1_wa-objnr.
IF sy-subrc = 0.
itrpsco1_wa-sttxt_int = itpstat_wa-sttxt_int.
ELSE.
itrpsco1_wa-sttxt_int = 'N/A'.
ENDIF.
APPEND itrpsco1_wa TO itrpsco1.
GET cosp1.
itcosp1_wa-objnr = cosp1-objnr.
itcosp1_wa-wrttp = cosp1-wrttp.
itcosp1_wa-kstar = cosp1-kstar.
itcosp1_wa-vrgng = cosp1-vrgng.
itcosp1_wa-wkg001 = cosp1-wkg001.
itcosp1_wa-wkg002 = cosp1-wkg002.
itcosp1_wa-wkg003 = cosp1-wkg003.
itcosp1_wa-wkg004 = cosp1-wkg004.
itcosp1_wa-wkg005 = cosp1-wkg005.
itcosp1_wa-wkg007 = cosp1-wkg007.
itcosp1_wa-wkg008 = cosp1-wkg008.
itcosp1_wa-wkg009 = cosp1-wkg009.
itcosp1_wa-wkg010 = cosp1-wkg010.
itcosp1_wa-wkg011 = cosp1-wkg011.
itcosp1_wa-wkg012 = cosp1-wkg012.
itcosp1_wa-wkg013 = cosp1-wkg013.
itcosp1_wa-wkg014 = cosp1-wkg014.
itcosp1_wa-wkg015 = cosp1-wkg015.
itcosp1_wa-wkg016 = cosp1-wkg016.
APPEND itcosp1_wa TO itcosp1.
GET coss1.
itcoss1_wa-objnr = coss1-objnr. "Object number
itcoss1_wa-wrttp = coss1-wrttp. "Tipo de valor
itcoss1_wa-versn = coss1-versn. "Versión
itcoss1_wa-kstar = coss1-kstar. "Cost Element
itcoss1_wa-vrgng = coss1-vrgng. "CO Business Transaction
itcoss1_wa-twaer = coss1-twaer.
itcoss1_wa-perbl = coss1-perbl.
itcoss1_wa-wkg001 = coss1-wkg001. "Total Value in Controlling Area Currency
itcoss1_wa-wkg002 = coss1-wkg002.
itcoss1_wa-wkg003 = coss1-wkg003.
itcoss1_wa-wkg004 = coss1-wkg004.
itcoss1_wa-wkg005 = coss1-wkg005.
itcoss1_wa-wkg007 = coss1-wkg007.
itcoss1_wa-wkg008 = coss1-wkg008.
itcoss1_wa-wkg009 = coss1-wkg009.
itcoss1_wa-wkg010 = coss1-wkg010.
itcoss1_wa-wkg011 = coss1-wkg011.
itcoss1_wa-wkg012 = coss1-wkg012.
itcoss1_wa-wkg013 = coss1-wkg013.
itcoss1_wa-wkg014 = coss1-wkg014.
itcoss1_wa-wkg015 = coss1-wkg015.
itcoss1_wa-wkg016 = coss1-wkg016.
itcoss1_wa-beltp = coss1-beltp. "Tipo de cargo
APPEND itcoss1_wa TO itcoss1.
GET ev_poc.
itev_poc_wa-objnr = ev_poc-objnr.
itev_poc_wa-meg007 = ev_poc-meg007.
itev_poc_wa-wrttp = ev_poc-wrttp.
itev_poc_wa-acpos = ev_poc-acpos.
itev_poc_wa-proyecto = prps_r-poski.
APPEND itev_poc_wa TO itev_poc.
END-OF-SELECTION.
*-- Inicio lógica principal
LOOP AT itprps INTO itprps_wa WHERE stufe = '1'.
CLEAR itcosp1_wa.
SORT itcosp1 BY objnr.
**---Busca todos los niveles de la jerarquÃa para un proyecto especÃfico
PERFORM llena_jerarquia.
*-- Obtener montos del proyecto
CLEAR: presupuesto, real, comprometido, poc,
contador1, contador2, contador3.
CLEAR: itdata_wa.
SORT itrpsco1 BY psphi.
LOOP AT itrpsco1 INTO itrpsco1_wa.
aux_cod_proj = itrpsco1_wa-poski+0(10).
itdata_wa-cod_proj = aux_cod_proj.
aux_objnr = itrpsco1_wa-objnr.
AT NEW psphi.
validar cierre del sistema no es "CERR"
este chequeo puede ser utilizado en el futuro
check itrpsco1_wa-sttxt_int+0(4) <> 'CERR'.
CLEAR: presupuesto, real, comprometido, poc,
contador1, contador2, contador3.
REPLACE ALL OCCURRENCES OF '-' IN itdata_wa-cod_proj WITH ' '.
SELECT post1 FROM prps INTO itdata_wa-descrip
WHERE posid = itdata_wa-cod_proj.
ENDSELECT.
Poner el valor original al código del proyecto
itdata_wa-cod_proj = aux_cod_proj.
Buscar Porciento de Completación
READ TABLE itev_poc INTO itev_poc_wa WITH KEY
objnr = aux_objnr
proyecto = aux_cod_proj
wrttp = 'P2'
acpos = 'PROGRESO2'.
IF sy-subrc = 0.
itdata_wa-poc = itev_poc_wa-meg007.
ELSE.
itdata_wa-poc = 0.
ENDIF.
ENDAT.
Accede la tabla interna itrpsco1 y busca el presupuesto del
proyecto
*----
*
IF itrpsco1_wa-versn = '000'
AND itrpsco1_wa-lednr = '0001'
AND itrpsco1_wa-wrttp = '41'
AND itrpsco1_wa-trgkz = 'P'
AND itrpsco1_wa-beltp = '1'.
Sumarizar las columnas
CLEAR contador1.
contador1 = '00'.
AT NEW psphi.
CLEAR presupuesto.
ENDAT.
WHILE contador1 .
contador1 = contador1 + 1.
ENDWHILE.
AT END OF psphi.
itdata_wa-presupuesto = presupuesto.
ENDAT.
ENDIF.
*--Nota:
Este valor de Presupuesto sumarizado lo podemos obtener de las tablas:
BPEG1 y BPJA1
Rutina que extrae la inversión real del proyecto
*----
*
*clave busqueda para REAL en tabla RPSCO1
*LEDNR WRTTP TRGKZ VERSN BELTP
*1 4 P 0 1
* 11 1-9
*----
*
IF itrpsco1_wa-versn = '000'
AND itrpsco1_wa-lednr = '0001'
AND ( itrpsco1_wa-wrttp = '04' OR itrpsco1_wa-wrttp = '11')
AND ( itrpsco1_wa-trgkz BETWEEN '1' AND '9' OR itrpsco1_wa-trgkz = 'P')
AND itrpsco1_wa-beltp = '1'.
Sumarizar las columnas
CLEAR contador2.
contador2 = '00'.
AT NEW psphi.
CLEAR real.
ENDAT.
WHILE contador2 .
contador2 = contador2 + 1.
ENDWHILE.
AT END OF psphi.
itdata_wa-inv_real = real.
ENDAT.
ENDIF.
*----
*
Rutina que extrae la inversión real del proyecto
*----
*
*clave busqueda para COMPROMETIDO en tabla RPSCO1
*LEDNR WRTTP TRGKZ VERSN BELTP
*1 21-24, 26 P 0 1
* 5A,58 1-9
*----
*
IF itrpsco1_wa-versn = '000'
AND itrpsco1_wa-lednr = '0001'
AND ( itrpsco1_wa-wrttp BETWEEN '21' AND '24' OR
itrpsco1_wa-wrttp = '26' OR itrpsco1_wa-wrttp = '5A' OR
itrpsco1_wa-wrttp BETWEEN '54' AND '58')
AND ( itrpsco1_wa-trgkz BETWEEN '1' AND '9' OR itrpsco1_wa-trgkz = 'P')
AND itrpsco1_wa-beltp = '1'.
Sumarizar las columnas
CLEAR contador3.
contador3 = '00'.
AT NEW psphi.
CLEAR comprometido.
ENDAT.
WHILE contador3 .
contador3 = contador3 + 1.
ENDWHILE.
AT END OF psphi.
itdata_wa-comprometido = comprometido.
ENDAT.
ENDIF.
AT END OF psphi.
itdata_wa-inv_real = real.
itdata_wa-comprometido = comprometido.
itdata_wa-dispuesto = real + comprometido.
itdata_wa-disponible = presupuesto - itdata_wa-dispuesto.
itdata_wa-presupuesto = presupuesto.
APPEND itdata_wa TO itdata.
CLEAR itdata_wa.
ENDAT.
ENDLOOP.
LOOP AT itcosp1 INTO itcosp1_wa WHERE objnr IN st_object. "r_jerar.
**----- Buscar monto real y comprometido
PERFORM sumarizar_datos.
*
ENDLOOP.
ENDLOOP.
**---impresión de la data "TEST"
CLEAR itdata_wa.
LOOP AT itdata INTO itdata_wa.
*
WRITE: / 'Proyecto: ', itdata_wa-cod_proj,
'Descripción: ', itdata_wa-descrip,
'POC: ', itdata_wa-poc,
/ 'Presupuesto: ', itdata_wa-presupuesto,
/ 'Real: ', itdata_wa-inv_real,
/ 'Comprometido: ', itdata_wa-comprometido,
/ 'Dispuesto: ', itdata_wa-dispuesto,
/ 'Disponible: ', itdata_wa-disponible.
SKIP.
*
ENDLOOP.
CONCATENATE sy-uname2(4) sy-uzeit2(4) INTO aux_id2.
EXPORT itdata FROM itdata TO MEMORY ID sy-uname+2(5).
*&----
*
*& Form sumarizar_datos
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM sumarizar_datos .
*--Anteriormente lo usé para buscar el presupuesto de un proyecto
IF itcosp1_wa-vrgng = 'RKP1'. "RKP1 = Presupuestado en tabla COSP
CLEAR contador.
contador = '01'.
DO 16 TIMES.
CONCATENATE 'itcosp1_wa-wkg0' contador INTO vmes.
ASSIGN (vmes) TO <f>.
presupuesto = presupuesto + <f>.
contador = contador + 1.
ENDDO.
**--Buscar real del proyecto
IF itcosp1_wa-vrgng = 'COIN' OR itcosp1_wa-vrgng = 'COIE'. "COIN = real en tabla COSP
CLEAR contador.
contador = '01'.
DO 16 TIMES.
CONCATENATE 'itcosp1_wa-wkg0' contador INTO vmes.
ASSIGN (vmes) TO <f>.
real = real + <f>.
contador = contador + 1.
ENDDO.
**--Buscar comprometido del proyecto
ELSEIF itcosp1_wa-vrgng = 'RMBE' OR itcosp1_wa-vrgng = 'RMBA'. "RMBE = comprometido en tabla COSP
CLEAR contador.
contador = '01'.
DO 16 TIMES.
CONCATENATE 'itcosp1_wa-wkg0' contador INTO vmes.
ASSIGN (vmes) TO <f>.
comprometido = comprometido + <f>.
contador = contador + 1.
ENDDO.
*
ENDIF.
ENDFORM. " sumarizar_datos
*&----
*
*& Form llena_jerarquia
*&----
*
Carga la jerarquÃa completa para un proyecto especÃfico
*----
*
FORM llena_jerarquia .
CLEAR itprps_wa2. REFRESH r_jerar.
LOOP AT itprps INTO itprps_wa2 WHERE psphi = itprps_wa-psphi.
r_jerar-sign = 'I'.
r_jerar-option = 'EQ'.
r_jerar-low = itprps_wa2-objnr.
APPEND r_jerar.
ENDLOOP.
LOOP AT itonr00 INTO itonr00_wa.
st_object-sign = 'I'.
st_object-option = 'EQ'.
st_object-low = itonr00_wa-objnr.
APPEND st_object.
ENDLOOP.
ENDFORM. " llena_jerarquia
‎2006 May 17 4:25 PM
Hi Charli,
I'm doing some preliminary research on the cash extractors (for BW) 0PS_CSH_WBS and 0PS_CSH_NWA. My main questions are what modules I need turned on to use these extractors and if they're not available to me how can i go about getting the information provided by the extractors into BW.
I came across your post and I think it could be helpful to me down the road. Since we're working in two different areas could you explain to me what you mean by working with just the logical database PSJ?
Thanks,
Chris
‎2006 May 17 9:22 PM
Hi Christopher,
Your Question:
<b>could you explain to me what you mean by working with just the logical database PSJ?</b>
My Response: The PSJ logical database is intended to work for data extraction from the Project System module. You can go to SE36 transaction and put PSJ and visualize the structure of this Logical Database. It's enormous but you have the documentation available. Just select the documentation radio button on transaction SE36 and write PSJ and click visualize. If you want to extract WBS, project information or any other data related to projects this LDB will help you a lot.