PDA

Ver la Versión Completa : bach-input


BY_MY
11/07/07, 11:25:43
buenas a todos.


Tengo un problemilla que seguro alguno sabeis solucionar. He generado un bach-input con la SHDB y lo paro a un report pero al ejecutarlo me sale una pantalla (que ademas sale mal) donde me pide seleccionar si modo CALL FUNTION o Gerenrar sesion (supongo que sabeis cual digo) ¿Sabeis como evitar que salga esto al ejecutarlo?



Saludos y muchas gracias.

Mike
11/07/07, 12:27:15
Esos parámetros salen de un include standard que el coloca cuando te crea el programa a partir de la grabación, para quitar eso tendrías que quitar el include pero este ademas de los parámetros maneja unas subrutinas(FORMs) que abren la sesión, agregan los datos a la BDCDATA, etc. por lo cual tendrías que crearte esos FORMs(lo ideal seria un include Z con esos Forms para que puedas reusarlo en cualquier programa quieras)

Espero haberte ayudado.

Saludos

azua14
11/07/07, 13:48:17
:p..La verdad no entendí bien la pregunta...nunca me ha salido la ventana que mencionas..sin embargo..él código este es super simple..y lo uso como base para todos los batchs inputs que he hecho y nunca me ha fallado.

*&---------------------------------------------------------------------*
*& Report ZBI_FILL_CUSTOMER_02 *
*&---------------------------------------------------------------------*

REPORT zbi_fill_customer_02 LINE-SIZE 120.

*---------------------------------------------------*
* Only used for call transaction *
*---------------------------------------------------*

DATA:
BEGIN OF itab OCCURS 0,
id(11) TYPE c,
name(17) TYPE c,
surname(18) TYPE c,
city(25) TYPE c,
postcode(11) TYPE c,
custtype(15) TYPE c,
discount(2) TYPE c,
telephone(5) TYPE c,
END OF itab.

DATA: BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.
DATA: BEGIN OF messtab OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.
DATA : pid LIKE customers-id.

*----------------------------------------------------------------*
* CUERPO DEL PROGRAMA
*----------------------------------------------------------------*
PERFORM Llenar_itab.

LOOP AT itab.
PERFORM call_transaction.
ENDLOOP.

ENDCASE.



*---------------------------------------------------------------------*
* FORM call_transaction
*---------------------------------------------------------------------*
* LLAMA A LA TRANSACCION ZFC01 Y LE PASA LOS DATOS EN ITAB A LAS
* VARIABLES DEFINIDAS EN BDCDATA
*---------------------------------------------------------------------*
FORM call_transaction.

PERFORM gen_bdc_data.
CALL TRANSACTION 'ZFC01' USING bdcdata MODE 'N' MESSAGES INTO
messtab.
" Modo de despliegue
" 'A' = ALL : Todas las pantallas
" 'E' = ERROR : Solo los errores
" 'N' = NOTHING : Procesar sin mostrar nada

WRITE: sy-subrc, sy-msgty, sy-msgid, sy-msgno, sy-msgv1.
WRITE: / ' ', sy-msgv2.
WRITE: / ' ', sy-msgv3.
WRITE: / ' ', sy-msgv4.

ENDFORM. " End CALL_TRANSACTION


*---------------------------------------------------------------------*
* FORM gen_bdc_data
*---------------------------------------------------------------------*
* GENERA EL GRUPO DE DATOS QUE VA A SER PROCESADO Y LO DEJA EN
* LA TABLA BDCDATA
*---------------------------------------------------------------------*
FORM gen_bdc_data.
DATA: line LIKE bdcdata-fval.
DATA: itab_name LIKE customers-name.

CONCATENATE itab-name itab-surname INTO itab_name SEPARATED BY space.

REFRESH bdcdata.

PERFORM bdc_dynpro USING 'Z_FILL_CUSTOMER' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=GRABA'.

PERFORM bdc_field USING 'P_ID' itab-id.
PERFORM bdc_field USING 'P_NAME' itab_name.
PERFORM bdc_field USING 'P_POST' itab-postcode.
PERFORM bdc_field USING 'P_CITY' itab-city.
PERFORM bdc_field USING 'P_CUST' itab-custtype.
PERFORM bdc_field USING 'P_DISC' itab-discount.
PERFORM bdc_field USING 'P_TELE' '3334455'.

PERFORM bdc_dynpro USING 'Z_FILL_CUSTOMER' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '/EE'.


ENDFORM. "End GEN_BDC_DATA



*---------------------------------------------------------------------*
* FORM bdc_dynpro
*---------------------------------------------------------------------*
* INSERTA EL NOMBRE DEL PROGRAMA Y NUMERO DE PANTALLA QUE HACE
* REFERENCIA A LA TRANSACCION Z_FILL_CUSTOMER
*---------------------------------------------------------------------*

FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "End BDC_DYNPRO

*---------------------------------------------------------------------*
* FORM bdc_field
*---------------------------------------------------------------------*
* Insertar un campo al Batch Input
*---------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_FIELD


"------------------------------------------------------------*
" INSERTA TRANSACCION
"------------------------------------------------------------*
PERFORM gen_bdc_data.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'ZFC01'
TABLES
dynprotab = bdcdata.
WRITE: / 'BDC_INSERT rc ='(999), sy-subrc.

BY_MY
13/07/07, 12:41:09
hola,
Gracias por todo, como dices Mike el problema venia del include, acabode ver tu respuesta y siento no haber posteado la solucion que le di y os habria ahorrado el postear, aunque creo que esta bien que se quede la solucion ya que creo que es un error comun que nos hace perder tiempo y nos ocurre a casi todos.


;-).


Gracias de nuevo, ahora me ha surgido esta duda con otro codigo, es standar y a mi no me funciona, ¿sabeis porque? ¿podriais orientarme?



AUTHORITY-CHECK OBJECT 'S_DEVELOP'
ID 'DEVCLASS' DUMMY
ID 'OBJTYPE' FIELD 'SUSO'
ID 'OBJNAME' DUMMY
ID 'P_GROUP' DUMMY
ID 'ACTVT' FIELD val3.

Lucidio_Lopez
18/07/07, 18:29:01
Hola :

Sobre la autorizacion verifica que los datos que estas enviando para la autorizacion sean los correcto , a mi me sucedio algo parecido y eran la informacion que se estaba enviando a la rutina.
Espero que te sirva de algo.

BY_MY
19/07/07, 12:32:21
gracias. Ya lo arregle, realmente no se porque sucedio ya que un dia no compilaba y al otro si. Supongo que como dices algun dato no le gustaba.


Gracias.