#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. |
#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...
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|