martes, 28 de diciembre de 2021

EJEMPLOS CÓDIGO ABAP


Sap proporciona, a través de varias transacciones, un autentico repositorio de ejemplos de código, que nos puede sacar de algún apuro en muchas ocasiones, además de “darnos ideas” respecto a opciones que tenemos disponibles con el lenguaje, posibilidades de programación, opciones de ergonomía o simplemente ejemplos totalmente funcionales que nos pueden dar una noción de como resolver un determinado requerimiento o problema a la hora de programar en Abap. Las mas interesantes son:
  • Transacción ABAPDOCU: completa documentación del lenguaje de programación Abap, que incluye ejemplos de código de los elementos más importantes, en forma de árbol estructurado.
  • Transacción BIBS: ejemplo de configuración de superficies. Es una guía de estilo enfocada a la configuración de los elementos de entrada/salida del lenguaje, de cara a la interacción con el usuario en las pantallas de selección (principalmente) y los dynpros.
  • Transacción DWDM: centro de presentaciones Enjoy. Galería de reports con ejemplos orientados a la programación orientada a objetos, dentro del estilo Enjoy principalmente.
  •  Transacción SE83 Reuse Library: transacción muy interesante que combina, agrupado por áreas, el acceso a la documentación y la ayuda Online de Sap, con ejemplos de código, dándonos acceso directo a los reports de ejemplo que Sap tiene disponibles en el repositorio.
  • Transacción GUIT: suite de ejemplos que nos muestra un programa de forma secuencial, principalmente orientados a las programación con listas.
  • Transacción GRAL: galería de ejemplos para trabajar con gráficos en Abap (presentación de resultados con gráficos de barras, de tarta, etc).
  • Transacción SE30 Tip and Tricks: interesante utilidad para analizar tiempos de ejecución de los reports y analizar los consejos de programación que nos ofrece Sap para mejorar el rendimientos de los programas.
Otra utilidad que nos puede sacar de algún apuro en la búsqueda de ejemplos es el report RPR_ABAP_SOURCE_SCAN. Nos permite buscar sentencias en el código fuente de los programas Abap. Por ejemplo, buscamos un ejemplo de uso de determinada sentencia. Igualmente, con la transacción S_ALR_87101287  podemos buscar en un determinado programa sin acceder a el con las transacciones de modificación (SE38, SE51, etc).

No solo de ABAP vive el ecosistema empresarial, sino de toda clase de aplicaciones alguna vez imaginadas. 

Te dejo esta lista con 10 repositorios que todo #developer debería conocer. Todos ellos te ayudarán de alguna forma y te harán crecer y mejorar. 💪

1. Free Programming Books
👌 Este repo tiene que ser el primero. Por algo es de los repositorios con más ⭐️ de Github. No solo encontrarás libros, también otros recursos o videos.
https://lnkd.in/dBaC-MCf

2. Developer Roadmap
Otro de mis repositorios favoritos. ¿Quieres saber por dónde empezar tu camino de #web #dev? Aquí tienes hojas de ruta con las tencnologías y conceptos que debes saber para dominar un “camino” concreto: #frontend#backend#DevOps#Android
https://lnkd.in/ddV5PSxb

3. Build your own X
Crea tu propio #react, o tu propia base de datos, o tu propia librería de torrent. Si realmente quieres aprender cómo funciona algo.. ¡créalo! Aprende haciendo. Hay muchos proyectos de todo tipo.
https://lnkd.in/dZPUmcH4

4. Design Resources for Developers
Este repositorio tiene una lista selecta de recursos de #UI y #diseño de fotos, plantillas web, #CSS, herramientas y mucho más. Todo de forma gratuita para empezar con tu proyecto de #desarrollo web.
https://lnkd.in/dqGMMYus

5. System Design Primer
System Design Primer es un repositorio para #software #developers que te enseñará a diseñar sistemas a GRAN escala.
Puede ayudarte a preparar entrevistas en las que es requisito el diseño de sistemas escalables.
https://lnkd.in/dujXM4sa

6. OSSU Computer Science
Si lo que buscas es el conocimiento similar que te da un título en #informática, este repositorio es para ti. Es muy completo. Tiene una comunidad mundial de estudiantes.
https://lnkd.in/dDA4v7dP

7. Public Apis
Un clásico de clásicos, por Todd Motto. Un listado de #APIs que puedes usar de manera gratuita para tu proximo proyecto ordenadas por categorías.
https://lnkd.in/dpW2ETX3

8. Coding Interview University
#Coding #Interview #University empezó como una pequeña lista de recursos a seguir. Hoy es un plan completo de estudios de informática para convertirse en #ingeniero de #software. Tiene versión en español.
https://lnkd.in/dC6VBCKJ

9. Tech Interview Handbook
#Tech #Interview Handbook tiene todos lo que necesitas para petarlo en una entrevista técnica. Mucho material sobre cómo prepararse para codear, preguntas para hacerle al entrevistador, consejos de currículum, etc.
https://lnkd.in/dTJbK8As

10. Awesome
Otro de mis favoritos. No vas a poder con tanto contenido. Como su nombre indica, listas “impresionantes” con todo tipo de temas que van desde la informática hasta los juegos pasando por los negocios.
https://lnkd.in/dymNAjib

viernes, 17 de noviembre de 2017

Operadores C*


En la condición "c1 op c2", el operador relacional op entre las variables c1 y c2 puede ser cualquiera de las operaciones listadas abajo, pero c1 y c2 deben ser caracteres como (tipo C, STRING, N, D, T).

1. CO (contiene solo): 
c1 contiene solo caracteres desde el string c2.
Si c1 o c2 es del tipo C, la comparación toma en cuenta el largo total de la variable, incluyendo los espacios al final.
Si c1 es del tipo STRING y vacío, el resultado de la comparación es siempre positiva.
Si c2 es del tipo STRING y vacío, el resultado de la comparación es siempre negativa, a menos que c1 sea tambien un string vacío.
Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el offset del primer caracter en c1 que no está incluido en c2.
Si el resultado de la comparación es positivo, la variable SY-FDPOS contiene el largo de c1.
La comparación es sensible a minúsculas y mayúsculas.
Ejemplos:
'ABCDE' CO 'XYZ' es falso; SY-FDPOS = 0.
'ABCDE' CO 'AB' es falso; SY-FDPOS = 2.
'ABCDE' CO 'ABCDE' es verdadero; SY-FDPOS = 5.

2. CN (no solo contiene): 
"c1 CN c2" es equivalente a "NOT ( c1 CO c2 )".
c1 no solo contiene caracteres de c2.
Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter en c1 que no esta en c2.
Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el largo de c1.

3. CA (contiene cualquiera):
c1 contiene a lo menos un caracter de c2.
Si c1 o c2 es del tipo C, la comparación toma en cuenta el largo total de la variable, incluyendo los espacios al final.
Si c1 o c2 es del tipo STRING y vacío, el resultado de la comparación es siempre negativa.
Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter en c1 que esta en c2.
Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el largo de c1.
La comparación es sensible a minúsculas y mayúsculas.
Ejemplos:
'ABCDE' CA 'CY' es verdadero; SY-FDPOS = 2.
'ABCDE' CA 'XY' es falso; SY-FDPOS = 5.

4. NA (no contiene cualquiera): 
"c1 NA c2" es equivalente a "NOT ( c1 CA c2 )".
c1 no contiene caracteres de c2.

5. CS (contiene String): 
c1 contiene a c2.
Espacios sobrantes en c1 y c2 son ignorados si se trata de variables del tipo C.
Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter de c2 en c1.
Si el resultado de la comparación es negativo, la variable SY-FDPOS contiene largo de c1.
La comparación no es sensible a minúsculas y mayúsculas.
Ejemplos:
'ABCDE' CS 'CD' es verdadero; SY-FDPOS = 2.
'ABCDE' CS 'XY' es falso; SY-FDPOS = 5.
'ABAAA' CS 'AB ' es verdadero; SY-FDPOS = 0.
' ABC' CS ' AB' es verdadero; SY-FDPOS = 1.
'ABC DEF' CS ' ' es verdadero; but: SY-FDPOS = 0,
debido a que ' ' es interpretado como como espacio sobrante y se ignora.

6. NS (no contiene string): 
"c1 NS c2" es equivalente a "NOT ( c1 CS c2 )".
c1 no contiene a c2.

7. CP (contiene patrón):
El string completo c1 coincide con el patrón c2 (c1 "coincide con" c2).
El patrón c2 puede contener caracteres comunes y asteíscos '*' para cualquier string y '+' para cualquier caracter.
Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter de c2 en c1. El asterísco '*' al principio del patrón c2 es ignorado cuando se determina el valor de SY-FDPOS.
Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el largo de c1.
Ejemplos:
'ABCDE' CP '*CD*' es verdadero; SY-FDPOS = 2.
'ABCDE' CP '*CD' es falso; SY-FDPOS = 5.
'ABCDE' CP '++CD+' es verdadero; SY-FDPOS = 0.
'ABCDE' CP '+CD*' es falso; SY-FDPOS = 5.
'ABCDE' CP '*B*D*' es verdadero; SY-FDPOS = 1.

El caracter '#' tiene un significado especial. Sirve como símbolo de escape e indica que cada caracter siguiente debería ser comparado "exactamente".
Esto permite buscar por:

- caracteres en mayúsculas o minúsculas
ejemplo: c1 CP '*#A#b*'
- buscar caracteres '*', '+' como tales
ejemplo: c1 CP '*#**' o c1 CP '*#+*'
- el símbolo de escape
ejemplo: c1 CP '*##*'
- espacios al final de c1
ejemplo: c1 CP '*# '

Ejemplos:
'ABC' CP 'ABC ' es verdadero,
'ABC ' CP 'ABC' es verdadero,
pero
'ABC' CP 'ABC+' es falso,
'ABC' CP 'ABC# ' es falso,

La comparación no es sensible a minúsculas y mayúsculas.

8. NP (no contiene patrón): 
"c1 NP c2" es equivalente a "NOT ( c1 CP c2 )" c1 no coincide con c2.

jueves, 23 de febrero de 2017

Mascara de Edición en SmartForms

Para modificar la manera como se visualiza resultados en nuestros smartforms
la manera de modificarlos es selecciona un “texto” y en la pestaña “propiedades generales” da click en el botón
“Editar txt” 
Seleccione el menú Pasar a – Cambiar editor

   
Para utilizar el Editor Estandar y no el Editor Word
Aquí es donde podrás modificar los textos con los comandos para darle presentaciones deseadas
Nota: se pueden usar más de un comando a la vez como (SE0) que quita el signo y además los decimales
     
Al terminar solo oprime botón “Back” Y grabar 
TABLA DE COMANDOS
ACCION
ORIGINAL
COMANDO
RESULTADO
Justificar a la derecha:
Smart
&campo(15R)&
Smart
Compresión de texto (espacio entre caracteres):
10 0 0 0 0 0
&campo(C)&
1000000
Mostrar decimales: Ejemplo: 1000 Length 10
    
&campo(.2)&
1,000.00
No mostrar valores nulos:
0.00
&campo(I)&
    
No mostrar ceros a la izquierda:
001
&campo(Z)&
1
No mostrar signo:
100.00-
&campo(S)&
100.00
No mostrar separador:
1,000.00
&campo(T)&
1000.00
Llenar con caracteres:
    
&campo(F0)&
&campo(F*)&
00100.00
**100.00
Números flotantes: Ejemplo: 123456.78 TYPE fltp
+1.23456780000000E+05
&campo(E6)&
&campo(E)&
+123456.780000000
+0.12345678000000E+06