Forms, Excel and Blob

Hi,
I'm developing a web application in forms6i that must generate an excel file and then stored it in a blob field. I've gotten to generate the excel file with ole2 package but the ora-305500 error is raised when I deploy it to application server, if I install the excel application on the application server, will it work fine?
Supposing it works, the file was generated correctly on the application server, how can I transform this file that is located on the application server in a blob variable and store it into database that is located in another machine?
I'm trying to find a solution to avoid a utilization of webutil, because I didn't find a webutil for forms6i.
Please, can anyone help me?
Thanks!

Thanks for your quickly answer Rejesh Alex,
Then I'll can generate the excel file on application server, but I won't show it to client, ok? I decided to not show de excel file to client, I want to generate it and store it into database blob field, is it possible? Considering that the application server and database server are different machines. I tried to use BFILENAME function to do this, but it expects a parameter that is a directory created in database server, but I need to load a file created in application server.

Similar Messages

  • Export table rows to Excel and save to BLOB field

    Hi all,
    I try to find out how export data from table to Excel file format and save the result to BLOB field in some other table.
    I know how to download report from Page by submit, but I need to process data and instead of returning result to user as Excel file - save it in BLOB.
    Also I found implementation on JAVA for the issue but actually I wanna study out - Is it possible to resolve this issue by PL/SQL and APEX API methods?
    So, any ideas :) ??
    Thanks,

    It is not very difficult.
    Here is the function I use to get a CSV file from a query :
    PROCEDURE get_query_result_as_csv_file(
         in_query    IN VARCHAR2,
         in_filename IN VARCHAR2)
    IS
         l_blob BLOB;
         l_raw     RAW(32767);
         l_cursor INTEGER;
         l_cursor_status INTEGER;
         l_col_count      NUMBER;
         l_col_val VARCHAR2(32767);
         l_desc_tbl sys.dbms_sql.desc_tab2;
    BEGIN
         -- create temporary BLOB
         dbms_lob.createtemporary(l_blob, FALSE);
         -- open BLOB
         dbms_lob.open(l_blob, dbms_lob.lob_readwrite);
         -- open cursor (and get cursor id)
         l_cursor := dbms_sql.open_cursor;
         -- parse query
         dbms_sql.parse(l_cursor,  in_query, dbms_sql.native);
         -- get number of columns and description
         dbms_sql.describe_columns2(l_cursor, l_col_count, l_desc_tbl);
         -- define report columns
         FOR i IN 1 .. l_col_count LOOP
              dbms_sql.define_column(l_cursor, i, l_col_val, 32767);
         END LOOP;
         -- write column headings to CSV file
         FOR i IN 1 .. l_col_count LOOP
              l_col_val := l_desc_tbl(i).col_name;
              IF i = l_col_count THEN
                   l_col_val := '"' || l_col_val || '"' || chr(10);
              ELSE
                   l_col_val := '"' || l_col_val || '",';
              END IF;
              l_raw := utl_raw.cast_to_raw(l_col_val);
              dbms_lob.writeappend(l_blob, utl_raw.length(l_raw), l_raw);
         END LOOP;
         -- execute the query
         l_cursor_status := dbms_sql.execute(l_cursor);
         -- write result set to CSV file
         LOOP
              EXIT WHEN dbms_sql.fetch_rows(l_cursor) <= 0 OR dbms_sql.last_row_count > 1000;
              FOR i IN 1 .. l_col_count LOOP
                   dbms_sql.column_value(l_cursor, i, l_col_val);
                   IF i = l_col_count THEN
                        l_col_val := '"' || l_col_val || '"' || chr(10);
                   ELSE
                        l_col_val := '"' || l_col_val || '",';
                   END IF;
                   l_raw := utl_raw.cast_to_raw(l_col_val);
                   dbms_lob.writeappend(l_blob, utl_raw.length(l_raw), l_raw);
              END LOOP;
         END LOOP;
         -- close cursor and BLOB
         dbms_sql.close_cursor(l_cursor);
         dbms_lob.close(l_blob);
         -- set http headers
         owa_util.mime_header('application/octet', FALSE);
         htp.p('content-length: ' || dbms_lob.getlength(l_blob));
         htp.p('content-disposition: attachment;filename="' || in_filename || '.csv"');
         owa_util.http_header_close;
         -- download the file
         wpg_docload.download_file(l_blob);
    END;If you need to get the query dynamically from your report, you can try to get the source from the apex_application_page_regions table :
    SELECT region_source
    FROM apex_application_page_regions
    WHERE application_id = 111 -- replace with your application id
    AND static_id = 'static_id_of_your_report'Then instead of using wpg_docload.download_file, simply insert the BLOB into your table.
    Good luck.
    Yann.

  • Import  from Excel and then again save back excel; using Form 6i in apps.??

    Hi,
    I need to do following ;
    Unix OS :- here exel files is present
    Forms:- Need to read those excel from unix system and if require modify it in the apps form itself and then validate those and then place it again in the unix system.
    This need to implement in oracle apps. Any idea how to do?
    Subir

    No..!!!
    The actual requirment is ;
    there are files stored in the Unix OS.
    Currently we need to validate and then transfer one by one.
    During validation if any error is occur then user want to modify during validation only; he dont want to back to the excel file and modify.
    So here; if validation failed, then need to open that excel files from oracle form and the modify the error, and then saved it.
    Rg,
    Subir

  • How can I use Automator to extract information from the body of an email sent from a web form.. and the import it into Highrise?

    I'm assuming that Automator is the way to go. I've never used it before but from research it seems to be the way to go. Also, I'm not good at programming at all.
    Here's a typical email...
    From:      [email protected]
         Subject:      Enquiry for Property ID: 408777039, 2 Grey Avenue, Manningham, SA 5086, Listing Agent
         Date:      18 September 2013 8:33:51 PM ACST
         To:      Joe Jope
         Reply-To:   [email protected]
    You have received a new lead from realestate.com.au for
    Property id: 408587036
    Property address: 2 Grey Avenue, Manningham, SA 5086
    Property URL: www.realestate.com.au/404387039
    User Details:
    Name: John Bon Jovi
    Email: [email protected]
    Phone: 0422645633
    I would like to: buy this house
    Comments: Please give me a call.
    I have several hundred of these emails and I want to extract the information and then save it into my CRM which is Highrise (https://highrisehq.com). If it's too difficult to get it directly into Highrise then I'm aslo happy to extract the info into excel and the import into Highrise. However I do not want to have to run through that proceedure for every single email.
    I'd really like some help on how to get Automator to do this for me. Or if not Automator.. any other suggestions?
    Thanks.
    John

    Hello
    You may try the following AppleScript script. It will ask you to choose a root folder where to start searching for *.map files and then create a CSV file named "out.csv" on desktop which you may import to Excel.
    set f to (choose folder with prompt "Choose the root folder to start searching")'s POSIX path
    if f ends with "/" then set f to f's text 1 thru -2
    do shell script "/usr/bin/perl -CSDA -w <<'EOF' - " & f's quoted form & " > ~/Desktop/out.csv
    use strict;
    use open IN => ':crlf';
    chdir $ARGV[0] or die qq($!);
    local $/ = qq(\\0);
    my @ff = map {chomp; $_} qx(find . -type f -iname '*.map' -print0);
    local $/ = qq(\\n);
    #     CSV spec
    #     - record separator is CRLF
    #     - field separator is comma
    #     - every field is quoted
    #     - text encoding is UTF-8
    local $\\ = qq(\\015\\012);    # CRLF
    local $, = qq(,);            # COMMA
    # print column header row
    my @dd = ('column 1', 'column 2', 'column 3', 'column 4', 'column 5', 'column 6');
    print map { s/\"/\"\"/og; qq(\").$_.qq(\"); } @dd;
    # print data row per each file
    while (@ff) {
        my $f = shift @ff;    # file path
        if ( ! open(IN, '<', $f) ) {
            warn qq(Failed to open $f: $!);
            next;
        $f =~ s%^.*/%%og;    # file name
        @dd = ('', $f, '', '', '', '');
        while (<IN>) {
            chomp;
            $dd[0] = \"$2/$1/$3\" if m%Link Time\\s+=\\s+([0-9]{2})/([0-9]{2})/([0-9]{4})%o;
            ($dd[2] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of CODE\\s/o;
            ($dd[3] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of DATA\\s/o;
            ($dd[4] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of XDATA\\s/o;
            ($dd[5] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of FARCODE\\s/o;
            last unless grep { /^$/ } @dd;
        close IN;
        print map { s/\"/\"\"/og; qq(\").$_.qq(\"); } @dd;
    EOF
    Hope this may help,
    H

  • Mass Master data Upload from MS Excel and JDE into SAP ( ECC 6.0)

    Hi
    We are deciding the best method of uploading 2 million fixed assets Master data from Excel and JDE
    We are following Batch Input (RAALTD001) and Direct Input methods (RAALTD11)
    I am looking for some other efficient alternative for this upload
    Look forward ot hear form you experts !!
    Thanks
    Milind

    hi
    good
    both works not possible simultaneously.
    If you want to do it in two separate task than you can use the GUI_UPLOAD function module to fulfill your requirement.
    thanks
    mrutyun^

  • How to deploy Forms, Reports and Menu from Client to Server machine

    Dear Experts,
    I have one requirement to deploy the Forms, Reports and Menu from client machine to server machine.
    Deployment involves the following steps :
    1. Firstly we have to search the selected file in a folder where the .fmx is present ( in Server machine) and take the back up of the the existing file in the server (Source and destination paths will be available).
         Ex. If the existing FMB name is TEST.fmx then the backup file should be TEST_sysdate.fmx.
    2. Secondly we have to transfer the file from the client folder (or from another folder of the same server) to the server folder where the back up exists.
    Please help me to search/rename/copy/replace the _.fmx/.rdf/.rep/.mmx_ files from client to server.
    We are using
    9i Database.
    10g Forms and reports.
    SQL Developer tool.
    OS is Windows (Client and Server).
    Help me out to attach a file of front end screen which we are planning to develop. It will give a clear picture on this requirement.
    Thanks :)
    Edited by: 941175 on Jun 17, 2012 9:09 AM
    Edited by: 941175 on Jun 17, 2012 9:12 AM
    Edited by: 941175 on Jun 17, 2012 9:14 AM

    941175
    Welcome to the forum. Please take a while to go through the FAQ to be found to the top right of the page.
    Your issue is more to do with batch files rather than Forms. The only relation with Forms, as I see it, is that you will be using HOST/CLIENT_HOST to start a batch file with the file name to be deployed as a parameter passed to it.
    You need to rewrite either a CMD batch file or a Powershell script to achieve what have set out to do.
    For CMD batch files look up http://www.robvanderwoude.com/battech.php , or any of the other excellent resources available on the internet.
    Regards,

  • Missing Header Row When Exporting Data to Excel and Program Runs Slow

    Hello all,
    I am new to programming. I’ve dabbled with VB.NET at times over the years but this is the first time I’m trying C#. Although, it’s been quite a while since I’ve done any type of programming other than writing SQL queries at work. For the sake of trying to
    learn I have given myself a project that is something I can actually use at work. Right now I'm doing it at home. I’m querying a database on SQL Server 2008 R2; putting the data from the DB into a DataViewGrid and then exporting the data into Excel and saving
    the file on my C:\ drive. On the form I have two buttons; one that queries the DB and the other to do the export. The code below does work but I have two issues that I need assistance with:
    All of the SQL table data goes into Excel properly with the exception of it is missing the header row.
    After I click the Export button it takes a long time to create the Excel file. It takes between 2.5 and 3 minutes. It is not a big file (only 447 rows and 125 KB in size) so I don’t know why it takes so long. Does it have anything to do with the number
    of times Microsoft.Office.Interop.Excel is being referenced? I read somewhere online that is an old COM method although I’m not familiar with what a COM method is
    and why it would make things run so slow.
    When I click the button to run the SQL query and load the DataGridView it runs immediately.
    I plan on taking this project further such as adding date parameters including validation on the dates and then maybe adding buttons that can be used to insert, update and delete records. But I don’t want to go any further until the two issues mentioned
    above are resolved. Any assistance / guidance will be greatly appreciated. Here’s the code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using Exccel = Microsoft.Office.Interop.Excel;
    using System.IO;
    namespace Bills_DB_DataGridView
        public
    partial
    class
    Form1 :
    Form
    SqlCommand sqlCMD;
    SqlDataAdapter sqlDA;
            SqlCommandBuilder sqlCB;
    DataSet sqlDS;
    DataTable sqlDT;
    public Form1()
    InitializeComponent();           
    private
    void btnExit_Click(object sender,
    EventArgs e)
    this.Close();
    private
    void btnLoad_Click(object sender,
    EventArgs e)
    string sqlCon =
    "Data Source = localhost\\DAVE_DB; Initial Catalog=Bills;Integrated security = true;";
    string sqlQry =
    "SELECT * FROM Acct ORDER BY Name, PaymentDate";
    SqlConnection connection =
    new
    SqlConnection(sqlCon);
    connection.Open();
    sqlCMD = new
    SqlCommand(sqlQry, connection);
    sqlDA = new
    SqlDataAdapter(sqlCMD);
           sqlCB = new
    SqlCommandBuilder(sqlDA);
    sqlDS = new
    DataSet();
    sqlDA.Fill(sqlDS, "Acct");
    sqlDT = sqlDS.Tables["Acct"];
    connection.Close();
    dataGridView1.DataSource = sqlDS.Tables["Acct"];
                dataGridView1.SelectionMode =
    DataGridViewSelectionMode.FullRowSelect;
    private
    void btnExport_Click(object sender,
    EventArgs e)
    Microsoft.Office.Interop.Excel.Application xlApp;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    Int32 i, j;
    xlApp = new Microsoft.Office.Interop.Excel.Application();        
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);          
    for (i = 0; i <= dataGridView1.RowCount - 2; i++)
    for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
    xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString();
    xlWorkSheet.Cells[1, 2].EntireColumn.NumberFormat = "@";
    //Format column 2 to text
    xlWorkSheet.Cells[1, 2].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
    xlWorkBook.SaveAs(@"c:\Bills\Bills.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
    misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
    xlWorkBook.Close(true, misValue, misValue);
    xlApp.Quit();
    releaseObject(xlWorkSheet);
    releaseObject(xlWorkBook);
    releaseObject(xlApp);
    private
    void releaseObject(object obj)
    try
    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
    obj = null;
    catch (Exception ex)
    obj = null;
    MessageBox.Show("Exception Occured while releasing object "
    + ex.ToString());
    finally
    GC.Collect();
    Thank you,
    Dave
    David Young

    Hello again Kristin,
    I tried the code snippet to include the headers in the Excel file but it didn't work for me. Maybe I put the code in the wrong place? Again I have put the code below including where I placed the snippet. I get no error message and the application runs. Am
    I doing something wrong?
    Thank you,
    Dave
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using Exccel = Microsoft.Office.Interop.Excel;
    using System.IO;
    namespace Bills_DB_DataGridView
        public partial class Form1 : Form
            SqlCommand sqlCMD;
            SqlDataAdapter sqlDA;
            SqlCommandBuilder sqlCB;
            DataSet sqlDS;
            DataTable sqlDT;
            public Form1()
                InitializeComponent();            
            private void btnExit_Click(object sender, EventArgs e)
                this.Close();
            private void btnLoad_Click(object sender, EventArgs e)
                string sqlCon = "Data Source = localhost\\DAVE_DB; Initial Catalog=Bills;Integrated security = true;";
                string sqlQry = "SELECT * FROM Acct ORDER BY Name, PaymentDate";
                SqlConnection connection = new SqlConnection(sqlCon);
                connection.Open();
                sqlCMD = new SqlCommand(sqlQry, connection);
                sqlDA = new SqlDataAdapter(sqlCMD);
                sqlCB = new SqlCommandBuilder(sqlDA);
                sqlDS = new DataSet();
                sqlDA.Fill(sqlDS, "Acct");
                sqlDT = sqlDS.Tables["Acct"];
                connection.Close();
                dataGridView1.DataSource = sqlDS.Tables["Acct"];
                dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            private void btnExport_Click(object sender, EventArgs e)
                Microsoft.Office.Interop.Excel.Application xlApp;
                Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
                Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
                object misValue = System.Reflection.Missing.Value;
                Int32 i, j;
                xlApp = new Microsoft.Office.Interop.Excel.Application();         
                xlWorkBook = xlApp.Workbooks.Add(misValue);
                // storing header part in Excel
                xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);  
                for (int h = 1; h < dataGridView1.Columns.Count + 1; h++)
                    if (dataGridView1.Columns[h - 1].Visible)
                        xlWorkSheet.Cells[1, h] = dataGridView1.Columns[h - 1].HeaderText;
                xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);           
                for (i = 0; i <= dataGridView1.RowCount - 2; i++)
                    for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
                        xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString();
                        xlWorkSheet.Cells[1, 2].EntireColumn.NumberFormat = "@"; //Format column 2 to text
                        xlWorkSheet.Cells[1, 2].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
                xlWorkBook.SaveAs(@"c:\Bills\Bills.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
    misValue, misValue, misValue, misValue, misValue);
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
                releaseObject(xlWorkSheet);
                releaseObject(xlWorkBook);
                releaseObject(xlApp);
            private void releaseObject(object obj)
                try
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                    obj = null;
                catch (Exception ex)
                    obj = null;
                    MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
                finally
                    GC.Collect();
    David Young

  • Can we have the interface between microsoft excel and adobe illustrator

    Can we have the interface between microsoft excel and adobe illustrator?

    Feature Request/Bug Report Form
    That aside, have you actually already explored variables or the graph tools?
    Mylenium

  • Converting alv list  to excel and send to sapoffice or mail in batch mode

    Hi every one.
    I have the alv list and then I can send to sapoffice or mail in batch mode.
    If I open the list in Sapoffice I can save the list in XLS format or if I open the list by mail, I can select all the content (because is a html file), select the copy option and then open EXCEL and paste the content.
    Can I use an option to convert the alv list to an excel format and then send to mail or sapconnect in batch mode?

    if your requirement is to send a Excel sheet by Email then use this sample program.
    *& Report  ZEMAIL_ATTACH                                               *
    *& Example of sending external email via SAPCONNECT                    *
    REPORT  ZEMAIL_ATTACH                   .
    TABLES: ekko.
    PARAMETERS: p_email   TYPE somlreci1-receiver
                                      DEFAULT '[email protected]'.
    TYPES: BEGIN OF t_ekpo,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
    END OF t_ekpo.
    DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,
          wa_ekpo TYPE t_ekpo.
    TYPES: BEGIN OF t_charekpo,
      ebeln(10) TYPE c,
      ebelp(5)  TYPE c,
      aedat(8)  TYPE c,
      matnr(18) TYPE c,
    END OF t_charekpo.
    DATA: wa_charekpo TYPE t_charekpo.
    DATA:   it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                    WITH HEADER LINE.
    DATA:   it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                    WITH HEADER LINE.
    DATA:   t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
            t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
            t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            w_cnt TYPE i,
            w_sent_all(1) TYPE c,
            w_doc_data LIKE sodocchgi1,
            gd_error    TYPE sy-subrc,
            gd_reciever TYPE sy-subrc.
    *START_OF_SELECTION
    START-OF-SELECTION.
      Retrieve sample data from table ekpo
      PERFORM data_retrieval.
      Populate table with detaisl to be entered into .xls file
      PERFORM build_xls_data_table.
    *END-OF-SELECTION
    END-OF-SELECTION.
    Populate message body text
      perform populate_email_message_body.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_message
                                          it_attach
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'XLS'
                                          'filename'
                                 changing gd_error
                                          gd_reciever.
      Instructs mail send program for SAPCONNECT to send email(rsconn01)
      PERFORM initiate_mail_execute_program.
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
      SELECT ebeln ebelp aedat matnr
       UP TO 10 ROWS
        FROM ekpo
        INTO TABLE it_ekpo.
    ENDFORM.                    " DATA_RETRIEVAL
    *&      Form  BUILD_XLS_DATA_TABLE
          Build data table for .xls document
    FORM build_xls_data_table.
      CONSTANTS: con_cret TYPE x VALUE '0D',  "OK for non Unicode
                 con_tab TYPE x VALUE '09'.   "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    *constants:
       con_tab  type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
       con_cret type c value cl_abap_char_utilities=>CR_LF.
      CONCATENATE 'EBELN' 'EBELP' 'AEDAT' 'MATNR'
             INTO it_attach SEPARATED BY con_tab.
      CONCATENATE con_cret it_attach  INTO it_attach.
      APPEND  it_attach.
      LOOP AT it_ekpo INTO wa_charekpo.
        CONCATENATE wa_charekpo-ebeln wa_charekpo-ebelp
                    wa_charekpo-aedat wa_charekpo-matnr
               INTO it_attach SEPARATED BY con_tab.
        CONCATENATE con_cret it_attach  INTO it_attach.
        APPEND  it_attach.
      ENDLOOP.
    ENDFORM.                    " BUILD_XLS_DATA_TABLE
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables pit_message
                                              pit_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = pit_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           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.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    *&      Form  INITIATE_MAIL_EXECUTE_PROGRAM
          Instructs mail send program for SAPCONNECT to send email.
    FORM initiate_mail_execute_program.
      WAIT UP TO 2 SECONDS.
      SUBMIT rsconn01 WITH mode = 'INT'
                    WITH output = 'X'
                    AND RETURN.
    ENDFORM.                    " INITIATE_MAIL_EXECUTE_PROGRAM
    *&      Form  POPULATE_EMAIL_MESSAGE_BODY
           Populate message body text
    form populate_email_message_body.
      REFRESH it_message.
      it_message = 'Please find attached a list test ekpo records'.
      APPEND it_message.
    endform.                    " POPULATE_EMAIL_MESSAGE_BODY
    - Guru

  • Retrieve image file from FORMS 10G using BLOB

    Dear all,
    i inserted one record in a table for the following procedure.
    Create Or Replace Procedure Blob_Xl Is
    l_blob Blob;
    l_bfile Bfile;
    Begin
    Insert Into LOB_TABLE Values ( 'TEST1', Empty_Blob() )
    Returning BLOBDATA Into l_blob;
    l_bfile := Bfilename( 'TEST1', 'I.JPG');
    dbms_lob.fileopen( l_bfile,dbms_lob.file_readonly );
    dbms_lob.loadfromfile( l_blob, l_bfile, dbms_lob.getlength( l_bfile ) );
    dbms_lob.fileclose( l_bfile );
    Commit;
    End Blob_Xl;
    after that
    record also inserted, i check thro count.
    i try to retrieve that image from that table for using following procedure, in that procedure i called from one button in forms 10g and wrote in when button pressed , when i clicked it wont show any images.
    where i am wrong?
    Create Or Replace Procedure get_img As
    vblob Blob;
    buffer Raw(32000);
    buffer_size Integer := 32000;
    offset Integer := 1;
    Length Number;
    Begin
    owa_util.mime_header('image/JPG');
    Select BLOBDATA Into vblob From LOB_TABLE Where No = 'TEST1';
    Length := dbms_lob.getlength(vblob);
    While offset < Length Loop
    dbms_lob.Read(vblob, buffer_size, offset, buffer);
    htp.prn(utl_raw.cast_to_varchar2(buffer));
    offset := offset + buffer_size;
    End Loop;
    Exception
    When Others Then
    htp.p(Sqlerrm);
    End;
    /

    hi
    try something like this for retrieve.May it helps u.
    DECLARE
    directions CLOB;
    directions_1 VARCHAR2(300);
    directions_2 VARCHAR2(300);
    chars_read_1 BINARY_INTEGER;
    chars_read_2 BINARY_INTEGER;
    offset INTEGER;
    BEGIN
    --Retrieve the LOB locator inserted previously
    SELECT falls_directions
    INTO directions
    FROM waterfalls
    WHERE falls_name='Munising Falls';
    --Begin reading with the first character
    offset := 1;
    --Attempt to read 229 characters of directions, chars_read_1 will
    --be updated with the actual number of characters read
    chars_read_1 := 229;
    DBMS_LOB.READ(directions, chars_read_1, offset, directions_1);
    --If we read 229 characters, update the offset and try to
    --read 255 more.
    IF chars_read_1 = 229 THEN
    offset := offset + chars_read_1;
    chars_read_2 := 255;
    DBMS_LOB.READ(directions, chars_read_2, offset, directions_2);
    ELSE
    chars_read_2 := 0;
    directions_2 := '';
    END IF;
    --Display the total number of characters read
    DBMS_OUTPUT.PUT_LINE('Characters read = ' ||
    TO_CHAR(chars_read_1+chars_read_2));
    --Display the directions
    DBMS_OUTPUT.PUT_LINE(directions_1);
    DBMS_OUTPUT.PUT_LINE(directions_2);
    END;
    sarah
    Edited by: S@R@h on Oct 7, 2009 11:29 PM

  • Integrated Excel and VB Macros...Problems

    Hi,
    We are running MAP transactions (RETAIL) that use integrated Excel for planning purposes. Once we open the transaction we have access to an excel application where we maintain data.
    The problem is that we are trying to use some complex VB macros to validate online entries, but we are facing problems if we call the Excel from SAP (The file runnning on its own works fine):
    - The events WORKBOOK.OPEN or AUTOOPEN do not seem to run. I need to run a macro when the workbook is started form SAP;
    - I've been getting runtime erros and some are related to this: ACTIVECELL = nothing (?).
    Have you found similar problems?
    Where can I find VB programing guidelines for Integrated Excel in SAP.
    Thanks
    Leonardo De Araujo

    Hi Tarun,
    you are in the wrong forum. You are using the R/3 based Retail solution, this is based on the CO Planningprocessor Excel integration, it is not based on SEM or
    BW-BPS. So you can not find the BPS predefined VBA macro exits.
    In the R/3 solution there exist no predefined VBA macro exits. But you can add your code more or less at the same 'events':
    - the backend triggers the SAP makros via Sub R3MacrosExecute() at each PAI, PBO cycle
    - Sub R3PutValuesEnd() is called when the system has filled Excel with data at the end of the PBO cycle; here you can do adjustments and add your macros
    - Sub R3GetRangesSingle is called at the beginning of the PAI cycle to the read the data from Excel and to do the transfer to the backend
    - active cell problem: SAP makros to not set a selection explicitly, you can do this in your makro, e.g. the first data cell or first input ready cell
    To implement a kind of 'validation' I suggest to trigger the check via Excel button; the problem is you can not control the PBO, PAI cycle from Excel, i.e. you can send error pop-up in Excel but you can not stop the PAI cycle. So you can not implement a real error handling.
    Regards,
    Gregor

  • Upgrade from 11i to R12 - Custom Forms,Reports and Workflows

    Dear Community Friends,
    We are planning for upgrade from oracle apps 11.5.10.2 to R12.
    We have custom Forms,Form Libraries,Reports and Workflows.
    Kindly provide me for approach on how to migrate Custom form libraries,reports and Workflows.
    I beleive, this thread will exists as one shot point for custom forms,reports,workflow upgradation from 11i to r12 with detailed steps.
    I know that many links exists here in the forum for all the above objects mentioned,but still from all those i am able to get a clear picture for oracle forms but not for custom form libraries ,reports and workflows.
    Also,this post will provide a low level,practical picture of the steps for those who are in line with this.
    Links i have read for all these in our forum are:
    For Custom Forms,
    Re: Planning to upgrade from 11i to R12
    Re: Custom forms: After upgrading 11i to R12
    ofcourse,'n' number of links exists providing metalink notes also.
    Hussain,Helios and some others also has given many updates regd this.
    For custom workflow upgradation,
    Upgrade Workflow 11i to R12
    Workflow Upgrade
    Workflow Upgrade
    For reports,links mentioned the below metalink notes:
    Do Not Compile EBS R12 Reports Using rwconverter.sh or Reports Builder from IDS 10gR2 [ID 786794.1]
    Using the OracleAS 10.1.2 Forms and Reports Builders with Oracle Applications Release 12 [ID 444248.1]
    Per my understanding, after searching in many threads,i am here by summarising the practical low level steps for custom forms migration
    Please correct me,if i am wrong.
    1) Download the Forms(.fmb's) and all PLL's(all the PLL from resource folder in AU_TOP) into a Local Machine Folder
    2) Open the forms using Forms Developer 10G and connect to DB
    3) Compile by clicking compilein Forms Developer and then save it.
    4) Upload the Saved Forms(.fmb's) into the new R12 server(system) in the respective custom paths(paths similar to 11i Server)
    5) Compile all the forms using the command like below(example command is shown below or f60 gen commands or frmcmp.sh utility) in the respective custom form paths,
    this will generate the .fmx's.
    frmcmp_batch module=FORMNAME.fmb userid=apps/apps output_file=FORMNAME.fmx compile_all=yes
    Link for compiling forms: https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_afrLoop=359210362972527&type=DOCUMENT&id=1085928.1&displayIndex=3&_afrWindowMode=0&_adf.ctrl-state=c348xvwbg_98
    6) Open the form and check in R12 instance
    As per my understanding for custom form libraries,we can just copy paste the PLL's from 11i server to R12 server (Please correct me,if i am wrong)
    Can anyone please help me out in custom reports and custom workflows.Sorry that,i could not get a practical and clear picture for reports and also for workflow even after referring many threads and metalink notes mentioned.
    As for reports,some says that Developer Suite 10g can be used and .rdf can be used in R12.
    Some says that reports should be converted to XML published as reports does not exists in R12.
    So,i am not clear on this.
    Thanks,
    Ganesh
    [email protected]

    Per my understanding, after searching in many threads,i am here by summarising the practical low level steps for custom forms migration
    Please correct me,if i am wrong.
    1) Download the Forms(.fmb's) and all PLL's(all the PLL from resource folder in AU_TOP) into a Local Machine Folder
    2) Open the forms using Forms Developer 10G and connect to DB
    3) Compile by clicking compilein Forms Developer and then save it.
    4) Upload the Saved Forms(.fmb's) into the new R12 server(system) in the respective custom paths(paths similar to 11i Server)
    5) Compile all the forms using the command like below(example command is shown below or f60 gen commands or frmcmp.sh utility) in the respective custom form paths,
    this will generate the .fmx's.
    frmcmp_batch module=FORMNAME.fmb userid=apps/apps output_file=FORMNAME.fmx compile_all=yes
    Link for compiling forms: https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?_afrLoop=359210362972527&type=DOCUMENT&id=1085928.1&displayIndex=3&_afrWindowMode=0&_adf.ctrl-state=c348xvwbg_98
    6) Open the form and check in R12 instance
    As per my understanding for custom form libraries,we can just copy paste the PLL's from 11i server to R12 server (Please correct me,if i am wrong)You are right, and the steps mentioned above should be sufficient.
    Can anyone please help me out in custom reports and custom workflows.Sorry that,i could not get a practical and clear picture for reports and also for workflow even after referring many threads and metalink notes mentioned.
    As for reports,some says that Developer Suite 10g can be used and .rdf can be used in R12.
    Some says that reports should be converted to XML published as reports does not exists in R12.
    So,i am not clear on this.You can still use RDF files in R12, and just follow the approach you mentioned above, and you do not have to migrate them to XML publisher (though it is recommended, but this can be done after the upgrade as an enhancement task).
    For custom workflow, you need also to do the same thing, open them using workflow builder and make sure they work in R12 (correct the code if required and save them again in R12 once they work properly).
    Thanks,
    Hussein

  • Occasional ora-6502 using forms 6i and 10g

    Hi all.
    We have been experiencing some weird and unexpected ora-6502 errors in some of our forms 6i modules running against 10g (rel 1 or 2).
    Forms modules are correctly functioning and for some reason, one day an ora-6502 error suddenly pops up.
    Now the weirdest thing is that after you put some messages on the trigger, so you can track down where the error is coming from, it disappears.
    I know that this may sound hard to believe, but it has happened several times. All we do is put some message built in, recompile all, and the error is gone (for a while).
    So my questions are:
    - Is this a known issue beween forms 6i and 10g Db?.
    - Is there a patch on Metalink ( we use Forms [32 bits] Versión 6.0.8.26.0 (Producción))
    - A workaround?
    and most important
    - Have anyone been exposed to a similar situation?
    Regards, Luis ...!

    Now the weirdest thing is that after you put some messages on the trigger, so you can track down where the error is coming from, it disappears.Sounds like the form has not been "clean compiled" against the server on which it is running. Try a "Compile All", which causes all previously compiled program units to be compiled fresh.
    Or even better, clean out all the compiled code from your fmb before compiling the fmb on the server where it runs.
    See this topic:   Re: Why does this happen - find ';', replace with ';'?

  • Form 6i and 10g DB

    i want to use Oracle text (context index) for searching and oracle text is the best way .. but not im using form 6i and DB 10g R 2. my question is is thier any problem i will face it later while doing my system using context index ?? for example i will use CTXddl package .. can i use it in form 6i or i cant ???
    regards,

    The first and most significant problem you are faced with is that Forms 6.0.8 is not supported to be used with Oracle 10.2.x. The second problem is that Forms 6.0.8 is obsolete and not supported any longer. Consider upgrading to the latest version before developing new applications. The latest version is included in Developer Suite and Application Server 10.1.2.0.2 (10.1.2.3 with the latest patches installed).

  • License for Oracle Forms 6i and Oracle Reports 6i

    Hai there,
    May I know if I can buy a license for 2 users for the development tools Forms 6i and Reports 6i.
    How do I go ahead and buy the license on line. Where do I contact.
    Please give me the details.
    Thanks in advance.
    Elizabeth

    Please be aware that this version of Forms is desupported in one months time.
    You can download the software from otn but you should contact your Oracle Account Manager about licensing.
    Regards
    Grant Ronald
    Forms Product Management

Maybe you are looking for

  • User tracking problem - lms 3.2

    Noticed a pretty weird one. LMS 3.2 on windows 2008. Everything had been running normally. A while back we noticed the user tracking tables diminishing, and found out it was due to a bug in the code we were running on our 4500s. So we started an upgr

  • Upgrade CUCM 9.1 (BE6K) to CUCM 10.5

    Hi All, We are facing the process to update CUCM and I&M on a BE6K platform from 9.1 version to the latest one (CUCM 10.5), The UCSS is still valid. Could someone put us on the right direction? Is Expressway Core and Edge already included if my CUCM

  • Form Layout design

    Hi All , As i have not done something like this before i have forced my self to ask all you, please guide me. I have 2 tabbed form , 1 tab is displaying data in tabular format and another tab in Form format. 2nd tab is wider than 1st one. So can anyo

  • Will fcp5 work on snow leopard?

    I had Final Cut Pro 5 installed on my laptop and it worked fine for when I was just running leopard, when I upgraded to snow leopard the program would no longer open (I forget when the exact error message was, something on the lines of "can not open,

  • FCP and media management

    Hi all, dreaded but simple media management question here concerning rendered effects. Lynda.com has no tutorial on this matter... How do I manage them? Assume scratch disk, rendered audio/video, autosaves, etc, are all on the same drive, everything