Cancelar Traslados

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • DCErick
    Moderator
    • mar
    • 1090

    #1

    Cancelar Traslados

    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......
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    Aqui estoy atorado

    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...


    Código:
    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...???
    Archivos Adjuntos
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    Trabajando...