*&---------------------------------------------------------------------*
" Numero primo
*&---------------------------------------------------------------------*
REPORT ZPROGR_02.
PARAMETERS: N1 TYPE I.
DATA: I1 TYPE I VALUE 1,
B TYPE I,
A TYPE I.
WHILE ( I1 <= N1 ).
B = N1 MOD I1.
IF ( B = 0 ).
A = A + 1.
ENDIF.
I1 = I1 + 1.
ENDWHILE.
IF A <= 2.
WRITE 'SI ES PRIMO'.
ELSE.
WRITE 'NO ES PRIMO'.
ENDIF.
domingo, 25 de enero de 2015
Factorial de un número ABAP
*&---------------------------------------------------------------------*
*& Report ZPROGR_01
*&
*&---------------------------------------------------------------------*
*&
"Factorial de un numero
*&---------------------------------------------------------------------*
REPORT ZPROGR_01.
DATA: N1 TYPE I,
N3 TYPE I.
DATA: AUX TYPE I.
N1 = 1.
SELECTION-SCREEN: BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.
PARAMETERS: N2 TYPE I.
SELECTION-SCREEN: END OF BLOCK B01.
N3 = N2.
WHILE N3 > 1.
N1 = N3 * ( N3 - 1 ) * N1.
N3 = N3 - 2.
ENDWHILE.
WRITE: 'El factorial de : ' , N2 .
WRITE:/ N1.
Convertir números a letras ABAP
REPORT Z_NUM_LETRA.
DATA: monto_en_letras TYPE spell,
texto type string.
PARAMETERS: monto TYPE netwr.
"Funcion ABAP para convertir numeros a letras:
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = monto "Importe (valor) a convertir
currency = 'X'
filler = ' '
language = sy-langu
IMPORTING
in_words = monto_en_letras. "Cantidad o importe en letras
"Ejemplo de como leer el importe en letras
concatenate monto_en_letras-word 'con'
monto_en_letras-decimal(2)" 'decimales'
into texto separated by space.
WRITE texto.
¿Cómo se crea un programa en SAP?
Antes de empezar es importante saber que todos los programas a crear comienzan siempre con Y ó Z ya que con las demás letras son los programas estándar.
1 se38 -> Crear:
Escribimos un título cualquiera, tipo mayormente trabajo con programa ejecutable y grabar:
Nos preguntará en cuál paquete vamos a crear el programa, en este caso click en objeto local lo cual lo creará como un objeto interno del sistema:
Éste es el editor el cual comenzaremos a escribir nuestro programa:
2 De la misma manera en la transacción se80, podemos crear un programa directamente o hacerlo a través de nuestro paquete, en este caso crearé un paquete y el programa lo guardaré en el paquete creado:
En la lista desplegable escogemos paquete, escribimos el nombre del paquete y enter, nos pedirá crear el objeto:
Agregamos una descripción y crear:
Yo personalmente lo hago en la transacción se80..
FIN
Cambiar imagen logo SAP
Imagen incial:
Vamos a la transacción smw0 -> Búsqueda - > Ejecutar
Click en F5 (Crear), importar para seleccionar la ruta de la imagen y guardar:
Vamos a la transacción sm30, modificamos la tabla/vista SSM_CUST:
Modificamos el campo start_image por el objeto creado anteriormente y RESIZE_IMAGE en yes si queremos que la imagen se adapte a la pantalla y no para que sea en tamaño original:
Guardamos y entramos de vuelta:
Vamos a la transacción sm30, modificamos la tabla/vista SSM_CUST:
Modificamos el campo start_image por el objeto creado anteriormente y RESIZE_IMAGE en yes si queremos que la imagen se adapte a la pantalla y no para que sea en tamaño original:
Guardamos y entramos de vuelta:
lunes, 19 de enero de 2015
Agregar campos a la transacción ME21N ME22N ME23N
T-se38 copiamos el nombre del programa, marcamos atributos y luego click en visulalizar:
El exit MM06E005 es el deseado:
Para usar campos adicionales necesitamos definir estos campos en las siguientes estructuras basado en el requerimiento:
CI_EKKODB -> Cabecera
CI_EKPODB -> Posición
El guardado de los campos en las estructuras se va a demorar un poco, ya que las tablas ekpo y ekko se están actualizando.
El siguiente paso es habilitar los screen dependiendo de los requerimientos:
SAPMM06E 0101 CUSTSCR1 SAPLXM06 0101 --> Cabecera
EKKO_CI-PROYECTO -> Nombre campo proyecto
EKKO_CI-PAGA -> Nombre campo paga
SAPMM06E 0111 CUSTSCR1 SAPLXM06 0111 --> Posición
EKPO_CI-CODIGO -> Nombre campo codigo
EKPO_CI-NOMBRE -> Nombre campo nombre
EKPO_CI-DNI -> Nombre campo DNI
Para pasar los datos datos tenemos que habiliar los function exit basados en el requerimiento:
1 <b>EXIT_SAPMM06E_006</b> - Export Data to Customer Subscreen for Purchasing Document Header (PBO)
2<b>EXIT_SAPMM06E_008</b> - Import Data from Customer Subscreen for Header
<b>-> Item Screens :</b>
3<b>EXIT_SAPMM06E_016</b> - Export Data to Customer Subscreen for Item (PBO)
4<b>EXIT_SAPMM06E_018</b> - Import Data from Customer Subscreen for Item
Para guardar los datos en las tablas necesitamos habilitar EXIT_SAPMM06E_008 - "Import Data from Customer Subscreen for Purchasing Document Header" donde tu mueves los datos desde screenfileds a los campos de la estructura ( E_CI_EKKO) y EXIT_SAPMM06E_018 - "Import Data from Customer Subscreen for Purchasing Document Header" donde tu mueves lo datos desde screenfileds a los campos de la estructura ( E_CI_EKPO).
En EXIT_SAPMM06E_008 click en the include ZXM06U37 y poner el código :
E_CI_EKKO-PROYECTO = EKKO_CI-PROYECTO .
E_CI_EKKO-PAGA = EKKO_CI-PAGA .
En EXIT_SAPMM06E_018 click en the include ZXM06U40 y poner el código :
E_CI_EKPO-DNI = EKPO_CI-DNI .
E_CI_EKPO-CODIGO = EKPO_CI-CODIGO .
E_CI_EKPO-NOMBRE = EKPO_CI-NOMBRE .
Similarmente para leer los datos tenemos que habilitar EXIT_SAPMM06E_006 y EXIT_SAPMM06E_016.
En EXIT_SAPMM06E_016 click en the include ZXM06U36 y poner el código :
EKKO_CI-PROYECTO = I_CI_EKKO-PROYECTO .
EKKO_CI-PAGA = I_CI_EKKO-PAGA .
En EXIT_SAPMM06E_006 click en the include ZXM06U41 y poner el código :
EKPO_CI-NOMBRE = I_CI_EKPO-NOMBRE.
EKPO_CI-DNI = I_CI_EKPO-DNI .
EKPO_CI-CODIGO = I_CI_EKPO-CODIGO .
Guardamos y activamos, nos debe quedar así:
Vamos a t-me22n, podemos que nos aparecen los campos que ingresamos en los screens:
Guardamos, para verificar que se guardaron los datos vamos a las tablas ekko y ekpo:
FIN..
Suscribirse a:
Entradas (Atom)