#1
|
|||
|
|||
Bapi_0050_create
Hola muchachos:
Aca les dejo un reporte para la ceacion de documentos de presupuestacion transaccion FMBB utilizando la BAPI_0050_CREATE, por si a alguien le interesa REPORT zfm_in_modif_presupuestaria. INCLUDE zfm_in_modif_presup_top. INCLUDE zfm_in_modif_presup_rut. *----------------------------------------------------------------------* * AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_dir. *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_dir. CALL METHOD cl_gui_frontend_services=>file_open_dialog EXPORTING window_title = 'Modificacion Presupuestaria' CHANGING file_table = it_filetable rc = l_rc EXCEPTIONS file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. READ TABLE it_filetable INDEX 1 INTO l_filename. pa_dir = l_filename. *----------------------------------------------------------------------* * INICIO *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM get_data. IF l_popup_value EQ 1. PERFORM input_data. ENDIF. END-OF-SELECTION. *&---------------------------------------------------------------------* * TOP *&---------------------------------------------------------------------* TYPES: BEGIN OF e_data, "Estructura de la Plantilla movimiento(10) TYPE c, process_ui TYPE buku_process_ui, "Proceso budcat TYPE buku_budcat, "Cat. Presupuesto doctype TYPE bued_doctype, "Clase de Documento version TYPE buku_version, "Version docdate(10) TYPE c, "Fecha del Documento * docdate TYPE bp_bldat, "Fecha del Documento sfiscyear TYPE gjahr, "Ejercicio sbudtype TYPE buku_budtype, "Clase de Presupuesto rperiod TYPE buku_period, "Periodo Destinatario speriod TYPE buku_period, "Periodo item_text TYPE sgtxt, "Textoç fund TYPE bp_geber, "Fondos funcarea TYPE fm_farea, "Area Funcional fundsctr TYPE fistl, "Centro Gestor cmmtitem TYPE fm_fipex, "Posicion Presupuestaria docstate TYPE bued_docstate, "Signo XXXXXXX amount TYPE bapicurr_d, "Importe END OF e_data. TYPES: BEGIN OF i_data, fm_area TYPE fikrs, version TYPE buku_version, docdate(10) TYPE c, pstng_date TYPE budat, doctype TYPE bued_doctype, docstate TYPE bued_docstate, process TYPE buku_process_ui, external_number TYPE bued_ext_docnr, END OF i_data. DATA: it_datatable TYPE STANDARD TABLE OF e_data, wa_data TYPE e_data, * wa_header_data TYPE bapi_0050_header, i_data type STANDARD TABLE OF bapi_0050_header, wa_header_data TYPE BAPI_0050_HEADER, "i_data, wa_header_data_add TYPE bapi_0050_header_add, l_total_records TYPE string, it_return2 TYPE bapiret2, wa_return TYPE bapiret2, it_return TYPE STANDARD TABLE OF bapiret2, ti_return TYPE STANDARD TABLE OF bapiret2, it_period_data TYPE STANDARD TABLE OF bapi_0050_period, wa_period_data TYPE bapi_0050_period, it_sender_item_data TYPE STANDARD TABLE OF bapi_0050_item, wa_sender_item_data TYPE bapi_0050_item, it_sender_period_data TYPE STANDARD TABLE OF bapi_0050_period, wa_sender_period_data TYPE bapi_0050_period, it_item_data TYPE STANDARD TABLE OF bapi_0050_item, wa_item_data TYPE bapi_0050_item, ti_long TYPE STANDARD TABLE OF bapi_0050_longtext, wa_long TYPE bapi_0050_longtext, ti_ext TYPE STANDARD TABLE OF bapiparex, wa_ext TYPE bapiparex, l_current_record TYPE i, l_text_popup TYPE string, l_popup_value TYPE c, it_filetable TYPE filetable, l_rc TYPE i, l_current_record_s TYPE string, l_filename TYPE string. * Tabla de resultados DATA: it_messages TYPE STANDARD TABLE OF bdcmsgcoll, wa_messages TYPE bdcmsgcoll, it_mjes_aux TYPE STANDARD TABLE OF bdcmsgcoll. DATA: contador1 TYPE i. DATA: v_new TYPE c, v_end TYPE c. ************************************************************************ * CONSTANTS * ************************************************************************ CONSTANTS: t_code TYPE sy-tcode VALUE 'FMBB'. "Codigo de Transaccion *----------------------------------------------------------------------* * SCREEN *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: pa_dir(1024) TYPE c OBLIGATORY, p_test AS CHECKBOX. SELECTION-SCREEN END OF BLOCK b1. *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* FORM get_data . IF l_filename IS INITIAL AND pa_dir IS NOT INITIAL. l_filename = pa_dir. ENDIF. * Cargar Archivo Plano a la Tabla Interna CALL METHOD cl_gui_frontend_services=>gui_upload EXPORTING filename = l_filename filetype = 'ASC' has_field_separator = 'X' read_by_line = 'X' CHANGING data_tab = it_datatable EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 not_supported_by_gui = 17 error_no_gui = 18 OTHERS = 19. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * Obtener el No. de rergistros a cargar DESCRIBE TABLE it_datatable LINES l_total_records. CONCATENATE 'Se cargarán' l_total_records 'registros en el mandante' sy-mandt '.' 'Desea Continuar?' INTO l_text_popup SEPARATED BY space. *Mostrar Dialogo de Confirmacion CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING titlebar = 'Confirmación' text_question = l_text_popup IMPORTING answer = l_popup_value EXCEPTIONS text_not_found = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form INPUT_DATA *&---------------------------------------------------------------------* FORM input_data . DATA: v_item(6) TYPE n. * break hbravo. LOOP AT it_datatable INTO wa_data. AT NEW doctype. CLEAR: v_item. CLEAR: wa_header_data. CLEAR: it_item_data, it_item_data. REFRESH: it_item_data, it_sender_item_data. v_new = 'X'. ENDAT. IF v_new EQ 'X'. wa_header_data-fm_area = ' '. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = wa_data-version IMPORTING output = wa_header_data-version. CONCATENATE wa_data-docdate+6(4) wa_data-docdate+3(2) wa_data-docdate(2) into wa_header_data-docdate. "Fecha de documento wa_header_data-doctype = wa_data-doctype. "Clase documento de entrada presup. wa_header_data-docstate = '1'. wa_header_data-process = wa_data-process_ui. "Proceso presupuestación ENDIF. CLEAR: v_new. AT END OF doctype. v_end = 'X'. ENDAT. CLEAR: ti_return. REFRESH: ti_return. ADD 1 TO v_item. IF wa_data-docstate EQ '-'. CLEAR: wa_item_data. wa_item_data-item_num = v_item. "Línea documento en documento entrada presupuesto wa_item_data-fisc_year = wa_data-sfiscyear. "Ejercicio wa_item_data-budcat = wa_data-budcat. "Categoría de presupuesto wa_item_data-budtype = wa_data-sbudtype. "Clase de presupuesto wa_item_data-fund = wa_data-fund. "Fondo wa_item_data-funds_ctr = wa_data-fundsctr. "Centro gestor wa_item_data-cmmt_item = wa_data-cmmtitem. "Posición presupuestaria wa_item_data-func_area = wa_data-funcarea. "Área funcional wa_item_data-trans_curr = 'USD'. wa_item_data-total_amount = wa_data-amount. "Importe wa_item_data-item_text = wa_data-item_text. wa_item_data-valtype = 'B1'. wa_item_data-distkey = '0'. APPEND wa_item_data TO it_item_data. ELSE. CLEAR: wa_sender_item_data. wa_sender_item_data-item_num = v_item. "Línea documento en documento entrada presupuesto wa_sender_item_data-fisc_year = wa_data-sfiscyear. "Ejercicio wa_sender_item_data-budcat = wa_data-budcat. "Categoría de presupuesto wa_sender_item_data-budtype = wa_data-sbudtype. "Clase de presupuesto wa_sender_item_data-fund = wa_data-fund. "Fondo wa_sender_item_data-funds_ctr = wa_data-fundsctr. "Centro gestor wa_sender_item_data-cmmt_item = wa_data-cmmtitem. "Posición presupuestaria wa_sender_item_data-func_area = wa_data-funcarea. "Área funcional wa_sender_item_data-trans_curr = 'USD'. wa_sender_item_data-total_amount = wa_data-amount. "Importe wa_sender_item_data-item_text = wa_data-item_text. wa_sender_item_data-valtype = 'B1'. wa_sender_item_data-distkey = '0'. APPEND wa_sender_item_data TO it_sender_item_data. ENDIF. IF v_end EQ 'X'. CLEAR: ti_return. REFRESH: ti_return. CALL FUNCTION 'BAPI_0050_CREATE' EXPORTING language = sy-langu header_data = wa_header_data header_data_add = wa_header_data_add testrun = p_test TABLES item_data = it_item_data sender_item_data = it_sender_item_data period_data = it_period_data sender_period_data = it_sender_period_data long_text = ti_long extension_in = ti_ext return = ti_return. LOOP AT ti_return INTO wa_return. wa_messages-msgtyp = wa_return-type. wa_messages-msgspra = sy-langu. wa_messages-msgid = wa_return-id. wa_messages-msgnr = wa_return-number. wa_messages-msgv1 = wa_return-message_v1. wa_messages-msgv2 = wa_return-message_v2. wa_messages-msgv3 = wa_return-message_v3. wa_messages-msgv4 = wa_return-message_v4. APPEND wa_messages TO it_messages. ENDLOOP. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X' IMPORTING return = it_return2. ENDIF. CLEAR: v_end. ENDLOOP. * MOSTRAR RESULTADOS CALL FUNCTION 'ZDEFU_BDC_SHOW_RESULTS_ALV' EXPORTING progn = sy-repid tcode = sy-tcode filep = l_filename regsp = l_current_record_s TABLES it_messages = it_messages. ENDFORM. " INPUT_DATA Saludo2 |
#2
|
|||
|
|||
Error
Hola Oie Fijate Qu Eme Manda Un Error Ya Que Entra A La Funcion De La Creacion.. No Se Que Es Lo Que Pasa
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|