Batch Input

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • CRISTINO.GARCIA
    Senior Member
    • ago
    • 101

    #1

    Batch Input

    Hola

    Hice un batch Input de la transaccion FB03 si lo ejecuto veo que toma bien los valores luego cuando mando a imprimir esa informacion del batch input en la transaccion f.61 le coloca a todos los documentos procesados el mismo texto capturado, no varia el texto

    Si ejecuto el batch en fora visible si lo imprime bien en la f.61 pero si lo ejecuto en fondo no,, que puedo revisar?

    gracias

    aqui esta el codigo:
    DATA: BEGIN OF BDC_TAB OCCURS 0.
    INCLUDE STRUCTURE BDCDATA.
    DATA: END OF BDC_TAB.

    * Prueba

    DATA: BEGIN OF TI OCCURS 100,
    DATOS(125),
    END OF TI.

    * Tabla interna donde se volcara el fichero.
    *DATA: BEGIN OF TI OCCURS 5,
    * NOTA(10), " Nro. Documento a realizar la NC
    * TEXTO1(60), " Texto Linea 1
    * TEXTO2(60), " Texto Linea 2
    * END OF TI.

    *------------- PARAMETROS----------------------------------------------*
    PARAMETERS:
    * Archivo de donde se cargaran los datos
    N_FICH LIKE RLGRAP-FILENAME DEFAULT ' ',
    * Nombre del Grupo de Sesiòn
    NOMBREJD LIKE APQI-GROUPID DEFAULT 'DUPLICID_NC'.
    * Ejecrcicio
    * PERIODO LIKE BKPF-GJAHR DEFAULT '2008'.


    *------------- PROGRAMA PRINCIPAL -------------------------------------*
    START-OF-SELECTION.
    * Abre el Grupo de Sesiòn
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
    CLIENT = SY-MANDT
    GROUP = NOMBREJD
    USER = SY-UNAME
    KEEP = 'X'.
    * Carga el Archivo de Datos pasado por paràmetro en la Tabla Interna ti
    PERFORM CARGAR_TABLA.
    CLEAR: TI.
    LOOP AT TI.
    IF TI-DATOS IS INITIAL.
    EXIT.
    ELSE.
    *---- Carga la tabla interna BDC_TAB con los datos de ti
    PERFORM TRATAMIENTO_PRINCIPAL.
    ENDIF.
    ENDLOOP.
    * Cierra el grupo de sesiòn
    CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
    NOT_OPEN = 1
    QUEUE_ERROR = 2
    OTHERS = 3.
    WRITE: / 'JUEGO DE DATOS CREADO CON EL NOMBRE: ',
    NOMBREJD LEFT-JUSTIFIED.
    END-OF-SELECTION.

    *-----------------------------------------------------------------------
    * FORM CARGAR_TABLA
    *-----------------------------------------------------------------------
    * LLama a la Funciòn Upload con el nombre del archivo pasado por paramt.
    FORM CARGAR_TABLA.
    CALL FUNCTION 'UPLOAD'
    EXPORTING
    FILENAME = N_FICH
    FILETYPE = 'DAT'
    TABLES
    DATA_TAB = TI
    EXCEPTIONS
    CONVERSION_ERROR = 1
    INVALID_TABLE_WIDTH = 2
    INVALID_TYPE = 3
    NO_BATCH = 4
    UNKNOWN_ERROR = 5
    GUI_REFUSE_FILETRANSFER = 6
    OTHERS = 7.
    ENDFORM.

    *-----------------------------------------------------------------------
    * FORM INSERTAR_EN_BDC_TAB
    *-----------------------------------------------------------------------
    * Llama a la funciòn BDC_INSERT con el nùmero de transaciòn que va a
    * emular y el nombre de la tabla.
    FORM INSERTAR_EN_BDC_TAB.
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
    TCODE = 'FB03'
    TABLES
    DYNPROTAB = BDC_TAB
    EXCEPTIONS
    INTERNAL_ERROR = 1
    NOT_OPEN = 2
    QUEUE_ERROR = 3
    TCODE_INVALID = 4
    PRINTING_INVALID = 5
    POSTING_INVALID = 6
    OTHERS = 7.
    ENDFORM.

    *-----------------------------------------------------------------------
    * FORM TRATAMIENTO_PRINCIPAL
    *-----------------------------------------------------------------------
    * LLama al form Dynpro con los paràmetros correspondientes a cada
    * pantalla de la transacciòn. LLama a Insertar_en_BDC_Tab.
    FORM TRATAMIENTO_PRINCIPAL.
    REFRESH BDC_TAB.
    CLEAR BDC_TAB.

    PERFORM DYNPRO USING:
    'X' 'SAPMF05L' '0100',
    ' ' 'RF05L-BELNR' TI-DATOS+0(10),
    * ' ' 'RF05L-BELNR' TI-NOTA,
    ' ' 'RF05L-BUKRS' 'DEU',
    * ' ' 'RF05L-GJAHR' PERIODO,
    ' ' 'BDC_OKCODE' '/00'.

    PERFORM DYNPRO USING:
    'X' 'SAPMF05L' '0700',
    ' ' 'BDC_OKCODE' '=KORR'.

    PERFORM DYNPRO USING:
    'X' 'SAPMSSY0' '0120',
    ' ' 'BDC_CURSOR' '18/05',
    ' ' 'BDC_OKCODE' '=PICK'.

    PERFORM DYNPRO USING:
    'X' 'SAPLF022' '1001',
    ' ' 'RF022-BELNR' TI-DATOS+0(10),
    * ' ' 'RF022-BELNR' TI-NOTA,
    * ' ' 'RF022-GJAHR' '2007',
    ' ' 'RF022-SPRAS' 'ES',
    * ' ' 'BDC_CURSOR' '18/05',
    ' ' 'BDC_OKCODE' '=GO'.



    PERFORM DYNPRO USING:
    'X' 'SAPLSTXX' '1100',
    ' ' 'RSTXT-TXLINE(05)' TI-DATOS+10(56), " Linea 1 de Texto
    * ' ' 'RSTXT-TXLINE(05)' TI-TEXTO1(60), " Linea 1 de Texto
    ' ' 'BDC_OKCODE' '=EDNP'.


    PERFORM DYNPRO USING:
    'X' 'SAPLSTXX' '1100',
    ' ' 'RSTXT-TXLINE(06)' TI-DATOS+66(56), " Linea 2 de Texto
    * ' ' 'RSTXT-TXLINE(06)' TI-TEXTO2(60), " Linea 2 de Texto
    ' ' 'BDC_OKCODE' '=EDNP'.


    PERFORM DYNPRO USING:
    'X' 'SAPLSTXX' '1100',
    ' ' 'BDC_OKCODE' '=TXVB'.


    PERFORM DYNPRO USING:
    'X' 'SAPLSTXX' '1100',
    ' ' 'BDC_OKCODE' '=TXBA'.


    PERFORM DYNPRO USING:
    'X' 'SAPMF05L' '0700',
    ' ' 'BDC_OKCODE' '=RW'.


    PERFORM INSERTAR_EN_BDC_TAB.
    TI-DATOS+10(56) = ' '.
    TI-DATOS+66(56) = ' '.
    ENDFORM.

    *-----------------------------------------------------------------------
    * FORM DYNPRO
    *-----------------------------------------------------------------------
    * Carga la tabla interna bdc con los datos de cada una de las pantallas
    FORM DYNPRO USING DYNBEGIN CAMPO VALOR.
    CLEAR BDC_TAB.
    IF DYNBEGIN = 'X'.
    MOVE: CAMPO TO BDC_TAB-PROGRAM,
    VALOR TO BDC_TAB-DYNPRO,
    'X' TO BDC_TAB-DYNBEGIN.
    ELSE.
    MOVE: CAMPO TO BDC_TAB-FNAM,
    VALOR TO BDC_TAB-FVAL.
    ENDIF.
    APPEND BDC_TAB.
    ENDFORM.
  • rubendaga
    Junior Member
    • sep
    • 13

    #2
    Yo poseo un problema similar con la ME32K y es que en fondo no realiza bien el proceso, incluso mirando la st22 encuentro que se han generado Raise events sin interrumpir el resto del proceso, en conclusión se ejecuta el job satisfactoriamente, estuve investigando y sap en algunas opciones tiene unas ventanas llamadas SAP ENJOY TRANSACTIONS, estas no ofrecen compatibilidad para Batch-Input y toca buscar bapi, función o clase para poder ejecutar su funcionalidad, es probable que sea tú caso...

    Comentario

    Trabajando...