Amplaicion IDOc MATMAS
Amplaicion IDOc MATMAS
Amplaicion IDOc MATMAS
Documento de Especificacin
Tcnica
Nombre Documento
Nombre Proyecto
Versin 1.0
Enero, 2011
Nombre PROYECTO
Titulo
Identificacin del Documento
Nombre
Quintec Aplicaciones Soporte Interno
Cliente
Descripcin general
Nombre de la Especificacin
Tcnica
Descripcin
Proceso de Negocio
ET_....
Descripcion
Proceso
SAP Release
Mdulo de SAP
BC
Prioridad
Media
Complejidad del
Objeto
Media
Versiones
Versin
Fecha
1.0
13/01/2010
1.1
04/11/2008
Descripcin
1
Inicial
Autores
Nombre
Compaa
Nmero de Interno
Rol
Quintec
PI / ABAP
Luis, Santos
Quintec
PP
Documentos Relacionados
Tipo de Documento
Page 2 of 17
Version 1.0
78980934.doc
Versin
Relacin
Nombre PROYECTO
Titulo
Solicitud/es de
Cambio
Fecha de
Aprobacin
Comentarios
Empresa
Rol
Firma
Inicial
Firmas
Cliente
Gerente de
Proyecto
Quintec
Gerente de
Proyecto
Page 3 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
Contenido
1 FUNCIONALIDAD 1..........................................................................................................5
1.1 Packages...................................................................................................................................5
1.2 BOR Objects..............................................................................................................................5
1.3 Data Dictionary Objects..............................................................................................................5
1.4 Program Units (Programas tipo 1 ).............................................................................................5
1.4.1 General Program Structure ...................................................................................................................5
1.4.2 Algorithms...............................................................................................................................................5
1.4.3 Transactions ...........................................................................................................................................5
1.5 ABAP Interfaces.........................................................................................................................5
1.6 Proxy Classes............................................................................................................................5
1.7 Classes ( Massive Programs).....................................................................................................5
1.8 Function Groups ........................................................................................................................5
1.9 Functions....................................................................................................................................6
1.10 BAPIs.....................................................................................................................................14
1.11 Enhancements.......................................................................................................................14
1.12 BDT Extensions......................................................................................................................16
1.13 Formularios............................................................................................................................16
1.14 ALE configuration and Programming......................................................................................16
1.15 Authorization objects..............................................................................................................16
1.16 Workflow................................................................................................................................16
1.17 Data Migration........................................................................................................................16
1.18 Modifications.........................................................................................................................16
2 FUNCIONALIDAD 2........................................................................................................16
3 FUNCIONALIDAD 3........................................................................................................16
4 OPEN POINTS AND COMMENTS.......................................................................................16
5 UNIT TEST PLAN.........................................................................................................16
Page 4 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
FUNCIONALIDAD 1
1.1
Packages
Z001
1.2
BOR Objects
No posee
1.3
1.4
1.4.2 Algorithms
Esta funcion tiene como objetivo generar dos procesos despues de la carga o actualizacion del
material, el cual es realizado por el IDOC MATMAS05, dentro del mismo se agrego un punto de
ampliacion del tipo seccion, el cual despues de generar o actualizar el material llama a esta
funcion, en base al mensaje ZMATMAS_PTSE, la funcion realiza dos procesos:
1. Genera la version del material, en caso de que es un material nuevo y la version no
existe.
2. Genera el colector de coste del material en caso de que el material es nuevo y no
tiene costes asignados.
En caso que el material exista y ya tenga cargado los proceso 1 y 2, no realiza ninguna
operacion.
1.4.3 Transactions
No posee
1.5
ABAP Interfaces
No posee
1.6
Proxy Classes
No posee
1.7
1.8
Function Groups
Z_BAPI_CARGA_ZMATMAS_PTSE: Carga Materiales PTSE
Page 5 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
1.9
Functions
ZBAPI_CARGA_ZMATMAS_PTSE
Parmetros
Import
Export
Changing
Tables
T_MARA_UEB
T_MARC_UEB
T_MAKT_UEB
T_MBEW_UEB
AMERRDAT
Exceptions
Processing logic
FUNCTION zbapi_carga_zmatmas_ptse.
*"---------------------------------------------------------------------*"*"Interfase local
*" TABLES
*"
T_MARA_UEB STRUCTURE MARA_UEB
*"
T_MARC_UEB STRUCTURE MARC_UEB
*"
T_MAKT_UEB STRUCTURE MAKT_UEB
*"
T_MBEW_UEB STRUCTURE MBEW_UEB
*"
AMERRDAT STRUCTURE MERRDAT
*"---------------------------------------------------------------------DATA: wa_merrdat LIKE merrdat,
lt_centro TYPE TABLE OF marc,
wa_centro LIKE LINE OF lt_centro,
wa_mara LIKE LINE OF t_mara_ueb,
wa_marc LIKE LINE OF t_marc_ueb,
wa_makt LIKE LINE OF t_makt_ueb,
wa_mbew LIKE LINE OF t_mbew_ueb,
vl_error TYPE char1.
* verifico que no existan errores
LOOP AT amerrdat INTO wa_merrdat WHERE msgty NA 'SDHWI'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
* exitio error genero mensaje
EXIT.
ENDIF.
* recorro los centros del material
LOOP AT t_marc_ueb INTO wa_marc.
CLEAR: wa_mara, wa_makt, wa_mbew.
* realizo la lectura del material
READ TABLE t_mara_ueb
WITH KEY matnr = wa_marc-matnr
Page 6 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
INTO wa_mara.
* realizo la lectura del texto material
READ TABLE t_makt_ueb
WITH KEY matnr = wa_marc-matnr
INTO wa_makt.
* realizo la lectura de la valoracion material
READ TABLE t_mbew_ueb
WITH KEY matnr = wa_marc-matnr
INTO wa_mbew.
* verifico si viene de la interfaz de CCH, si para los centros 1000 y
* 1100 tiene el camp SAUFT y SFEPR con valores entonces quiere decir que
* viene el campo del legado "Prod Lisa/Proc Comp" = 01 Procesos Complementarios.
IF wa_mara-nsnid EQ '01' OR wa_mara-nsnid EQ space.
* IF wa_marc-werks EQ '1100' OR wa_marc-werks EQ '1000' AND
*
( wa_marc-sauft EQ 'X' AND wa_marc-sfepr EQ 'ZZ01' ).
*
78980934.doc
Nombre PROYECTO
Titulo
FORM ejecutar_bi_version_mat TABLES lt_amerrdat STRUCTURE merrdat
USING value(wa_marc)
TYPE marc_ueb
value(wa_makt)
TYPE makt_ueb
value(wa_mara)
TYPE mara_ueb
value(p_error)
TYPE char1.
DATA: wa_amerrdat LIKE LINE OF lt_amerrdat,
wa_tranc LIKE LINE OF lt_amerrdat,
wa_messtab LIKE LINE OF tg_messtab,
vl_laeda TYPE char10,
vl_verid TYPE mkal-verid.
REFRESH tg_bdcdata.
* convierto el material a formato interno
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input
= wa_marc-matnr
IMPORTING
output
= wa_marc-matnr
EXCEPTIONS
length_error = 1
OTHERS
= 2.
* verifico si existe version del material, si existe evito el batch input
* y detallo el mensaje
SELECT SINGLE verid
FROM mkal
INTO vl_verid
WHERE matnr EQ wa_marc-matnr
AND werks EQ wa_marc-werks.
IF sy-subrc EQ 0.
CLEAR: tg_messtab, tg_messtab[].
wa_messtab-msgid = '0K'.
wa_messtab-msgtyp = 'I'.
wa_messtab-msgnr = '000'.
wa_messtab-msgv1 = 'Existe versin'.
wa_messtab-msgv2 = vl_verid.
CONCATENATE 'para el material' wa_marc-matnr
INTO wa_messtab-msgv3 SEPARATED BY space.
CONCATENATE '/ Centro' wa_marc-werks '.'
INTO wa_messtab-msgv4 SEPARATED BY space.
APPEND wa_messtab TO tg_messtab.
ELSE.
* convierto el material a formato externo
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = wa_marc-matnr
IMPORTING
output = wa_marc-matnr.
* cargo los campos del bi
Page 8 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
PERFORM bdc_dynpro USING 'SAPLCMFV'
PERFORM bdc_field USING 'BDC_OKCODE'
PERFORM bdc_field USING 'BDC_CURSOR'
PERFORM bdc_field USING 'MKAL-WERKS'
PERFORM bdc_field USING 'MKAL-MATNR'
'1000'.
'=ENTE'.
'MKAL-WERKS'.
wa_marc-werks.
wa_marc-matnr.
'1000'.
'=CREA'.
'MKAL-WERKS'.
wa_marc-werks.
wa_marc-matnr.
CLEAR vl_laeda.
IF NOT wa_mara-laeda IS INITIAL.
WRITE wa_mara-laeda TO vl_laeda.
CONDENSE vl_laeda.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLCMFV'
'2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MKAL_EXPAND-SERKZ'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=CLOS'.
PERFORM bdc_field USING 'MKAL_EXPAND-MATNR' wa_marc-matnr.
PERFORM bdc_field USING 'MKAL_EXPAND-VERID' '0001'.
PERFORM bdc_field USING 'MKAL_EXPAND-TEXT1' wa_makt-maktx.
PERFORM bdc_field USING 'MKAL_EXPAND-ADATU' vl_laeda.
PERFORM bdc_field USING 'MKAL_EXPAND-SERKZ' 'X'.
PERFORM bdc_dynpro USING 'SAPLCMFV'
PERFORM bdc_field USING 'BDC_OKCODE'
PERFORM bdc_field USING 'BDC_CURSOR'
PERFORM bdc_field USING 'MKAL-WERKS'
PERFORM bdc_field USING 'MKAL-MATNR'
'1000'.
'=SAVE'.
'MKAL-WERKS'.
wa_marc-werks.
wa_marc-matnr.
78980934.doc
Nombre PROYECTO
Titulo
wa_amerrdat-msgv2 = 'Para Centro'.
wa_amerrdat-msgv3 = wa_marc-werks.
APPEND wa_amerrdat TO lt_amerrdat.
CLEAR wa_amerrdat.
ENDAT.
IF tg_messtab-msgtyp EQ 'E' OR tg_messtab-msgtyp EQ 'A'.
p_error = 'X'.
ENDIF.
* paso los campo identicos
wa_amerrdat-tranc = wa_tranc-tranc.
wa_amerrdat-matnr = wa_marc-matnr.
wa_amerrdat-msgid = wa_messtab-msgid.
wa_amerrdat-msgty = wa_messtab-msgtyp.
wa_amerrdat-msgno = wa_messtab-msgnr.
wa_amerrdat-msgv1 = wa_messtab-msgv1.
wa_amerrdat-msgv2 = wa_messtab-msgv2.
wa_amerrdat-msgv3 = wa_messtab-msgv3.
wa_amerrdat-msgv4 = wa_messtab-msgv4.
APPEND wa_amerrdat TO lt_amerrdat.
ENDLOOP.
ENDFORM.
" EJECUTAR_BI_VERSION_MAT
*&---------------------------------------------------------------------*
*&
Form EJECUTAR_BI_COLECTOR_COSTOS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
<--P_ERROR text
*----------------------------------------------------------------------*
FORM ejecutar_bi_colector_costos TABLES lt_amerrdat STRUCTURE merrdat
USING value(wa_marc) TYPE marc_ueb
value(wa_makt) TYPE makt_ueb
value(wa_mbew) TYPE mbew_ueb.
DATA: wa_amerrdat LIKE LINE OF lt_amerrdat,
wa_tranc
LIKE LINE OF lt_amerrdat,
wa_messtab LIKE LINE OF tg_messtab,
vl_peinh
TYPE char10,
lt_process_tbl TYPE ckml_t_process,
wa_process_tbl LIKE LINE OF lt_process_tbl.
* convierto el material a formato interno
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input
= wa_marc-matnr
IMPORTING
output
= wa_marc-matnr
EXCEPTIONS
length_error = 1
OTHERS
= 2.
Page 10 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
* verifico si existe el colector
CALL FUNCTION 'CKML_MGV_PROCESSES_READ'
EXPORTING
iv_werks
= wa_marc-werks
iv_matnr
= wa_marc-matnr
IMPORTING
et_process_tbl
= lt_process_tbl
EXCEPTIONS
wrong_characteristics = 1
rule_not_found
=2
multiple_pkosa_found = 3
OTHERS
= 4.
* busco el colector de costo para la version 0001 de fabricacin
LOOP AT lt_process_tbl INTO wa_process_tbl WHERE verid_nd EQ '0001'.
EXIT.
ENDLOOP.
IF sy-subrc EQ 0.
CLEAR: tg_messtab, tg_messtab[].
wa_messtab-msgid = '0K'.
wa_messtab-msgtyp = 'I'.
wa_messtab-msgnr = '000'.
IF wa_process_tbl-pkosa IS INITIAL.
wa_messtab-msgv1 = 'Existe colector de costo, el mismo no tiene orden'.
wa_messtab-msgv2 = 'o tiene peticion de borrado, verif. en la trx KKF6'.
ELSE.
wa_messtab-msgv1 = 'Existe un colector de costo:'.
CONCATENATE 'NProcFabricacin:' wa_process_tbl-proc_kalnr
'Orden' wa_process_tbl-pkosa
INTO wa_messtab-msgv2
SEPARATED BY space.
ENDIF.
CONCATENATE 'para el material' wa_marc-matnr
INTO wa_messtab-msgv3 SEPARATED BY space.
CONCATENATE '/ Centro' wa_marc-werks '.'
INTO wa_messtab-msgv4 SEPARATED BY space.
APPEND wa_messtab TO tg_messtab.
ELSE.
REFRESH tg_bdcdata.
* convierto el material a formato externo
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = wa_marc-matnr
IMPORTING
output = wa_marc-matnr.
* cargo el batch input del colector
PERFORM bdc_dynpro USING 'SAPMKOSA'
PERFORM bdc_field USING 'BDC_OKCODE'
PERFORM bdc_field USING 'BDC_CURSOR'
Page 11 of 17
Version 1.0
78980934.doc
'0101'.
'/00'.
'PKOSA-MATNR'.
Nombre PROYECTO
Titulo
PERFORM bdc_field USING 'PKOSA-MATNR'
PERFORM bdc_field USING 'PKOSA-WERKS'
wa_marc-matnr.
wa_marc-werks.
'0120'.
'=&NT1'.
'04/13'.
78980934.doc
Nombre PROYECTO
Titulo
wa_amerrdat-matnr = wa_marc-matnr.
wa_amerrdat-msgid = wa_messtab-msgid.
wa_amerrdat-msgty = wa_messtab-msgtyp.
wa_amerrdat-msgno = wa_messtab-msgnr.
wa_amerrdat-msgv1 = wa_messtab-msgv1.
wa_amerrdat-msgv2 = wa_messtab-msgv2.
wa_amerrdat-msgv3 = wa_messtab-msgv3.
wa_amerrdat-msgv4 = wa_messtab-msgv4.
APPEND wa_amerrdat TO lt_amerrdat.
ENDLOOP.
ENDFORM.
" EJECUTAR_BI_COLECTOR_COSTOS
*&---------------------------------------------------------------------*
*&
Form bdc_dynpro
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_PROGRAM text
*
-->P_DYNPRO text
*----------------------------------------------------------------------*
FORM bdc_dynpro USING p_program p_dynpro.
CLEAR tg_bdcdata.
tg_bdcdata-program = p_program.
tg_bdcdata-dynpro = p_dynpro.
tg_bdcdata-dynbegin = 'X'.
APPEND tg_bdcdata.
ENDFORM.
" BDC_DYNPRO
*&---------------------------------------------------------------------*
*&
Form BDC_FIELD
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_FNAM text
*
-->P_FVAL text
*----------------------------------------------------------------------*
FORM bdc_field USING p_fnam p_fval.
CLEAR tg_bdcdata.
tg_bdcdata-fnam = p_fnam.
tg_bdcdata-fval = p_fval.
APPEND tg_bdcdata.
ENDFORM.
" BDC_FIELD
*&---------------------------------------------------------------------*
*&
Form BDC_TRANSACTION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
Page 13 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
*
-->P_0551 text
*----------------------------------------------------------------------*
FORM bdc_transaction USING p_tcode.
DATA: mode TYPE char1 VALUE 'N'.
REFRESH tg_messtab.
CALL TRANSACTION p_tcode USING tg_bdcdata
MODE mode "c_mode
UPDATE c_update
MESSAGES INTO tg_messtab.
REFRESH tg_bdcdata.
ENDFORM.
" BDC_TRANSACTION
1.10 BAPIs
1.11 Enhancements
ZXI_ZMATMAS_PTSE
Definicion:
Codigo:
78980934.doc
Nombre PROYECTO
Titulo
TABLES
AMARA_UEB
= T_MARA_UEB
AMAKT_UEB
= T_MAKT_UEB
AMARC_UEB
= T_MARC_UEB
AMARD_UEB
= T_MARD_UEB
AMFHM_UEB
= T_MFHM_UEB
AMARM_UEB
= T_MARM_UEB
AMEA1_UEB
= T_MEAN_UEB
AMBEW_UEB
= T_MBEW_UEB
ASTEU_UEB
= T_STEU_UEB
ASTMM_UEB
= T_STEUMM_UEB
AMLGN_UEB
= T_MLGN_UEB
AMLGT_UEB
= T_MLGT_UEB
AMPGD_UEB
= T_MPGD_UEB
AMPOP_UEB
= T_MPOP_UEB
AMVEG_UEB
= T_MVEG_UEB
AMVEU_UEB
= T_MVEU_UEB
AMVKE_UEB
= T_MVKE_UEB
AMPRW_UEB
= T_MPRW_UEB
ALTX1_UEB
= T_LTX1_UEB
AE1CUCFG_UEB
= T_E1CUCFG_UEB "TF4.7/ALE MatVar
AE1CUINS_UEB
= T_E1CUINS_UEB "TF4.7/ALE MatVar
AE1CUVAL_UEB
= T_E1CUVAL_UEB "TF4.7/ALE MatVar
AE1CUCOM_UEB
= T_E1CUCOM_UEB "TF4.7/ALE MatVar
AMFIELDRES
= T_MFIELDRES
AMERRDAT
= T_MERRDAT
EXCEPTIONS
KSTATUS_EMPTY
= 01
TKSTATUS_EMPTY
= 02
T130M_ERROR
= 03
INTERNAL_ERROR
= 04
TOO_MANY_ERRORS
= 05
UPDATE_ERROR
= 06
ERROR_MESSAGE
= 11
"40
OTHERS
= 10.
"
* verifico si proviene del mensaje reducio de XI, en ese caso
* ejecuto dos BI, una carga la version del material y otro carga
* el colector de costo
IF IDOC_CONTRL-MESTYP EQ 'ZMATMAS_PTSE'.
* tomo el valor del resultado
GENERAL_SUBRC = SY-SUBRC.
IF GENERAL_SUBRC IS INITIAL.
* llamo a la funcion y genero los dos BI
CALL FUNCTION 'ZBAPI_CARGA_ZMATMAS_PTSE'
TABLES
t_mara_ueb
= LT_MARA_UEB
t_marc_ueb
= LT_MARC_UEB
t_makt_ueb
= LT_MAKT_UEB
t_mbew_ueb
= LT_MBEW_UEB
amerrdat
= T_MERRDAT.
ENDIF.
* vuelvo a dejar el valor resultado, evitando que el sy-subrc,
* fuera cambiado en la funcion Z.
SY-SUBRC = GENERAL_SUBRC.
Page 15 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
ENDIF.
ENDENHANCEMENT.
1.13 Formularios
No posee
1.16 Workflow
No posee
1.18
Modifications
Se cambia el escenario, por no soportar el proceso de negocio actual.
FUNCIONALIDAD 2
FUNCIONALIDAD 3
Page 16 of 17
Version 1.0
78980934.doc
Nombre PROYECTO
Titulo
Plan de prueba
[Por favour copie las condiciones de test de negocio y los scenarios de control de la especificacin
funcional]
[Agregue escenearios tcnicos relevantes asociados al documento. Los ejemplos incluiran: 1) prueba
libre de errores; 2) prueba de los procesos de excepcin; 3) pruebas de manejo de errores.]
Escenario #
Criterios de seleccin
Resultado esperado
Page 17 of 17
Version 1.0
78980934.doc