MimeUtility.encode and a custom DataSource

I have created a custom DataSource, in which I wrap the OutputStream (returned by getOutputStream()) in a MimeUtility.encode call. When I do this, I seem to be getting an encoded MimeBodyPart, but the 'Content-Transfer-Encoding' is wrong. My DataSource code is:
public class MyDataSource implements DataSource {
    private String _mimeType; // content-type
    private String _encoding;
    private ByteArrayOutputStream _bao;
    /* Create a DataSource from an input stream */
    public MyDataSource(String mimeType, String encoding){
        _mimeType = mimeType;
        _encoding = encoding;
        _bao = new ByteArrayOutputStream();
    * Return an InputStream for the data.
    * Note - a new stream must be returned each time.
    public InputStream getInputStream()
    throws IOException {
        return new
            ByteArrayInputStream(_bao.toByteArray());
    public OutputStream getOutputStream()
    throws IOException {
        OutputStream out = null;
        try {
            out = MimeUtility.encode(_bao, _encoding);
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        return out;
    public String getContentType() {
        return _mimeType;
    public String getName() {
        return "MyDataSource";
}Now, when I invoke the datasource, I call (shortened):
_dataSource = new MyDataSource(mimeType, "base64");
_outStream = _dataSource.getOutputStream();
/* write some data to the output stream here */
DataHandler dh = new DataHandler(_dataSource);
mbp.setDataHandler(dh);
_multiPart.addBodyPart(mbp);
_message.setContent(_multiPart);
_message.setHeader("X-Mailer", "HPDS");
_message.setSentDate(new Date());
_message.writeTo(System.out);
Transport.send(_message);This code was obviously cut down and won't compile, but you get the general idea. When I do this, and I look at the output from the 'writeTo', the data is base64 encoded, but the 'Content-Transfer-Encoding' is set to '7bit'. Now, here's the really wierd thing -- if I change the MyDataSource above to use "7bit" instead of "base64", I get encoded data (I believe that it's base64 encoded, but I'm not positive), and the 'Content-Transfer-Encoding' is set to 'base64'. It looks like the two cases are being swapped?
Has anyone seen something like this? If I set the 'Content-Transfer-Encoding' explicity by calling:
mbp.setHeader("Content-Transfer-Encoding", "base64");it works fine. Is this a bug? Or am I just misunderstanding where the 'Content-Transfer-Encoding' comes from.
TIA,
- Bill

OK, I figured it out. This isn't explicitly spelled out in the FAQ, but it turns out that Javamail performs the encoding for you, based on the "Content-Transfer-Encoding" header. I was trying to encode the data inside my datasource, and was getting twice-encoded data. I set the 'getOutputStream' in MyDataSource to not call MimeUtility.encode(), and set the C-T-E header before calling Transport.send(). Now everything is working fine.
- Bill

Similar Messages

  • Error while transporting custom datasource

    Hi All,
    Below is the scenario that was carried out in my project.
    1. Created OHD to load data from a CUBE to Data base Table /BIC/ABC.
    2. Created a custom Datasource ZABC_TEST with the above table.
    3. Activated the DataSource and loaded the data. (Data load successfull. It works fine).
    4. Tried transporting the above. But trows error while transporting the data source.
    Error -- InfoSource ZABC_TEST is not available in source system BITST.
    Let me know what can be done to solve the above error. Please suggest if i have missed out something.
    Thanks in advance.
    Maddy

    HI,
    The problem seems to be occuring since you are transporting both OHD and DS in the same TR request.
    Transport first the DS in a request, then in another request transport the OHD.
    This should resolve the issue.
    hope this helps.
    thanks,
    rahul

  • Custom Datasource using View COVJ - R8359 Invalid extract structure

    I'm trying to build a custom datasource so I can get at plan line item data with partner object (I've tried using 0CO_OM_CCA_1 but I dont get the partner object for plan data - no idea why). So I thought if I create a datasource using COVJ I can get it out. However when I try and save the custom datasource (created using RSO2) I get the error R8359 Invalid extract structure: You tried to generate an extract structure with the template structure COVJ. This operation failed, because the template structure quantity fields or currency fields, for example, field WOG001 refer to a different table.
    I saw posts saying when people get this error thye should reference the table these fields come from in the view. So I've talked to our ABAP'er and I asked him to reference the table these fields come from but he said this cant be done because these come from a structure not a table.
    Any ideas?
    Thanks
    Joel

    The WOG* columns in table COEJ, one of the tables contributing to the COVJ view, use CCCUR-CURKY as the reference table-column for those quantities. The ABAPer you spoke to is correct that CCCUR is a structure. View value fields inherit their reference table-column from the source, in this case COEJ, and since this source table is an SAP delivered table it cannot be modified change this reference.
    This means that you're only option for extracting the data out of the COVJ view would be to create a Function Module and use that Function Module as the basis for your DataSource.

  • Custom DataSource plays in JMStudio, but not in my application

    hello everyone. I need someone to help me out who has played around a lot with DataSources.
    I have been playing around with custom DataSources for a small while and I have not been able to figure out something and its starting to get frustrating.
    First let me tell you what process I exactly follow when I want to create a Custom DataSource (using the "Generating Live Audio/Video Data" datasource code sample as an example - from JMF solutions http://java.sun.com/products/java-media/jmf/2.1.1/solutions/LiveData.html):
    1. Suppose the source files (DataSource.java and LiveStream.java) are lying at C:\customds\.
    I compile the files like this:
    javac -d . DataSource.java LiveStream.java
    As a result this directory is formed C:\customds\jmfsample\media\protocol\live which contains all the compiled (interpreted) files.
    2. Then I register 'jmfsample' in the Protocol Prefix list and commit the changes using the JMFRegistry GUI.
    3. Now if I run JMStudio and enter the URL live: it gives me an error that it can't create a player. I feel this is happening because some classpaths haven't been set correctly. Eventually I figured out that I have to place the \jmfsample\media\protocol\live\ directory inside the <JMF install dir>\lib\. Doing this fixes the problem and now I can go to JMStudio and run the protocol using the 'Open URL'. Giving it 'live://' plays the 'blue screen' like a gem.
    4. But here is the catch now. When I create an application which tries to create a player using live:// as a source, it doesn't run and keeps giving me a noPlayerException, or a noDataSourceException (as the case would apply; code given below).
    The funny part is that i checked the JMStudio source code for the method that is used to 'Open URL'. I haven't found any siginificant change in the way it opens urls.
    I also went a step further and tried to compile and run the JMStudio code myself to trace the code when it is in the process of opening a url. The weird thing is that when I try to do that, giving live:// as a URL gives me the same error that is given by my application. In other words JMStudio when compiled by me gives me same the error of "can't create a player..." when I open the url live://. Has Sun used a JMStudio compiled using a different source file?
    Please please anyone tell me what is wrong here.
    I have basically tried out these two kinds of things in my code, and both give me a noPlayerException error:
    Player guiPlayer = Manager.createRealizedPlayer(new MediaLocator("live://"));and
    DataSource ds = Manager.createDataSource("live://");
    Player guiPlayer = Manager.createRealizedPlayer(ds);Thanking in anticipation.
    regards

    Would it be possible for you to expand on your solution a little bit? I'm trying a similar approach, and having a similar problem to yours. From Googling, it appears as if this is a very common problem, and a lot of people give up before they solve it.
    I'm trying to use jmf.jag (and optionally add fobs4jmf.jar), not compile it from source. But I am trying to compile my own protocol from source and run it in a debugger. I have all the class files going out to the same output directory, and IntelliJ generally adds them all to the CLASSPATH automatically. But I keep getting NoPlayerException. (If I break down the players construction step-by-step, it seems to fail on "Processor ps = Manager.createProcessor(ds);".)
    I'm trying to play a Quicktime movie from memory, and I've confirmed that I'm returning "video.quicktime", that my stream is Seekable and isRandomAccess returns true, my prefix is in the protocol list, and that the package name is correct. I've tried with PLUGIN_PLAYER being true or false, media type being video.quicktime or unknown, and every other permutation I can think of.
    Any help would be greatly appreciated.

  • Select option greyed out for fields of custom DataSource (rso2, rsa6)

    Hi
    Why are several fields, in my custom DataSource (created in rso2) not available for select?
    I do not think this is a permission issue, since several fields are selectable, but not all fields.
    It is not the data type, since I see other custom DataSources that have the same data type, and it is selectable as a select option.
    This is not a DataSource that was provided by SAP, it is completely custom, and uses a custom data definition (defined as a structure via se11), and a custom function.
    I have read the responses to similar questions, but have not found an answer that explains how to make the field selectable for select.
    What determines which fields can be selected for selection, and which fields have this option greyed out (not selectable)?
    I have come across multiple answers, for similar questions, that suggest an abap program to directly update table roosfield.
    Is this safe?
    IF I choose this route will I need to run the update program on production, or will the change it makes to my dataSource transport with my transport?
    (I can test this).
    What I most need to know is If this suggestion is safe, or if it has side effects?
    Thank you

    Hi Eileen,
    In Least case to enable the selection for the fields with the below program:
    Below code is for your reference which will use to unhide objects in RSO2 or RSA6 for Data source( in code for BELNR, KUNNR, VBELN, BUDAT fields are unhiding for 0fi_ar_4 data source selection option) . Still need any clarifications let me know.
    SE38: Create a program for ref below code.
    REPORT ZNP_SELE_DS.
    tables: ROOSFIELD.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND   OBJVERS = 'A' AND FIELD = 'BELNR'.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND OBJVERS = 'A' AND FIELD = 'KUNNR'.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND OBJVERS = 'A' AND FIELD = 'VBELN'.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND OBJVERS = 'A' AND FIELD = 'BUDAT'.
    Thanks & Regards,
    Srinu.Rapolu

  • Using Custom Datasource to load Cube

    Hi Guys,
    Ok the scenario, I have created a custom datasource that is pulling data from R/3.
    The datasource is working correctly because the the number of records in R/3 matches those that are being pulled into my PSA table for my Datasource....so all thats good.
    Ok the next step is where I am struggling.
    I thought it may be a case of creating a new infocube and just adding new dimensions and include the fields of that are in the datasource into those dimensions but that doesnt work.
    Is their some documentation to doing this correctly?
    Should the fields I am using in the datasource be available as infoobjects?
    Thanks

    Hi,
    In BI for standard data elements you will have a set of predefined infoobjects that are equivalent of R/3 data elements. These start from 0(Zero).....
    So the first thing to do is to find as many IOs possible that are having same characteristics as your fields in R/3 datasource. Remember if you find one IO for each field that is enough.
    Once you find standard IOs there might be a possiblity that some of the fields in R/3 are not having any equivalent IO in BW. For this you need to create custom ones.
    After infoobjects are finalsed you can add them to your cube and create transformations.
    Regards,
    Pramod

  • Continuing font encoding and tag issues with snow leopard and CS4oI

    I am looking for help with a font handling issue with snow leopard and cs4 Indesign. Despite numerous calls and hours on the phone neither Apple nor Adobe has been helpful. I have had this issue open with Adobe since oct 5 but they remain totally unresponsive to date. I need to be able to use Type 1 fonts and do the following , export a pdf from Indesign with the following attributes: 1) xml tags for stories and objects. 2) have the fonts encoded as ansi and embedded.
    Some additional information  - exporting to ps is not an option as it destroys the xml tags. and doesn't guarantee that the fonts won't become CID or some other odd encoding.
    As it stands now,
    Leopard (10.5.8) and CS3 creates ansi encoded fonts with xml tags.
    Leopard (10.5.8) and CS4 creates ansi encoded fonts with xml tags.
    Snow leopard and CS3 creates ansi encoded fonts and xml tags
    Snow leopard and CS4 creates custom subsetted fonts and some xml tags.
    If any one has any advice on how to force specific font encodings from CS4 pdf exports so that i can preserve the tags and get the correct fonts I would be grateful.

    The font encoding is not a function of the OS version, but rather of how a font is internally encoded and the content you are representing with the font.
    If you are seeing a difference between MacOS 10.5 and 10.6 with the same Adobe software, it probably has something to do with use of a system font that is somehow different from one version of the OS to another. InDesign does not use any of the OS' font handling software.
    Assuming that the fonts are embedded, subset or not, what is your issue with whether a font is ANSI-encoded, custom-encoded, or CID-encoded? It should make no difference for purposes of workflow beyond InDesign for software that adheres to the PDF specification (including all versions of PDF from 1.3 and up to 1.7 plus ISO 32000-1 PDF and all versions of PDF/X and PDF/A).
    Neither InDesign or any other Adobe application provides user choices for the encoding since it shouldn't make a difference. The encodings chosen by Adobe's core technology components are for a combination of optimization and to support proper text search, copy, etc.
              - Dov

  • Procedures for implementing a snapshot scenario with custom DataSources

    Hi Gurus,
    I have checked the How To paper ([How to Handle Inventory Management Scenarios in BW (NW2004)|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/f83be790-0201-0010-4fb0-98bd7c01e328]). However, only SAP standard BW objects are mentioned in the paper e.g. InfoCube (0IC_C03), Material Stock InfoSource (2LIS_03_BX), Material movements IS (2LIS_03_BF) and Revaluations IS (0LIS_03_UM).
    On the contrary, I need to handle custom DataSources for the Snapshot scenario. Are there any differences in the implementation methodology? Which additional aspects should I take into consideration? For example, the load sequence, delta type, etc.
    Could you please list out the step-by-step procedures for such an implementation?
    Thanks in advance!
    Regards,
    Meng

    Hi Meng,
    You can approach this in two ways.
    1) If the volume of data is not much, you can derive the balance at query level, as follows.
    User enters the date, based on this restrict your key figure to display all values less than this date.
    2) If the volume of data is high, then you will have issues with performance if you are calculating the balance in the front end. In this case, you can model this with 'Non cumulative' key figure.  Again there are 2 ways of approaching this back end solution based on the volume of data. ( Say in one case you have 2 years of history in your DSO and in the second case, you have  5 years of history ).
    A) For example, If there are only 2 years of history
    Create a non cumulative Key figure 'ZBALANCE' with inflow and outflow, in a cube.
    Map this to your credit and debit as + and - respectively and map the calender day to posting date.
    Just initialise the dataload with data transfer and start loading the delta as normal.
    You will be able to see the balances for each and every calday in your reporting.
    This approach is straight forward and simple.
    Compress the cube for getting the better performance.
    B) If there are 5 years of history and you are not interested in loading all the 5 years data in getting the balance
    Here you want to have the initial balance, continue delta and would like to load 2 years of history.
    The cube and non cumulative KF are created as mentioned above.
    For generating initial balance, you have to create another DSO without calander day and ZBalance mapped to credits and debits in additive mode. Load your DSO data into this new DSO to generate initial balance. This balance will be loaded to your cube as initial balance. ( Like 2LIS_03_BX ).
    You have to compress this request with marker update ( Must ).
    Load your historical data for 2 years from the original DSO. Compress without marker update ( Must ).
    initialise without data transfer from DSO to cube and load deltas normally.
    Compress the delta requests normally for performance reasons.
    Please read the 'Inventory document' in detail.
    Please let me know, if any of the information is still not clear.
    Thanks,
    Krishnan

  • Dump during extraction for the custom datasource (ZFI_GL_14).

    Hello all,
    we are using Ecc 6.0 and we havent installed Enhancement Package 3. However our requirement is to create a custom datasource (ZFI_GL_14) similar to the standard one (0FI_GL_14). Initially we created the custom DS same as the standard one with the extraction method using Function Module. By default custom DS was assigned with extraction method F2. By running a program we changed F2 to F1 to resemble the standard one and made it as delta enabled as specified in the standard extractor.
    when we started extracting the custom DS using RSA3, we encountered so many errors and resolved them. However still we are getting some more errors which requires your help.
    1. While testing One of the function module FAGL_GET_LINE_ITEMS, it throws following ABAP dump.
    Short text                                                                               
    |    A dynamically specified FROM clause has an unexpected format.                              
    |What happened?                                                                               
    |    Error in the ABAP Application Program                                                        
    |                                                                               
    |    The current ABAP program "SAPLYPFI_FAGL_ITEMS_SELECT_BW" had to be terminated                
    |     because it has come across a statement that unfortunately cannot be executed.                               
    |Error analysis                                                                               
    |    An exception occurred that is explained in detail below.                                     
    |    The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SYNTAX', was not               
    |     caught in                                                                               
    |    procedure "YPFI_FAGL_GET_LINE_ITEMS" "(FUNCTION)", nor was it propagated by a                
    |     RAISING clause.                                                                             
    |    Since the caller of the procedure could not have anticipated that the                        
    |    exception would occur, the current program is terminated.                                    
    |    The reason for the exception is:                                                             
    |    The running ABAP program attempted to execute an Open SQL statement in                       
       which a FROM clause was specified dynamically in the field "LD_DBTAB_SYNTAX".                
    |     In this                                                                               
    |    FROM clause, either a table name after a join operator is missing, or an                     
    |     alias name after the key name "AS". The field "LD_DBTAB_SYNTAX" could be empty as well.                                                                               
    |Missing RAISING Clause in Interface                                                              
    |    Program                                 SAPLYPFI_FAGL_ITEMS_SELECT_BW                        
    |    Include                                 LYPFI_FAGL_ITEMS_SELECT_BWU01                        
    |    Row                                     1                                                    
    |    Module type                             (FUNCTION)                                           
    |    Module Name                             YPFI_FAGL_GET_LINE_ITEMS                             
    |Trigger Location of Exception                                                                    
    |    Program                                 SAPLYPFI_FAGL_ITEMS_SELECT_BW                        
    |    Include                                 LYPFI_FAGL_ITEMS_SELECT_BWU01                        
    |    Row                                     353                                                  
    |    Module type                             (FUNCTION)                                           
    |    Module Name                             YPFI_FAGL_GET_LINE_ITEMS                             
    |Source Code Extract                                                                               
    |Line |SourceCde                                                                               
    |  323|                                  lt_fields_flexgl                                         
    |  324|                                  lt_fields_table1                                         
    |  325|                                  lt_fields_table2                                         
    |  326|                                  gv_si_table "erste Tab immer Flexgl?                    
    |  327|                                  gc_bkpf                                                  
    |  328|*                                  ' '                  
    |  329|                                  gc_bkpf_aedat       
    |  330|                                  'X'                                                      
    |  331|                            CHANGING ld_dbtab_syntax                                       
    |  332|                                     lt_fldlist_s                                          
    |  333|                                     lt_where_tab[].                                       
    334
    |  335|*       open cursor                                                                        
    |  336|        DESCRIBE TABLE lt_where_tab LINES ld_lines.                                       
    |  337|        IF ld_lines GT 0.                                                                 
    |  338|          delta_dbcnt          = 0.                                                       
    |  339|          old_dbcnt            = 0.                                                        
    |  340|          flag_cursor_open     = 'X'.                                                     
    |  341|          cursor_flag          = 'X'.                                                      
    342
    |  343|          OPEN CURSOR WITH HOLD i_cursor FOR                                               
    |  344|          SELECT (lt_fldlist_s)                                                            
    |  345|            FROM (ld_dbtab_syntax) CLIENT SPECIFIED                                        
    |  346|             WHERE (lt_where_tab).                                                         
    |  347|        ELSE.                                                                               
    |  348|          delta_dbcnt          = 0.                                                        
    |  349|          old_dbcnt            = 0.                                                        
    |  350|          flag_cursor_open     = 'X'.                                                      
    |  351|          cursor_flag          = 'X'.                                                      
    352
    |>>>>>|          OPEN CURSOR WITH HOLD i_cursor FOR                                               
    |  354|          SELECT (lt_fldlist_s)                                                            
    |  355|            FROM (ld_dbtab_syntax) CLIENT SPECIFIED.                                       
    |  356|        ENDIF.                                                                             
    357
    |  358|        st_selection[]  = lt_selection[].                  
    |  359|        st_fieldlist[]  = lt_fieldlist[].                  
    |  360|        sd_dbtab_syntax = ld_dbtab_syntax.             
    |  361|        st_fldlist_s[]  = lt_fldlist_s[].                
    |  362|        st_where_tab[]  = lt_where_tab[].                
    |  363|        st_seltable2[]  = lt_seltable2[].                 
    364
    |  365|      ENDIF.   "cursor_flag                                                               
    366
    |  367|      lt_selection[]  = st_selection[].                 
    |  368|      lt_fieldlist[]  = st_fieldlist[].                                       
    |  369|      ld_dbtab_syntax = sd_dbtab_syntax.        
    |  370|      lt_fldlist_s[]  = st_fldlist_s[].                 
    |  371|      lt_where_tab[]  = st_where_tab[].              
    |  372|      lt_seltable2[]  = st_seltable2[].                   
    Line 353 contains the error.
    1. L_DBTAB_SYNTAX. As per the statement this field should bring the table name, but it is not bringing any value                          whiledebugging.
    2.also lt_fldlist_s should bring the field names.
    As this is for New GL line item datasource, I am not sure what fields should lt_fldlist_s and what table name , and wheretab value should come , so that the function module can extract the data.
    Kindly help me to get an insight into this issue and to get it resolved.
    thanks,
    Praba...

    Hi Frank,
    yes I agree. That was the first question that came to me in my mind. However, the job was handed over to us, and we were able to exactly create the custom DS , FM and Function groups as similar to the standard one and everthing got activated perfectly. But during extraction, it throws the dump.While debugging, the function module is not able to pick the value for the 3 fileds which I stated above in one of my queries. The main extractor for this Datasource is FAGL_GET_SI_DATA and it uses the extract structure FAGLPOSBW.This Main function module in turn calls one more FM, FAGL_GET_LINE_ITEMS by exporting below parameters.
    CALL FUNCTION 'FAGL_GET_LINE_ITEMS'
              EXPORTING
                i_block_data = 'X'
                i_block_size = sd_max_lines
                i_selection  = lt_select_int
                i_fieldlist  = lt_fields_int
                i_initflag   = i_initflag.
          ELSE.
    From my observation ,  the above statements i_selection  = lt_select_int  and i_fieldlist  = lt_fields_int should contain/pass the value to the line items FM, FAGL_GET_LINE_ITEMS.In the above thread also I mentioned I didnt get the value for ld_dbab_syntax, lt_fieldlst_s and ld_where_tab. I believe it is simply because i_selection and i_fieldlist is not getting the value from lt_select_init and lt_fields_init respectivelyImport parameters for this FM is as below.
    I_BLOCK_DATA     TYPE     C
    I_BLOCK_SIZE     TYPE     SY-TABIX
    I_SELECTION                           TYPE     GUSL_T_SELECTION
    I_FIELDLIST                           TYPE     GUSL_T_FIELDS
    I_INITFLAG                           TYPE     GUSL_BOOL
    I_CHANGED_RECORDS      TYPE     GUSL_BOOL
    export parameter for this FM is as below.
    FLAG_CURSOR_OPEN     TYPE     FLAG
    Changing parameter for this FM is as below
    C_T_FAGLPOSE     TYPE     FAGLPOSE_T
    where FAGLPOSE means Fields for Reading Data: Line Items: New General Ledger.GUSL_T_SELECTION is the same type like DDIC table type FB_T_FIELD_SELECT_OPTIONS which will have Fieldname and selection option range.GUSL_T_SELECTION is created within the type group GUSL as mentioned below.
    TYPES: BEGIN OF GUSL_S_SELECTION,
           FIELDNAME LIKE DFIES-FIELDNAME,
           T_RANGE   TYPE GUSL_T_RANGE,
           END   OF GUSL_S_SELECTION,
           GUSL_T_SELECTION TYPE GUSL_S_SELECTION OCCURS 20.
    wherein
    FIELDNAME LIKE DFIES-FIELDNAME,
    DFIES: --> DD Interface: Table Fields for DDIF_FIELDINFO_GET. Also GUSL_T_FIELDS refers to DFIES.
    Regards,
    Praba..

  • Player for custom datasource

    Hi
    I need to create a custom datasource but i want to play it on a player as other normal datasource.
    I tell you what im doing, I have developed a example to show you my problem:
    first thing i do is creating a custom datasource:
    import javax.media.*;
    import javax.media.protocol.DataSource;
    import javax.media.protocol.ContentDescriptor;
    public class myCustomDataSource extends DataSource {
         myCustomDataSource(MediaLocator ml){}
         public void connect(){}
         public void disconnect(){}
         public void start(){}
         public void stop(){}
         public String getContentType() {
              return ContentDescriptor.CONTENT_UNKNOWN;
         public Object[] getControls() {
             return new Object[0];
         public Object getControl(String type) {
             return null;
         public Time getDuration(){
              return Time.TIME_UNKNOWN;
    }then, I create a basic class that use a player for playing my custom datasource:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.media.*;
    import javax.media.protocol.DataSource;
    public class VideoPlayer extends JFrame {
         Player player = null;
         private JPanel contentPane;
         public static void main(String args[]){
              String mediaFile = "http://noodle.med.yale.edu/demos/dsr_arrow.mpg";
              MediaLocator locator = new MediaLocator(mediaFile);
              myCustomDataSource mcds = new myCustomDataSource(locator);
              (new VideoPlayer(mcds)).setVisible(true);
         public VideoPlayer(myCustomDataSource ds) {
              super("Example");
              setSize(400,400);
              contentPane = (JPanel) this.getContentPane();
              addWindowListener(new myWindowAdapter());
              try {
                   player = Manager.createPlayer(ds);
                   player.addControllerListener(new controllerUpdate());
              }catch(Exception e){
                   System.err.println("Error loading the media. ("+e+")");
              if(player!=null) player.realize();      
         class controllerUpdate implements ControllerListener {      
              public synchronized void controllerUpdate(ControllerEvent e) {      
                   if(e instanceof RealizeCompleteEvent) {
                        Component visualArea = player.getVisualComponent();      
                        Component controlPanel = player.getControlPanelComponent();      
                        if(visualArea!= null)      
                             contentPane.add(visualArea, BorderLayout.CENTER);      
                        if(controlPanel != null)      
                             contentPane.add(controlPanel, BorderLayout.SOUTH);      
                        validate();      
                        player.prefetch();
                   if(e instanceof PrefetchCompleteEvent) {
                        player.start();
         class myWindowAdapter extends WindowAdapter {
              public void windowClosing(WindowEvent e){
                   if(player!=null) player.close();
                        System.exit(0);
    }when i run it i get the next error: Error loading the media. (javax.media.NoPlayerException: Cannot find a Player for: myCustomDataSource@be0e27)
    I dont know how i must fill the myCustomDataSource class constructor and abstract methods to run it.
    I test videoplayer class with a normal datasource and it works
    sorry for my bad english
    Thanks so much

    ok, thanks for answering,
    I see a sun webpage example maybe can help: http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JpegImagesToMovie.html
    In that example, a custom datasource is declared and then a processor is created with that custom datasource using Manager.createProcessor. For that, custom data source class is declared inside class where processor is used. Im trying to do it but it doesnt work, i get the same error.
    thanks in advance
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;
    import java.io.*;
    import javax.swing.*;
    import javax.media.*;
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.DataSource;
    public class VideoPlayer extends JFrame {
         Processor p = null;
         private JPanel contentPane;
         myCustomDataSource mcds = null;
         public static void main(String args[]){
              String locator = "C:/video.avi";
              (new VideoPlayer(locator)).setVisible(true);
         public VideoPlayer(String locator) {
              super("Example");
              setSize(400,400);
              contentPane = (JPanel) this.getContentPane();
              addWindowListener(new myWindowAdapter());
              mcds = new myCustomDataSource(locator);
              try {
                   p = Manager.createProcessor(mcds);
              }catch(Exception e){
                   System.err.println("Error loading the media. ("+e+")");
              if(p != null){
                   //p.setContentDescriptor(null);
                   p.addControllerListener(new controllerUpdate());
                   p.configure();      
         class controllerUpdate implements ControllerListener {      
              public synchronized void controllerUpdate(ControllerEvent e) {      
                   if(e instanceof ConfigureCompleteEvent) {
                        p.realize();
                   if(e instanceof RealizeCompleteEvent) {
                        Component visualArea = p.getVisualComponent();      
                        Component controlPanel = p.getControlPanelComponent();      
                        if(visualArea!= null)      
                             contentPane.add(visualArea, BorderLayout.CENTER);      
                        if(controlPanel != null)      
                             contentPane.add(controlPanel, BorderLayout.SOUTH);      
                        validate();      
                        p.prefetch();
                   if(e instanceof PrefetchCompleteEvent) {
                        p.start();
         class myWindowAdapter extends WindowAdapter {
              public void windowClosing(WindowEvent e){
                   if(p != null) p.close();
                        System.exit(0);
         class myCustomDataSource extends DataSource {
              MediaLocator ml = null;
              myCustomDataSource(String locator){
                   ml = new MediaLocator("file://"+locator);
                   super.setLocator(ml);
              public void connect(){}
              public void disconnect(){}
              public void start(){}
              public void stop(){}
              public String getContentType() {
                   return ContentDescriptor.CONTENT_UNKNOWN;
              public Object[] getControls() {
                  return new Object[0];
              public Object getControl(String type) {
                  return null;
              public Time getDuration(){
                   return Time.TIME_UNKNOWN;
    }

  • Creating a custom datasource. Please help!

    Hi Experts,
    I'm creating a custom datasource in RSO2 to extract data from a custom view based on three z tables. I have filled the view with the join conditions and the fields. After activating it, I have checked the data and it's correct. The problem appears when I try to create a custom datasource based on this table, the following error appears:
    Invalid extract structure template ZXXX of DataSource ZXXX.
    You tried to generate an extract structure with the template structure ZXXX. This operation failed, because the template structure quantity fields or currency fields, for example, field AMOUNT refer to a different table.
    I have checked the quantity and currency fields in order to add the reference tables and fields. For example:
    0AMOUNT: ref table: EIPA; ref field: BWAER.
    The problem is that I don´t know how to join both tables (EIPA and my Zview) because the key is different in the tables and only non relevant fields like Net Price appear in both tables.
    If I add only the field EIPA-WAER, the data selectedis not correct, obviously.
    Please, what can I do? Any ideas?
    Thanks in advance! Any help will be more than welcome. Thanks!

    Hi all,
    I have created an Infoset but the problem persists. If I only join the tables I need, when I generate de Infoset, a warning appears telling that some fields (currency and quantity) will not be filled. At this point, if I execute de datasource in RSA3, the number of records is correct but these fields are empty.
    If I add the tables that appear in the warning message, the number of records extracted is 0, because these "auxiliar" tables only contain information about currency units but they don't have the same key values so thay cannot join.
    I have a question now... the tables that I have to upload into BI are also Z Tables. What happens if I ask my development team to add currency and quantity units in these tables? I think my problem will be solved if unit fields appear in the original tables. Would it be enough?
    Any suggestions on it?
    Thanks in advance!
    Edited by: Iñaki Rueda on Dec 29, 2009 12:02 PM

  • Enable RDA for customized datasource

    Hi
    Please let me know step by step process how to enable RDA for customized datasource ( generic extraction by FM)
    and how tio enable for standard datasource

    Please let me know step by step process how to enable RDA for customized datasource ( generic extraction by FM)
    Re: Real-Time Data Acquisition
    and how to enable for standard datasource
    goto se38 in ECC, and cerate an executable program with the following code
    Tables : ROOSOURCE.
    UPDATE ROOSOURCE set REALTIME = 'X'
    WHERE OLPTSOURCE = "datasource name" and OBJVERS = 'A'.
    when i am creating infopckage check box is disable for real time data?
    U have to create TWO infopackages, one for Initialize Delta Process, and other for Real Time load...
    Tricky thing here is, before creating Real_Time infopackage, u should load data through first infopackage (Initialize Delta Process).... Then only real time check box is enabled

  • How to create a Custom DataSource ?

    Hi to everybody,
    I'm a little confused about creating a custom DataSource that i need to create a player
    that shows as a video some jpeg images retrieved from an input stream.
    question 1:
    do i have to store all the images in the data source ? or i can just set the current image every time i rereceive a new image ?
    question 2:
    can i link my JpegInputStream to my custom data source in order to read the images ?
    thank you in advance
    ps please help me .. it's really important.
    Marco
    Message was edited by:
    lecoramarco
    Message was edited by:
    lecoramarco
    Message was edited by:
    lecoramarco

    hi
    u will have to create DS using FM.
    use the standard function module and edit the FM as per ur need.
    this post should help u....
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    cheers.

  • Creating a custom datasource

    hai all,
    I saw one example in jmf website "LiveStream", in which we can play the video with RGP format(custom data). They will create the video data in RGP format and we can create the test pattern. have any body tried that, if you are able to do that, kindky let me know that.
    Thanking you all
    antony

    I didn't try this, but have you taken a look at JMF Solutions page ?
    I saw there something about creating a custom datasource:
    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/LiveData.html
    Hai

  • Encode and Decode the Image

    Hi,
    I have a requirement like to encode the image(anyone of type:-jpg.gif) byte Array and placed into XML file.
    I can use this xml file as datasource in BIRT,decode the byte data and bind to Image.
    so I need to encode and decode the Image with predefined Libraries,
    Could anyone Help to me.
    Thanks and Regards
    Swetha.

    Get the name of the file.
    Read the file as bytes
    Encode the bytes as base64 string
    Insert name into a XML element
    Insert base64 into a XML element
    Reverse to extract.
    Image libraries have nothing to do with that process.

Maybe you are looking for

  • Application Language Problem

    Hello, I am writing From Turkey. I have an iphone 5s and i believe i am the one of first iphone 5s buyer in Turkey. I had a problem and i called apple and nobody solved my problem. I tunes help desk or whatever thay said that problem is not their pro

  • Installing software prob

    So, I finally decided to buy the Zen Micro. Every time I put the installation CD in and run the program, one of those annoying Error boxes pops up. I've tried restarting my computer and that doesn't work. I don't know what to try next. Help.

  • Captivate 5 - quiz and audio problem

    Hi there. Using Captivate 5 I have created an e-learning module that ends with a quiz. I included audio to read up the questions in the quiz. Question number 1, 2 and three works fine - with number four, the audio goes numb....???? All settings for a

  • Problem building schema - Siebel OnDemand Web Services

    I'm trying to call a Siebel OnDemand Web Service from BPEL. I've downloaded the Contact.wsdl from OnDemand and imported it into my project. I've created a partner link and created variables for the input and output. The problem is that JDeveloper can

  • Help in finding a regex pattern

    Dear all REGEX Gurus.  We have a comma separated string like this: 132, 143, "222, 144, abc", 227, 888, "222#55#ab" As you might have guessed, this comes from excel when we save as CSV file, and when one of the columns in excel has the value 222,144,