Académique Documents
Professionnel Documents
Culture Documents
PD PD
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
Laboral: . probar, detectar y reportar.
C
C
w
w
m
m
w w
w
w
o
o
.d o c .d o .c
c cku -tr a c u -tr a c k
Sorted - OK ¿Cual es la sentencia para agregar datos a una tabla interna de este tipo? INSERT o APPEND
Hashed table - OK ¿Cual es la sentencia para agregar datos a una tabla interna de este tipo? INSERT
2. ¿Qué pasa si la tabla interna de referencia utilizada con la instrucción "FOR ALL ENTRIES IN" está vacía al realizar un
select?
Esto no se debe hacer, ya que el comando recuperaría todas las filas de la tabla especificada en el select, es como si
hiciéramos un select sin especificar ningún criterio de selección. - OK Por lo tanto antes hay que validar si la tabla trae al
menos un registro.
4. ¿En qué casos se debe utilizar Batch Input y en qué casos debe utilizarse un call transaction?
El batch input se utiliza para carga masiva de datos, en cambio “call transaction” es especialmente usado para integración
entre sistemas SAP o entre diferentes módulos de un sistema SAP. - OK En el caso del "call transaction", una descripción
más simple es que se puede utilizar cuando se requieren procesar solo pocos registros. O, un ejemplo simple... se utiliza
cuando se requiere invocar una transacción inmediatamente después de que finalice la ejecución de la transacción que
contiene el "call transaction".
1
F -X C h a n ge F -X C h a n ge
PD PD
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
e).c En el caso de user-exit los cambios se pueden perder después de un Upgrade, en cambio con customer-exit no w existe. c
C
C
w
w
m
m
w
w
w
o
o
.d o .d o
c u -tr a c k c u -tr a c k
ese riesgo. -OK Aunque mejor voy a verificar esto, ya que no estoy muy seguro de que en el caso de los user-exit se
pierdan los cambios al realizar un upgrade.
f) El user-exit se activa automáticamente cada que el programa es activado, en cambio el customer-exit requiere la
creación y activación de un proyecto SMOD para ser activado. - OK
7. ¿Qué tipos de ampliaciones/enhancements conoces?
Enhancements points
BADIS
Customer Exit
OK Incluyendo los que mencionaste anteriormente. ¿A que se le llama enhancement implicito/explicito?
Implicito. Son puntos de ampliación incluidos de forma predeterminada en el código estándar de SAP, pero
normalmente está oculto, es necesario hacerlo visible para poder habilitarlo.
Explicito. Son opciones de inserción preparadas por SAP.
8. ¿Cuál es la diferencia/ventaja de utilizar field symbols o work areas?
El acceso a los datos es más rápido con field-symbols.
Con field-symbols estamos creando una referencia a la tabla interna, en cambio con una work-area lo que hacemos es
copiar el contenido de una línea de una tabla interna a otra área de almacenamiento temporal, con field-symbols nos
evitamos esa copia (la referencia es directa), por lo anterior, es posible modificar más fácilmente los datos de la tabla
interna (no es necesario utilizar la sentencia MODIFY). - OK
9. ¿Qué es un RFC?
Es el llamado a una función ubicada en un sistema externo, permite comunicar cualquier aplicación con los sistemas SAP
(existe una clase llamada SAPRFC que contiene todas las DLL’s necesarias). OK Es un tipo especial de Modulo de
Funciones. ¿En SAP existen RFC sincronos y asincronos? ¿Cuál es la ventaja de utilizar uno u otro? ¿O en qué casos
utilizarias uno u otro?
Sí, hay 3 tipos de llamadas de RFC: Síncronos, Asíncronos y Transaccionales.
Síncrono. La llamada del programa se detiene hasta que el modulo de función ha sido procesado en el sistema destino y
algún resultado ha sido devuelto al emisor, sólo así permite al programa emisor continuar ejecutándose.
Asíncrono. El programa emisor corre paralelo e independiente del procesamiento de la llamada en el sistema destino. Los
programadores son responsableS del manejo del resultado de la llamada. En este caso, el sistema destino debe de estar
disponible en el momento de la llamada RFC.
Yo utilizaría síncrono si estoy segura de que el sistema destino va a estar disponible siempre, de lo contrario, el proceso
se quedaría colgado, porque entiendo que siendo síncrono el sistema espera respuesta del destino y si no la hay se queda
esperándola.
Y utilizaría Asíncrono si supiera que es probable que el destino no esté disponible en algún momento, para lo cual validaría
el resultado de la llamada.
Una pregunta común para Jr, son ¿Para qué sirve la transacción...
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
SM30.
. c Mantenimiento a vistas de tablas. OK
C
C
w
w
m
m
w w
w
w
o
o
.d o .d o .c
c u -tr a c k c u -tr a c k
SMARTFORMS. Creación de formularios que se imprimen de forma masiva. OK Lo de "en forma masiva" esta de sobra.
10. O la pregunta contraria... ¿en qué transacción visualizo las ordenes de transporte?
SE01 OK yTambien se utiliza la SE09, SE10. Y La STMS la utilizan por lo regular solo los Basis para la gestion de ordenes
de transporte de un ambiente a otro.
11. ¿En qué transacción se hacen las grabaciones (para utilizar con batch input o call transaction)?
SHDB OK
13. ¿En qué tabla se almacenan los datos de cabecera de los pedidos de venta?
VBAK OK
15. ¿Para qué sirve un objeto de autorización? ¿Desde qué transacción lo creas?
Los objetos de autorización permiten verificaciones complejas de una autorización para que el usuario realice cierta
acción, para crearlos se utiliza la transacción SU21. OK Por lo regular esta es tarea de un Basis
16. ¿Para qué sirve un objeto de bloqueo? ¿desde qué transacción lo creas?
Sirve para controlar la concurrencia de procesos sobre un mismo objeto, siempre están asociados a tablas de diccionario
de datos, es un semáforo sobre una tabla. Se crean en la SE11. OK
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
Sí,
. c porque están asociados a las impresoras, las cuales son dependientes de mandante. OK Aunque la explicaciónw .de la .c
C
C
w
w
m
m
w
w
w
o
o
.d o do
c u -tr a c k c u -tr a c k
impresora es un plus.
4
F -X C h a n ge F -X C h a n ge
PD PD
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
Siw . ddos objetos de datos son iguales en estructura usar MOVE x TO y antes que MOVE-CORRESPONDING x TO y. Es más eficiente.
C
C
w
w
m
m
w
w
w
o
o
.c .d o .c
oc ck
u -tr a c ck u -tr a
OK
s) Orden de condiciones
Asegurarse de que la primera condición en un IF sea la más frecuente que sea cierta. Para una condición lógica AND hay que poner
primero la condición que sea más frecuentemente falsa. En una condición con OR, poner como primera condición la que sea más
frecuente que sea cierta. Esto solo afectará al rendimiento si está dentro de un bucle que se repita muchas veces para que se note
la diferencia. OK
t) INNER JOINS vs FOR ALL ENTRIES-FAE
En muchos casos INNER JOIN es mejor de rendimiento que FOR ALL ENTRIES-FAE. OK Aunque algunos opinan lo
contrario.
FOR ALL ENTRIES-FAE tiene que evitarse en caso de tener un gran volumen de datos esperados. OK
u) Uso de cursores en vez de SELECT…INTO y SELECT…ENDSELECT
Para recorrer los datos seleccionados es más eficiente recibir todos los datos en una tabla interna con INTO TABLE y recorrerla con
un cursor que ir recibiendo registro a registro de la b.d ya que la información entre el servidor de aplicaciones y la b.d. viaja en
paquetes de 32K por defecto y hay que aprovechar al máximo cada paquete para que contenga la máxima cantidad de datos
usables. OK Select... Endselect definitivamente es obsoleto.
v) Diagnostico de rendimiento
Para ver problemas de rendimiento, se recomienda el uso de la transacción SE30 (ABAP Runtime Analysis). Esta transacción
permite el análisis estático de transacciones y programas.
Diagnostico de SQL. Se puede usar la transacción ST05 (SQL Trace) para ver que índices se están usando para acceder a la b.d.
Verificar que las condiciones de la cláusula WHERE son las correctas o incluso cambiarlas por otros campos clave para comprobar
la eficiencia. OK
w) Consideraciones generales
Evitar el código muerto. Que no llega nunca a ejecutarse.
Eliminar código innecesario o redundante.
Incluir documentación en el código. OK
24. Menciona algunas características o sentencias obsoletas y que ya no deben utilizarse más.
Funcionalidad SAPScript Aun se pueden seguir utilizando, pero si, son la tecnología anterior al smartform.
Cláusula INTO CORRESPONDING Por rendimiento no debería de utilizarse, pero aun es válido.
ALV por medio de funciones. Aun es válido seguir utilizandolos.
Field exit OK
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
27.. d o¿En qué transacción se crean los pedidos de venta/facturas?
C
C
w
w
m
m
w w
w
w
o
o
.c .d o .c
c ck
u -tr a c u -tr a c k
30. ¿En qué transacción puedes ver los errores en tiempo de ejecución?
ST22 OK
31. Si por alguna falla de la red/computadora se interrumpió el acceso al sistema mientras estabas modificando un código y al
volver a loguearte te muestra un mensaje de error advirtiendo que el programa ya está siendo editado por tu usuario... ¿desde
qué transacción puedes suspender el bloqueo?
EWZ5 OK Pero esta es solo para desbloquear usuarios. La SM12 se utiliza para desbloquear un objeto que
aparentemete esta siendo aun editado por nuestro usuario o por algun otro usuario.
32. ¿Desde qué transacción puedes ver los usuarios actualmente logueados?
SM04 – Conectados con el mandante actual. OK
AL08 – Conectados en el sistema entero (útil cuando tenemos más de un servidor de aplicación). OK
6
F -X C h a n ge F -X C h a n ge
PD PD
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
Notas independientes del cuestionario.
C
C
w
w
m
m
w w
w
w
o
o
.d o .c .d o .c
c u -tr a c k c u -tr a c k
SBWP –Crear mensajes de correo (Para esto debe configurarse previamente el SMTP)
SO_DOCUMENT_SEND_API1 Tal vez con esta función sería posible hacer el envío del mail.
---
SE14. Database utility
SE16. Data browser
--
Sapbc_data_generator –llenar las tablas de muestra de SAP.
Otras notas.
SOST. Para ver si generó algún objeto. Requerimiento de trasmisión. Cuando desarrollo una aplicación que envía mail.
So01. Bandeja de salida (correo usuario).
SE09. Gestión de transportes.
Al crear un objeto, nunca debo asignarle una orden de transporte que no sea mía, porque podría ejecutarse el
transporte cuando aún no tengo listo el código.
En el menú de utilidades hay forma de comparar dos versiones distintas (ya sea en el mismo ambiente o en
diferente ambiente -en este caso me preguntara el ID del sistema destino).
Nombre del paquete para mis objetos, por lo regular lo indica el líder técnico (si lo hay), la orden de transporte
también la tendría que indicar él. Debe existir un proyecto asociado en el que se gestiona todo eso.
POO.
TYPE REF TO. Sentencia para declaración de objetos.
Cuando estoy editando un programa, puedo activar el Pretty printer, para que todas las palabras clave queden
en mayúsculas.
Control <> Comentar todo un bloque.
7
F -X C h a n ge F -X C h a n ge
PD PD
!
W
W
O
O
N
N
y
y
bu
bu
to
to
k
k
lic
lic
Control shift <>
C
C
w
w
m
m
w w
w
w
o
o
.d o .c .d o .c
c u -tr a c k c u -tr a c k
MVC.
Es un patrón de diseño. Modelo vista controlador. Revisar en qué consiste, pero basicamente
corresponde con la programación en 3 capas.
Capa persistencia. Tiene que ver con la base de datos.
----------------------------
Examen de abatwa.
A. Modulo en el que he trabajado. FI-CO
B. Principales tablas del módulo FI. BKPF (cabecero de documentos contables) y BSEG (segmento -detalle- de doctos
contables).
C. Qué procesos conozco del módulo de RH.
D. Para que sirven las transacciones. WE05 (Consulta de Idocs); BD87 (Reproceso de IDocs) y WE30 (desarrollo de
tipos de Idocs).
E. Resumen de mi experiencia en el modulo contable y de Cuentas por pagar.
F. Resumir en 1 min. la trayectoria laboral.
-----