Application Development and Automation 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: 
Read only

SO_NEW_DOCUMENT_ATT_SEND_API1

Former Member
0 Likes
774

Dear All ,

I am using this function module to send my payslip .The pay slip is going to mail ID in the form of PDF . But it is not opening in . It is giving message saying that the file is corrupted .What has to done .

Thanks in Advance .

7 REPLIES 7
Read only

Former Member
0 Likes
748

check the pdf version.you may be using an older version.this problem occasionally comes because of that.

Read only

0 Likes
748

Check whether you are converting the Form to the PDF format in the correct manner. Do revert back if you want more information on this.

Read only

0 Likes
748

Hello Ravi ,

Version may not be the problem . Other PDF is opening properly .

Read only

Former Member
0 Likes
748

Hi,

Use the fuction module <b>'SO_OBJECT_SEND'.</b>

Please check with this module and revert for any help.

mark all helpful answers

Regards,

Ajith

Read only

0 Likes
748

it is always easier to give advise when post the code you give to the function!

I use the same function and it's working fine here

Read only

0 Likes
748

Hello All ,

Thank you for your response I am attaching the code . here for your ref.

select *

from HRPY_RGDIR

into corresponding fields of table itab

where PERNR in s_name

AND

FPPER IN S_PERIOD.

if sy-subrc eq 0.

loop at itab.

  • Create receiver list

refresh RECLIST.

clear RECLIST.

select single *

from PA0105

where PERNR eq ITAB-PERNR

and USRTY eq '0010'.

if SY-SUBRC <> 0.

I_sent-PERNR = ITAB-PERNR.

i_sent-status = 'NO'.

select single *

from pa0002

where pernr eq itab-pernr.

concatenate pa0002-VORNA pa0002-NACHN into i_sent-name

separated by space.

append i_Nsent.

continue.

else.

refresh reclist.

RECLIST-RECEIVER = pa0105-usrid_long.

translate RECLIST-RECEIVER to lower case.

RECLIST-REC_TYPE = 'U'.

append RECLIST.

endif.

call function 'GET_PAYSLIP'

EXPORTING

EMPLOYEE_NUMBER = itab-PERNR

SEQUENCE_NUMBER = itab-SEQNR

PAYSLIP_VARIANT = PAY_VAR

IMPORTING

RETURN = RETURN

P_INFO = P_INFO

TABLES

P_FORM = P_FORM.

loop at P_FORM

where LINDA eq F__CMD-NEWPAGE

and LTYPE eq F__LTYPE-CMD.

P_INDEX-INDEX = SY-TABIX.

append P_INDEX.

endloop.

P_IDX = 1.

refresh P_P_FORM.

append lines of P_FORM from P_IDX to P_INDEX-INDEX

to P_P_FORM.

P_IDX = P_INDEX-INDEX.

export P_P_FORM to memory id '%%_P_FORM_%%'.

export P_INFO to memory id '%%_P_INFO_%%'.

submit RPCEDT_LIST_TO_MEMORY exporting list to memory and return.

call function 'LIST_FROM_MEMORY'

TABLES

LISTOBJECT = P_LIST.

call function 'TABLE_COMPRESS'

TABLES

IN = P_LIST

OUT = OBJBIN

EXCEPTIONS

others = 1.

Read table RECLIST index 1.

I_sent-PERNR = ITAB-PERNR.

i_sent-usrid_long = RECLIST-RECEIVER.

select single *

from pa0002

where pernr eq itab-pernr.

concatenate pa0002-VORNA pa0002-NACHN into i_sent-name

separated by space.

i_sent-status = 'YES'.

append i_sent.

  • concatenate ' Payslip-' '(' ITAB-PERNR+4(4) ')'

  • into DOCDATA-OBJ_DESCR.

CALL FUNCTION 'MONTH_NAMES_GET'

EXPORTING

LANGUAGE = SY-LANGU

TABLES

MONTH_NAMES = month_names

EXCEPTIONS

MONTH_NAMES_NOT_FOUND = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

if sy-datum+4(2) = '01'.

v_month = '12'.

else.

v_month = sy-datum+4(2) - 1.

endif.

read table month_names with key mnr = v_month.

  • Modified By Sabari Prabhu on 30.05.2006

If not s_period-low is initial.

v_year = s_period-low+2(4).

else.

v_year = sy-datum+0(4).

Endif.

concatenate 'Salary Slip for the month of' month_names-LTX

V_Year '-' i_sent-name

into DOCDATA-OBJ_DESCR.

  • End of Modification

DOCDATA-OBJ_NAME = 'Pay Slip'.

DOCDATA-OBJ_LANGU = SY-LANGU.

OBJTXT = 'Dear Mr.'.

concatenate OBJTXT i_sent-name ' , ' into objtxt.

append OBJTXT.

append initial line to objtxt.

OBJTXT = 'Please find enclosed your salary slip for the month of'.

concatenate OBJTXT month_names-LTX sy-datum+0(4)

into objtxt separated by space.

append OBJTXT.

OBJTXT =

'as attachment This is confidential document and not be disclosed or '.

append OBJTXT.

OBJTXT =

'shared with any other employee.In case of any queries on this subject'.

append OBJTXT.

OBJTXT =

'you are requested to contact hr@apollohealthstreet.com'.

append OBJTXT.

append initial line to objtxt.

append initial line to objtxt.

OBJTXT = 'With Kind Regards'.

append OBJTXT.

append initial line to objtxt.

append initial line to objtxt.

OBJTXT = 'Payroll Administrator'.

append OBJTXT.

OBJTXT = 'Apollo HealthStreet Pvt Ltd.'.

append OBJTXT.

OBJTXT = 'Hyderabad'.

append OBJTXT.

  • Write Packing List (Main)

describe table objtxt lines TAB_LINES.

read table OBJTXT index TAB_LINES.

DOCDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + strlen( OBJTXT ).

clear OBJPACK-TRANSF_BIN.

OBJPACK-HEAD_START = 1.

OBJPACK-HEAD_NUM = 0.

OBJPACK-BODY_START = 1.

OBJPACK-BODY_NUM = TAB_LINES.

OBJPACK-DOC_TYPE = 'RAW'.

append OBJPACK.

  • Create Message Attachment

  • Write Packing List (Attachment)

ATT_TYPE = 'ALI'.

describe table OBJBIN lines TAB_LINES.

read table OBJBIN index TAB_LINES.

OBJPACK-DOC_SIZE =

( TAB_LINES - 1 ) * 255 + strlen( OBJBIN ).

OBJPACK-TRANSF_BIN = 'X'.

OBJPACK-HEAD_START = 1.

OBJPACK-HEAD_NUM = 1.

OBJPACK-BODY_START = 1.

OBJPACK-BODY_NUM = TAB_LINES.

OBJPACK-DOC_TYPE = ATT_TYPE.

OBJPACK-OBJ_NAME = 'ATTACHMENT'.

OBJPACK-OBJ_DESCR = 'Payslip'.

append OBJPACK.

  • Send the document

call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOCDATA

PUT_IN_OUTBOX = ''

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = OBJPACK

OBJECT_HEADER = OBJHEAD

CONTENTS_BIN = OBJBIN

CONTENTS_TXT = OBJTXT

RECEIVERS = RECLIST

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.

Read only

0 Likes
748

why is your ATT_TYPE = 'ALI'. and not ATT_TYPE = 'PDF'. ???

ps we use the conversion from OTF to PDF perhaps that makes a difference

Message was edited by:

A. de Smidt