• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
#CAP  ·  #CDS  ·  #SAP BTP  ·  Destination Configuration  ·  Extension Suite  ·  SAP Cloud SDK  ·  Technical Articles

Conexión de destino de correo local mediante SAP Cloud SDK JavaScript versión 3 en SAP CAP

By s4pcademy 


Hola comunidad SAP.

Esta publicación de blog proporcionará una solución para muchas personas al desarrollar su aplicación comercial.

¿Cómo conectar el destino BTP de SAP en las instalaciones a través de una aplicación NodeJS utilizando el CAP de programación de aplicaciones en la nube?

Las soluciones a estos problemas fueron exitosas para escenarios por Joachim van Praet ya sea creando nuestro propio destino en BTP usando proveedores SMTP como Mailtrapque no era adecuado para nuestro caso de uso porque no es una solución local.

Otra solución proporcionada por Niklas Miroll está abordando el escenario a través de Fundición en la nube BTP usando Java con éxito, pero nuestra pila tecnológica era Javascript / NodeJS.

Para encontrar una solución, he consultado el anuncio de marika marszalkowski y esta sección de el cargo sobre las actualizaciones más recientes me fascinó.

Mandando correos electrónicos

Recientemente lanzamos una funcionalidad experimental para enviar correos electrónicos contra destinos SAP BTP de tipo «CORREO».
En la versión 3, lo haremos disponible para uso productivo.
Puedes encontrar más detalles en el documentación por correo.

Después de leer la documentación y entenderla, creé un nuevo proyecto para probar esta característica. Y con una configuración simple, ahora puede conectar sus servidores de correo locales con éxito gracias a los maravillosos desarrolladores del equipo SAP Cloud SDK.

Avancemos paso a paso para mostrar cómo realizarlo en una aplicación CAP simple desde cero.

1.Requisitos: servicios BTP necesarios en la configuración de la cuenta

Estos son servicios gratuitos en BTP, lo que significa que todos pueden probar lo que hacemos con una cuenta de prueba:

  • Servicio de Autorización y Gestión de Confianza
  • Servicio de Destino
  • Servicio de Conectividad

IDE para hacer que nuestra aplicación funcione se está ejecutando en Estudio de aplicaciones empresariales de SAP.

También necesitamos generar claves de instancia de servicio para cada uno de esos servicios para probar nuestra aplicación. Verifique la imagen a continuación sobre cómo crear una clave de instancia de servicio a popa

He generado esos servicios y claves de servicio con una convención de nomenclatura de la siguiente manera. El primer parámetro es el nombre de la instancia del servicio, el segundo parámetro es la clave de la instancia del servicio. Los he creado en BTP como puede ver el servicio de Autorización y Administración de Confianza a continuación, y completé el resto.

correo-xsuaa , correo-xsuaa-clave

correo-destino , correo-destino-clave

conectividad de correo, clave de conectividad de correo

Configuración%20up%20BTP%20Servicio%20Instancia%20y%20Servicio%20Clave%20en%20BTP%20Cabina

Figura 1 : Configuración de instancia de servicio BTP y clave de servicio en BTP Cockpit: haga clic para ampliar

Es muy importante manejar la configuración del destino, en este ejemplo estamos usando el servidor SMTP para Gmail y su configuración es la siguiente en nuestro Destino BTP.

Con la pestaña ‘Nueva propiedad’, puede agregar más propiedades o eliminar las adicionales que no sean necesarias para su configuración. El destino al que está llamando debe ser tipo ‘CORREO’ y debe ser configurado correctamente.

Aquí hay un ejemplo para ti:

Figura 2 : Configuración de destino SMTP en subcuenta BTP: haga clic para ampliar

2. Crear un nuevo proyecto

Abra Business Application Studio. Haga clic en el panel superior izquierdo resaltado en rojo>Archivo>Nuevo proyecto a partir de plantilla.

Figura 3 : Configuración inicial del proyecto en SAP Business Application Studio: haga clic para ampliar

Luego elija Proyecto CAP y haga clic en Iniciar.

Figura 4 : Elegir el proyecto CAP proporcionará el tiempo de ejecución de desarrollo necesario

Establezca la configuración de su proyecto como se muestra a continuación y haga clic en Finalizar.

Figura 5 :Adición de características mínimas para ejecutar el proyecto

3) Complete el proyecto con paquetes y agregue una lógica personalizada

archivo paquete.json

Tenemos un proyecto vacío con una configuración de red troncal. Una carpeta db vacía, una carpeta srv vacía, un archivo package.json y un archivo mta.yaml que son importantes. Los llenaremos paso a paso.

  • Vaya al archivo package.json. Abra la terminal desde Terminal > Nueva Terminal y descargue las dependencias generadas por CAP Wizard con
npm install​
  • Hemos instalado paquetes pregenerados, pero necesitamos agregar 4 paquetes más para que nuestros servicios BTP y nuestro servicio de correo funcionen. Estos paquetes se pueden instalar consecutivamente a través de estos comandos
npm install @sap-cloud-sdk/mail-client
npm install @sap-cloud-sdk/connectivity
npm install @sap/xssec​
npm install passport

El paquete de cliente de correo es el paquete más nuevo de Sap Cloud SDK que proporciona la configuración necesaria para el manejo de correo local. El paquete de conectividad es necesario para manejar la conectividad con el destino local. Xssec y el pasaporte son necesarios para manejar la autenticación.

  • Para llamar a nuestro destino, debemos agregar los detalles de nuestro destino al archivo package.json. Este cds requiere que el bloque se agregue después normas bloque al paquete.json, al final del archivo paquete.json. Aquí está el archivo completo package.json también para su comodidad.
"cds": {
    "requires": {
      "[hybrid]": {
        "auth": {
          "kind": "xsuaa"
        },
        "mailService": {
          "kind": "rest",
          "credentials": {
            "destination": "mail_destination",
            "forwardAuthToken": true
          }
        }
      }
    }
  }
{
  "name": "mail-on-premise",
  "version": "1.0.0",
  "description": "A simple CAP project.",
  "repository": "<Add your repository here>",
  "license": "UNLICENSED",
  "private": true,
  "dependencies": {
    "@sap-cloud-sdk/connectivity": "^2.14.0",
    "@sap-cloud-sdk/mail-client": "^2.14.0",
    "@sap/cds": "^6",
    "@sap/xssec": "^3.2.17",
    "express": "^4",
    "passport": "^0.6.0"
  },
  "devDependencies": {
    "sqlite3": "^5.0.4"
  },
  "scripts": {
    "start": "cds run"
  },
  "engines": {
    "node": "^16.15"
  },
  "eslintConfig": {
    "extends": "eslint:recommended",
    "env": {
      "es2020": true,
      "node": true,
      "jest": true,
      "mocha": true
    },
    "globals": {
      "SELECT": true,
      "INSERT": true,
      "UPDATE": true,
      "DELETE": true,
      "CREATE": true,
      "DROP": true,
      "CDL": true,
      "CQL": true,
      "CXL": true,
      "cds": true
    },
    "rules": {
      "no-console": "off",
      "require-atomic-updates": "off"
    }
  },
  "cds": {
    "requires": {
      "[hybrid]": {
        "auth": {
          "kind": "xsuaa"
        },
        "mailService": {
          "kind": "rest",
          "credentials": {
            "destination": "mail_destination",
            "forwardAuthToken": true
          }
        }
      }
    }
  }
}

carpeta de base de datos

  • Crea un archivo llamado correo.cds dentro de la carpeta db con la siguiente configuración
namespace test.mail;

action sendmail() returns String;​

carpeta srv

  • Crea una diferente correo.cds archivo dentro de la carpeta srv. Llame al archivo db con este servicio simple
using test.mail as my from '../db/mail';

service MailService {
    action sendmail();
}

  • Crear correo.js archivo dentro de la carpeta srv. Estamos agregando nuestra lógica personalizada aquí y cliente de correo configuración.
const { sendMail } = require('@sap-cloud-sdk/mail-client');

module.exports = srv =>
  srv.on("sendmail", async (req) => {
    const mailConfig = {
      to: 'ahmet.demirlicakmak@aarini.com',
      subject: 'Test On Premise Destination',
      text: 'If you receive this e-mail, you are successful.'
    };
    sendMail({ destinationName: 'mail_destination' }, [mailConfig]);
  });​

raíz del proyecto

  • Crear un prueba.http archivo en la raíz del proyecto y complételo como se muestra a continuación.
### // Check mail
POST http://localhost:4004/mail/sendmail
Content-Type: application/json
{}

4) Conéctese a sus servicios BTP en perfil híbrido

  • Probaremos el envío de correo electrónico en perfil híbrido. Nuestro razonamiento está claramente definido en Capire La documentación y el razonamiento detrás de su uso es el siguiente:
  1. Ahorro de tiempo y esfuerzo: Podemos probar nuevas funciones localmente
  2. Particularmente seleccionando servicios individuales o combinados: Aunque es posible que necesitemos definir muchos servicios en la implementación, en el enfoque híbrido tenemos flexibilidad para usar solo los que nos interesan.

Para vincular nuestras instancias de servicio a nuestra aplicación, abra la terminal y vincule cada una de las instancias de servicio a continuación paso a paso.

cds bind -2 mail-xsuaa:mail-xsuaa-key
cds bind -2 mail-destination:mail-destination-key
cds bind -2 mail-connectivity:mail-connectivity-key

5) Paso final: pruebe su aplicación

Inicie su aplicación con enlaces de instancia de servicio con comando

cds watch --profile hybrid

Vaya a su archivo test.http y haga clic en Enviar solicitud sombreada en gris.

Figura 6: Herramienta CAP simple para enviar solicitudes HTTP

Ahora revise su correo electrónico. Queremos recibir un correo electrónico con el asunto y el texto que haya completado en el archivo mail.js al instante.

Figura 7: Abra la dirección de correo electrónico proporcionada en el archivo mail.js

6. Conclusión

Si ha realizado un seguimiento con éxito, ha recibido un correo electrónico de su destino SAP BTP On-Premise utilizando SAP Cloud SDK y CAP.

En resumen, aprendió cómo configurar un proyecto CAP simple, consumir los servicios BTP necesarios en modo híbrido, cómo se usa SAP Cloud SDK con CAP y cómo conectar servidores de correo locales.

Siéntase libre de compartir y comentar esta publicación para solucionar problemas cuando sea necesario. Encuentre los recursos sobre SAP CAP y SAP Cloud SDK en los siguientes temas y asegúrese de seguirlos para recibir notificaciones con los últimos casos de uso:

Para la programación de aplicaciones en la nube, haga clic aquí

Para SAP Cloud SDK: haga clic aquí




CAPCloudConexióncorreodestinoJavaScriptlocalmedianteSAPSDKversión

Artículos relacionados


#signavio  ·  labstalk  ·  Personal Insights
SAP LabsTalk – Ep02 – 2023: Optimización de procesos comerciales para experiencias de cliente perfectas
#analytics  ·  Product Information  ·  SAP Analytics Cloud Product Updates  ·  SAP Analytics Cloud Release Notes  ·  What's new
Novedades en SAP Analytics Cloud Release 2023.03
#Google Cloud Platform  ·  #kubernetes  ·  Business Trends
Solicitudes de compra visuales: SAP Build Apps y S/4HANA Cloud
reCAP y UI5con 2023 | ¡Proponga su tema!
Previo
Uso del modelado de escenarios para construir la fuerza laboral del futuro
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.