• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram

S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram
Technical Articles

Una calculadora basada en OData | Blogs de SAP

By s4pcademy 


Aquellos de ustedes que hayan asistido al curso de capacitación SAP BC400, que es la introducción al desarrollo ABAP, comenzarán escribiendo un programa que actúa como una simple calculadora.

Se basa en PARÁMETROS ABAP para entradas, declaraciones ABAP WRITE para salidas, y está diseñado para mostrar las construcciones básicas de la mayoría de los lenguajes de programación, introduciendo los conceptos de modularización, flujos de programas condicionales, manejo de errores, etc.

En el tranquilo período de fin de año, decidí ver si podía hacer algo similar con conceptos más modernos.

El front-end tenía que estar basado en UI5, por lo que la lógica del back-end debía estar basada en OData.

Ya tenía un pequeño proyecto SEGW que usaba para generar estados de mosaico aleatorios de Fiori Launchpad, así que agregué una nueva entidad a ese proyecto. La entidad tiene tres propiedades clave, dos enteros para los operandos y una cadena de caracteres para el operador, y una propiedad para el resultado y cualquier mensaje de error.

El repositorio de GitHub se puede encontrar en https://github.com/michaelnicholls/ux100.git.

La lógica para GET_ENTITYSET es recorrer una lista de operadores válidos y ejecutar mi método CALC con ese operador y 2 operandos aleatorios.

La lógica para GET_ENTITY es simplemente ejecutar el método CALC.

La aplicación UI5 se creó a mano, ya que no había una plantilla obvia. Consta de dos s para los operandos y un para el operador. El contenido de este grupo se deriva de una propiedad que devuelve la llamada OData, que contiene una lista de operadores válidos.

Mi segundo intento para el servicio OData fue crear una vista de CDS que acepte los tres parámetros y devuelva el resultado basado en una instrucción CASE anidada.

La vista se basa en una declaración de selección de la tabla T000, ya que esta era la única tabla en la que podía pensar que sabía que siempre tendría al menos un valor.

@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'entity'
@OData.publish: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
    serviceQuality: #X,
    sizeCategory: #S,
    dataClass: #MIXED
}
define view entity ZCALC  with parameters
    op1 :int4,
    op2 :int4,
    op  :char1
  as select from t000
{
//  key $parameters.op1 as operand1,
//  key $parameters.op2 as operand2,
//  key $parameters.op  as operator,
    key '' as x,
      case $parameters.op
          when '+' then
        $parameters.op1 + $parameters.op2
          when '-' then
        $parameters.op1 - $parameters.op2
          when '*' then
        $parameters.op1 * $parameters.op2
          when '/' then
          case  $parameters.op2 when  0 then 0
//
// handle division by 0
//
          else division($parameters.op1, $parameters.op2, 2 )
          end
           when '%' then
          case  $parameters.op2 when  0 then 0
//
// handle percentage of 0
//


          else div(100 * $parameters.op1, $parameters.op2 )
          end
        else
          0
        end           as res,

      case $parameters.op
        when '+' then
      ''
        when '-' then
      ''
        when '*' then
      ''
        when '/' then
        case $parameters.op2 when 0 then 'No division by 0'
        else
      ''
      end
        when '%' then
        case $parameters.op2 when 0 then 'No percentage of 0'
        else
      ''
      end
      else
        'Bad operator'
      end             as error

}
where
  mandt="000"



Source link


basadaBlogscalculadoraODataSAPuna

Artículos relacionados


Product Information
SAP S/4HANA Cloud 2302亮点前瞻:身份和访问管理(IAM),安全 | Blogs de SAP
automation  ·  CF CLI  ·  infrastructureascode  ·  ioc  ·  kubectl  ·  Kubernetes  ·  Technical Articles  ·  Terraform
Automatización de la configuración de SAP BTP con Terraform: infraestructura como código para entornos Cloud Foundry y Kyma
Technical Articles
Extienda los procesos comerciales de SAP S/4HANA en SAP BTP, Kyma Runtime

Deja tu comentario Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

Integración de la fuerza laboral desde el servicio de integración de datos maestros a SAP S/4HANA Cloud - Parte 2
Previo
Cómo diseña RTI International para la equidad, la diversidad y la inclusión utilizando SAP Scenes
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.
Cookies Para que este sitio funcione adecuadamente, a veces instalamos en los dispositivos de los usuarios pequeños ficheros de datos, conocidos como cookies. La mayoría de los grandes sitios web también lo hacen.
Aceptar
Cambiar ajustes
Configuración de Cookie Box
Configuración de Cookie Box

Ajustes de privacidad

Decida qué cookies quiere permitir. Puede cambiar estos ajustes en cualquier momento. Sin embargo, esto puede hacer que algunas funciones dejen de estar disponibles. Para obtener información sobre eliminar las cookies, por favor consulte la función de ayuda de su navegador. Aprenda más sobre las cookies que usamos.

Con el deslizador, puede habilitar o deshabilitar los diferentes tipos de cookies:

  • Bloquear todas
  • Essentials
  • Funcionalidad
  • Análisis
  • Publicidad

Este sitio web hará:

Este sitio web no:

  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
  • Recuerde sus detalles de inicio de sesión
  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
Guardar y cerrar