¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Generación de informe de interfaz para exportar datos de SAP y notificar errores por correo electrónico

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Hola amigos,

Estoy creando un informe de interfaz cuyo propósito es generar un archivo plano con datos del sistema SAP

y este debe ser colocado en alguna ubicación en el servidor de la aplicación.

Entonces, aquí está mi duda...

Se debe enviar una notificación por correo electrónico al usuario si ocurre alguno de los siguientes errores:

a) Fallo al exportar el archivo

b) Archivo duplicado existente

c) Parámetros faltantes en la exportación

Por favor, ayuda con esto.

Saludos cordiales,

Divya

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Appana,

Estoy escribiendo código para enviar correos electrónicos y no sé qué parámetros necesito pasar a esta FM.

POR FAVOR CORRÍGEME.

REPORT ZMAILEXAMPLE123.

DATA: g_rcode TYPE sy-subrc.

DATA: BEGIN OF gt_errmsg OCCURS 0,

g_msg(100) TYPE c,

END OF gt_errmsg.

OPEN DATASET 'nombre_archivo' FOR OUTPUT MESSAGE zmsg IN TEXT MODE ENCODING DEFAULT.

g_rcode = sy-subrc.

IF g_rcode <> 0.

gt_errmsg-g_msg = zmsg.

APPEND gt_errmsg.

ENDIF

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA =

  • PUT_IN_OUTBOX = ' '

  • COMMIT_WORK = ' '

  • IMPORTING

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

TABLES

PACKING_LIST =

  • OBJECT_HEADER =

  • CONTENTS_BIN =

  • CONTENTS_TXT =

  • CONTENTS_HEX =

  • OBJECT_PARA =

  • OBJECT_PARB =

RECEIVERS =

  • EXCEPTIONS

  • TOO_MANY_RECEIVERS = 1

  • DOCUMENT_NOT_SENT = 2

  • DOCUMENT_TYPE_NOT_EXIST = 3

  • OPERATION_NO_AUTHORIZATION = 4

  • PARAMETER_ERROR = 5

  • X_ERROR = 6

  • ENQUEUE_ERROR = 7

  • OTHERS = 8

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

SALUDOS,

DIVYA

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi,

Primero captura los errores en una tabla interna mientras creas el archivo en el servidor de la aplicación como:

data : begin of i_errmsg occurs 0,
        x_msg(100) type c,
       end of i_errmsg.

OPEN DATASET x_file FOR output 
                            MESSAGE l_msg
                       IN text MODE ENCODING DEFAULT.
  x_RCODE = sy-subrc. 
  IF x_RCODE <> 0.
    <b>i_errmsg-x_msg = l_msg.
    append i_errmsg.</b>  endif.

Luego usa la tabla interna i_errmsg para enviar detalles del mensaje de error.

Luego usa FM SO_NEW_DOCUMENT_ATT_SEND_API1 para enviar un correo con detalles del error.

Revisa este enlace para ver un código de ejemplo:

/people/thomas.jung3/blog/2004/09/07/sending-e-mail-from-abap--version-46d-and-lower--api-interface

Mira la siguiente FM para enviar correos, tiene dos parámetros de importación y un parámetro de tabla.

<b>pasa el nombre de usuario al parámetro X_USNAM

pasa el texto del encabezado del correo al parámetro X_MAIL_HEADER

pasa mensajes de error a la tabla de parámetros MAIL_CONTENT y llama a esta FM, funcionará</b>

FUNCTION z_mail_user.
*"----------------------------------------------------------------------
*"*"Interfaz local:
*" IMPORTING
*" REFERENCE(X_USNAM) TYPE USNAM
*" REFERENCE(X_MAIL_HEADER) TYPE SO_OBJ_DES
*" TABLES
*" MAIL_CONTENT STRUCTURE SOLISTI1
*" EXCEPTIONS
*" INVALID_PARAM
*" USER_NOT_FOUND
*"----------------------------------------------------------------------


DATA:docdata LIKE sodocchgi1,
objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
objbin
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

DS,

Si estás descargando/escribiendo los datos de SAP, entonces puedes crear una notificación.

como esto.

abrir datos ----


basado en el SUBRC

EMAIL.

saludos

Prabhu

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi,

primero captura los errores en una tabla interna mientras creas el archivo en el servidor de la aplicación como:

data : begin of i_errmsg occurs 0,
        x_msg(100) type c,
       end of i_errmsg.

OPEN DATASET x_file FOR output 
                            MESSAGE l_msg
                       IN text MODE ENCODING DEFAULT.
  x_RCODE = sy-subrc. 
  IF x_RCODE <> 0.
    <b>i_errmsg-x_msg = l_msg.
    append i_errmsg.</b>  endif.

luego utiliza la tabla interna i_errmsg para enviar detalles del mensaje de error.

luego usa FM SO_NEW_DOCUMENT_ATT_SEND_API1 para enviar un correo con detalles del error

verifica este enlace para ver un código de muestra:

/people/thomas.jung3/blog/2004/09/07/sending-e-mail-from-abap--version-46d-and-lower--api-interface

Ver a continuación FM para enviar correos, tiene dos parámetros de importación y un parámetro de tabla.

<b>pasa el nombre de usuario al parámetro X_USNAM

pasa el texto del encabezado del correo al parámetro X_MAIL_HEADER

pasa mensajes de error al parámetro de tabla MAIL_CONTENT y llama a esta FM, funcionará</b>

FUNCTION z_mail_user.
*"----------------------------------------------------------------------
*"*"Interfaz local:
*" IMPORTING
*" REFERENCE(X_USNAM) TYPE USNAM
*" REFERENCE(X_MAIL_HEADER) TYPE SO_OBJ_DES
*" TABLES
*" MAIL_CONTENT STRUCTURE SOLISTI1
*" EXCEPCIONES
*" INVALID_PARAM
*" USER_NOT_FOUND
*"----------------------------------------------------------------------


DATA:docdata LIKE sodocchgi1,
objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
objbin LIKE solisti1 OCCURS 10 WITH 
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?