Implementar amarre MIGO
Para amarrar y ver de que almacén a cual almacén y a razón de que salida de mercancía se va a hacer cierta entrada.
Este caso se resuelve con un USER-EXIT y un ENHANCEMENT para realizar la actualización de los documentos, tanto el de entrada como el de salida. El USER-EXIT de la función EXIT_SAPMM07M_001 dentro tiene un INCLUDE Z llamado ZXMBCU02. Para activarlo crear un proyecto por la CMOD llamado ZMM, ampliación [MBCF0002].
el codigo ZXMBCU02
*&-------------------------------------------------------------**& Include ZXMBCU02*&-------------------------------------------------------------* ***************************************************************** Name: ZXMBCU02* Description: Coloca el no. de doc de salida en el texto de* posición del documento de entrada.* Date: 2009/02/26* Author: DTSolutions RTorres ****************************************************************CONSTANTS: c_godynpro(21) VALUE '(SAPLMIGO)GODYNPRO'.FIELD-SYMBOLS:TYPE godynpro. "Asigna el valor de estructura GODYNPRO de la migo al FC ASSIGN (c_godynpro) TO . "si se presionó el boton de grabar IF sy-ucomm = 'OK_POST' OR sy-ucomm = 'OK_POST1'. "Si la operación es de almacenar. IF -action = 'A10'. "Si se hace con referencia a un documento de material IF -refdoc = 'R02'. IF -mat_doc <> ''. "Actualiza el texto de la posición con el no. del doc. de salida e_sgtxt = -mat_doc. ENDIF. ENDIF. ENDIF. ENDIF.
Para el caso del ENHANCEMENT crear uno utilizando el punto que está definido debajo.
Codigo Enh.
log.Position : \PR:SAPLMIGO\EX:GOODS_MOVEMENT_FILL_05\* DATA: it_mkpf TYPE STANDARD TABLE OF mkpf, it_mseg TYPE STANDARD TABLE OF mseg, wa_mseg LIKE LINE OF it_mseg, xmblnr TYPE mkpf-mblnr, msg(70). "BREAK-POINT. IF godynpro-action = 'A10'. "si es una operacion de almacenaje IF godynpro-refdoc = 'R02'. "si es con un documento de referencia SELECT SINGLE SGTXT FROM MSEG INTO xmblnr WHERE MBLNR = godynpro-mat_doc. IF sy-subrc = 0. IF xmblnr <> ''. SELECT * FROM mkpf INTO CORRESPONDING FIELDS OF TABLE it_mkpf WHERE mblnr = xmblnr. IF SY-SUBRC = 0. SELECT * FROM mseg INTO CORRESPONDING FIELDS OF TABLE it_mseg WHERE mblnr = xmblnr. LOOP AT it_mseg INTO wa_mseg. wa_mseg-sgtxt = godynpro-mat_doc. MODIFY it_mseg FROM wa_mseg TRANSPORTING sgtxt WHERE mblnr = wa_mseg-mblnr AND ZEILE = wa_mseg-ZEILE. ENDLOOP. "Modifica el documento de material cambiando el texto de cabecera. CALL FUNCTION 'MB_CHANGE_DOCUMENT' TABLES zmkpf = it_mkpf zmseg = it_mseg. IF sy-subrc <> 0. CONCATENATE 'El documento de material' xmblnr 'no fue modificado' INTO msg SEPARATED BY space. MESSAGE i999(re) WITH msg. ENDIF. ENDIF. ELSE. CONCATENATE 'El documento de material' xmblnr 'no fue encontrado' INTO msg SEPARATED BY space. MESSAGE i999(re) WITH msg. ENDIF. ELSE. CONCATENATE 'El documento de material' xmblnr 'no pudo abrirse' INTO msg SEPARATED BY space. MESSAGE i999(re) WITH msg. ENDIF. ENDIF. ENDIF.
Comentarios