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 17/01/11, 17:43:27
Carlitros36 Carlitros36 is offline
Member
 
Fecha de Ingreso: ago 2009
Localización: Concepción
Mensajes: 32
Batch input

Hola tengo este batch input:

report ZDAGO_VL02
no standard page heading line-size 255.

include bdcrecx1.

parameters: dataset(132) lower case.
*** DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
*
* If it is nessesary to change the data section use the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*
*** Generated data section with specific formatting - DO NOT CHANGE ***
data: begin of record,
* data element: VBELN_VL
VBELN_001(025),
* data element: BLDAT
BLDAT_002(010),
* data element: WADAK
WADAT_003(010),
* data element: WAUHR
WAUHR_004(008),
* data element: GSGEW
BTGEW_005(019),
* data element: GEWEI
GEWEI_006(003),
* data element: ANZPK
ANZPK_007(005),
* data element: BLDAT
BLDAT_008(010),
* data element: WADAK
WADAT_009(010),
* data element: WAUHR
WAUHR_010(008),
* data element: GSGEW
BTGEW_011(019),
* data element: GEWEI
GEWEI_012(003),
* data element: ANZPK
ANZPK_013(005),
end of record.

*** End generated data section ***

start-of-selection.

perform open_dataset using dataset.
perform open_group.

do.

read dataset dataset into record.
if sy-subrc <> 0. exit. endif.

perform bdc_dynpro using 'SAPMV50A' '4004'.
perform bdc_field using 'BDC_CURSOR'
'LIKP-VBELN'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LIKP-VBELN'
record-VBELN_001.
perform bdc_dynpro using 'SAPMV50A' '1000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LIKP-BLDAT'
record-BLDAT_002.
perform bdc_field using 'BDC_CURSOR'
'LIKP-ANZPK'.
perform bdc_field using 'LIKP-WADAT'
record-WADAT_003.
perform bdc_field using 'LIKP-WAUHR'
record-WAUHR_004.
perform bdc_field using 'LIKP-BTGEW'
record-BTGEW_005.
perform bdc_field using 'LIKP-GEWEI'
record-GEWEI_006.
perform bdc_field using 'LIKP-ANZPK'
record-ANZPK_007.
perform bdc_dynpro using 'SAPMV50A' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=SICH_T'.
perform bdc_field using 'LIKP-BLDAT'
record-BLDAT_008.
perform bdc_field using 'BDC_CURSOR'
'LIPS-MATNR(02)'.
perform bdc_field using 'LIKP-WADAT'
record-WADAT_009.
perform bdc_field using 'LIKP-WAUHR'
record-WAUHR_010.
perform bdc_field using 'LIKP-BTGEW'
record-BTGEW_011.
perform bdc_field using 'LIKP-GEWEI'
record-GEWEI_012.
perform bdc_field using 'LIKP-ANZPK'
record-ANZPK_013.
perform bdc_transaction using 'VL02N'.

enddo.

perform close_group.
perform close_dataset using dataset.

Debo hacer un programa que mediante 2 parametros:
p_guia like likp-vbeln.
p_bultos like likp-anzpk.

modifique esos valores usando esa transaccion antrior de batch input, que hice cree un nuevo programa agregue esos parámetros y copie ese mismo programa, no se si ma falta algo mas porque no me ejecuta bien, alguien me podria ayudar por favor?...
Responder Con Cita
  #2  
Viejo 19/01/11, 12:52:11
diegogui diegogui is offline
Member
 
Fecha de Ingreso: dic 2010
Mensajes: 33
Declariones para que funcione el batch input
* Estructuratye_mensaje TYPE bdcmsgcoll.
* TABLAS INTERNASTYPES tyt_mensaje TYPE STANDARD TABLE OF tye_mensaje,
tyt_bdcdata TYPE STANDARD TABLE OF bdcdata,
* TABLAS INTERNASDATA: gt_mensaje TYPE tyt_mensaje, " se muestra mensajes de error
gt_bdcdata TYPE tyt_bdcdata, " Se graba las grabaciones

FORM f_batch_input (se pasan los valores necesarios).

DATA: lv_trans TYPE char4 VALUE 'FB03'.

* Diferentes pantallas

PERFORM f_fill_bdcdata USING:
'X' 'SAPMF05L' '0100',
' ' 'BDC_CURSOR' 'RF05L-GJAHR',
' ' 'BDC_OKCODE' '/00',
' ' 'RF05L-BELNR' pvi_documento,
' ' 'RF05L-BUKRS' pvi_sociedad,
' ' 'RF05L-GJAHR' ' '.


* Se ejecuta el proceso por cada documento
PERFORM f_call_transaction USING gt_bdcdata
lv_trans
CHANGING gt_mensaje.
CLEAR gt_bdcdata.

ENDFORM. "f_ba_contable

FORM f_fill_bdcdata USING pvi_dynbegin TYPE c
pvi_name TYPE c
pvi_value TYPE c.

DATA: le_bdcdata TYPE bdcdata.
* "X" Indica si es una pantalla
IF pvi_dynbegin = 'X'.
CLEAR le_bdcdata.
le_bdcdata-program = pvi_name.
le_bdcdata-dynpro = pvi_value .
le_bdcdata-dynbegin = pvi_dynbegin.
APPEND le_bdcdata TO gt_bdcdata.
ELSE.
CLEAR le_bdcdata.
le_bdcdata-fnam = pvi_name.
le_bdcdata-fval = pvi_value.
APPEND le_bdcdata TO gt_bdcdata.
ENDIF.

ENDFORM. "f_fill_bdcdata

FORM f_call_transaction USING pvi_tipo_tran TYPE char4
CHANGING pte_messages TYPE tyt_mensaje.

*A=Visualizar Todo
*E=Visualizar pantallas sólo si hay errores
*N=No visualizar pantallas

DATA: lv_mode TYPE c VALUE 'N',
lv_update TYPE c VALUE 'L'.

CALL TRANSACTION pvi_tipo_tran USING gt_bdcdata
MODE lv_mode
UPDATE lv_update
MESSAGES INTO pte_messages.

ENDFORM. "f_call_transaction

FORM f_show_messages USING pti_messages TYPE tyt_mensaje
CHANGING pte_error TYPE tyt_error .

DATA: lv_error TYPE c VALUE 'E', "Error
lv_correcto TYPE c VALUE 'S', "Correcto
lv_n_error TYPE char3 VALUE '126',"Número Error
lv_n_advertencia TYPE char3 VALUE '060'."Número advertencia


DATA: lv_msgid TYPE sy-msgid,
lv_msgno TYPE sy-msgno,
le_messages TYPE tye_mensaje,
le_final_message TYPE message.
DATA: le_error TYPE tye_error.

LOOP AT pti_messages INTO le_messages.

lv_msgid = le_messages-msgid.
lv_msgno = le_messages-msgnr.

CALL FUNCTION 'WRITE_MESSAGE'
EXPORTING
msgid = lv_msgid
msgno = lv_msgno
msgty = le_messages-msgtyp
msgv1 = le_messages-msgv1
msgv2 = le_messages-msgv2
msgv3 = le_messages-msgv3
msgv4 = le_messages-msgv4
IMPORTING
messg = le_final_message.

IF sy-Subrc = 0.
WRITE: / le_final_message
ENDIF.

ENDFORM. " f_show_messages

f_call_transaction ejecuta la transacción que estas necesitando y la tabla cargada con el batch input . la rutina f_fill_bdcdata se encarga de hacer un append de las secuencias del batch input, la rutina f_show_messages se encarga de guardar los mensajes de error o éxito
Pasos.
1 - f_fill_bdcdata
2 - f_call_transaction
3 - f_show_messages

Bueno espero que te sirva.

Saludos

Diego G.
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 12:33:25.


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