Sapscript output to pdf of standard program .
Hi ,
Any ideas on how we can save the output of a standard sap script eg purchase order QM notifications etc onto local disc as pdf file .As it is standard we cannot change the open_form structure ..
Hi,
just Print the form when u r going for TEST PRINT option.
Then spool no. will be genaerated.
now Execute the program RSTXPDFT4 , here give the spool number and save it in the desired path.
Revert back if any issues,
Reward with points if helpful.
Regards,
Naveen.
Similar Messages
-
Download Sapscript output to PDF format
Hi,
how to download sapscript output to PDF formatHi,
Please check below link.
http://www.scribd.com/doc/454814/SAPSCRIPT-to-PDF
Regards,
Anil -
How can i send a Sapscript as an PDF through NACE
Hi experts,
I have an requirement that i have to send a Invoice sapscript output in pdf format on mail with
Transaction NACE.
How can it be done?
Regardsu need to configure ur output as external send (medium 5) in nace look at this coe its for smatforms but for scripts u can proceed in similar way.
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/mail%2bsend%2bthrough%2boutput%2bcontrols
also look at this code for reference
https://www.sdn.sap.com/irj/scn/wiki?path=/display/abap/converting%252bscripts%252boutput%252binto%252bpdf%252bform
кu03B1ятu03B9к
Edited by: kartik tarla on Feb 27, 2009 2:28 PM -
hello
hw to change the field names and output format of a standard program.What program is this ?
Easier way to do will be to copy it into a Z program and then make modifications.
Thanks -
Link copy SapScript with Standard program
hi experts,
I have copied one sapscript form from one standard script and copied print program from standard program....
can u tell me how to link both of them (print program and form)and how to make changes in the form and program ?
regards,
rohit
Edited by: Alvaro Tejada Galindo on Feb 15, 2008 3:11 PMAssigning Form and Driver proram to an Output type is as follows.
1) Go to NACE transaction
2) Select an Applicatin(V1-Sales,V2-Shipping,V3-Billing)
3) Click on Outputtypes Button
4) Comes to Change Mode
5) Click on New Entries button
6) Specify Output type,Form name and Program and Save it.
Check these links
/people/venkata.ramisetti/blog/2006/09/21/configuring-output-types-for-pdf-based-print-forms
NACE is the Tcode used to link the Application type, Output Types and its processing Routines like ( Driver programs and attached Script forms or Smartforms).
You should know the Application of a document first Like:
for PO it is EF, for sales Doc's it is V1, for Delivery docs it is V2, for billing Doc's it is V3 etc.
so first select the Application type (ex: EF) for PO and press OUtput types
then a list will come in that you should know the related output type for PO.
in this case it is NEU,
select that and click on the processing Routines button on the left side
it will display the Medium, Driver Program and the Script form or smartform related to that document..
All nace entries are stored in TNAPR table
1. In simple words, it
is used for printing documents eg. purchase order, sales order etc.
2. eg.
For company1, there is purchase order A,
for company2, there is purchase order B,
for purchasing organisation 3, there is purchase order C.
Now, this type of MAPPING (which is totally dynamic and changeable)
cannot be HARDCODED in the standard sap program.
3. Hence, NACE,
provides this facility to MAP
as per users requirement.
ie. We can determine the OUTPUT using NACE.
Output means for eg. Printing of purchase order
Determine means = dynamically detecting which output (PO eg)
hence, it is also called OUTPUT DETERMINATION using NACE.
Regards. -
Printing the form using output type and Standard program
Hi all,
I am a beginner on SAP.Now i get a doc for smartforms.
It need to print a form.And need to create a output.I don't know how to create it and how to use it.
And how to use the standard program to print the smartfroms.
Can you give me a thought about that??Hi steven,
first u copy the standard form and modify as u required.
copy the print program.
after that assign modify form to modified print program using NACE transaction code.
NACE->slect application->go with output types->select suitable one->go with processing routines->select medium->provide modified program name and form name->save the details.
go for view->go for transport.
go with the appropriate transaction suitable to your application.
and provide one existing record->issue out put->go with print
i think it will useful for you.
Reward points if useful.
Thanks,
Usha -
Change Output format of standard program RFSZIS00
Hi All,
I want to change output format of standard program RFSZIS00 for this i copied this into Z program but i am not able to
find out where final output table is populating because that program is not using any final internal table it's using EXRACT and
another thing is all discription for field has given in German Language.
It's a clasical report not an ALV.
Edited by: Raj Singh on Jul 3, 2009 11:03 AMDear Raj,
as per the report mentioned by you, it is calling some subroutine to display the details.
Just try to trace the WRITE statements and check if you can add your own include in this report to display the output as per your requirement.
Regds,
Anil -
Calling the standard program in program and getting its output in int table
Hi there,
I have a requirement, where I need to call the standard program (of transaction CJI3) in my Y program. CJI3 transaction produces a ALV GRID output. I need to use that data for further processing. I am getting following problems:
1. I tried to use SUBMIT ... EXPORTING TO MEMORY statement. I need to pass the company code for the selection, but the company code is in the dynamic selection. So not getting how to pass them.
2. Just a doubt. Can we export the ALV GRID to the memory an retrieve it back using import?
3. I did tried to use SUBMIT ..... statement using only the parameters which are on the selection screen. However the control went to CJI3 transaction and gave an error message 'Please select "from database" or "from archive" '. Did not understood that, any IDEA?
Or is there any other way with which I can accomplish my requirement of getting the data in my program to manipulate, other than SUBMIT.
Points will be rewarded.
Thanks,
Ganesh KhumseHi,
point 1:
SUBMIT ... EXPORTING TO MEMORY will never work, because it displays the information in an ALV grid and that grid is waiting for user interaction for manipulating the information.
point 2:
no, you cannot export the content of an ALV grid to the memory
point 3:
must you get records in an internal table or must you feed the transaction, so that this one performs a task ?? for first option read below and for the other option you might work with BDC and Transaction Recorder.
what you have to do is read the code of transaction CJI3 in order to understand what it does, where the information is read from and what is the internal table that passes the values to the ALV Grid. You might find a user exit in the code for manipulating that information or you might create an enhancement point if there´s no user exit. -
How to modify fbz5 standard program output form
Hi friends
I need to modify the output print form of the standard program FBZ5 how to modify it.
where is the driver program for this form.Selva,
Below is the path in SPRO to find the Driver Program and the Form for the respective Company Codes based on the Correspondence types.
SPRO>>Financial Accounting (New)>>Financial Accounting Global Settings ( New ) >> Correspondence
or
You can put a break point on the FM FORM_CHECK and run FBZ5 in D or Q.
K.Kiran. -
HOW TO GET PROPER OUTPUT OF COPIED STANDARD PROGRAM OF MB51
I HAVE COPIED THE STANDARD PROGRAM OF MB51 TRANSACTION INTO Z-PROGRAM. NOW, I WANT PLANT, PLANT DESCRIPTION,MATERIAL NO,MATERIAL DESCRIPTION,MOVEMENT TYPE, MOVEMENT TYPE TEXT,QUANTITY,BASE UNIT OF MEASURE, AMOUNT OF CURRENCY AS OUTPUT IN ALV-GRID FORMAT. I AM ABLE TO DISPLAY THE OUTPUT NORMALLY IN ALV-GRID FORMAT IN THE FOLLOWING WAY:
PLANT-NO PLANT- DESC MAT-NO MAT-DES MOV-TYP MOV-DES
1000 YYY 100 UUU 351 EE
QUAN BA C
200 TO 2000
500 1500 451
600 1500 451
THE ABOVE IS THE SAMPLE OUTPUT OF THE REQUIRED FIELDS.
IN THE ABOVE OUTPUT ,
QUAN = QUANTITY
BA = BASE UNIT OF MEASURE
C = AMOUNT IN LOCAL CURRENCY
MOVE-TYPE = MOVEMENT TYPE.
MOVE-TYPE = MOVEMENT TYPE TEXT
MAT-NO = MATERIAL NUMBER.
MAT-DESC = MATERIAL DESCRIPTION.
PLANT = PLANT NUMBER.
PLANT DESC = PLANT DESCRIPTION.
IN THE ABOVE MENTIONED SAMPLE OUTPUT,
PLANT NUMBER-1000 HAS TWO MOVEMENT-TYPES 351 AND 451.
IN THIS ,351- MOVEMENT TYPE HAS QUANTITY-200.
451 -MOVEMENT TYPE HAS QUANTITY-500,CURRENCY-1500
451 -MOVEMENT TYPE HAS QUANTITY-600,CURRENCY-1500
AS OF NOW, DIFFERENT MOVEMENT TYPES ARE DISPLAYED WITH DIFFERENT QUANTITIES IN DIFFERENT ROWS. I WANT THE OUTPUT TO BE DISPLAYED IN SAME ROW. THAT MEANS, IN THE ABOVE EXAMPLE, 451 IS REPEATED 2 TIMES WITH QUANTITIES 500 AND 600 RESPECTIVELY. I WANT THESE QUANITITIES TO BE ADDED AND DISPLAYED IN THE COMMON LINE AS FOLLOWS:
PLANT-NO PLANT- DESC MAT-NO MAT-DES MOV-TYP MOV-DES
1000 YYY 100 UUU 351 EE
QUAN BA C
200 TO 2000
1100 TO 3000 451
IN THE ABOVE REQUIRED OUTPUT, 451 MOVEMENT TYPE WHICH IS HAVE HAVING 500,600 AS QUANTITIES AND 1500,1500 AS CURRENCIES ARE ADDED AND DISPLAYED ON THE SAME LINE. I WANT THE OUTPUT IN THIS WAY.
THAT MEANS, FOR EACH PLANT, FOR EACH MATERIAL NUMBER ,FOR EACH MOVEMENT TYPE THE COREESPONDING QUANTITES AND CURRENCIES HAS TO BE ADDED AND DISPLAYED ON THE SAME LINE.
I WANT THE REQUIRED OUTPUT IN THE ABOVE SAID FORMAT.
IF U DON'T UNDERSTAND ANY OF THE PART OF THE ISSUE EXPLAINED , PLEASE REPLY TO ME SO THAT I CAN CLEAR THAT PART BY EXPLAINING TO YOU MORE CLEARLY.
THIS IS VERY URGENT REQUIREMENT. PLEASE SUGGEST THE SOLUTION AS SOON AS POSSIBLE. POINTS WILL BE AWARDED.
THANKING U IN ADVANCE.
SRINIVAS.Hi ,
Create an internal table it_finla1 which has all the fields of the final internal table say it_final for alv displlay exect movement type (bwart), ,.
Now before the final alv display,use this code.
loop at it_final.
move-corresponding it_final to it_final1.
collect it_final1.
endloop.
Now, it_final1 is the table for alv display.
Hope this solves ur query. -
XML output for pdf concurrent program
Hi,
We have one custom concurrent program defined with output as pdf.
We want to generate an xml output some times. We dont want to register another concurrent program.
We want to use same concurrent program, but want to generate output some times pdf , some times xml.
Please suggest whether any possible way of doing this even using CONCSUB also fine.
Thank you,
Venkat.Hi Ramana;
We want to submit the concurrent program, but output type either as xml or pdf it will be known during runtime.AFAIK if you prepare template in XML publisher than you can take output as pdf, by the way you can take xml output too
Please check user guide:
http://www.oracle.com/technology/products/xml-publisher/docs/XMLP5.6.1UserGuide.pdf
Regard
Helios -
Different output in PDF output from sapscript spell_amount
Hi,
Im having problems on my check printing sapscipt program. Im using spell_amount FM and when i print it ... there are problems in the output.
For example, the amount is 345.82. The output given in amount in words becomes five and eighty two three hundred forty...
When i debug in the program. it shows the right amount.. but when it output in PDF, it become different...
ThanksHi,
Use it like this
FORM spell_amount TABLES in_tab STRUCTURE itcsy
out_tab STRUCTURE itcsy.
DATA :
l_char TYPE c.
READ TABLE in_tab INDEX 1.
IF sy-subrc EQ 0.
TRANSLATE in_tab-value TO LOWER CASE.
l_char = in_tab-value.
TRANSLATE l_char TO UPPER CASE.
in_tab-value+0(1) = l_char.
READ TABLE out_tab INDEX 1.
out_tab-value = in_tab-value.
MODIFY out_tab INDEX 1.
ENDIF.
READ TABLE in_tab INDEX 2.
IF sy-subrc EQ 0.
TRANSLATE in_tab-value TO LOWER CASE.
READ TABLE out_tab INDEX 2.
out_tab-value = in_tab-value.
MODIFY out_tab INDEX 2.
ENDIF.
ENDFORM. "SPELL_AMOUNT -
How to add body text when sending output as PDF in email?
Hello,
We are using standard SAP to send SD output as PDF in an email (in output type we choose medium 5, email address is taken from customer master. In transaction SCOT is indicated that SAPscript/smartforms are converted to PDF. When the output is generated, we run rsconn01 to trigger the actual sending of the email).
Via form TEXT_SYMBOL_REPLACE we can modify the subject of the email that is send to include e.g. the order number. HOWEVER, in the body of the email that is send, we now only have the PDF, but we also would like to add a standard text in the body of the email. Does anyone know how to do this?
Thanks,
AlexHi,
Please refer to the following program and see if it helps you.
REPORT ZSAMPL_001 .
INCLUDE ZINCLUDE_01.
DATA
DATA : itab LIKE tline OCCURS 0 WITH HEADER LINE.
DATA : file_name TYPE string.
data : path like PCFILE-PATH.
data : extension(5) type c.
data : name(100) type c.
SELECTION SCREEN
PARAMETERS : receiver TYPE somlreci1-receiver lower case.
PARAMETERS : p_file LIKE rlgrap-filename
OBLIGATORY.
AT SELECTION SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CLEAR p_file.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_file.
START-OF-SELECTION
START-OF-SELECTION.
PERFORM ml_customize USING 'Tst' 'Testing'.
PERFORM ml_addrecp USING receiver 'U'.
PERFORM upl.
PERFORM doconv TABLES itab objbin.
PERFORM ml_prepare USING 'X' extension name.
PERFORM ml_dosend.
SUBMIT rsconn01
WITH mode EQ 'INT'
AND RETURN.
FORM
FORM upl.
file_name = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = file_name
filetype = 'BIN'
TABLES
data_tab = itab
EXCEPTIONS
*file_open_error = 1
*file_read_error = 2
*no_batch = 3
*gui_refuse_filetransfer = 4
*invalid_type = 5
*no_authority = 6
*unknown_error = 7
*bad_data_format = 8
*header_not_allowed = 9
*separator_not_allowed = 10
*header_too_long = 11
*unknown_dp_error = 12
*access_denied = 13
*dp_out_of_memory = 14
*disk_full = 15
*dp_timeout = 16
*OTHERS = 17.
path = file_name.
CALL FUNCTION 'PC_SPLIT_COMPLETE_FILENAME'
EXPORTING
complete_filename = path
CHECK_DOS_FORMAT =
IMPORTING
DRIVE =
EXTENSION = extension
NAME = name
NAME_WITH_EXT =
PATH =
EXCEPTIONS
INVALID_DRIVE = 1
INVALID_EXTENSION = 2
INVALID_NAME = 3
INVALID_PATH = 4
OTHERS = 5
ENDFORM. "upl
***INCLUDE ZINCLUDE_01 .
10.08.2005 Amit M - Created
Include For Mail (First Req F16)
Modification Log
Data
tables crmrfcpar.
DATA: docdata LIKE sodocchgi1,
objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,
objhex LIKE solix OCCURS 10 WITH HEADER LINE,
reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.
DATA: tab_lines TYPE i,
doc_size TYPE i,
att_type LIKE soodk-objtp.
DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.
data v_rfcdest LIKE crmrfcpar-rfcdest.
FORM
FORM ml_customize USING objname objdesc.
Clear Variables
CLEAR docdata.
REFRESH objpack.
CLEAR objpack.
REFRESH objhead.
REFRESH objtxt.
CLEAR objtxt.
REFRESH objbin.
CLEAR objbin.
REFRESH objhex.
CLEAR objhex.
REFRESH reclist.
CLEAR reclist.
REFRESH listobject.
CLEAR listobject.
CLEAR tab_lines.
CLEAR doc_size.
CLEAR att_type.
Set Variables
docdata-obj_name = objname.
docdata-obj_descr = objdesc.
ENDFORM. "ml_customize
FORM
FORM ml_addrecp USING preceiver prec_type.
CLEAR reclist.
reclist-receiver = preceiver.
reclist-rec_type = prec_type.
APPEND reclist.
ENDFORM. "ml_customize
FORM
FORM ml_addtxt USING ptxt.
CLEAR objtxt.
objtxt = ptxt.
APPEND objtxt.
ENDFORM. "ml_customize
FORM
FORM ml_prepare USING bypassmemory whatatt_type whatname.
IF bypassmemory = ''.
Fetch List From Memory
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = listobject
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID '61' TYPE 'E' NUMBER '731'
WITH 'LIST_FROM_MEMORY'.
ENDIF.
CALL FUNCTION 'TABLE_COMPRESS'
IMPORTING
COMPRESSED_SIZE =
TABLES
in = listobject
out = objbin
EXCEPTIONS
OTHERS = 1
IF sy-subrc <> 0.
MESSAGE ID '61' TYPE 'E' NUMBER '731'
WITH 'TABLE_COMPRESS'.
ENDIF.
ENDIF.
Header Data
Already Done Thru FM
Main Text
Already Done Thru FM
Packing Info For Text Data
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 = 'TXT'.
APPEND objpack.
Packing Info Attachment
att_type = whatatt_type..
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 = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = att_type.
objpack-obj_name = 'ATTACHMENT'.
objpack-obj_descr = whatname.
APPEND objpack.
Receiver List
Already done thru fm
ENDFORM. "ml_prepare
FORM
FORM ml_dosend.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = docdata
put_in_outbox = 'X'
commit_work = 'X' "used from rel. 6.10
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
CONTENTS_HEX = objhex
OBJECT_PARA =
object_parb =
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
IF sy-subrc <> 0.
MESSAGE ID 'SO' TYPE 'S' NUMBER '023'
WITH docdata-obj_name.
ENDIF.
ENDFORM. "ml_customize
FORM
FORM ml_spooltopdf USING whatspoolid.
DATA : pdf LIKE tline OCCURS 0 WITH HEADER LINE.
Call Function
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = whatspoolid
TABLES
pdf = pdf
EXCEPTIONS
err_no_otf_spooljob = 1
OTHERS = 12.
Convert
PERFORM doconv TABLES pdf objbin.
ENDFORM. "ml_spooltopdf
FORM
FORM doconv TABLES
mypdf STRUCTURE tline
outbin STRUCTURE solisti1.
Data
DATA : pos TYPE i.
DATA : len TYPE i.
Loop And Put Data
LOOP AT mypdf.
pos = 255 - len.
IF pos > 134. "length of pdf_table
pos = 134.
ENDIF.
outbin+len = mypdf(pos).
len = len + pos.
IF len = 255. "length of out (contents_bin)
APPEND outbin.
CLEAR: outbin, len.
IF pos < 134.
outbin = mypdf+pos.
len = 134 - pos.
ENDIF.
ENDIF.
ENDLOOP.
IF len > 0.
APPEND outbin.
ENDIF.
ENDFORM. "doconv
FORM
FORM ml_saveforbp USING jobname jobcount.
Data
*data : yhead like yhrt_bp_head.
*DATA : ydocdata LIKE yhrt_bp_docdata,
*yobjtxt LIKE yhrt_bp_objtxt OCCURS 0 WITH HEADER LINE,
*yreclist LIKE yhrt_bp_reclist OCCURS 0 WITH HEADER LINE.
*DATA : seqnr TYPE i.
Head
*yhead-jobname = jobname.
*yhead-jobcount = jobcount..
*MODIFY yhrt_bp_head FROM yhead.
Doc Data
*ydocdata-jobname = jobname.
*ydocdata-jobcount = jobcount.
*MOVE-CORRESPONDING docdata TO ydocdata.
*MODIFY yhrt_bp_docdata FROM ydocdata.
Objtxt
*seqnr = 0.
*LOOP AT objtxt.
*seqnr = seqnr + 1.
*yobjtxt-jobname = jobname.
*yobjtxt-jobcount = jobcount.
*yobjtxt-seqnr = seqnr.
*MOVE-CORRESPONDING objtxt TO yobjtxt.
*MODIFY yhrt_bp_objtxt FROM yobjtxt.
*ENDLOOP.
RecList
*seqnr = 0.
*LOOP AT reclist.
*seqnr = seqnr + 1.
*yreclist-jobname = jobname.
*yreclist-jobcount = jobcount.
*yreclist-seqnr = seqnr.
*MOVE-CORRESPONDING reclist TO yreclist.
*MODIFY yhrt_bp_reclist FROM yreclist.
*ENDLOOP.
ENDFORM. "ml_saveforbp
FORM
FORM ml_fetchfrombp USING jobname jobcount.
*CLEAR docdata.
*REFRESH objtxt.
*REFRESH reclist.
*SELECT SINGLE * FROM yhrt_bp_docdata
*INTO corresponding fields of docdata
*WHERE jobname = jobname
*AND jobcount = jobcount.
*SELECT * FROM yhrt_bp_objtxt
*INTO corresponding fields of TABLE objtxt
*WHERE jobname = jobname
*AND jobcount = jobcount
*ORDER BY seqnr.
*SELECT * FROM yhrt_bp_reclist
*INTO corresponding fields of TABLE reclist
*WHERE jobname = jobname
*AND jobcount = jobcount
*ORDER BY seqnr.
ENDFORM. "ml_fetchfrombp
Hope this helps.
Please reward some points if it helps.
Regards,
Amit Mishra -
Convert Smartform Output to PDF
Hi all,
I am trying to save Output of Smartform in PDF file format. for that purpose i am calling "CONVERT_OTF" FM from my driver program.
But it is giving me Information "OTF end command // missing in OTF data"
while executing FM "CONVERT_OTF". i debug it it is giving Sy-subrc = 2.
Please Help me in this context. I am also givin code of my driver program:
TABLES: vbrp.
DATA: fm_name TYPE rs38l_fnam,
it_invoice TYPE STANDARD TABLE OF vbrp,
it_invoice_wa TYPE vbrp,
it_inv TYPE STANDARD TABLE OF vbrp,
it_inv_wa TYPE vbrp,
invoice_no(25) TYPE c,
invoice_l(10) TYPE c,
invoice_h(10) TYPE c.
Converting Output to PDF Declaration **********
DATA: tab_otf_data TYPE ssfcrescl,
pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE,
bin_filesize LIKE sood-objlen,
outop TYPE ssfcompop, " Output Parameters
cparam TYPE ssfctrlop, " Control Parameters
tab_otf_final TYPE itcoo OCCURS 0 WITH HEADER LINE,
my_tabix TYPE sy-tabix,
file_size TYPE i.
SELECT-OPTIONS doc_no FOR vbrp-vbeln.
SELECT vbeln posnr fkimg vrkme meins netwr matnr
FROM vbrp INTO CORRESPONDING FIELDS
OF TABLE it_invoice
WHERE vbeln IN doc_no.
Inserting Unique Invoice Numbers for Displaying Individual Details in
Smart Form
LOOP AT it_invoice INTO it_invoice_wa.
AT NEW vbeln.
MOVE it_invoice_wa-vbeln TO it_inv_wa-vbeln.
APPEND it_inv_wa TO it_inv.
ENDAT.
ENDLOOP.
invoice_no = doc_no.
invoice_l = doc_no-low.
invoice_h = doc_no-high.
suppressing the Print dialog box *********************
*outop-tddest = 'locl'.
*cparam-no_dialog = 'X'.
*cparam-preview = space.
*cparam-getotf = 'X'.
START-OF-SELECTION.
Calling Smart Form *********************************
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSB_SMARTFORM_INVOICE'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = fm_name
CALL FUNCTION fm_name
EXPORTING
invoice_no_h = invoice_h
invoice_no_l = invoice_l
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = cparam
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = outop
user_settings = ''
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = tab_otf_data
JOB_OUTPUT_OPTIONS =
TABLES
it_invoice = it_invoice
it_inv = it_inv
***removing the initial and final markers from the OTF data*********
DELETE tab_otf_data-otfdata WHERE tdprintcom = '//'.
searching for the end-of-page in OTF table************
READ TABLE tab_otf_final WITH KEY tdprintcom = 'EP'.
my_tabix = sy-tabix + 1.
appending the modified OTF table to the final OTF table****
*INSERT LINES OF tab_otf_data-otfdata INTO tab_otf_final INDEX my_tabix.
tab_otf_final[] = tab_otf_data-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
ARCHIVE_INDEX = ' '
COPYNUMBER = 0
ASCII_BIDI_VIS2LOG = ' '
IMPORTING
bin_filesize = bin_filesize
BIN_FILE =
TABLES
otf = tab_otf_final
lines = pdf_tab
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.
write :/ bin_filesize.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = bin_filesize
filename = 'E:/Test.pdf'
FILETYPE = 'ASC'
IMPORTING
FILELENGTH = file_size
tables
data_tab = pdf_tab
FIELDNAMES =
Help will be rewarded.
Regards,
Sachinhi
good
go through this ,hope this ll help you to solve this problem
Check out the following documentation and example program and help links
s_control_parameters-no_dialog = 'X'.
s_control_parameters-getotf = 'X'.
CALL FUNCTION v_func_name "call your smartform
EXPORTING
output_options = s_output_options
control_parameters = s_control_parameters
IMPORTING
job_output_info = s_job_output_info
call function 'CONVERT_OTF_2_PDF'
tables
otf = s_job_output_info-otfdata
lines = t_pdf
here is the example for SAMRTFORM TO PDF.
http://www.sap4.com/wiki/index.php/Genera_PDF_a_partir_de_Smartforms
Example Program
data:
fm_name TYPE RS38L_FNAM, "Smart Forms: FM Name
sf_name TYPE TDSFNAME
value 'YOUR_FORM_NAME', "Smart Forms: Form Name
P_OUTPUT_OPTIONS TYPE SSFCOMPOP,
P_JOB_OUTPUT_INFO TYPE SSFCRESCL,
P_CONTROL_PARAMETERS TYPE SSFCTRLOP,
P_LANGUAGE TYPE SFLANGU value 'E',
P_E_DEVTYPE TYPE RSPOPTYPE.
data:
P_BIN_FILESIZE TYPE I,
P_BIN_FILE TYPE XSTRING,
P_OTF type table of ITCOO,
P_DOCS type table of DOCS,
P_LINES type table of TLINE,
name type string,
path type string,
fullpath type string,
filter type string,
guiobj type ref to cl_gui_frontend_services,
uact type i,
filename(128).
GET SMARTFORM FUNCTION MODULE NAME ---
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = sf_name
IMPORTING
FM_NAME = fm_name
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.
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = P_LANGUAGE
I_APPLICATION = 'SAPDEFAULT'
IMPORTING
E_DEVTYPE = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-XSFCMODE = 'X'.
P_OUTPUT_OPTIONS-XSF = SPACE.
P_OUTPUT_OPTIONS-XDFCMODE = 'X'.
P_OUTPUT_OPTIONS-XDF = SPACE.
P_OUTPUT_OPTIONS-TDPRINTER = P_E_DEVTYPE.
P_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
P_CONTROL_PARAMETERS-GETOTF = 'X'.
****...................................PRINTING.........................
CALL FUNCTION fm_name
EXPORTING
CONTROL_PARAMETERS = P_CONTROL_PARAMETERS
OUTPUT_OPTIONS = P_OUTPUT_OPTIONS
(....) <--- your form import parameters
IMPORTING
JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
****...................................CONVERT TO PDF...............
CALL FUNCTION 'CONVERT_OTF_2_PDF'
IMPORTING
BIN_FILESIZE = P_BIN_FILESIZE
TABLES
OTF = P_OTF
DOCTAB_ARCHIVE = P_DOCS
LINES = P_LINES
EXCEPTIONS
ERR_CONV_NOT_POSSIBLE = 1
ERR_OTF_MC_NOENDMARKER = 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.
concatenate 'xxxx' '.pdf' into name.
****..................................REQUEST FILE NAME.................
create object guiobj.
call method guiobj->file_save_dialog
EXPORTING
default_extension = 'pdf'
default_file_name = name
file_filter = filter
CHANGING
filename = name
path = path
fullpath = fullpath
user_action = uact.
if uact = guiobj->action_cancel.
exit.
endif.
move fullpath to filename.
****..................................DOWNLOAD AS FILE................
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
FILENAME = filename
FILETYPE = 'BIN'
TABLES
DATA_TAB = P_LINES
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
reward poing if helpful..
thanks
mrutyun^ -
PO output type to send a mail to the user along with PO output as PDF file
Hi Friends,
I have one requirement from client.
Client wants the PO output to be converted to PDF format and sent to User while doing the PO release through e-mail. Can anybody guide me how to Configure a New Output Type and convert the PO output into PDF and send to User through e-mail.
Thanks
NazerThis can be done with the standard form itself.
first find out the output type u r using.
Then goto T-code NACE and then choose EF- purchase order and then select the output type u r using.
Then goto the 'processing Routines' at the lefe side of the screen.
There u can find out the output forms for this output typr u r using. Here add 'Simple mail-7' in the list and then give the program name and the smartform or the script u r using.
We can also give the mail texts for this output form.
After that goto ME22N and then choose the 'Messages' tab and then click the simple mail and in the 'communication method' kindly provide the mail id for which the PO mail has to be sent.
And then the mail can be viewed in the inbox of the recipient.
in this way we can sent the PO mail to the corresponding mail address,.
I guess this will solve ur issue.
Thanks and Regards
Siva
Edited by: Sivaprakash R on Apr 20, 2009 1:00 PM
Edited by: Sivaprakash R on Apr 20, 2009 1:00 PM
Maybe you are looking for
-
How to create a matrix with constant values and multiply it with the output of adc
How to create a matrix with constant values and multiply it with the output of adc
-
Hi all Is there any setting to enable posting Purchase Order in negative value. This is possible in AP Invoice. Kedalene Chong
-
Adobe Premiere Pro CS5 Capture not working, capturing as MP3
I'm using Project Setting of HDV and Sequence Settings of DVCProHD HD1080i 50 (this says it is the preset for Panasonic P2 cameras, mine is Sony as above but I have no other generic HDV settings). The video plays through the Capture window fine and l
-
Sharing between Mac mini and Macbook Pro
I have recently switched to using Macs and can't figure out my issue. I am trying to figure out how to share both my files and my internet between my mac mini and MBP at work. My mac mini is hardlined to the internet and I would like to use airport t
-
Help - Schuffle is not linking
We just got a second generation schuffle. The schuffle is not recognized by the computer. We have XP. I have plugged it into every usb port and it does not recognize the schuffle. Do I have a bad schuffle?