lunes, 9 de febrero de 2009

Como encontrar exits en las transacciones estandar??

Como encontrar exits en las transacciones estadar de SAP o extensiones SAP??
Esa es la pregunta del millon de dolares cada vez que estamos a punto de hacer una ampliacion z!
Pues basicamente el truco, segun yo, consiste en:
1. Entras a la transaccion que te interesa
2. Pones en la lines de comando /h
3. Ejecutas la transaccion
4. En este momento estaras en modo debuggin si no estas ahialgo has hecho mal jeje

5. Entras al meno breakpitns -> breakpoints at -> breakpoint at statement ->
pues aqui viene la escencia. Habilias break points para la sentencia CALL CUSTOMER-FUNCTION
5. Los break points que se habiliten seran las user exits a las cuales tienes acceso solo resta descubrir cual es el punto donde quieres hacer la ampliacion, encontrar el nombre de la ampliacion para activarla por la cmod y listo!

Necesito pegar un codigo de un programa z q hace esto.... sin embargo no entra el codigo fuente asi que pasare un link

http://www.sapnet.ru/viewtopic.php?t=2819&start=0&postdays=0&postorder=asc&highlight

Copiar y ejecutar el codigo y veras que puedas obtener diferentes user exit.

La ventaja de hacerlo por medio del debuggin es que sabras en que momento de la ejecucion del porgrama podras entrar a la exit que te interesa y de esta manera habilitar solo la que te interesa.

Si has hecho los pasos anteriores seguramente tendras el nombre de la exit asi que solo resta en la opcion ampliacion del programa z de obtencion de ampliaciones y tendras el nombre de la ampliacion a activar!

Si quieres buscar otro tipo de ampliacion deberas de poner break poins segun lo que quieras buscar:

Sustituciones - SUBSTITUTION

viernes, 6 de febrero de 2009

Sustituciones

Las sustituciones las utilice para cargar un valor predefinido en un determinado campo de algún campo z o estándar. Hay que tener en cuenta que es una especie de inicialización de campos y por lo tanto si pretendes hacer que dependan de un valor posterior a la carga de los mismos pueden generar errores no esperados. Entiandase por esto al hecho de querer hacer una validacion dentro de una sustitucion, esto aunque es factible hacer por medio de fuerza bruta no es una buena idea ya que a la larga no te servira.
Existen las sustituciones de datos maestros y de datos contables. Si es factible hacer sustituciones de campos z solo que requieren que agregues dicho campo z en unas estructuras que vienen en los links de abajo :)

Se implementan en los programas ZRGGBS000 ZRGGBR000
Requieren de ciertos aspectos de parametrización para hacerlas funcionar en estas páginas puedes ver algo al respecto:

http://www.richard-harper.me.uk/Kb/showtext.aspx?id=0007chttp://sapprogramming.blogspot.com/2007/01/programming-with-substitution.html
OAZ1, GGB0 Sirve para validar las operaciones contables (BKPF,BSEG)ZRGGBR000
ABUMNOB28 Documentos financierosABZON OBBH Sustitución de documentos contables


Ver nota SAP 842318

Tips ABAP

Como crear vistas en SAP
1 Creo la tabla z, con parámetro a y permitiendo to
2 Voy al menú utilidades y de ahí le doy en generador act. tabla
3 En grupo de autorizaciones le doy la primera opticion
4 Le doy el grupo de funciones el nombre de mi tabla z
5 Asigno paquete
6 Le pongo un nivel
7 Le doy 100 como imagen resumen
8 Le doy guardar
9 Creo la transacción
10 Entro a la se93
11 Le doy en la ultima opcion Transacción con parámetros
12 Le doy en omitir imagen inicial
13 En la transacción le doy sm30
14 En val propuesta ingreso:
15 VIEWNAME nombre de mi tabla z
16 UPDATE X
Traportar
Siempre me logueo al mandate destino
STMS -> Carrito
Cola de QUAS
Buscar la orden con los binculares
Darle en el carrito con un cuarto de la caja El OTRO no se estropea TODO
Seleccion mandante destino
Selecciono todo
Le doy OK
Aplicar notas
Bajar la nota con usuario market place
Entras al mandante donde tienes el porblema
Entras a la snotes
Le das donde dice aplicar nota, y le das buscar con el broxse
Seleccionas y le das aplicar
El sistema te dice si es aplicable o no
Luego te dice si quieres plaicarla o no
Para revisa el tiempo de ejecucion de un programa le doy click
Para que los reportes funcionen correctamente con toda la funcionalidad que proveé la herramienta es necesario que el catálogo y
la tabla de salida estén correctamente cargados. Existe una forma para chequear esto último; para los ALV llamados mediante la
función REUSE_ALV_LIST* se debe ingresar el valor &SOS en la línea de comandos. Cuando se trate de un objeto ALV o un ALV llamado
mediante REUSE_ALV_GRID*, basta con posicionar el puntero en una zona vacía del ALV (sin registros de la tabla de salida) y hacer
doble click derecho mientras se presiona la tecla SHIFT.
Cuando ingresamos en el modo de chequeo de consistencia mediante los métodos mencionados el sistema nos indica si hay algún error
en la llamada al ALV, y también podemos visualizar los principales parámetros que se le envían al ALV.
Errores en el filtro de un ALV
ls_fieldcat-fieldname = 'NAME1'.
ls_fieldcat-tabname = 'TU TABLA INTERNA'
ls_fieldcat-datatype = 'CHAR'.---> tipo de dato del campo
ls_fieldcat-outputlen = '30'. --->longitud del campo
Ejemplos ALV
BCALV_TEST_*.
F4 dinámico para cualquier campo
Si queremos crear una ayuda (F4) para cualquier campo, basta con utilizar el siguiente código:
DATA: carrid TYPE spfli-carrid,
hlp TYPE string,
struc TYPE dfies-tabname,
comp TYPE dfies-fieldname.
DESCRIBE FIELD carrid HELP-ID hlp.
SPLIT hlp AT '-' INTO struc comp.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = struc
fieldname = comp
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
Ayuda de busqueda
En una dynpro hay dos maneras de declara la ayuda de busqueda
1. Con la definicion de datos y en visualizar marcar el campo programa en el combo pulsar entradas posibles le damos ver opciones, hay q tener definido correctamente el dato
2. Cargar directamente en el campo la ayuda de busqueda
Screen Exits
yo vi el agregado de un campo adicional para la ME51N. Solo debes de agregar un campo(s) mas a la tabla EBAN a traves de su CI Include CI_EBANDB. Luego creas la dynpro 0111 para el programa SAPLXM02.
Finalmente, debes utilizar la ampliacion MEREQ001 que trae los componentes que realizan la funcionalidad de PBO y PAI para los controles agregados, estos son: EXIT_SAPLMEREQ_001 y EXIT_SAPLMEREQ_003 respectivamente.