Como realizar un Select con SUM en ABAP

En este post nos vamos a centrar en como realizar desde código ABAP un select a una tabla de SAP usando SUM, este post está contenido en nuestro curso programador – analista ABAP IV para SAP, el cual puedes consultar pinchando aqui.

Algunas veces debemos hacer consultas a tablas para obtener la suma de campos númericos, en especifico los referidos a campos monetarios y cantidades, pero ¿cómo realizamos dicha consulta? pues para explicarlo aplicaremos un ejemplo:

Al igual que con los comandos de SQL, vamos a realizar un SELECT con el empleo del comando SUM, el cual permite sumar todos los valores del campo indicado, siguiendo las condiciones puestas y guardándolo en una variable.

Como ejemplo tenemos lo siguiente:

SELECT SUM( hwbas ), SUM( hwste )
INTO (lv_hwbas, lv_hwste)
FROM BSET
WHERE bukrs = p_bukrs AND
gjahr = p_gjahr.

Podemos apreciar que en el ejemplo vamos a sumar 2 campos de la tabla BSET, para lo cual se han colocado como filtros la sociedad y el año, automáticamente el programa sumará los datos que cumplan con la consulta y devolverá dichos valores en las 2 variables que se encuentran dentro de los paréntesis (lv_hwbas, lv_hwste).

 

Si te ha gustado este articulo recuerda compartirlo para que llegue al mayor número de interesados!!




Mini tutorial sobre SOAP. Simple Object Access Protocol

En nuestro artículo de hoy desde AEPI (Asociacion Española de Programadores Informáticos) os presentamos un pequeño tutorial sobre SOAP, este artículo forma parte de nuestro curso de PHP avanzado y MYSQL

Es un protocolo que permite la comunicación entre aplicaciones a través de mensajes por medio de Internet. Es independiente de la plataforma, y del lenguaje. Esta basado en XML y es la base principal de los Web Services. Los mensajes SOAP son documento XML propiamente dicho, pero esto lo veremos más adelante cuando veamos un ejemplo de un mensaje SOAP.

Veamos como es la estructura básica del protocolo y la correspondiente explicación:

<?xml version=”1.0″?>
<soap:Envelope xmlns:soap=”http://www.w3.org/2001/12/soap-envelope”
Soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”>
<soap:Header>

</soap:Header>
<soap:Body>

<soap:Fault>

</soap:Fault>
</soap:Body>
</soap:Envelope>

Explicación del código anterior:

<?xml version=”1.0″?>

Como podemos ver en esta linea SOAP es un documento XML, y como tal, debe comenzar con el tag <?xml….?> y la versión correspondiente.

<soap:Envelope

Aquí se indica que comienza el envelope (sobre) del mensaje
xmlns:soap = “http://www.w3.org/2001/12/soap-envelope”

Un mensaje SOAP debe contener siempre un elemento envelope asociado con el namespace (espacio de nombres)http://www.w3.org/2001/12/soap-envelope Soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”>
En esta línea lo que se hace es indicar donde se encuentran definidos los tipos de datos utilizados en el documento.

<soap:Header>
Esta línea indica el comienzo del Header (encabezado). En esta sección se incluye información específica del mensaje, como puede ser la autenticación.

</soap:Header>

Como todo documento XML los tags que son abiertos deben ser cerrados, esta línea indica la finalización del Header(encabezado).

<soap:Body>

Aquí comienza el cuerpo del mensaje, en esta sección se incorpora toda la información necesaria para el nodo final.
Por ejemplo, los parámetros para la ejecución, o la respuesta a una petición.

<soap:Fault>

Cualquier tipo de fallo que se produzca será notificado en esta sección. La cual esta contenida dentro del cuerpo del mensaje.
</soap:Fault>

Cierre de la sección Fault.
</soap:Body>

Indica el final del cuerpo del mensaje.
</soap:Envelope>
Fin del mensaje SOAP.

 

Como diría aquel eso es todo amigos, si te ha gustado este artículo compártelo por favor y recuerda seguir leyéndonos!!




Tipos de datos en ABAP

Después de un largo parón veraniego volvemos con muchas novedades, tenemos nuevos cursos en nuestro catalogo y hemos actualizado otros. Vamos a empezar con una introduccion al lenguaje de programación ABAP perteneciente a SAP. Este post está incluido dentro de nuestro nuevo curso Analista – programador ABAP IV para SAP el cual estamos terminando de preparar. Recuerda compartir si te ha gustado el contenido de este artículo.

Estos son los tipos que pueden utilizarse al momento de la declaración de variables:

Ejemplo:

DATA VAR1 TYPE P.

Tipo Descripción Valor Inicial
C -> Character
N -> texto numérico
D Date YYYYMMDD -> fecha
T Time HHMMSS ->hora
X Byte (heXadecimal) -> valor hexadecimal
I Integer -> entero
P Packed número
F Floating Point Number
STRING String vacío
XSTRING Byte sequence (X string) vacío

También tenemos la posibilidad de inicializar la variable var1 con un valor por defecto usando la siguiente sintaxis:

DATA VAR1 TYPE I VALUE 10.

Por último recordad que las variables que definamos al principio de nuestro programa se considerarán globales, caso contrario es que sean declaradas dentro de métodos o subrutinas, en este caso tendrán visibilidad local.




Como usar Beans en JSP

En nuestro articulo de hoy trataremos sobre el uso de beans dentro de nuestras páginas jsp, este material está incluido dentro de nuestro Máster en desarrollo de aplicaciones web empresariales con Java EE.

Los famosos java beans que se utilizan en JavaEE, se pueden utilizar en jsp, las principales características son:

• Los JavaBeans son objetos Java que cumplen ciertas características en cuanto a su diseño.

• Se utilizan para reducir al máximo el código Java insertado en una página JSP. En lugar de meterlo directamente en el fichero JSP se mete en un objeto y éste se llama desde el JSP.

• Permite separar la lógica de ejecución (en el JavaBean) de la presentación (en el servlet generado)

Se encapsula el código Java en un objeto (JavaBean) y se instancia y usa con el JSP.
-Si se usa un JavaBean en una página habrá que definir la clase correspondiente, creando los métodos set y get para los atributos definidos

• Dentro del servlet generado se puede llamar a métodos de un JavaBean que se encarguen de realizar ciertas operaciones y el servlet muestra el resultado de las mismas

• Ventaja del traslado de la lógica a un JavaBean
– Separación de interfaz de la implementación

Ejemplo
1.- Clase beans
public class LenguajeBean {

private String nombre;
private String lenguaje;
public LenguajeBean() {}

public void setNombre(String nombre) {

this.nombre=nombre;
}

public String getNombre(){

return nombre;
}

public void setLenguaje(String lenguaje){

this.lenguaje=lenguaje;
}

public String getLenguaje() {

return lenguaje;
}

public String getcomentariosLenguaje (){

if (lenguaje.equals(“Java”)){
return “El rey de los lenguaje Orientados a objetos”;
}
else if (lenguaje.equals(“C++”)){
return “Demasiado complejo”;

} else if (lenguaje.equals(“Perl”)){
return “OK si te gusta el códigoincomprensible”;
}else {
return “Lo siento, no conozco ellenguaje ” + lenguaje ;
}
}

}

2.- pagina html con un form y que solicita una pagina jsp.

beans jsp

3.- ejecutamos el jsp con el beans

beans jsp real




Paso por referencia de una tupla en C/C++

En nuestro artículo de hoy os mostraremos como pasar por referencia un tupla en c/c++

Sea la tupla t_trol:

typedef struct trol{

int x,y;

int color;

 

}t_trol;

Se puede tener una función de inicialización con un puntero de tipo t_trol* como parámetro:

void init(t_trol*p)

{

p->x=rand()%800;

p->y=rand()%600;

p->color=rand()%256;

}

Y en alguna parte, la llamada:

t_trol t;

init(&t);    // paso de la dirección de la struct t_trol

En el caso de la tabla de punteros, no hay que olvidar asignar los punteros. En efecto, si se escribe por ejemplo:

t_trol* ALL[10];

int i;

for (i=0; i<10; i++){

init(ALL[i]);    // ¡ERROR!  ALL[i] NO ASIGNADO

}

provoca un error de ejecución, ALL[i] no tiene una dirección de memoria reservada. Por lo tanto, hay que añadir previamente la asignación de memoria (sea en el mismo sitio, o en cualquier otra parte en el programa):

for (i=0; i<10; i++){

ALL[i]=(t_trol*)malloc(sizeof(t_trol));

init(ALL[i]);    // OK,  ALL[i] ASIGNADO

}

 

Espero que este artículo te sea de utilidad o que simplemente te haya gustado, si es así compártenos¡¡¡