‎2008 Jul 02 8:10 AM
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
‎2008 Jul 02 8:27 AM
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