viernes, 15 de agosto de 2008

Selection-screen Básico

Un programita básico de ejemplo para mostrar un selection screen.

REPORT ZPROG02.

selection-screen begin of block bloque01.
* Aqui van los elementos del selection-screen
parameters: nombre(35) type c,
direc(45) type c,
edad(3) type n,
fecha type d.
selection-screen end of block bloque01.

*En este evento podemos inicializar valores
Initialization.
nombre = 'ingrese aqui su nombre'.
direc = 'aqui debe ir el apellido'.
edad = '99'.
fecha = Sy-datum. "Sy-datum recupera la hora del sistema
*fin del codigo del evento

*Este evento se ejecuta cuando el usuario da clic en el reloj o opresiona F8
Start-of-selection.
write nombre.

martes, 1 de abril de 2008

Algo de historia sobre SAP

SAP fue fundada en 1972 en la Ciudad de Mannheim, Alemania, por antiguos empleados de IBM (Claus Wellenreuther, Hans-Werner Hector, Klaus Tschira, Dietmar Hopp y Hasso Plattner) bajo el nombre de "SAP Systemanalyse, Anwendungen und Programmentwicklung". El nombre fue tomado de la división en la que trabajaban en IBM.

La corporación SAP fue fundada en 1972 y se ha desarrollado hasta convertirse en la quinta más grande compañía mundial de software. Este sistema comprende muchos módulos completamente integrados, que abarca prácticamente todos los aspectos de la administración empresarial. Ha sido desarrollado para cumplir con las necesidades crecientes de las organizaciones mundiales y su importancia esta más allá de toda duda.

SAP ha puesto su mirada en el negocio como un todo, así ofrece un sistema único que soporta prácticamente todas las áreas en una escala global. SAP proporciona la oportunidad de sustituir un gran número de sistemas independientes, que se han desarrollado e instalado en organizaciones ya establecidas, con un solo sistema modular. Cada módulo realiza una función diferente, pero esta diseñado para trabajar con otros módulos. Está totalmente integrado ofreciendo real compatibilidad a lo largo de las funciones de una empresa.

Después de haber dominado el mercado, la empresa afronta una mayor competencia de Microsoft e IBM. En marzo de 2004 cambió su enfoque de negocio en favor de crear la "plataforma" que desarrolla y utiliza, la nueva versión de su software NetWeaver
Es en este punto donde SAP se encuentra enfrentado con Microsoft e IBM, en lo que se conoce como "la guerra de las plataformas". Microsoft ha desarrollado una plataforma basada en la Web llamada .NET, mientras IBM ha desarrollado otra llamada WebSphere.

SAP ha conquistado clientes de forma consistente para aumentar la cuota del mercado global entre sus cuatro principales competidores a un 55% a fines de 2004, desde un 48% dos años antes. La participación combinada de Oracle y PeopleSoft declinó de un 29% a un 23%.
SAP es una compañía alemana, pero opera en todo el mundo, con 28 sucursales y afiliadas y 6 compañías asociadas, manteniendo oficinas en 40 países.

Abap desde cero "0"

Algunas personas me escriben y comentan preguntando si es posible empezar a aprender ABAP de manera autodidacta, y bueno realmente es una pregunta complicada... y a pesar de que todo el mundo insiste en que no es posible yo quiero dar la contra un poquito (solo por eso) y empezar a poner por acá algunos consejillos que me hubieran sido útiles hace no mucho al empezar a aprender ABAP.

Primero: ABAP/4 es un lenguaje para SAP, así que primero vale la pena leer algo sobre SAP y su arquitectura básica. Un poco por acá http://carlosagreda.blogspot.com/2008/04/algo-de-historia-sobre-sap.html

Segundo: Para programar en ABAP requieres NECESARIAMENTE de un servidor, donde se compilaran/guardaran/ejecutaran los programas que escribas, entre otras cosas. No es tan sencillo como hacer un fuente en texto y compilarlo como sucede en otros lenguajes. Es posible encontrar una versión mini de prueba (como para aprender) en este link https://www.sdn.sap.com/irj/sdn/downloads?rid=/library/uuid/80fd9a0a-e306-2a10-c896-b84c77c13ed2, para poder descargarla te pedirá registrarte.

Tercero: Revisa en la web programas sencillos, los mas básicos, los complicados ya los puedes hacer tu :P. Dejare por aquí muchos programas muy básicos como para empezar desde cero.

Actualización 05/FEB/2009...

He creado un nuevo blog para hablar específicamente sobre cómo aprender ABAP de manera autodidacta. Se llama Abap Desde Cero "0".

http://abapdesdecero.blogspot.com/


Saludos.

viernes, 29 de febrero de 2008

Timer para ABAP

Estoy intentando programar un space invaders en ABAP -ya saben el de las navecitas- y bueno... tengo la necesidad de ejecutar eventos que se repitan en un intervalo establecido, y ya que aprendí a usar el timer, decidí poner un ejemplo super sencillo aca.

blablabla blablablabl bnalblablaba



Este programa, escribe "hola" en un report y luego cada 3 segundos escribe "hola otra vez!!"

*&---------------------------------------------------------------------*
*& Autor: Carlos Agreda *
*& Fecha: Feb 29 (Es biciesto) 2008 *
*&---------------------------------------------------------------------*

REPORT ZEJ_TIMER.
data: temporizador type ref to cl_gui_timer.
* Definición del manejador de eventos ------------------------------------
class lcl_event_handler definition.
     public section.
          class-methods: on_Timer for event finished of cl_gui_timer
          importing sender.
endclass.
* Implementación del manejador de eventos ------------------------------
class lcl_event_handler implementation.
     method on_Timer.
          write: 'Hola otra vez!!'.
          sender->run( ).
     endmethod.
endclass.

start-of-selection.
     create object temporizador.
     set handler lcl_event_handler=>on_Timer for temporizador.

     temporizador->interval = 3. "el tiempo va en segundos
     temporizador->run( ).
     write: 'Hola'.

sábado, 16 de febrero de 2008

Esteganografia en Imagenes (LSB)

Este es un un trabajo que presente en la universidad el 2004 para el curso de Algebra Universal, y quiero postearlo por aqui para que no se pierda en el olvido.

Es una aplicacion de esteganografia que permite ocultar un texto ascii o inclusive un archivo binario cualquiera dentro de una imagen BMP de 24 bits.

Esteganos: Oculto, Grafia: Escrito
La esteganografía tiene como objeto de estudio las técnicas que permitan ocultar información detrás de otros datos; de tal forma que al ser "mezclados" sean visibles solo los datos de soporte y nuestra información confidencial pase desapercibida ante los ojos de cualquier observador.

Ej.
Otro ejemplo.

La iglesia mas antigua, puso el rumor ultimo.

...si extraemos la primera letra de cada palabra obtenermos:
La iglesia mas antiguaa, puso el rumor ultimo. = Lima peru.

Este es un ejemplo muy sencillo en texto, ya se les podra ocurrir miles de ideas distintas para ocultar sobre texto, pero... como ocultar sobre una imagen?

La primera alternativa para ocultar un mensaje (bits) sobre un BMP de 24 bits es aprovechar su estructura simar al siguiente grafico. solo debemos ocultar nuestros datos justo despues de los metadatos (primeros 54 bytes) y modificar el campo offset (campo que guarda la distancia entre los metadatos y los pixeles) de tal manera que podamos hacer espacio para todo lo que queremos esconder.
Esta alternativa si bien es cierto es muy sencilla de implementar tiene el defecto de que la imagen obtenida sera considerablemente grande, seria extranho tener una imagen de un icono (10x10) que nos ocupe 10 Mb no?

Otra alternativa -desde mi parecer mucho mejor- es esconder lo que queremos esconder en los LSB de cada componente de un pixel.

En espanhol:

Cada pixel, en un archivo BMP (de 24 bits), esta representado por 3 bytes conteniendo la intensidad de color para ROJO, VERDE y AZUL (RGB: red, green, blue). Entonces combinando valores en esas posiciones podemos obtener los = (16777216) colores que puede mostrar un pixel, habitualmente se dice 16 millones de colores, pero son un poquito mas.

Bueno entonces... cada byte contiene un valor entre 0 y 255 (en binario 00000000 y 11111111), estos bytes igual que en el sistema decimal conforme sus cifras esten mas a la izquierda tendran mas valor (peso) por citar un ejemplo:

5768, si cambiamos la primera cifra (la mas significativa) a 3 nos queda 3768, la diferencia es notable. Pero si cambiamos la ultima cifra (la menos significativa) por ejemplo a un 2 nos queda 5762, la diferencia es relativamente minima.

Con esto quiero decir que podemos modificar los LSB (less significant bits, o cifras menos significativas) sin producir mayor alteracion.

Un caso:

Si observamos estos dos pixels, tan solo se le ha cambiado una unidad a cada componente R, G, B, y la variacion de color ha sido minima. Al ojo humano son practicamente el mismo color.


Con esto hemos logrado sembrar 3 bits que originalmente eran 101 ahora hemos sembrado 010, eso significa que por cada pixel podemos almacenar 3 bit sin producir un cambio aparente en el pixel.

Si repetimos este paso, recorriendo los pixels de la imagen, podemos ir sembrando (ocultando) los bits que querramos dentro de nuetra imagen. En cada pixel podremos poner 3 bits es decir necesitaremos masomenos 8 pixels para poner 3 bytes (un byte tiene 8 bits :P).



Como se puede ver no es muy dificil


Esta es una imagen que contiene un mensaje, si logran recuperarlo lo comentan :P



La imagen de bart con el mensaje la pueden descargar aqui.
La aplicacion ejecutable la pueden descargar aqui.
El codigo fuente para vb 6, lo pueden descargar aqui.
Un instalador de la aplicacion lo pueden descargar de aqui.


y si no tienen el winrar lo pueden descargar de aqui


Saludos.


viernes, 15 de febrero de 2008

SAP Consultant Certification

Navegando por ahi me tope con los contenidos para la certificación ABAP. Me pareció util postearlo por aca.

Number of certification questions: 80
Courses for certification preparation: TAW10 (ABAP Workbench Fundamentals); TAW12 (ABAP Workbench Concepts)
Please note that you are not allowed to use any reference materials during the certification test (no access to online documentation or to any SAP system).
The certification test Development Consultant SAP NetWeaver 2004– Application Development Focus ABAP verifies the knowledge in the area of the SAP NetWeaver for the consultant profile Application Development Focus ABAP. This certificate proves that the candidate has a basic understanding within this consultant profile, and can implement this knowledge practically in projects.
The certification test consists of questions from the areas specified below:

Topic Areas

1. SAP Technologies (+)
SAP systems (mySAP Business Suite and SAP NetWeaver)
Technical structure of an SAP Web Application Server

2. ABAP Workbench Basics (++)
Data types and data objects (declaration)
Internal tables
Data retrieval (authorization check)
Subroutines
Function groups and function modules
Program calls and memory management

3. Advanced ABAP (++)
ABAP runtime
Data types and data objects (usage)
Open SQL (high-performance programming)
Dynamic programming

4. ABAP Objects (++)
Classes and objects
Inheritance
Polymorphism (casting)
Interfaces
Events
Global classes and interfaces
Exception handling
Shared objects

5. ABAP Dictionary (++)
Database tables
Performance for table accesses
Consistency by means of input check (foreign key dependency)
Dependency for ABAP Dictionary objects
Views
Search helps

6. List Creation Techniques (++)
Data output in lists
Selection screen
Logical database
Interactive lists
List creation with the ALV grid control:
- Simple lists
- Field catalog
- Layout
- Event handling

7. Dialog Programming (++)
Screen (basics)
Program interface (GUI title, GUI status)
Screen elements for output (text fields, status icons, and group boxes)
Screen elements for input/output
Subscreen and tabstrip control
Table control
Context menu
Lists in dialog programming

8. Database Changes (+)
Database updates with open SQL
LUWs and client/server architecture
SAP locking concept
Organize database changes
Complex LUW processing
Number assignment
Change document creation

9. Enhancements and Modifications (+)
Changes to the standard SAP system
Personalization
Enhancements to ABAP Dictionary elements
Enhancements via customer exits
Business Transaction Events
Business Add-Ins
Modifications

Amount of questions by topic (as percentage of test):
+ = 1 - 10%
++ = 11 - 20%
+++ = over 20%

No responsibility is taken for the correctness of this information. Copyright © SAP AG 2005.

Fuente: https://websmp108.sap-ag.de/~sapidp/011000358700006455222004E

Certificación SAP-ABAP

Imagino que muchos como yo quisieran certificarse algún día en SAP ABAP -mundillo interesante en el que he venido a llegar de casualidad- y dado que estoy al inicio de esta aventura de recopilar información y empezar a estudiar, me he decidido postear cada paso que voy dando hasta llegar a lograrlo (espero :P).

Síganme los buenos!!!

Todo material es bienvenido, los comentarios y recomendaciones, también.

Saludos.