SAP SO_OBJECT_SEND Function Module for Send in SAPoffice and Externally
SO_OBJECT_SEND is a standard so object send SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Send in SAPoffice and Externally processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for so object send FM, simply by entering the name SO_OBJECT_SEND into the relevant SAP transaction such as SE37 or SE38.
Function Group: SOA2
Program Name: SAPLSOA2
Main Program: SAPLSOA2
Appliation area: S
Release date: N/A
Mode(Normal, Remote etc): Remote-Enabled
Update:

Function SO_OBJECT_SEND pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'SO_OBJECT_SEND'"Send in SAPoffice and Externally.
EXPORTING
* FOLDER_ID = ' ' "Existing object: Folder ID
* DELETE_FLAG = ' ' "
* SENDER = ' ' "
* CHECK_SEND_AUTHORITY = ' ' "
* CHECK_ALREADY_SENT = ' ' "
* GIVE_OBJECT_BACK = "
* ORIGINATOR = ' ' "
* ORIGINATOR_TYPE = 'J' "
* LINK_FOLDER_ID = ' ' "
* SEND_REQUEST_OID = ' ' "GUID of send request
* IP_ENCRYPT = 'U' "Indicator: Encryption Required
* FORWARDER = ' ' "Existing object: Name of forwarder
* IP_SIGN = 'U' "Indicator: Signature Required
* IP_REC_COUNT_ADD = "Number of Copy-List Recipients Through SMTP Plug-In
* OBJECT_FL_CHANGE = "New object: Folder information
* OBJECT_HD_CHANGE = ' ' "New object: General header data
* OBJECT_ID = ' ' "Existing object: ID of object
* OBJECT_TYPE = ' ' "New object: Object type
* OUTBOX_FLAG = ' ' "Store object in outbox
* OWNER = ' ' "User responsible for the transmission process
* STORE_FLAG = ' ' "Store new object in folder
IMPORTING
OBJECT_ID_NEW = "New object: ID of object
SENT_TO_ALL = "Not sent to all
ALL_BINDING_DONE = "
OFFICE_OBJECT_KEY = "
ORIGINATOR_ID = "
E_SEND_REQUEST_OID = "Globally Unique Identifier
TABLES
* OBJCONT = "New object: Contents
* LINK_LIST = "
* APPLICATION_OBJECT = "
* OBJHEAD = "New object: Specific header data
* OBJPARA = "New object: Parameter for transaction/report
* OBJPARB = "New object: Parameter for dialog/function
* RECEIVERS = "Recipient table with send attributes
* PACKING_LIST = "
* ATT_CONT = "
* ATT_HEAD = "
* NOTE_TEXT = "
EXCEPTIONS
ACTIVE_USER_NOT_EXIST = 1 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 COMMUNICATION_FAILURE = 2 ORIGINATOR_NOT_EXIST = 20 X_ERROR = 21 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
IMPORTING Parameters details for SO_OBJECT_SEND
FOLDER_ID - Existing object: Folder ID
Data type: SOODKDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
DELETE_FLAG -
Data type: SONV-FLAGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SENDER -
Data type: SOUD-USRNAMDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
CHECK_SEND_AUTHORITY -
Data type: SONV-FLAGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
CHECK_ALREADY_SENT -
Data type: SOXASDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
GIVE_OBJECT_BACK -
Data type: SONV-FLAGOptional: Yes
Call by Reference: No ( called with pass by value option)
ORIGINATOR -
Data type: SOOS1-RECEXTNAMDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
ORIGINATOR_TYPE -
Data type: SOOS1-RECESCDefault: 'J'
Optional: Yes
Call by Reference: No ( called with pass by value option)
LINK_FOLDER_ID -
Data type: SOODKDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SEND_REQUEST_OID - GUID of send request
Data type: OS_GUIDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IP_ENCRYPT - Indicator: Encryption Required
Data type: BCSD_ENCRDefault: 'U'
Optional: Yes
Call by Reference: No ( called with pass by value option)
FORWARDER - Existing object: Name of forwarder
Data type: SOUD-USRNAMDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IP_SIGN - Indicator: Signature Required
Data type: BCSD_SIGNDefault: 'U'
Optional: Yes
Call by Reference: No ( called with pass by value option)
IP_REC_COUNT_ADD - Number of Copy-List Recipients Through SMTP Plug-In
Data type: IOptional: Yes
Call by Reference: No ( called with pass by value option)
OBJECT_FL_CHANGE - New object: Folder information
Data type: SOFM1Optional: Yes
Call by Reference: No ( called with pass by value option)
OBJECT_HD_CHANGE - New object: General header data
Data type: SOOD1Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
OBJECT_ID - Existing object: ID of object
Data type: SOODKDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
OBJECT_TYPE - New object: Object type
Data type: SOOD-OBJTPDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
OUTBOX_FLAG - Store object in outbox
Data type: SONV-FLAGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
OWNER - User responsible for the transmission process
Data type: SOUD-USRNAMDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
STORE_FLAG - Store new object in folder
Data type: SONV-FLAGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for SO_OBJECT_SEND
OBJECT_ID_NEW - New object: ID of object
Data type: SOODKOptional: No
Call by Reference: No ( called with pass by value option)
SENT_TO_ALL - Not sent to all
Data type: SONV-FLAGOptional: No
Call by Reference: No ( called with pass by value option)
ALL_BINDING_DONE -
Data type: SONV-FLAGOptional: No
Call by Reference: No ( called with pass by value option)
OFFICE_OBJECT_KEY -
Data type: SWOTOBJID-OBJKEYOptional: No
Call by Reference: No ( called with pass by value option)
ORIGINATOR_ID -
Data type: SOUDKOptional: No
Call by Reference: No ( called with pass by value option)
E_SEND_REQUEST_OID - Globally Unique Identifier
Data type: OS_GUIDOptional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for SO_OBJECT_SEND
OBJCONT - New object: Contents
Data type: SOLIOptional: Yes
Call by Reference: No ( called with pass by value option)
LINK_LIST -
Data type: SOXLLOptional: Yes
Call by Reference: No ( called with pass by value option)
APPLICATION_OBJECT -
Data type: SWOTOBJIDOptional: Yes
Call by Reference: No ( called with pass by value option)
OBJHEAD - New object: Specific header data
Data type: SOLIOptional: Yes
Call by Reference: No ( called with pass by value option)
OBJPARA - New object: Parameter for transaction/report
Data type: SELCOptional: Yes
Call by Reference: No ( called with pass by value option)
OBJPARB - New object: Parameter for dialog/function
Data type: SOOP1Optional: Yes
Call by Reference: No ( called with pass by value option)
RECEIVERS - Recipient table with send attributes
Data type: SOOS1Optional: Yes
Call by Reference: Yes
PACKING_LIST -
Data type: SOXPLOptional: Yes
Call by Reference: No ( called with pass by value option)
ATT_CONT -
Data type: SOLIOptional: Yes
Call by Reference: No ( called with pass by value option)
ATT_HEAD -
Data type: SOLIOptional: Yes
Call by Reference: No ( called with pass by value option)
NOTE_TEXT -
Data type: SOLIOptional: Yes
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
ACTIVE_USER_NOT_EXIST - Active user is not a SAPoffice user
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OBJECT_NO_AUTHORIZATION - No access authorization for object
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OBJECT_TYPE_NOT_EXIST - Specified object type does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OPERATION_NO_AUTHORIZATION - No authorization for this operation
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OWNER_NOT_EXIST - The responsible user does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PARAMETER_ERROR - Data entered incorrectly
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SUBSTITUTE_NOT_ACTIVE - Substitute is inactive
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SUBSTITUTE_NOT_DEFINED - Substitute not defined
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SYSTEM_FAILURE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
TOO_MUCH_RECEIVERS -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
USER_NOT_EXIST - SAPoffice user does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
COMMUNICATION_FAILURE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ORIGINATOR_NOT_EXIST -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
X_ERROR - Internal error
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
COMPONENT_NOT_AVAILABLE - SAPoffice component is inactive
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FOLDER_NOT_EXIST - Folder does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FOLDER_NO_AUTHORIZATION - No access authorization for folder
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FORWARDER_NOT_EXIST - Forwarder does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NOTE_NOT_EXIST - The specified note does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OBJECT_NOT_EXIST - Object does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OBJECT_NOT_SENT - Object was not sent
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for SO_OBJECT_SEND Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lt_objcont | TYPE STANDARD TABLE OF SOLI, " | |||
| lv_folder_id | TYPE SOODK, " SPACE | |||
| lv_object_id_new | TYPE SOODK, " | |||
| lv_active_user_not_exist | TYPE SOODK, " | |||
| lt_link_list | TYPE STANDARD TABLE OF SOXLL, " | |||
| lv_delete_flag | TYPE SONV-FLAG, " SPACE | |||
| lv_object_no_authorization | TYPE SONV, " | |||
| lv_sender | TYPE SOUD-USRNAM, " SPACE | |||
| lt_application_object | TYPE STANDARD TABLE OF SWOTOBJID, " | |||
| lv_object_type_not_exist | TYPE SWOTOBJID, " | |||
| lv_check_send_authority | TYPE SONV-FLAG, " SPACE | |||
| lv_operation_no_authorization | TYPE SONV, " | |||
| lv_owner_not_exist | TYPE SONV, " | |||
| lv_check_already_sent | TYPE SOXAS, " SPACE | |||
| lv_parameter_error | TYPE SOXAS, " | |||
| lv_give_object_back | TYPE SONV-FLAG, " | |||
| lv_originator | TYPE SOOS1-RECEXTNAM, " SPACE | |||
| lv_substitute_not_active | TYPE SOOS1, " | |||
| lv_originator_type | TYPE SOOS1-RECESC, " 'J' | |||
| lv_substitute_not_defined | TYPE SOOS1, " | |||
| lv_link_folder_id | TYPE SOODK, " SPACE | |||
| lv_system_failure | TYPE SOODK, " | |||
| lv_send_request_oid | TYPE OS_GUID, " SPACE | |||
| lv_too_much_receivers | TYPE OS_GUID, " | |||
| lv_ip_encrypt | TYPE BCSD_ENCR, " 'U' | |||
| lv_user_not_exist | TYPE BCSD_ENCR, " | |||
| lt_objhead | TYPE STANDARD TABLE OF SOLI, " | |||
| lv_forwarder | TYPE SOUD-USRNAM, " SPACE | |||
| lv_sent_to_all | TYPE SONV-FLAG, " | |||
| lv_communication_failure | TYPE SONV, " | |||
| lv_ip_sign | TYPE BCSD_SIGN, " 'U' | |||
| lv_originator_not_exist | TYPE BCSD_SIGN, " | |||
| lv_x_error | TYPE BCSD_SIGN, " | |||
| lv_ip_rec_count_add | TYPE I, " | |||
| lt_objpara | TYPE STANDARD TABLE OF SELC, " | |||
| lv_all_binding_done | TYPE SONV-FLAG, " | |||
| lv_object_fl_change | TYPE SOFM1, " | |||
| lv_component_not_available | TYPE SOFM1, " | |||
| lt_objparb | TYPE STANDARD TABLE OF SOOP1, " | |||
| lv_folder_not_exist | TYPE SOOP1, " | |||
| lv_object_hd_change | TYPE SOOD1, " SPACE | |||
| lv_office_object_key | TYPE SWOTOBJID-OBJKEY, " | |||
| lv_object_id | TYPE SOODK, " SPACE | |||
| lt_receivers | TYPE STANDARD TABLE OF SOOS1, " | |||
| lv_originator_id | TYPE SOUDK, " | |||
| lv_folder_no_authorization | TYPE SOUDK, " | |||
| lv_object_type | TYPE SOOD-OBJTP, " SPACE | |||
| lt_packing_list | TYPE STANDARD TABLE OF SOXPL, " | |||
| lv_e_send_request_oid | TYPE OS_GUID, " | |||
| lv_forwarder_not_exist | TYPE OS_GUID, " | |||
| lt_att_cont | TYPE STANDARD TABLE OF SOLI, " | |||
| lv_outbox_flag | TYPE SONV-FLAG, " SPACE | |||
| lv_note_not_exist | TYPE SONV, " | |||
| lv_owner | TYPE SOUD-USRNAM, " SPACE | |||
| lt_att_head | TYPE STANDARD TABLE OF SOLI, " | |||
| lv_object_not_exist | TYPE SOLI, " | |||
| lt_note_text | TYPE STANDARD TABLE OF SOLI, " | |||
| lv_store_flag | TYPE SONV-FLAG, " SPACE | |||
| lv_object_not_sent | TYPE SONV. " |
|   CALL FUNCTION 'SO_OBJECT_SEND' "Send in SAPoffice and Externally |
| EXPORTING | ||
| FOLDER_ID | = lv_folder_id | |
| DELETE_FLAG | = lv_delete_flag | |
| SENDER | = lv_sender | |
| CHECK_SEND_AUTHORITY | = lv_check_send_authority | |
| CHECK_ALREADY_SENT | = lv_check_already_sent | |
| GIVE_OBJECT_BACK | = lv_give_object_back | |
| ORIGINATOR | = lv_originator | |
| ORIGINATOR_TYPE | = lv_originator_type | |
| LINK_FOLDER_ID | = lv_link_folder_id | |
| SEND_REQUEST_OID | = lv_send_request_oid | |
| IP_ENCRYPT | = lv_ip_encrypt | |
| FORWARDER | = lv_forwarder | |
| IP_SIGN | = lv_ip_sign | |
| IP_REC_COUNT_ADD | = lv_ip_rec_count_add | |
| OBJECT_FL_CHANGE | = lv_object_fl_change | |
| OBJECT_HD_CHANGE | = lv_object_hd_change | |
| OBJECT_ID | = lv_object_id | |
| OBJECT_TYPE | = lv_object_type | |
| OUTBOX_FLAG | = lv_outbox_flag | |
| OWNER | = lv_owner | |
| STORE_FLAG | = lv_store_flag | |
| IMPORTING | ||
| OBJECT_ID_NEW | = lv_object_id_new | |
| SENT_TO_ALL | = lv_sent_to_all | |
| ALL_BINDING_DONE | = lv_all_binding_done | |
| OFFICE_OBJECT_KEY | = lv_office_object_key | |
| ORIGINATOR_ID | = lv_originator_id | |
| E_SEND_REQUEST_OID | = lv_e_send_request_oid | |
| TABLES | ||
| OBJCONT | = lt_objcont | |
| LINK_LIST | = lt_link_list | |
| APPLICATION_OBJECT | = lt_application_object | |
| OBJHEAD | = lt_objhead | |
| OBJPARA | = lt_objpara | |
| OBJPARB | = lt_objparb | |
| RECEIVERS | = lt_receivers | |
| PACKING_LIST | = lt_packing_list | |
| ATT_CONT | = lt_att_cont | |
| ATT_HEAD | = lt_att_head | |
| NOTE_TEXT | = lt_note_text | |
| EXCEPTIONS | ||
| ACTIVE_USER_NOT_EXIST = 1 | ||
| 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 | ||
| COMMUNICATION_FAILURE = 2 | ||
| ORIGINATOR_NOT_EXIST = 20 | ||
| X_ERROR = 21 | ||
| 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 | ||
| . " SO_OBJECT_SEND | ||
ABAP code using 7.40 inline data declarations to call FM SO_OBJECT_SEND
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| DATA(ld_folder_id) | = ' '. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_delete_flag). | ||||
| DATA(ld_delete_flag) | = ' '. | |||
| "SELECT single USRNAM FROM SOUD INTO @DATA(ld_sender). | ||||
| DATA(ld_sender) | = ' '. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_check_send_authority). | ||||
| DATA(ld_check_send_authority) | = ' '. | |||
| DATA(ld_check_already_sent) | = ' '. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_give_object_back). | ||||
| "SELECT single RECEXTNAM FROM SOOS1 INTO @DATA(ld_originator). | ||||
| DATA(ld_originator) | = ' '. | |||
| "SELECT single RECESC FROM SOOS1 INTO @DATA(ld_originator_type). | ||||
| DATA(ld_originator_type) | = 'J'. | |||
| DATA(ld_link_folder_id) | = ' '. | |||
| DATA(ld_send_request_oid) | = ' '. | |||
| DATA(ld_ip_encrypt) | = 'U'. | |||
| "SELECT single USRNAM FROM SOUD INTO @DATA(ld_forwarder). | ||||
| DATA(ld_forwarder) | = ' '. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_sent_to_all). | ||||
| DATA(ld_ip_sign) | = 'U'. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_all_binding_done). | ||||
| DATA(ld_object_hd_change) | = ' '. | |||
| "SELECT single OBJKEY FROM SWOTOBJID INTO @DATA(ld_office_object_key). | ||||
| DATA(ld_object_id) | = ' '. | |||
| "SELECT single OBJTP FROM SOOD INTO @DATA(ld_object_type). | ||||
| DATA(ld_object_type) | = ' '. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_outbox_flag). | ||||
| DATA(ld_outbox_flag) | = ' '. | |||
| "SELECT single USRNAM FROM SOUD INTO @DATA(ld_owner). | ||||
| DATA(ld_owner) | = ' '. | |||
| "SELECT single FLAG FROM SONV INTO @DATA(ld_store_flag). | ||||
| DATA(ld_store_flag) | = ' '. | |||
Search for further information about these or an SAP related objects