Reg. PDF file stored in oracle server directory
Dear All ,
How to stored PDF generated file in oracle server directory.
Thanks & Regards
shailesh
You need a directory object in Oracle for that server directory. That directory needs to be accessible (permission/ACL wise) to the local database processes to read/write from/
The schema that will be doing the read/write using that directory object, needs read/write privs on it.
UTL_FILE is used by PL/SQL code to write database contents to file.
Similar Messages
-
How can I read content from PDF file stored in Oracle 9i XMLDB
Hi Friends:
Now I have met one question that I don`t know how to read some String , for example "Hello", from the PDF file stored in the Oracle 9i XMLDB, I have stored that PDF file into the XMLDB now, any suggestions are appriciated . Thank you in advance.You may be able to do something with Oracle Text. The following shows how to get an HTML rendiditon of a binary document. I think you can also get plain text instead of HTML
set echo on
spool xfilesUtilties.log
connect sys/&1 as sysdba
grant ctxapp to &2
connect &2/&3
begin
ctxsys.ctx_ddl.create_policy(policy_name=>'XFILES_HTML_GENERATION', filter=>'ctxsys.auto_filter');
end;
create or replace package xfiles_internal_11010
authid definer
as
function renderAsHTML(sourceDoc BLOB) return CLOB;
end;
show errors
create or replace package body xfiles_internal_11010
as
function renderAsHTML(sourceDoc BLOB)
return CLOB
as
html_content CLOB;
begin
dbms_lob.createTemporary(html_content,true,DBMS_LOB.SESSION);
ctx_doc.policy_filter(policy_name => 'XFILES_HTML_GENERATION',
document => sourceDoc,
restab => html_content,
plaintext => false);
return html_content;
end;
end;
show errors
create or replace package xfiles_utilities_11010
authid current_user
as
HOME_FOLDER constant varchar2(700) := xdb_constants.HOME_FOLDER;
PUBLIC_FOLDER constant varchar2(700) := xdb_constants.PUBLIC_FOLDER;
function renderAsHTML(sourceFile VARCHAR2) return CLOB;
function transformToHTML(xmldoc XMLType, xslPath VARCHAR2) return CLOB;
end;
show errors
create or replace package body xfiles_utilities_11010
as
function renderAsHTML(sourceFile VARCHAR2)
return CLOB
as
begin
return xfiles_internal_11010.renderAsHTML(xdburitype(sourceFile).getBLOB());
end;
function transformToHTML(xmldoc XMLType, xslPath VARCHAR2)
return CLOB
as
html clob;
begin
select xmldoc.transform(xdburitype(xslPath).getXML()).getClobVal()
into HTML
from dual;
return html;
end;
end;
show errors
grant execute on xfiles_utilities_11010 to public
create or replace public synonym xfiles_utilities for xfiles_utilities_11010
quitMessage was edited by:
mdrake -
View pdf file stored in oracle database through oracle forms
Forms [32 Bit] Version 10.1.2.0.2 (Production)
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
Oracle Toolkit Version 10.1.2.0.2 (Production)
PL/SQL Version 10.1.0.4.2 (Production)
Oracle Procedure Builder V10.1.2.0.2 - Production
PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)
Oracle Query Builder 10.1.2.0.2 - Production
Oracle Virtual Graphics System Version 10.1.2.0.2 (Production)
Oracle Tools GUI Utilities Version 10.1.2.0.2 (Production)
Oracle Multimedia Version 10.1.2.0.2 (Production)
Oracle Tools Integration Version 10.1.2.0.2 (Production)
Oracle Tools Common Area Version 10.1.2.0.2
Oracle CORE 10.1.0.4.0 Production
I have created external directory and am able to load pdf files in oracle database table called test_blob.
CREATE TABLE test_blob (
id NUMBER(15)
, file_name VARCHAR2(1000)
, image BLOB
, timestamp DATE
I have 2 pdf files in the table. I want to view this pdf from forms when the user clicks on the button. On when-button-pressed trigger I want to show pdf on the screen. Any help is appreciated. Not on the designer. I want to run form application.
SELECT id, file_name,
DBMS_LOB.GETLENGTH(image) Length,
timestamp
FROM test_blob
ID|FILE_NAME|LENGTH|TIMESTAMP
1001|2011 HeartlandEmployeeReferralCard.pdf|353718|1/28/2013 11:44:41 AM
1002|2011 HeartlandEmployeeReferralCard.pdf|353718|1/28/2013 11:51:07 AM
Edited by: user_anumoses on Jan 28, 2013 11:45 AMWe were able to do the same thing with Oracle Application Server and Oracle WebLogic Server. I cannot remember how different the processes were, but it seems like they were very similar. I am going to give you the instructions on how we implemented a "Read PDF" procedure on the WebLogic Server. If you are still on the Application Server you may have to do some Google searches, but it all boils down to the mod_plsql DAD Configuration file.
Our PDF was located in a table with the following structure:
CASE_DOCUMENTS
(id_document NUMBER NOT NULL,
doc_blob BLOB,
note VARCHAR2(240),
created_by VARCHAR2(20) NOT NULL,
created_dt DATE NOT NULL,
case_id NUMBER NOT NULL,
filename VARCHAR2(100) NOT NULL)Based on that table structure we created a procedure named READ_PDF which you will reference below in the dads.conf file below:
CREATE or REPLACE procedure read_pdf (p_id_document IN number)
is
view_file blob;
BEGIN
select doc_blob
into view_file
from case_documents
where id_document = p_id_document;
OWA_UTIL.MIME_HEADER ('APPLICATION/PDF', FALSE);
HTP.P ('CONTENT-LENGTH: ' || DBMS_LOB.GETLENGTH (view_file));
OWA_UTIL.http_header_close;
WPG_DOCLOAD.download_file (view_file);
END;
GRANT EXECUTE ON read_pdf TO financial_user_role -- Name of role to execute
/Basically, you are passing in one parameter and that is the primary key for your table. You are selecting the pdf stored in a BLOB for that primary key. The commands below that allow the pdf to open up so you can view it – we got this off some search we did a few years ago.
Now, you need to add logic to your Oracle Form that will call the procedure above, but the URL is based on the dads.conf file that we will set up below… Anyway, we created a button on the form module with a label of "View". In the WHEN-BUTTON-PRESSED trigger the logic looks like this:
-- The View logic uses the DAD (Database Access Descriptors) method to view a .pdf file from the form.
-- The DAD was created on WebLogic Server with the name findadgen. This allows an http request be made
-- to the database.
declare
v_file varchar2(400);
v_success boolean;
ret_val number;
v_http_link varchar2(400);
begin
-- The format of the link is as follows: hostname:port/pls/DAD_name/procedure_name
v_http_link := 'http://finas03:8888/pls/findadgen/read_pdf?p_id_document=' || :case_documents.id_document;
web.show_document(v_http_link, '_BLANK');
end;The name of our WebLogic Server is "finas03" so that is what is listed in the URL. The "findadgen" is the name of the <Location> in the dads.conf file below, the "read_pdf" is the name of the procedure we created above, the "p_id_document=" is the IN parameter listed in the READ_PDF procedure created above, and the ":case_documents.id_document" is the reference to the primary key in our Oracle Form.
For WebLogic, you can either go through Enterprise Manager (directions below) or update the dads.conf file on the filesystem directly (if you update the dads.conf file directly then skip to step 4 and ignore step 5):
1. Enterprise Manager -> Web Tier -> ohs1
2. Oracle HTTP Server (pull-down) – Administration – Advance Configuration
3. Select File – dads.conf
4. Add something similar:
# ============================================================================
# mod_plsql DAD Configuration File
# ============================================================================
# 1. Please refer to dads.README for a description of this file
# ============================================================================
# Note: This file should typically be included in your plsql.conf file with
# the "include" directive.
# Hint: You can look at some sample DADs in the dads.README file
# ============================================================================
<Location /pls/findadgen>
SetHandler pls_handler
Order allow,deny
Allow from All
AllowOverride None
PlsqlDatabaseUsername financial
PlsqlDatabasePassword sdo_3#d1
PlsqlDatabaseConnectString ffindbTNSFormat
PlsqlNLSLanguage AMERICAN_AMERICA.WE8ISO8859P1
PlsqlAuthenticationMode Basic
PlsqlDefaultPage read_pdf
</Location>You are adding the <Location> section to your dads.conf file. The "finddadgen" is the name that you will reference in a change you fill make to your Oracle Form. The "financial" is the Schema, the "sdo_3#d1" is the password for that Schema, the "ffindb" is the database that the stored procedure is located on, and the "read_pdf" is a stored procedure you will have to create in order to read the pdf.
5. Press the "Apply" Button
6. Obfuscate the DAD password by running the dadTool.pl script located in $ORACLE_HOME/bin (This was done on Unix on our server with the following commands):
$> LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
$> cd $ORACLE_HOME/bin
$> perl dadTool.pl -f /u01/app/oracle/middleware/asinst_1/config/OHS/ohs1/mod_plsql/dads.conf
7. Restart the Oracle HTTP Server using Fusion Middleware Control:
Enterprise Manager -> Web Tier -> ohs1
Oracle HTTP Server – Control – Shutdown
Oracle HTTP Server – Control – Start Up
If you followed the instructions above, you should have created a stored procedure, added logic to your Oracle form to reference that stored procedure, and created an entry in the dads.conf file. Once you move the form onto the server and you restart the HTTP Service, you should be able to view a pdf that is stored in a table directly from your Oracle Form. -
Opening pdf files stored on server
Hi
We have an application in which we display pdf files stored on the server.
Pdf files opens in a new browser.
User selects the invoice number from a list and based on the invoice selected, we get a pdf file from R/3 system. This file is stored in a particular folder on the server. We extract this file from the folder to show it to the user in a separate browser.
This functionality works fine in the development system but not in test system.
We have recently installed our test system and have done all required settings in config tool.
Config Tool --> Display configuration --> HttpHttps --> Root and Alias folder.
But despite this the functionality is not working.
Is there some other setting that I have missed.
Unfortunately these settings were done in the dev system by someone else and I do not have a document for it.
Can anyone help me please.
This is very urgent for me as we are plannning to migrate our production system as well. I may face the same problem over there as well.
Regards
VineetHi,
We have the same requirement at our client end. Could you please guide me for the same?
Regards,
Sachin Mahajan -
Transferring files stored in a network directory to SAP.
hi Guys,
my requirement is this is an inbound interface, transferring PDF files stored in a network directory to SAP and web direcotry.
i think this is something releated to system call, can some one give me some idea on it or from soemwhere i could find some doc on this or any FM to do this.....
Thanks in Advance.
Regards.Hi Pawan,
I'm not sure at this stage how this can be done if you don't have a user with a SAPGui at least for the first step.
If you do, you could do it like this:
- User enters path as a parameter to abap program
- Program calls method DIRECTORY_LIST_FILES of class CL_GUI_FRONTEND_SERVICES
- Program calls method GUI_UPLOAD of class CL_GUI_FRONTEND_SERVICES to read files one by one
- Program uses open dataset, transfer and close dataset to write the files to the application server
- Program calls method FILE_DELETE of class CL_GUI_FRONTEND_SERVICES to delete the files one by one from the directory.
This, however, will only work if you have a dialog session and the user has access to the network directories in question.
If you are running SAP on NT, and you have directories on this server mapped to PC drives, you could also use the FILE_COPY method rather than using open dataset, transfer, etc.
If you MUST run this stuff as background jobs, I'm not sure that I can help much.
Cheers,
Brad -
How can i display a pdf file stored in my KM from webdynpro link ?
Hi experts,
i try to open my pdf file stored in km, in the same window of my webdynpro java who has the fire link ?
i user tow iviews with inBound and outBound plug, the first one has the fire link and the seconde an iframe witch i set source parameter to my km link where my PDF is stored. Unfortunately, the iFrame don't work correctly, and my PDF is not be displayed
Can you give some advices ?Hi
Recently in my project I came across a scenario where my Web Dynpro Project had to pick the image from KM. The images to be displayed will be placed in KM. This will avoid loading the images into the Web DynPro project. More over when you have KM installed on your EP server, one can use it for storing backend data and resources. The KM Admin will be undertaking this task of uploading the images to predefined folder structures. Through the application path to the image will be provided dynamically giving you the flexibility to decide which image to be displayed according to the business logic.
Getting an image from KM Documents to be used in Web Dynpro
Uploading files to KM repository using Webdynpro APIs
KM with WebDynpro
thanks
Suresh -
Regarding the uploading the pdf file to the application server
hi,
iam getting this error while uploading the pdf file to the applicatioin server.
"There was an error while trying to parse an image"
to convert smartform into PDF file we ll use convert_otf FM.
If see that FM data ll be stored in it_tline structure ok.
For sending to application server we ll use
OPEN DATASET p_arch for OUTPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.
LOOP AT it_tline.
TRANSFER it_tline to p_arch.
ENDLOOP.
CLOSE DATASET p_arch.
Ok
For getting data from internal table we ll use
OPEN DATASET p_arch FOR INPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS
do.
READ DATASET p_arch INTO it_tline.
if sy-subrc = 0.
APPEND it_tline.
ELSE .
exit.
endif.
enddo.
CLOSE DATASET p_arch.
LOOP AT it_tline.
TRANSLATE it_tline USING '~'.
CONCATENATE wa_buffer it_tline INTO wa_buffer.
ENDLOOP.
TRANSLATE wa_buffer USING '~'.
DO.
i_record = wa_buffer.
APPEND i_record.
SHIFT wa_buffer LEFT BY 255 PLACES.
IF wa_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Attachment
REFRESH:
i_reclist,
i_objtxt,
i_objbin,
i_objpack.
CLEAR wa_objhead.
i_objbin[] = i_record[].
Create Message Body
Title and Description
i_objtxt = 'COMMERCIAL INVOICE'.
APPEND i_objtxt.
DESCRIBE TABLE i_objtxt LINES v_lines_txt.
READ TABLE i_objtxt INDEX v_lines_txt.
wa_doc_chng-obj_name = 'COMMERCIAL INVOICE'.
wa_doc_chng-expiry_dat = sy-datum + 10.
wa_doc_chng-obj_descr = 'COMMERCIAL INVOICE'.
wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size = v_lines_txt * 255.
CLEAR i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
APPEND i_objpack.
Attachment
(pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
DESCRIBE TABLE i_objbin LINES v_lines_bin.
READ TABLE i_objbin INDEX v_lines_bin.
i_objpack-doc_size = v_lines_bin * 255 .
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'COMMERCIAL INVOICE'.
i_objpack-obj_descr = 'COMMERCIAL INVOICE'.
APPEND i_objpack.
BREAK-POINT.
IF it_adr6[] IS NOT INITIAL.
LOOP AT it_adr6 INTO wa_adr6.
CLEAR i_reclist.
i_reclist-receiver = wa_adr6-smtp_addr.
i_reclist-rec_type = 'U'.
i_reclist-com_type = 'INT'.
APPEND i_reclist.
ENDLOOP.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
TABLES
packing_list = i_objpack
object_header = wa_objhead
contents_bin = i_objbin
contents_txt = i_objtxt
receivers = i_reclist.
ENDIF.
The above error I am getting.
Please give your suggestions
Thanks in advanceU can use this code
Reward if useful
REPORT ZMN_PDF_UPLOAD.
data: begin of itab occurs 0,
field(256),
end of itab.
data: dsn(100) value '\usr\sap\DEV\DVEBMGS00\work\testpdf',
length like sy-tabix,
lengthn like sy-tabix.
call function 'GUI_UPLOAD'
exporting
filename = 'c:\temp\test.pdf'
filetype = 'BIN'
importing
filelength = length
tables
data_tab = itab.
open dataset dsn for output in binary mode.
loop at itab.
transfer itab-field to dsn.
endloop.
close dataset dsn.
clear itab.
refresh itab.
*To crosscheck if it went well
open dataset dsn for input in binary mode.
do.
read dataset dsn into itab-field.
if sy-subrc = 0.
append itab.
else.
exit.
endif.
enddo.
call function 'GUI_DOWNLOAD'
exporting
filename = 'c:\temp\testn.pdf'
filetype = 'BIN'
bin_filesize = length
importing
filelength = lengthn
tables
data_tab = itab.
*Or
*Use the TCode
*CG3Z or CG3Y
*for downloading to Application Server. -
Hyperlink to a file stored on a server
Hi guys,
I've created dynamic pdf in LCD. It allows creating hyperlinks, but unfortunately only to web locations. I'd like to create a link that connects to a file stored on a server based on the DFS file system.
Is it possible to do something like that? It has to work with Adobe Reader.
Thanks for your help.
MarianI believe the access to the file system is blocked for security reasons.
Paul -
Jsp page opening pdf file stored in an ORDDOC type column
Dear All,
i am building a jsp page that opens a pdf file stored in database. if column type is BLOB, i run the prepareStatement and store in a ResultSet, and then BufferedInputStream(result.getBinaryStream("FILE")). it works. page opens the pdf file.
but when column type is ORDDOC, i get this error:
Failure in java.sql.SQLException: Ongeldig kolomtype.: getBinaryStream not implemented for class oracle.jdbc.driver.T4CNamedTypeAccessor
what more do i do to get a pdf(or txt, msword..) file to jsp page and open it?
regards
JerryWe are facing this problem with IE6 browser only. In firefox, it opens fine in a browser window. What configuration should we do in IE6?
Thanks,
Ananth. -
Reading an XML file stored in Oracle
Is it possible to read an xml file stored in Oracle via Oracle methods?
If by "read" you mean "read as text", then you can just select the document as a CLOB and return it.
If by "read" you mean "read and parse", then you can use the Oracle XML Parser for PL/SQL to parse the CLOB into a DOM structure.
My Building Oracle XML Applications book has lots of examples of doing this, but especially in chapter 5, "Processing XML with PL/SQL".
Steve Muench
Development Lead, Oracle XSQL Pages Framework
Lead Product Manager for BC4J and Lead XML Evangelist, Oracle Corp
Author, Building Oracle XML Applications
null -
PDF file created from Oracle Report is attached wrongly
Hi,
Please help. It is very urgent.
I am using Oracle Developer 10gR2, Oracle Report 10.1.2 on Windows 2000.
I would like to attach the PDF file created by Oracle Report to the Notification sent from Workflow.
I use the following package procedure in my Workflow.
procedure Create_File_Attachment (document_id in varchar2, display_type in varchar2, document in out blob, document_type in out varchar2)
is
l_itemtype varchar2(100);
l_itemkey varchar2(100);
l_output_directory varchar2(30);
l_filename varchar2(255);
src_loc bfile;
bdoc blob;
src_offset number := 1;
dst_offset number := 1;
amount number;
begin
l_itemtype := substr(document_id, 1, instr(document_id, ':') - 1);
l_itemkey := substr(document_id, instr(document_id, ':') + 1, length(document_id) - 2);
l_output_directory := 'USR_TMP_DIR';
l_filename := Wf_Engine.GetItemAttrText(l_itemtype, l_itemkey, 'ATR_FILENAME');
src_loc := bfilename(l_output_directory,l_filename);
dbms_lob.createTemporary(bdoc, FALSE, dbms_lob.call);
dbms_lob.fileopen(src_loc, dbms_lob.file_readonly);
dbms_lob.loadblobfromfile(bdoc,src_loc,dbms_lob.lobmaxsize,src_offset,dst_offset);
dbms_lob.fileclose(src_loc);
amount := dbms_lob.getLength(bdoc);
dbms_lob.copy(document,bdoc,amount,1,1);
document_type := 'application/pdf; name=attach.pdf';
end Create_File_Attachment;Oracle Report created the PDF file correctly (original.pdf).
I tried to attach the PDF into my Workflow.
I can see the file is attached (attach.pdf), but it cannot be opened.
The Adobe shows : 'A drawing error occured.' each time I open the attachment.
I compare the original.pdf and the attach.pdf
However, there is one specific difference
- in original.pdf, the line started with '.' (single period)
in attach.pdf, the line is started with '..' (two periods)
Thus the attachment cannot be opened.
After I delete the period, it can be opened.
Question:
- Has someone ever succeed in attaching the PDF created from Report?
- Are the codes above is wrong?
- Or perhaps the DBMS_LOB.LOADBLOBFROMFILE always double the single period on front of the line?
- Is there any solution on this?
Note:
I have succeed in attaching PDF files unless the PDF created by the Report.
Sorry for the long post.
Please help. It is very urgent.
Any help is appreciated.
Many thanks,
BuntoroThe code looks absolutely good. I have the same code working in my system. Only difference is I use TRUE and DBMS_LOB.Session for the BLOB I use to read from the BFILE.
I can suggest one more way to handle to binary attachments if you are on Oracle 9i DB are later versions.
procedure attach_document (p_document_id in varchar2,
p_display_type in varchar2,
p_document in out nocopy clob,
p_document_type in out nocopy varchar2)
is
l_nid number;
l_directory varchar2(100);
l_filename varchar2(100);
l_content_type varchar2(100);
l_src_offset binary_integer := 1;
l_dst_offset binary_integer := 1;
l_err_msg varchar2(100);
l_amount number;
l_bfile BFILE;
l_blob BLOB;
l_clob CLOB;
file_not_found exception;
pragma EXCEPTION_INIT(file_not_found, -22288);
begin
l_nid := to_number(p_document_id);
l_directory := trim(wf_notification.GetAttrText(l_nid, 'ATTR_DIRECTORY'));
l_filename := trim(wf_notification.GetAttrText(l_nid, 'ATTR_FILENAME'));
l_content_type := trim(wf_notification.GetAttrText(l_nid, 'ATTR_CONTENT_TYPE'));
l_bfile := BFILENAME(l_directory, l_filename);
dbms_lob.createtemporary(l_blob, true, dbms_lob.Session);
dbms_lob.createtemporary(l_clob, true, dbms_lob.Session);
begin
dbms_lob.FileOpen(l_bfile, dbms_lob.File_Readonly);
exception
when file_not_found then
l_err_msg := to_char(sqlcode)||' - Attachment File "'||l_filename||'" is not found.';
raise_application_error(-20002, l_err_msg);
end;
dbms_lob.LoadBLOBFromFile(l_blob, l_bfile, dbms_lob.LobMaxSize, l_src_offset, l_dst_offset);
dbms_lob.FileClose(l_bfile);
-- Encode the BLOB content to BASE64 and attach to notification
wf_mail_util.EncodeBLOB(l_blob, l_clob);
l_amount := dbms_lob.GetLength(l_clob);
dbms_lob.Copy(p_document, l_clob, l_amount, 1, 1);
-- Mention an appropriate Content Type so that Notification System
-- understands the attachment content
p_document_type := l_content_type||'; encoding=base64; name='||l_filename;
end attach_document;Here I read the BLOB from the filesystem and base64 encode it before giving it to the Mailer. Please note that this is a PLSQLCLOB based attachment as against PLSQLBLOB that you are using.
Thanks - Vijay -
PDF file created from Oracle Report is created wrongly using dbms_lob
Hi,
Please help. It is very urgent.
I am using Oracle Developer 10gR2, Oracle Report 10.1.2 on Windows 2000.
I would like to attach the PDF file created by Oracle Report to the Notification sent from Workflow.
I use the following package procedure in my Workflow.
procedure Create_File_Attachment (document_id in varchar2, display_type in varchar2,
document in out blob, document_type in out varchar2)
is
l_itemtype varchar2(100);
l_itemkey varchar2(100);
l_output_directory varchar2(30);
l_filename varchar2(255);
src_loc bfile;
bdoc blob;
src_offset number := 1;
dst_offset number := 1;
amount number;
begin
l_itemtype := substr(document_id, 1, instr(document_id, ':') - 1);
l_itemkey := substr(document_id, instr(document_id, ':') + 1, length(document_id) - 2);
l_output_directory := 'USR_TMP_DIR';
l_filename := Wf_Engine.GetItemAttrText(l_itemtype, l_itemkey, 'ATR_FILENAME');
src_loc := bfilename(l_output_directory,l_filename);
dbms_lob.createTemporary(bdoc, FALSE, dbms_lob.call);
dbms_lob.fileopen(src_loc, dbms_lob.file_readonly);
dbms_lob.loadblobfromfile(bdoc,src_loc,dbms_lob.lobmaxsize,src_offset,dst_offset);
dbms_lob.fileclose(src_loc);
amount := dbms_lob.getLength(bdoc);
dbms_lob.copy(document,bdoc,amount,1,1);
document_type := 'application/pdf; name=attach.pdf';
end Create_File_Attachment;Oracle Report created the PDF file correctly (original.pdf).
I tried to attach the PDF into my Workflow.
I can see the file is attached (attach.pdf), but it cannot be opened.
The Adobe shows : 'A drawing error occured.' each time I open the attachment.
I compare the original.pdf and the attach.pdf
However, there is one specific difference
- in original.pdf, the line started with '.' (single period)
in attach.pdf, the line is started with '..' (two periods)
Thus the attachment cannot be opened.
After I delete the period, it can be opened.
Question:
- Has someone ever succeed in attaching the PDF created from Report?
- Are the codes above is wrong?
- Or perhaps the DBMS_LOB.LOADBLOBFROMFILE always double the single period on front of the line?
- Is there any solution on this?
Note:
I have succeed in attaching PDF files unless the PDF created by the Report.
Sorry for the long post.
Please help. It is very urgent.
Any help is appreciated.
Many thanks,
BuntoroHi,
Please help. It is very urgent.
I am using Oracle Developer 10gR2, Oracle Report 10.1.2 on Windows 2000.
I would like to attach the PDF file created by Oracle Report to the Notification sent from Workflow.
I use the following package procedure in my Workflow.
procedure Create_File_Attachment (document_id in varchar2, display_type in varchar2,
document in out blob, document_type in out varchar2)
is
l_itemtype varchar2(100);
l_itemkey varchar2(100);
l_output_directory varchar2(30);
l_filename varchar2(255);
src_loc bfile;
bdoc blob;
src_offset number := 1;
dst_offset number := 1;
amount number;
begin
l_itemtype := substr(document_id, 1, instr(document_id, ':') - 1);
l_itemkey := substr(document_id, instr(document_id, ':') + 1, length(document_id) - 2);
l_output_directory := 'USR_TMP_DIR';
l_filename := Wf_Engine.GetItemAttrText(l_itemtype, l_itemkey, 'ATR_FILENAME');
src_loc := bfilename(l_output_directory,l_filename);
dbms_lob.createTemporary(bdoc, FALSE, dbms_lob.call);
dbms_lob.fileopen(src_loc, dbms_lob.file_readonly);
dbms_lob.loadblobfromfile(bdoc,src_loc,dbms_lob.lobmaxsize,src_offset,dst_offset);
dbms_lob.fileclose(src_loc);
amount := dbms_lob.getLength(bdoc);
dbms_lob.copy(document,bdoc,amount,1,1);
document_type := 'application/pdf; name=attach.pdf';
end Create_File_Attachment;Oracle Report created the PDF file correctly (original.pdf).
I tried to attach the PDF into my Workflow.
I can see the file is attached (attach.pdf), but it cannot be opened.
The Adobe shows : 'A drawing error occured.' each time I open the attachment.
I compare the original.pdf and the attach.pdf
However, there is one specific difference
- in original.pdf, the line started with '.' (single period)
in attach.pdf, the line is started with '..' (two periods)
Thus the attachment cannot be opened.
After I delete the period, it can be opened.
Question:
- Has someone ever succeed in attaching the PDF created from Report?
- Are the codes above is wrong?
- Or perhaps the DBMS_LOB.LOADBLOBFROMFILE always double the single period on front of the line?
- Is there any solution on this?
Note:
I have succeed in attaching PDF files unless the PDF created by the Report.
Sorry for the long post.
Please help. It is very urgent.
Any help is appreciated.
Many thanks,
Buntoro -
Create a Document with an original file stored on application server
Hello,
I start with document managment system : i am able to create new document (CV01N) manually, add a local file and check-in this file.
Now we need to store file which are stored on the SAP Application Server.
Firstly, in the GUI of transaction CV01N, i don't know how to browse file on application server. All files i can't attach as original, are files i can access from my computer.
Is it possible to access also on application server files ?
Moreover, i have to define function module which have to
- Create a document (DMS)
- Attach an orginial file which is stored on application server
- Check-in the file
This function module will be called from a web application
I define this kind of function and run it correctly with a local file (stored on my computer) : i call BAPI "BAPI_DOCUMENT_CREATE2" and "BAPI_DOCUMENT_CHECKIN2"
But i don't how to do with a file stored on application server. I see also note 504692 and try a program like ZZUZTEST_TEST_CHECKIN which use FM CVAPI_DOC_CHECKIN but it return an error Error uploading E:\usr\sap\TD1\DVEBMGS00\data\FACTURE.txt" (this path and file exist on application server and is really the file i want to checkin)
Please could you confirm what i search, is possible or not.
If possible, could help me with some explanations and guidelines and perhaps a sample ?
Thank you very much.
Regards,
Eric
The function used
FUNCTION Z_TEST_CHECKIN.
Checkin the first original of a document info record *
from the application server and/or in the background *
data : w_host like BAPI_DOC_AUX-HOSTNAME.
data: lf_line(255).
data: ls_draw like DRAW,
ls_message_cvapi like messages,
lt_files_cvapi type standard table of CVAPI_DOC_FILE,
lt_files_cvapi_header like CVAPI_DOC_FILE.
data: lt_originals LIKE cvapi_doc_file OCCURS 0 WITH HEADER LINE,
vo_originals LIKE cvapi_doc_file OCCURS 0 WITH HEADER LINE.
ls_draw-dokar = 'ZFT'.
ls_Draw-doknr = '0000000000000004500000032'.
ls_Draw-dokvr = '00'.
ls_Draw-doktl = '000'.
Read Originals contained in the document info record
CALL FUNCTION 'CVAPI_DOC_GETDETAIL'
EXPORTING
pf_batchmode = 'X'
pf_hostname = ' '
pf_dokar = ls_draw-dokar
pf_doknr = ls_draw-doknr
pf_dokvr = ls_draw-dokvr
pf_doktl = ls_draw-doktl
pf_active_files = 'X'
IMPORTING
psx_draw = ls_draw
TABLES
pt_files = vo_originals
EXCEPTIONS
not_found = 1
no_auth = 2
error = 3
OTHERS = 4.
IF sy-subrc <> 0.
WRITE 'Error returned by CVAPI_DOC_GETDETAIL'. "#EC NOTEXT
EXIT.
ENDIF.
Check if we can really access the file from the application server
read table vo_originals index 1.
open dataset vo_originals-filename for input in text mode ENCODING DEFAULT.
if not sy-subrc is initial.
message e500(26) with vo_originals-filename 'not found'.
endif.
read dataset vo_originals-filename into lf_line.
if not sy-subrc is initial.
message e500(26) with vo_originals-filename 'read error'.
endif.
lt_originals = vo_originals.
lt_originals-STORAGE_CAT = 'SAP-SYSTEM'.
append lt_originals.
w_host = sy-host.
CALL FUNCTION 'CVAPI_DOC_CHECKIN'
EXPORTING
PF_DOKAR = ls_draw-dokar
PF_DOKNR = ls_draw-doknr
PF_DOKVR = ls_draw-dokvr
PF_DOKTL = ls_draw-doktl
PS_DOC_STATUS =
PF_FTP_DEST = 'SAPFTPA'
PF_HTTP_DEST = 'SAPHTTPA'
*PF_HOSTNAME = w_host
PS_API_CONTROL =
PF_REPLACE = ' '
PF_CONTENT_PROVIDE = 'SRV'
IMPORTING
PSX_MESSAGE = ls_message_cvapi
TABLES
PT_FILES_X = lt_originals
PT_COMP_X =
PT_CONTENT =
IF ls_message_cvapi-msg_type CA 'EA'.
ROLLBACK WORK.
MESSAGE ID '26' TYPE 'I' NUMBER '000'
WITH ls_message_cvapi-msg_txt.
ELSE.
COMMIT WORK and wait.
ENDIF.
ENDFUNCTION.This is a bit tricky. I spent lots of hours about this .
You have to set PF_HOSTNAME with your name of your AS and gives the path to the file on the server.
You wrote
*PF_HOSTNAME = w_host
But beware: if you have more thän one AS you have to fix one AS for upload or you have to find the servers name of the file. A better way can be to share one folder by each AS.
You also have to decide between HTTP or FTP.
You wrote:
PF_FTP_DEST = 'SAPFTPA'
PF_HTTP_DEST = 'SAPHTTPA'
You must define only one ! Then you have to check your settings in SM59 about working right.
Pls rate, if this was helpful.
Regards,
Markus -
How do I open a PDF file stored on the iCloud drive with my iPad?
How do I open a PDF file stored on the iCloud drive with my iPad?
This document explains how:
Opening PDF Files in Reader for iOS (iPhone and iPad) -
Dowanload pdf file stored in table as blob data.
Hi,
Ive critical thing to do:
creating a link on a page region to download pdf files stored in a table as blob files.
Ive a set of these pdf files in my table but now i need a way to download(not upload) these files onto local drive....any idea on this is appreciated.
Apex 4.1.x&oracle11g
thanks.Seawolf68 wrote:
This is a great article for doing bothWell it was in 2009. Where the OP has taken the trouble to supply their APEX version, it helps to provide documentation to match, especially where improved techniques are available: About BLOB Support in Forms and Reports
Maybe you are looking for
-
I buy extension from adobe online, i installed it correctly but then the extension menu was greyed out and i can't click it. Some help please.
-
Hi all, I have an issue on QA server. I send an interface from PI to R3 via RFC, then the RFC execute some idoc proccess and at the end it sends a message back to PI via proxy. The issue is that i see the RFC executed succesfully on R3 (Idocs process
-
S12 Windows 7 - Mouse scroll issues and tapping won't stop.
I recently purchased an S12 Ideapad for my girlfriend for her studies and installed Win7 in the process. It works perfectly aside from one tiny issue. We can't get it to stop left clicking when tapping the mousepad surface and the vertical scroll are
-
Class newInstance() with parameters
Is it possible to use newInstance to create an instance of a Class where the constructor is expecting parameters? I know the API lists newInstance as having no parameters and calling essentially a no-arg constructor, but is there any type of design t
-
IMac 24" not so quiet - "hum problem" - please read
Hello everybody, It has been now 2 days and a half that I received my brand new 24" inches iMac (2,66 Ghz 4Gig of ram etc). I really wanted a definitive desktop computer to use at home and I went for another iMac. I'm saying another imac because as s