Tips and Tricks for the ABAP® Programming Language
ZMESSAGE – Sending a SAPOffice message
This reports does send a message SapOffice.
Parameters:
p_line1(70) type c obligatory,
p_line2(70) type c,
p_line3(70) type c,
p_title like sood1-objdes,
p_user like sy-uname obligatory.
Output:
message SapOffice
ABAP™-Source-Code
You can copy and paste the source code directly into the ABAP™-Workbench.
REPORT ZMESSAGE LINE-SIZE 250. "yyyymmdd, Release x.x
*
********************** HEADER **************
*
* Copyright (c) 2001 by Angell, 44318 Anywhere, http://xxxxx
* or: Copyright (c) 2001 by A.L. from I.
*
* You can use or modify this report for your own work as long
* as you don't try to sell or republish it.
* In no event will the author be liable for indirect, special,
* Incidental, or consequental damages (if any) arising out of
* the use of this report.
*//////////////////////////////////////////////////////////////////////*
* Append your coding here ...
parameters: p_line1(70) type c obligatory,
p_line2(70) type c,
p_line3(70) type c,
p_title like sood1-objdes,
p_user like sy-uname obligatory.
START-OF-SELECTION.
DATA: I_RECEIVERS LIKE SOOS1 OCCURS 0 WITH HEADER LINE,
I_OBJCONT LIKE SOLI OCCURS 0 WITH HEADER LINE,
I_OBJHEAD LIKE SOLI OCCURS 0 WITH HEADER LINE,
R_OBJECT_HD_CHANGE LIKE SOOD1 OCCURS 0 WITH HEADER LINE.
R_OBJECT_HD_CHANGE-OBJDES = p_title. "Title
R_OBJECT_HD_CHANGE-OBJNAM = TEXT-000. "Document name
R_OBJECT_HD_CHANGE-OBJLA = sy-langu. "Lenguaje
R_OBJECT_HD_CHANGE-OBJSNS = 'P'. "Atributos del objeto, Privado
R_OBJECT_HD_CHANGE-VMTYP = 'F'. "Tipe
R_OBJECT_HD_CHANGE-SKIPS = ' '. "Procesar 1º dynpro no visible
R_OBJECT_HD_CHANGE-ACNAM = SY-UNAME.
I_RECEIVERS-RECESC = 'B'. "Sap User
I_RECEIVERS-RECNAM = p_user. "Destiny user
I_RECEIVERS-SNDEX = 'X'.
APPEND I_RECEIVERS.
I_OBJCONT-LINE = p_line1.
APPEND I_OBJCONT.
CLEAR I_OBJCONT.
I_OBJHEAD-LINE = I_OBJHEAD-LINE + 1.
IF NOT P_LINE2 IS INITIAL.
I_OBJCONT-LINE = p_line2.
APPEND I_OBJCONT.
CLEAR I_OBJCONT.
I_OBJHEAD-LINE = I_OBJHEAD-LINE + 1.
ENDIF.
IF NOT P_LINE3 IS INITIAL.
I_OBJCONT-LINE = p_line3.
APPEND I_OBJCONT.
CLEAR I_OBJCONT.
I_OBJHEAD-LINE = I_OBJHEAD-LINE + 1.
ENDIF.
APPEND I_OBJHEAD.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
OBJECT_HD_CHANGE = R_OBJECT_HD_CHANGE
OBJECT_TYPE = 'RAW'
OWNER = SY-UNAME
TABLES
OBJCONT = I_OBJCONT
OBJHEAD = I_OBJHEAD
RECEIVERS = I_RECEIVERS
EXCEPTIONS
ACTIVE_USER_NOT_EXIST = 1
COMMUNICATION_FAILURE = 2
COMPONENT_NOT_AVAILABLE = 3
FOLDER_NOT_EXIST = 4
FOLDER_NO_AUTHORIZATION = 5
FORWARDER_NOT_EXIST = 6
NOTE_NOT_EXIST = 7
OBJECT_NOT_EXIST = 8
OBJECT_NOT_SENT = 9
OBJECT_NO_AUTHORIZATION = 10
OBJECT_TYPE_NOT_EXIST = 11
OPERATION_NO_AUTHORIZATION = 12
OWNER_NOT_EXIST = 13
PARAMETER_ERROR = 14
SUBSTITUTE_NOT_ACTIVE = 15
SUBSTITUTE_NOT_DEFINED = 16
SYSTEM_FAILURE = 17
TOO_MUCH_RECEIVERS = 18
USER_NOT_EXIST = 19
X_ERROR = 20
OTHERS = 21.
IF SY-SUBRC <> 0.
* MESSAGE I000. "Error en el envío de mensaje al responsable
WRITE: /1 'Error en el envío de mensaje al responsable'.
LEAVE SCREEN.
ENDIF.
************************************************************************
******************* END OF PROGRAM *************************************
