Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Email Functionality:How to create Email Subject w/ more than 50 CHAR Length

Former Member
0 Kudos

Hi All,

I have a requirement that will send email, currently using FM SO_DOCUMENT_SEND_API1


  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
      document_data              = w_doc_data  "Email Subj
      put_in_outbox              = 'X'
      sender_address             = w_username  "FROM EMAIL
      sender_address_type        = 'SMTP'
      commit_work                = 'X'
    TABLES
      packing_list               = t_objpack
      contents_txt               = t_text     "Email Body
      receivers                  = t_users    "TO EMAIL
    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.

The email subject is being populated at parameter t_packing_list under structure SODOCCHGI1-OBJ_DESCR that can hold only up to 50 characters.

In my requirement, the email subject is up to 50+ characters.

Thanks All.

5 REPLIES 5

Former Member
0 Kudos

Hello,

Dont think you can use the FM SO_DOCUMENT_SEND_API1 to set the subject line with more than 50 characters. You will have to use the BCS classes.

Check my reply here for the correct note No

Vikranth

0 Kudos

Hi Vikranth,

So does this mean that OSS note 698087 should first co-exist in my box/system right?

I check OSS note 698087 and it points me to other notes:

Note 732333 - Mail-Forms: Subject length of personalized mails

Note 860075 - E-mail reference limited to 50 characters

But when I check in SE24, Class CL_BCS is available though.

Question before I can use this class, I need to apply the OSS notes above right?

Thanks.

0 Kudos

Hello Jaime,

You dont have to install the OSS note here. The OSS note just suggests the solution for extending the subject line greater than 50 characters.

Check this thread as to how to set the subject line greater than 50 characters

And these demo programs as to how to use BCS classes

BCS_EXAMPLE_1

BCS_EXAMPLE_2

BCS_EXAMPLE_5

Vikranth

0 Kudos

Hi Vikranth,

Thanks, problem solved - 10pts. rewarded.

Answer: Use class CL_BCS, method create_document


*     -------- create and set document -------------------------------
*     create document from internal table with text
      APPEND 'Hello world!' TO text.
      document = cl_document_bcs=>create_document(
                      i_type    = 'RAW'
                      i_text    = text
                      i_length  = '12'
                      i_subject = 'test created by BCS_EXAMPLE_1' ).

For more details, see sample program: BCS_EXAMPLE_1 to BCS_EXAMPLE_6.

Former Member
0 Kudos

Hi,

Try below code:

DATA: X_OBJECT_TYPE LIKE SOOD-OBJTP.

DATA: BEGIN OF X_OBJECT_HD_CHANGE.

INCLUDE STRUCTURE SOOD1.

DATA: END OF X_OBJECT_HD_CHANGE.

DATA: BEGIN OF X_OBJCONT OCCURS 10.

INCLUDE STRUCTURE SOLI.

DATA: END OF X_OBJCONT.

DATA: BEGIN OF X_OBJHEAD OCCURS 0.

INCLUDE STRUCTURE SOLI.

DATA: END OF X_OBJHEAD.

DATA: BEGIN OF RAW_HEAD.

INCLUDE STRUCTURE SORH.

DATA: END OF RAW_HEAD.

DATA: BEGIN OF X_RECEIVERS OCCURS 0.

INCLUDE STRUCTURE SOOS1.

DATA: END OF X_RECEIVERS.

PARAMETERS: RECEIVER LIKE X_RECEIVERS-RECNAM. " Name

*BUILD MESSAGE HEADER

MOVE 'Sort field goes here' TO X_OBJECT_HD_CHANGE-OBJSRT. " Sort field

MOVE 'Name of the object goes here' TO X_OBJECT_HD_CHANGE-OBJNAM. " Name

MOVE 'Document title goes here' TO X_OBJECT_HD_CHANGE-OBJDES. " Title

MOVE 'F' TO X_OBJECT_HD_CHANGE-OBJSNS. " Functional OBJECT

MOVE 'E' TO X_OBJECT_HD_CHANGE-OBJLA. " Language

  • Object type of the new document

MOVE 'RAW' TO X_OBJECT_TYPE.

CLEAR X_OBJCONT.

MOVE 'Contents of mail' TO X_OBJCONT-LINE.

APPEND X_OBJCONT.

CLEAR X_OBJCONT-LINE. APPEND X_OBJCONT.

MOVE 'More contents' TO X_OBJCONT-LINE.

APPEND X_OBJCONT.

MOVE 'Still more contents'

to x_objcont-line.

APPEND X_OBJCONT.

MOVE ' ' TO X_OBJCONT-LINE.

APPEND X_OBJCONT.

  • Specific header (Dependent on the object type, here RAW)

REFRESH X_OBJHEAD.

DESCRIBE TABLE X_OBJCONT LINES RAW_HEAD-RAWSIZ.

MOVE RAW_HEAD TO X_OBJHEAD.

APPEND X_OBJHEAD.

*RECEIVERS table

CLEAR X_RECEIVERS.

REFRESH X_RECEIVERS.

MOVE RECEIVER TO X_RECEIVERS-RECNAM. " Name

MOVE 'B' TO X_RECEIVERS-RECESC. " Receiver type

MOVE 'X' TO X_RECEIVERS-SNDCP. " Send as a copy

MOVE 'X' TO X_RECEIVERS-SNDEX. " EXPRESS DOCUMENT

APPEND X_RECEIVERS.

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

  • folder_id = 'OUTBOX'

  • forwarder = x_forwarder

  • object_fl_change = x_object_fl_change

OBJECT_HD_CHANGE = X_OBJECT_HD_CHANGE

  • object_id = x_object_id

OBJECT_TYPE = X_OBJECT_TYPE

OUTBOX_FLAG = 'X'

OWNER = SY-UNAME

  • store_flag = x_store_flag

  • importing

  • object_id_new = x_object_id_new

  • sent_to_all = x_sent_to_all "May need to use

TABLES

OBJCONT = X_OBJCONT

OBJHEAD = X_OBJHEAD

  • objpara = x_objpara

  • objparb = x_objparb

RECEIVERS = X_RECEIVERS.

Regards,

venkat.