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

attach ocument from Application server

Former Member
0 Likes
428

hi, I am using this FM to get G_document, which is a number where my file is added in SAP.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'

exporting

method = 'GETCONTENTFROMFILE'

tables

files = IT_files

changing

document = G_document.

here IT_FILES contain file path of presentation server.

Now my requirement is....I have a file on application server and i want to put it in sap document manager...same as this FM is doing and get document no for further use.

If any one can help it will be good for me.

thanks

1 REPLY 1
Read only

Former Member
0 Likes
334

HI,

Go through this

FUNCTION ZBAPIHR_PERSONAL_DETAILS .

*"----


""Local Interface:

*" IMPORTING

*" VALUE(FROM_NAME) TYPE ZHR_EMP_DETAIL-ZFNAME OPTIONAL

*" VALUE(FROM_EMP_ID) TYPE ZHR_EMP_DETAIL-ZPHONE OPTIONAL

*" VALUE(FROM_EMP_COMP) TYPE ZHR_EMP_DETAIL-ZFNAME OPTIONAL

*" VALUE(FLNAME1) TYPE TEXT100 OPTIONAL

*" VALUE(F_NAME) TYPE ZHR_EMP_DETAIL-ZFNAME OPTIONAL

*" VALUE(ADDRESS) TYPE ZHR_EMP_DETAIL-ZADDRESS OPTIONAL

*" VALUE(CITY) TYPE ZHR_EMP_DETAIL-ZCITY OPTIONAL

*" VALUE(STATE) TYPE ZHR_EMP_DETAIL-ZSTATE OPTIONAL

*" VALUE(PHONE) TYPE ZHR_EMP_DETAIL-ZPHONE OPTIONAL

*" VALUE(EMAIL) TYPE ZHR_EMP_DETAIL-ZEMAIL OPTIONAL

*" VALUE(YEARS) TYPE ZHR_EMP_DETAIL-ZYEARS OPTIONAL

*" VALUE(MONTHS) TYPE ZHR_EMP_DETAIL-ZMONTHS OPTIONAL

*" VALUE(KEYSKILLS) TYPE ZHR_EMP_DETAIL-ZKSKILLS OPTIONAL

*" VALUE(SSC) TYPE ZHR_EMP_DETAIL-ZSSC OPTIONAL

*" VALUE(PASSINGYEAR) TYPE ZHR_EMP_DETAIL-ZPYEAR OPTIONAL

*" VALUE(UNIVERSITY) TYPE ZHR_EMP_DETAIL-ZUNIVERSITY OPTIONAL

*" VALUE(PERCENTAGE) TYPE ZHR_EMP_DETAIL-ZPERCENTAGE OPTIONAL

*" VALUE(HSC) TYPE ZHR_EMP_DETAIL-ZSSC OPTIONAL

*" VALUE(PASSINGYEAR1) TYPE ZHR_EMP_DETAIL-ZPYEAR OPTIONAL

*" VALUE(UNIVERSITY1) TYPE ZHR_EMP_DETAIL-ZUNIVERSITY OPTIONAL

*" VALUE(PERCENTAGE1) TYPE ZHR_EMP_DETAIL-ZPERCENTAGE OPTIONAL

*" VALUE(GRADUATION) TYPE ZHR_EMP_DETAIL-ZUNIVERSITY OPTIONAL

*" VALUE(PASSINGYEAR2) TYPE ZHR_EMP_DETAIL-ZPYEAR OPTIONAL

*" VALUE(UNIVERSITY2) TYPE ZHR_EMP_DETAIL-ZUNIVERSITY OPTIONAL

*" VALUE(PERCENTAGE2) TYPE ZHR_EMP_DETAIL-ZPERCENTAGE OPTIONAL

*" VALUE(POSTGRADUATION) TYPE ZHR_EMP_DETAIL-ZSSC OPTIONAL

*" VALUE(PASSINGYEAR3) TYPE ZHR_EMP_DETAIL-ZPYEAR OPTIONAL

*" VALUE(UNIVERSITY3) TYPE ZHR_EMP_DETAIL-ZUNIVERSITY OPTIONAL

*" VALUE(PERCENTAGE3) TYPE ZHR_EMP_DETAIL-ZPERCENTAGE OPTIONAL

*" VALUE(OTHERQUALIFICATION) TYPE ZHR_EMP_DETAIL-ZOQULI OPTIONAL

*" VALUE(CERTIFICATION) TYPE ZHR_EMP_DETAIL-ZCERTIFICATION

*" OPTIONAL

*" VALUE(P_MAIL_TO) TYPE ADR6-SMTP_ADDR OPTIONAL

*" EXPORTING

*" VALUE(MESS) TYPE BAPIRETURN

*" TABLES

*" ZEMP_DETAILS STRUCTURE ZHR_EMP_DETAILS1

*"----


  • *********************************************************************

  • I N F O R M A T I O N *

**********************************************************************

TRANSLATE p_mail_to TO UPPER CASE.

TRANSLATE email TO LOWER CASE.

fr_name = FROM_NAME."sender name

ref_name = F_NAME."Referral name

fr_emp_id = from_emp_id."Sender Employee ID

fr_emp_comp = from_emp_comp."Sender company name

REC = MAIL_TO."Recipient mail id

FNAME = FLNAME1."File name from Ep Application server

IF FNAME is initial.

MESSAGE 'Please Select File' TYPE 'E'.

ENDIF..

PERFORM SPLIT_FILE. " SPLIT FILE AND PATH

PERFORM EPAPP_R3APP. " EP APPLICATION TO R3 APPLICATION SERVER

CLEAR : GV_FORM_NAME, GS_CTRLOP, GS_OUTOPT, GS_OTFDATA,

GV_BIN_FILESIZE, GV_POS, GV_LEN, GV_TAB_LINES.

*Smartform Calling

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'ZHRS_PERSONAL_DETAILS'"Smartform Name

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

FM_NAME = gv_form_name "Function module generated by smartform

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

GS_CTRLOP-GETOTF = 'X'."Return of OTF table. No printing, display, or faxing

GS_CTRLOP-NO_DIALOG = 'X'."SAP Smart Forms: General Indicator

GS_OUTOPT-TDNOPREV = 'X'."No print preview

  • function module generated by smartform

CALL FUNCTION gv_form_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

CONTROL_PARAMETERS = GS_CTRLOP "Smart Forms: Control structure

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

OUTPUT_OPTIONS = GS_OUTOPT "SAP Smart Forms: Smart Composer (transfer) options

USER_SETTINGS = 'X'

  • REF_ID = Ref_id

ZFNAME = F_NAME

  • ZLNAME =

ZADDRESS = ADDRESS

ZCITY = CITY

ZSTATE = STATE

ZPHONE = PHONE

ZEMAIL = EMAIL

ZYEARS = YEARS

ZMONTHS = MONTHS

ZKSKILLS = KEYSKILLS

ZSSC = SSC

ZPYEAR = PASSINGYEAR

ZUNIVERSITY = UNIVERSITY

ZPERCENTAGE = PERCENTAGE

ZHSC = HSC

ZPYEAR1 = PASSINGYEAR1

ZUNIVERSITY1 = UNIVERSITY1

ZPERCENTAGE1 = PERCENTAGE1

ZGRADUATION = GRADUATION

ZPYEAR2 = PASSINGYEAR2

ZUNIVERSITY2 = UNIVERSITY2

ZPERCENTAGE2 = PERCENTAGE2

ZPOSTGRADUATION = POSTGRADUATION

ZPASSINGYEAR3 = PASSINGYEAR3

ZUNIVERSITY3 = UNIVERSITY3

ZPERCENTAGE3 = PERCENTAGE3

ZOTHERQUALIFICATION = OTHERQUALIFICATION

ZCERTIFICATION = CERTIFICATION

IMPORTING

  • DOCUMENT_OUTPUT_INFO =

JOB_OUTPUT_INFO = GS_OTFDATA "Smart Forms: Return value at end of form printing

  • JOB_OUTPUT_OPTIONS =

TABLES

IT_EMP = ZEMP_DETAILS "Employee Personal Details

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CLEAR GT_OTF.

GT_OTF[] = GS_OTFDATA-OTFDATA[].

*u2022 Convert the OTF DATA to Smart form Text lines

CLEAR GT_PDF_TAB.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

MAX_LINEWIDTH = 132

  • ARCHIVE_INDEX = ' '

  • COPYNUMBER = 0

  • ASCII_BIDI_VIS2LOG = ' '

  • PDF_DELETE_OTFTAB = ' '

IMPORTING

BIN_FILESIZE = GV_BIN_FILESIZE "Store the file size

  • BIN_FILE =

TABLES

OTF = GT_OTF "OTF Structure

LINES = GT_PDF_TAB "SAPscript: Text Lines

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

ERR_BAD_OTF = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CLEAR : GT_RECLIST, GS_RECLIST.

GS_RECLIST-RECEIVER = p_mail_to. "p_mail_to.

GS_RECLIST-REC_TYPE = 'B'."'G' ."'O'. "'B'. "'U'.

APPEND GS_RECLIST TO GT_RECLIST.

PERFORM SEND_MAIL. " SEND MAIL

MESS = MESS_VAL."Messages

ENDFUNCTION.

&----


*& Form SPLIT_FILE

&----


FORM SPLIT_FILE .

"Splits PC File Name into Drive,Path,File and Extension

CALL FUNCTION 'CH_SPLIT_FILENAME'

EXPORTING

COMPLETE_FILENAME = FNAME

  • CHECK_DOS_FORMAT =

IMPORTING

DRIVE = DRIVE

EXTENSION = EXTENSION

NAME = NAME

NAME_WITH_EXT = NAME_WITH_EXT

PATH = PATH1

EXCEPTIONS

INVALID_DRIVE = 1

INVALID_PATH = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " SPLIT_FILE

&----


*& Form EPDEV_R3DEV

&----


FORM EPAPP_R3APP.

SET EXTENDED CHECK OFF.

SLEN = STRLEN( PWD ).

CALL FUNCTION 'HTTP_SCRAMBLE'

EXPORTING

SOURCE = PWD

SOURCELEN = SLEN

KEY = KEY

IMPORTING

DESTINATION = PWD.

"Connect to FTP server

CALL FUNCTION 'FTP_CONNECT'

EXPORTING

USER = USER

PASSWORD = PWD

HOST = HOST

RFC_DESTINATION = DEST

IMPORTING

HANDLE = HDL.

CONCATENATE '/usr/sap/APD/JC00/j2ee/cluster/server0/' NAME_WITH_EXT INTO E_FILE ." SEPARATED BY SPACE.

CONCATENATE '/tmp/' NAME_WITH_EXT INTO TO_FILE." SEPARATED BY SPACE.

CMD1 = 'get'.

CONCATENATE CMD1 E_FILE TO_FILE INTO CMD1 SEPARATED BY SPACE .

IF CMD1 IS NOT INITIAL.

"Execute FTP Command

CALL FUNCTION 'FTP_COMMAND'

EXPORTING

HANDLE = HDL

COMMAND = CMD1

COMPRESS = COMPRESS

TABLES

DATA = RESULT

EXCEPTIONS

COMMAND_ERROR = 1

TCPIP_ERROR = 2.

SIGNAL = SY-SUBRC.

REFRESH RESULT.

ENDIF.

ENDFORM. " EPAPP_R3APP

&----


*& Form SEND_MAIL

&----


FORM SEND_MAIL .

  • **** mail body

CONCATENATE fr_name '(' fr_emp_id ')' 'of' fr_emp_comp 'has reffered'

ref_name '.' INTO body SEPARATED BY space.

I_OBJTXT = 'Dear Sir/Madam.'.

APPEND I_OBJTXT.

I_OBJTXT = ''.

APPEND I_OBJTXT.

I_OBJTXT = body.

APPEND I_OBJTXT.

I_OBJTXT = ''.

APPEND I_OBJTXT.

I_OBJTXT = 'Details are attached along with the mail.'.

APPEND I_OBJTXT.

I_OBJTXT = ''.

APPEND I_OBJTXT.

I_OBJTXT = 'Thanks.'.

APPEND I_OBJTXT.

I_OBJTXT = 'Best Regards,'.

APPEND I_OBJTXT.

I_OBJTXT = 'For xyz Group'.

APPEND I_OBJTXT.

DESCRIBE TABLE i_objtxt LINES gv_desc_lines.

CLEAR I_OBJTXT.

READ TABLE I_OBJTXT INDEX gv_desc_lines.

if sy-subrc = 0.

  • Document information.

concatenate 'Employee Referred by' fr_name into subject separated by space.

GS_DOCDATA-obj_name = 'Emp_Refer'.

GS_DOCDATA-expiry_dat = sy-datum + 10.

GS_DOCDATA-obj_descr = subject.

GS_DOCDATA-sensitivty = 'F'. "Functional object

GS_DOCDATA-doc_size = gv_desc_lines * 255.

cLEAR Gs_OBJPACK-transf_bin.

  • Start line of object header in transport packet

GS_OBJPACK-doc_size = gv_desc_lines * 255.

GS_OBJPACK-HEAD_START = 1.

GS_OBJPACK-HEAD_NUM = 0.

GS_OBJPACK-BODY_START = 1.

GS_OBJPACK-BODY_NUM = gv_desc_lines.

GS_OBJPACK-DOC_TYPE = 'RAW'.

APPEND GS_OBJPACK TO GT_OBJPACK.

ENDIF.

*u2022 Passing the Smartforms text lines to SAPoffice: Single List with Column Length 255 table

CLEAR : GS_OBJBIN, GS_PDF_TAB.

*

LOOP AT GT_PDF_TAB INTO GS_PDF_TAB.

GV_POS = 255 - GV_LEN.

IF GV_POS > 134. "length of pdf_table

GV_POS = 134.

ENDIF.

GS_OBJBIN+GV_LEN = GS_PDF_TAB(GV_POS).

GV_LEN = GV_LEN + GV_POS.

IF GV_LEN = 255. "length of out (contents_bin)

APPEND GS_OBJBIN TO GT_OBJBIN.

CLEAR: GS_OBJBIN, GV_LEN.

IF GV_POS < 134.

GS_OBJBIN = GS_PDF_TAB+GV_POS.

GV_LEN = 134 - GV_POS.

ENDIF.

ENDIF.

ENDLOOP.

IF GV_LEN > 0.

APPEND GS_OBJBIN TO GT_OBJBIN.

ENDIF.

***u2022 Filling the details in SAPoffice: Description of Imported Object Components table

DESCRIBE TABLE GT_OBJBIN LINES GV_TAB_LINES.

CLEAR GS_OBJBIN.

READ TABLE GT_OBJBIN INTO GS_OBJBIN INDEX GV_TAB_LINES.

IF SY-SUBRC = 0.

GS_OBJPACK-DOC_SIZE = ( GV_TAB_LINES - 1 ) * 255 + STRLEN( GS_OBJBIN ).

GS_OBJPACK-TRANSF_BIN = 'X'.

GS_OBJPACK-HEAD_START = 1.

GS_OBJPACK-HEAD_NUM = 0.

GS_OBJPACK-BODY_START = 1.

GS_OBJPACK-BODY_NUM = GV_TAB_LINES.

GS_OBJPACK-DOC_TYPE = 'PDF'.

GS_OBJPACK-OBJ_NAME = 'EMPLOYEE REFERAL FORM'.

GS_OBJPACK-OBJ_DESCR = 'Employee Referal Form'.

APPEND GS_OBJPACK TO GT_OBJPACK.

ENDIF.

CLEAR : GS_OBJBIN.

CLEAR WA_DATA_ALL.

  • Read File from Application Server.

data: start1 type i.

data: end1 type i.

start1 = GV_TAB_LINES + 1.

OPEN DATASET TO_FILE FOR INPUT IN BINARY MODE.

IF SY-SUBRC = 0.

DO .

READ DATASET to_file INTO GS_OBJBIN. "GS_PDF_TAB.

IF SY-SUBRC = 0.

APPEND GS_OBJBIN TO GT_OBJBIN . "GS_PDF_TAB TO GT_PDF_TAB.

ELSE.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET to_file.

else.

Message 'Error in Opening File' type'E'.

ENDIF.

clear gs_objbin.

DELETE DATASET TO_FILE.

DESCRIBE TABLE GT_OBJBIN LINES end1.

CLEAR GS_OBJBIN.

READ TABLE GT_OBJBIN INTO GS_OBJBIN INDEX end1.

IF SY-SUBRC = 0.

GS_OBJPACK-DOC_SIZE = ( end1 - 1 ) * 255 + STRLEN( GS_OBJBIN ).

GS_OBJPACK-TRANSF_BIN = 'X'.

GS_OBJPACK-HEAD_START = 1.

GS_OBJPACK-HEAD_NUM = 0.

GS_OBJPACK-BODY_START = start1.

GS_OBJPACK-BODY_NUM = end1.

GS_OBJPACK-DOC_TYPE = extension.

GS_OBJPACK-OBJ_NAME = 'Resume'.

GS_OBJPACK-OBJ_DESCR = 'Resume'.

APPEND GS_OBJPACK TO GT_OBJPACK.

ENDIF.

  • Sending Mail

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = Gs_DOCDATA "Data of an object which can be changed

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

  • IMPORTING

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

TABLES

PACKING_LIST = GT_OBJPACK "SAPoffice: Description of Imported Object Components

OBJECT_HEADER = I_OBJTXT

CONTENTS_BIN = GT_OBJBIN

CONTENTS_TXT = I_OBJTXT

  • CONTENTS_HEX =

  • OBJECT_PARA =

  • OBJECT_PARB =

RECEIVERS = GT_RECLIST "SAPoffice: Structure of the API Recipient List

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.

MESS_VAL-MESSAGE = 'Unsuccessfull...Try Again'.

ELSE.

MESS_VAL-MESSAGE = 'Sent successfully'.

ENDIF.

"SAPconnect: Start Send Process

SUBMIT RSCONN01 WITH MODE EQ 'INT' AND RETURN.

ENDFORM. " SEND_MAIL

Thnaks

Ankur Sharma