MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 31/03/08, 22:53:14
camaron camaron is offline
Junior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 14
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
Responder Con Cita
  #2  
Viejo 16/11/10, 19:56:28
tita87 tita87 is offline
Junior Member
 
Fecha de Ingreso: oct 2010
Mensajes: 3
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 19:57:00.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web