PDA

Ver la Versión Completa : Cancelar Traslados


DCErick
13/05/06, 20:24:17
Hola Masters

Estoy haciendo una bapi para cancelacion de la aplicacion de traslados...

Estoy es despues de que se genera un movimiento con la MB1B tipo 351 por alguna razon se tiene que darle reversa con un 352. Existe alguna bapi hecha para este caso, o algun programa extandar de SAP que ya lo haga...

Gracias por su ayuda......

DCErick
13/05/06, 20:30:48
Miren yo tengo esta bapi hecha, todo va bien con movimiento 351 pero con movimiento 352 tengo problemas muy feos por que se queda atorado...



FUNCTION zbapi_traslado_mb1b.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(I_CENTRO) TYPE EKKO-RESWK
*" VALUE(I_NTRASLADO) TYPE EKKO-EBELN
*" VALUE(I_MODE) TYPE CHAR1 DEFAULT 'N'
*" VALUE(I_CLMOVIMIENTO) TYPE CHAR3
*" EXPORTING
*" VALUE(E_RESULT) TYPE CHAR1
*" VALUE(E_FOLIO) TYPE CHAR10
*" TABLES
*" RETURN STRUCTURE BAPIRETURN OPTIONAL
*" MESSTAB STRUCTURE BDCMSGCOLL OPTIONAL
*"----------------------------------------------------------------------


*************************Tablas internas*************************
DATA: BEGIN OF it_pedidos OCCURS 0,
ebeln LIKE ekko-ebeln,
ebelp LIKE ekpo-ebelp,
menge LIKE ekpo-menge,
END OF it_pedidos.

******Variables*****
DATA : v_timest TYPE n.


***Saco posiciones en traslado.
SELECT ebeln
ebelp
menge
INTO CORRESPONDING FIELDS OF TABLE it_pedidos
FROM ekpo WHERE ebeln = i_ntraslado AND loekz NE 'L'.


PERFORM bdc_dynpro USING 'SAPMM07M' '0400'.
PERFORM bdc_field USING:'BDC_CURSOR' 'RM07M-WERKS',
'BDC_OKCODE' '/00',
'RM07M-BWARTWA' i_clmovimiento,
'RM07M-WERKS' i_centro," 'Z000'.
'RM07M-LGORT' 'A001',
'XFULL' 'X',
'RM07M-WVERS2' 'X'.

PERFORM bdc_dynpro USING 'SAPMM07M' '1404'.
PERFORM bdc_field USING:'BDC_CURSOR' 'RM07M-EBELN(01)',
'BDC_OKCODE' '=OK',
'RM07M-EBELN(01)' i_ntraslado.

PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING:'BDC_CURSOR' 'RM07M-XSELK(01)',
'BDC_OKCODE' '=BU',
'DKACB-FMORE' 'X'.

PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING:'BDC_CURSOR' 'COBL-AUFNR',
'BDC_OKCODE' '=ENTE'.
LOOP AT it_pedidos.


PERFORM bdc_dynpro USING 'SAPLJ3AI' '0500'.
PERFORM bdc_field USING:'BDC_CURSOR' 'J_3AIMDL-LGORT(01)',
'BDC_OKCODE' '=BU'.
*****Tallas Pos.
SELECT COUNT(*) FROM eket INTO v_timest WHERE ebeln = i_ntraslado AND ebelp = it_pedidos-ebelp.

DO v_timest TIMES.
IF i_clmovimiento = '351'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING:'BDC_CURSOR' 'COBL-AUFNR',
'BDC_OKCODE' '=ENTE'.
ELSE.

PERFORM bdc_dynpro USING 'SAPMM07M' '0410'.
PERFORM bdc_field USING:'BDC_CURSOR' 'MSEG-ERFMG',
'BDC_OKCODE' '=ENTE'.

PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING:'BDC_CURSOR' 'COBL-ANLN1',
'BDC_OKCODE' '=ENTE'.

ENDIF.

ENDDO.

ENDLOOP.



CALL TRANSACTION 'MB1B' USING bdcdata MODE i_mode UPDATE 'S'
MESSAGES INTO messtab.


IF sy-subrc = 0.
return-message = text-017.
APPEND return.
CLEAR return.
READ TABLE messtab WITH KEY tcode = 'MB1B'.
e_folio = messtab-msgv1.
e_result = 'X'.
ELSE.
return-message = text-018.
APPEND return.
CLEAR return.
ENDIF.


ENDFUNCTION.


Y se atora en la ventana que pongo en la imagen adjunta.
Ya le puse de todo y nomas no sale.
Lo curioso es que hasta la grabacion se queda en la misma pantalla....
Alguna idea...???:confused: