Java api change tracking

Hi Experts!
I am using java api in webdynpo application.There is a requirement to to track changes at field\table level.
I want to know that are there any api's to track changes at field level?
Thnaks,
Ravi Shankar puppala

Hi Ravi,
Refer /people/balas.gorla/blog/2006/09/08/change-tracking-in-mdm
Re: MDM Change tracker iview: table dropdown is empty
Hope it helps.
Thanks,
Minaz

Similar Messages

  • ITunes U Java API -- Saving Tracks before Deleting a Course

    I've successfully built a Blackboard Building Block that allows me to create iTunes U course pages and sub welcome pages. Now I want to look into deleting them with the ability to re-create them without losing the tracks.
    Creating the course isn't really an issue. I'm wondering how would I go about saving the tracks that I get back from the ITunesUConnection.getTracks() method.
    The Track Class allows me to get and set the attributes of a track, but I'm not sure about what the getDownloadUrl() method does and how long these urls last.
    Would moving the entire course page to a hidden, admin-only, sub welcome page that mimics the layout of the current iTunes U site be the best way to implement this kind of control?

    I don't have any answers. I deleted all the itunes U stuff off my PC, because I couldn't stand how it put things in random places and there seems to be no way to organize it. Spanish courses were going into my video and music sections and not staying put in the itunes U section. I think it's becuase each provider does their own design and tag things differently:
    http://deimos.apple.com/rsrc/doc/iTunesUAdministrationGuide/DesigningYouriTunesU Site/chapter10_section2.html

  • Change Tracking - API

    Hi all,
    I would like to know if  it is possible to retrieve the change tracking information using MDM Java or MDM ABAP API. I quickly had a look at the Java API but didn't find anything relevant to this.
    Is there an alternate way to retrieve the information through API?
    If SAP didn't provide any API to retrieve this, Is it a suggested approach to directly query the database (XXXXX_Z000) and retrieve the information through the standard JDBC API?
    Any suggestions are highly appreciated.
    Thanks.

    Hi Suman,
    There's a change tracking application available with SP05 patch0 onwards that you can deploy on EP. It will display all the information from the change tracking table. Internally, it must be using java/JDBC calls to get that data. But, that API is not yet exposed.
    In the absence of any API, the only other approach is to by pass MDM and get information directly from the table.
    Regards,
    TS

  • [java api f90jdapi]How to change locationnames of attached libs in PLL's?

    I have a couple of PLL files which have some attached libraries. The problem is that the cases of the locationnames of these attached libraries are not exactly the same as the physical files: for example, the physical file 'ofgmes.pll' is attached as 'Ofgmes.pll', or 'OFGMES.PLL'. In Linux this will cause problems during compilation, because Linux is case sensitive.
    We have two solutions to change the locationnames manually:
    1. load PLL in Oracle Forms Builder, remove and reattach the attached libraries.
    2. Convert PLL to PLD, change the .attach LIBRARY property, and convert the PLD to PLL
    As you can imagine, it takes a lot of time to do this manually. So I'm looking for a solution with the java api 'f90jdapi'. I've tried to load de PLL's in a PlsqlObject object, but it's impossible to edit these objects.
    Now I'm looking for a manner to convert a PLL to PLD and vice versa. Can anyone help me with that? If there is another solution to change the locationnames of the attached libraries, please tell me :)
    Jeroen

    Hi Jeroen,
    You have two options to work around your lib's problem. Perhaps the easiest way is to set your FORMS90_PATH to include the missing library modules. This requires no coding, but I can imaging that hard-coded paths are unwanted in the future and you want to remove them (I know I would).
    The second option involves some Java coding (using JDAPI) but than the paths are removed automatically. In essense
    you have to rewrite the whole library as a pld and then parse the pld into a pll and eventually compile it into a plx.
    The code below shows this. It is extracted from a utility I use to reattach libraries to forms, menus and pl/sql-
    libraries. I tried to strip the code from details as much as I could. You can include this method into a new class or into your exsisting class.
    It does:
    1) loop over all modules loaded into the JDAPI session and check if a library module is passing.
    2) For each found library, it loops over the attached libraries and writes a line to a StringBuffer. This StringBuffer is going to be your pld.
    3) Loop over all Program Units and write the code to the StringBuffer.
    4) Construct a proper file name and save the pld module to disk.
    The save method uses a java.io.FileWriter to save the pld to disk and calls the runtime method I posted earlier to parse and compile the file.
    Regards,
    Harm
    * Reattach libraries to Libraries (PlsqlModules). Handling libraries is different
    * than handling forms and menus, therefore, this method does not depend on
    * the reAttach(JdapiModule, List) method.
    * Libraries are handled via a .pld script file and parsing that file to a .pll file.
    private void reAttachLibs2Libs() {
    for (JdapiIterator modules = Jdapi.getModules() ; modules.hasNext() ; ) {
    JdapiModule jmod = (JdapiModule)modules.next();
    if (jmod.getTypeId() == JdapiTypes.LIBRARY_MODULE_OTID) {
    StringBuffer pldModule = new StringBuffer(4800);
    // loop over all attached libraries and remove hard-coded paths
    for (JdapiIterator attachedLibs = ((PlsqlModule)jmod).getAttachedLibraries() ; attachedLibs.hasNext() ; ) {
    AttachedLibrary attachedLib = (AttachedLibrary)attachedLibs.next();
    String lib = attachedLib.getName();
    if (!dettachOrSwap.containsKey(lib)) {
    pldModule.append(".attach LIBRARY ").append(lib).append(" END NOCONFIRM\n");
    } // end for loop attached libraries
    // loop over all PU's and append it (unchanged) to pldModule
    for (JdapiIterator pUnits = ((PlsqlModule)jmod).getProgramUnits() ; pUnits.hasNext() ; ) {
    ProgramUnit pUnit = (ProgramUnit)pUnits.next();
    pldModule.append(pUnit.getProgramUnitText()).append("\n\n");
    // only if libraries are changed, save pld to file system, to the outdirectory
    // entered in jdapi.properties and change file extension from pll to pld.
    String fileName = jmod.getAbsolutePath().substring(
    jmod.getAbsolutePath().lastIndexOf(File.separator) +1
    , jmod.getAbsolutePath().length()-3) + "pld";
    fileName = outDir + File.separator + fileName;
    save(pldModule, fileName);
    } // end if JdapiTypes.LIBRARY_MODULE_OTID

  • How to change the parameter 'Default Servers To Use For Viewing And Modification' using java api dynamically.

    Hi,
    I need to change the Crystal Reports setting 'Default Servers To Use For Viewing And Modification' to a particular server.this i need to do using java api.
    could you pls provide me the sample code for this.
    Regards
    Srinivas

    The IReport interface extends IViewingServerGroupInfo interface, that allows you to specify the server group. 
    The choice selection for that interface is as follows:  0 = first available, 1 = prefer the selected server group, and 2 =  only use the selected server group.
    The server group selection is by the SI_ID for that server group InfoObject.
    Sincerely,
    Ted Ueda - Developer Support

  • MDM JAVA API SCA file for MDM 7.1 SP04

    I need to download MDM JAVA API SCA file for MDM 7.1 SP04. When I added to the download basket through service marketplace it is looking for the approval process, just for the API file. I was able to get the other files though like webdynpro framework, change tracker. We haven't setup the Solution Manager yet. It might take a while. Meanwhile is there any other way to get the SCA file.
    Thanks

    Opened message with SAP and they have approved the download basket. Now able to download the sca file.

  • Error while creating user id from MDM JAVA API in 7.1 SP7

    Hi,
    We are trying to create user id in MDM 7.1 SP7 using JAVA API in SAP Portal. When trying to create user id, we are getting below error. If you have any solution please let us know.
    com.sap.mdm.commands.CommandException: MDM repository data is out-of-date or is locked by another MDM Server. Refresh the data and try the operation again. If the error persists, contact the system administrator
    Thanks,
    Vinit Pugaliya

    URGENT** How to change  OIM user password from outside OIM

  • IllegalStateException while invoking livecycle formserver using java api

    I am new to livecycle formserver.when i am trying to invoke formserver using java api ,it is giving illegal state exception.My servlet application to invoke formserver is deployed in tomcat 5.o in one system and jboss with formserver is in anohter system.
    I am using the following properties to connect formserver in another system.
    Properties ConnectionProps = new Properties();
    ConnectionProps.setProperty("DSC_DEFAULT_EJB_ENDPOINT", "jnp://172.21.49.116:JBoss:1099");
    ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","EJB");
    ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss");
    ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");
    ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");
    And i am confusing in setting the following paths using UrlSpec object.
    URLSpec urlspec = new URLSpec();
    urlspec.setApplicationWebRoot("http://JBOSS:8080/FormServer");
    out.println("after webroot");
    urlspec.setContentRootURI("http://localhost:8080/srvapp");
    out.println("after contentroot");
    urlspec.setTargetURL("http://localhost:8080/srvapp/HandleData");
    My .xdp file is in my localsystem where my tomcat is running.and renderToHtml method is like this:
    FormsResult formOut = Fsc.renderHTMLForm(formName, TransformTo.AUTO,oInputData,htmlRenderSpec,"",urlspec,null);
    i am passing the path of the .xdp file in my local system to formName parameter.
    with this code i am facing problem.Is there anything wrong in my code?or is there any settings to change in formserver?
    please help me with this problem,i am trying to sort out this problem.
    Any help?
    Thanks in Advance

    If you are invoking LiveCycle ES2 on JBoss compile with JDK 1.6 and run against JRE 6.
    Steve

  • Image upload using Java API

    Hi all,
    I am trying to upload an image into MDM repository using the Java MDM4J API. I have referred to the earlier posting in this forum for the same problem I am not able to add images into Catalog thru java API. However I am working on SP3 version of MDM software and looks like the Images table structure changed a bit and the code in the earlier posting isn't working.
    I am getting an error code <b>-5586944</b> and the message that gets printed on the console is
    <i>a2i.core.StringException: AddRecord error
         at a2i.common.CatalogData.AddRecord(Unknown Source)
         at a2i.common.CatalogData.AddRecord(Unknown Source)</i>
    Here is the code that I am using to upload the image
    String filePath = "C:\temp\Sunset.jpg";
    File file = new File(filePath);
    byte[] bytes = new byte[(int) file.length()];
    try{
         //read byte from file, and set the large data
         FileInputStream inputStream = new FileInputStream(file);
         inputStream.read(bytes);
         mdmFields.Add(new A2iField("Data ID", new Value(bytes)));
    }catch(IOException ioex){
         ioex.printStackTrace();
    int dataGroupId = 0;//Hardcoded it to 0. There is one group already in the repository
    mdmFields.Add(new A2iField("Data Group ID", new Value(dataGroupId)));
    //adding the name
    mdmFields.Add(new A2iField("Name", new Value(file.getName())));
    mdmFields.Add(new A2iField("Original Name", new Value(file.getName())));
    //adding OrigLocationId
    int origLocationId =0;
    try{
         origLocationId = catalog.AddDataLocation(filePath, 0, DataLocationType.ComputerLocation);
         System.out.println("Location id generated is " +origLocationId);
    }catch(StringException ex){
         System.out.println("Error while generating the location id");
         ex.printStackTrace();
    mdmFields.Add(new A2iField("Original Location ID", new Value(origLocationId)));
    try {
         //adding the image to the "Images" table
         int newImageId = catalog.AddRecord("Images", mdmFields, 0, 0);
    } catch (StringException e) {
         // TODO Auto-generated catch block
         System.out.println("Error while adding the image record " + e.GetErrorCode() + "  " + e.GetRCMessage(e.GetErrorCode()));
         e.printStackTrace();
    I am not able to figure out what is causing the problem. Any ideas would be greatly helpful. Thanks in advance.
    Suman.

    Hi Mausam,
    Thanks for your help. However, the problem doesn't seem to be going.
    I printed the records in the <b>Data Groups</b> table using a program to find the record ids that are already existing. My Data Groups table has 3 records. Here are the values.
    ID :1 Value :MyGroup
    ID :2 Value :Group2
    ID :3 Value :Group3
    I tried passing all the above 3 values (1,2,3) as input to the <b>Data Group ID</b> field. However, this time, I am getting a different error code this time
    Error while adding the image record -2147483647  No message for RC (0x80000001)
    a2i.core.StringException: AddRecord error
         at a2i.common.CatalogData.AddRecord(Unknown Source)
         at a2i.common.CatalogData.AddRecord(Unknown Source)
         at images.MyImageUpload.uploadImage(MyImageUpload.java:82)
    The error code <b>2147483647</b>  from the javadocs says <b>RC_BADPARAM</b>. Not able to figure out what exactly is causing the problem with Data Group ID.
    Any ideas or pointers to solve this would be greatly helpful. Thanks in advance.
    Regards
    Suman
    > Hi Suman,
    >
    > If you look at the description for the error code,
    > you get RC_CM_DATAGROUPNOTFOUND.
    >
    > Try giving some other value ( 1 worked for me ) in
    > the Data Group or try following the code given for
    > the Data Group in other forum post that you have
    > mentioned.
    >
    > Regards,
    > Mausam

  • MDM Java API (Creation of table)

    Hi,
    can anyone help me for  creation of tables in repository using MDM java API .
    Can u Provide sample code for this.
    Edited by: Srikanth Josyula on Jun 26, 2008 8:52 AM

    Hi Srikanth,
    Check with this code.It may be useful.
    createflattable.java
    Created on June 25, 2008, 5:08 PM
    To change this template, choose Tools | Options and locate the template under
    the Source Creation and Management node. Right-click the template and choose
    Open. You can then make changes to the template in the Source Editor.
    package tabletype;
    import com.sap.mdm.commands.AuthenticateRepositorySessionCommand;
    import com.sap.mdm.commands.CommandException;
    import com.sap.mdm.commands.CreateRepositorySessionCommand;
    import com.sap.mdm.commands.GetRepositoryRegionListCommand;
    import com.sap.mdm.data.MultilingualString;
    import com.sap.mdm.data.RegionProperties;
    import com.sap.mdm.data.RegionalString;
    import com.sap.mdm.net.ConnectionException;
    import com.sap.mdm.net.ConnectionPool;
    import com.sap.mdm.net.ConnectionPoolFactory;
    import com.sap.mdm.schema.TableProperties;
    import com.sap.mdm.schema.commands.CreateTableCommand;
    import com.sap.mdm.schema.commands.GetFieldListCommand;
    import com.sap.mdm.schema.commands.GetTableListCommand;
    import com.sap.*;
    import com.sap.mdm.server.DBMSType;
    import com.sap.mdm.server.RepositoryIdentifier;
    import java.util.Locale;
    public class createflattable {
        /** Creates a new instance of createflattable */
        public createflattable() {
            private static MultilingualString createMultilingualString(RegionProperties[] regionPropertiesList, String baseString)
            MultilingualString mlString = new MultilingualString();
            for (int i = 0; i < regionPropertiesList.length; i++)
                Locale locale = regionPropertiesList<i>.getLocale();
                //Locale locale = regionPropertiesList<i>.getLocale();
                String regionCode = regionPropertiesList<i>.getRegionCode();
                String string = baseString + "_" + locale.getLanguage() + "_" + locale.getCountry();
                RegionalString regionalstring = new RegionalString(string, regionCode);
                mlString.set(regionalstring);
            return mlString;
        private static TableProperties createFlatTable(RegionProperties[] regionPropertiesList)
            //MultilingualString tableName = createMultilingualString(regionPropertiesList, "NewTable" + System.currentTimeMillis());
    MultilingualString tableName = createMultilingualString(regionPropertiesList, "first"+System.currentTimeMillis());
    System.out.println("table is" +tableName);
            TableProperties table = new TableProperties(TableProperties.FLAT);       
            table.setName(tableName);
            table.setCode("NewCode" + System.currentTimeMillis());
            table.setKeyMappable(true);
            table.setDescription("");
            return table;
          public static void main(String[] args) {
                // System Name
         String tag = "";
        ConnectionPool connections = null;
    try {
        connections = ConnectionPoolFactory.getInstance(tag);
    catch (ConnectionException e)
    e.printStackTrace();
    return;
    //////////////// specify the repository to use
    //RepositoryName
    String repositoryName = "";
    //DataBase Name
    String dbmsName = "";
    RepositoryIdentifier  reposId = new RepositoryIdentifier(repositoryName, dbmsName, DBMSType.MS_SQL);
    /////// create a repository session
    CreateRepositorySessionCommand sessionCommand = new CreateRepositorySessionCommand(connections);
    sessionCommand.setRepositoryIdentifier(reposId);
    try {
    sessionCommand.execute();
    catch (CommandException e) {
    e.printStackTrace();
    return;
    System.out.println("Currently connected to "+reposId);
    String sessionId = sessionCommand.getRepositorySession();
    /////////// authenticate the repository session
    String userName = "";
    String userPassword = "";
    AuthenticateRepositorySessionCommand authCommand = new AuthenticateRepositorySessionCommand(connections);
    authCommand.setSession(sessionId);
    authCommand.setUserName(userName);
    authCommand.setUserPassword(userPassword);
    try {
    authCommand.execute();
    catch (CommandException e) {
    e.printStackTrace();
    return;
    //////////////////// retrieve the list of tables
    GetTableListCommand tableListCommand = new GetTableListCommand(connections);
    tableListCommand.setSession(sessionId);
    try {
    tableListCommand.execute();
    catch (CommandException e) {
    e.printStackTrace();
    return;
    // get change stamp
      // this is required when we make any kind of changes to the repository
         int changeStamp = tableListCommand.getChangeStamp();
         //////get repository regionlist
    //A command for retrieving the list of regions supported by the repository.
          // retrieve the available regions (languages) for the repository
          // we need this to set up the table name for each region
      GetRepositoryRegionListCommand gm =  new GetRepositoryRegionListCommand(connections);
       gm.setRepositoryIdentifier(reposId);
            try {
               gm.execute();
            catch (CommandException e) {
                e.printStackTrace();
                return;
       //   RegionProperties[] rs = gm.getRegions();
    RegionProperties[] regionPropertiesList = gm.getRegions();
          TableProperties newtable = createFlatTable(regionPropertiesList);
          CreateTableCommand c = new CreateTableCommand (connections);
            c.setSession(sessionId);
          c.setTable(newtable);
       c.setInChangeStamp(changeStamp);
            try {
                 c.execute();
                System.out.println("sdf");
            catch (CommandException e) {
                e.printStackTrace();
                return;

  • XI interface with third party using Java API

    Hi All,
    We have the following requirement:
    XI needs to interface with an external third party system which has JAVA API capabilities and the corresponding JAR files available to us.
    I have seen a few threads where it was mentioned that we could call the Java methods directly in User Defined functions:
    Process Integration (PI) & SOA Middleware
    My question: Is this approach feasible in our scenario? Also I guess we do not need to configure any adapter for this Java Method call within the UDF.
    Your help will be greatly appreciated and rewarded.
    Regards,
    Jai.

    Thanks Stefan.
    Our requirement has slightly changed. We have installed a thirdparty application on XI Server (within our network , inside filrewall). The application with Java API Jar file. All it does is a Lookup and retruns a value.
    We are planning to import the Jar file into imported Archives and call the method within a UDF.
    Is this feasible? I am going to give it a try.
    Your expert comments are greatly appreciated.
    Thanks
    Jai

  • Java API for Adobe Flex(AIR and Browser)

    Hello Community,
    Sometime ago i started the project located at: : http://code.google.com/p/gwt4air/ , wich primary goal was to bring another approach on writing AIR application by providing a Java API for the AIR API. On top of that i added support for PDF and Excel generation using Java.
    I m glad to announce that  the project  will now add support for the Flex Framework
    I wrote a post about it on the main page.
    The Idea behind it is to give Java Developers a more simple way to write Flex Application by leaveraing a swing like API.
    I hope this project will be a good alternative to the MXML+ ActionScript approach and looking for people willing to join the project.
    Regards,
    Alain

    Good question, I'd like to know this myself. 4.5 has a huge number of changes since 4.0.

  • Problem displaying Arabic characters in PDF using Java APIs

    We are experiencing a problem when attempting to display Arabic characters within a PDF document using the Java APIs.
    The relevant Java code is as follows:
    RTFProcessor processor = new RTFProcessor("example.rtf" );
    processor.setOutput( “example.xsl” );
    processor.setExtractXLIFF(true);
    processor.process();
    ByteArrayOutputStream dataOut = new ByteArrayOutputStream();
    DataProcessor dataProcessor = new DataProcessor();
    dataProcessor.setDataTemplate( example.xdt" );
    if( parameterValues != null && parameterValues.length > 0 )
    setReportParameters( dataProcessor, parameterValues ); // method to set any report parameters from the parameterValues list.
    dataProcessor.setConnection( jdbcConnection );
    dataProcessor.setOutput(dataOut);
    dataProcessor.processData();
    FOProcessor foProcessor = new FOProcessor();
    foProcessor.setLocale( locale );
    foProcessor.setData( new ByteArrayInputStream( dataOut.toByteArray() ) );
    foProcessor.setTemplate( “example.xsl” );
    String xliffFileNameAndPath = getXLIFFFile( “example”, locale );
    if( xliffFileNameAndPath != null )
    foProcessor.setXLIFF( xliffFileNameAndPath );
    foProcessor.setOutput( "example.pdf" );
    foProcessor.setOutputFormat(
    outputFormat == PDF_FORMAT ? FOProcessor.FORMAT_PDF : FOProcessor.FORMAT_HTML );
    foProcessor.generate();
    The method getXLIFFFile( ) gets the relevant XLIFF file for the supplied report locale (if it exists) – the three test files that we used were Italian (example_it_IT.xlf), Spanish (example_es_ES.xlf) and Arabic (example_ar_AE.xlf).
    I imported the following JAR files from the XML Publisher release (version 5.6.2) into my Java application: collections.jar, i18nAPI_v3.jar, versioninfo.jar, xdocore.jar and xmlparserv2.jar.
    The output is OK for all three translations in HTML format, using a charset of UTF-8, and for Italian and Spanish in PDF format. However, the Arabic characters display as question marks in PDF format. The same issue occurs if I stream the output as a byte array straight to the HTTP response rather than save within a file.
    Note that the same RTF, XDT and XLIFF files produce the correct output in both HTML and PDF when executed within XMLPublisher.
    Thank you

    Hi
    I had a similar issue with arabic chars. With PDF layout, chars were appearing properly when preveiwd on local m/c, but as I implement file on server, it was displayed as ?????. I had raised a TAR 5798348.993 with oracle about this and they suggested to apply patch 4028294 Oracle Sourcing J Rollup and then patch 4182914. But later my users changed requirement and i cud not apply the patch to test if it works fine.
    But here, you have suggested that installing fonts would do. Is it really that simple? If yes, dont know what is that patch for which I was told to apply.
    Regards
    Varun

  • Urgent - Need an answer - XML Java API

    This is the 3rd time I've posted this question in last week - Oracle Support: How can I get an answer to this?
    This question is about how to free up the memory of XMLDocuments, Parsers, etc using the Java APIs - not the PLSQL wrappers.
    I'm writing an app using the DocumentSplitter class (from Steve M.'s book) that allows for the SAX parsing of large XML documents. But this question is really about the Oracle Java XML API.
    Is there a way to free the memory of each of the "temporary" XMLDocuments that get created? I know there's a XMLNodeCover.freeDocument(int id)
    method in the xmlplsql.jar- where do you get the id from? I'm trying XMLNodeCover.getDocumentId(curDoc) - but that doesn't seem to work.
    And can I use that same method for each Node and Element that gets created also?
    Also, would like to free the memory for the XSL processor, SAXParser, and XSLStylesheet - but this is even less obvious (although not as critical).
    I'm actually getting out-of-memory errors even sooner when using the SAX parser then when using the DOM parser, and I think its due to this issue.
    I know that there are PL/SQL wrappers for all these, but I'm trying to use the DocumentSplitter and associated custom classes
    in only Java stored procs, and then writing a single XSLT.transform wrapper. This way its largely invisible to the PLSQL layer.
    Thanks

    Hi - thanks for your response.
    Actually, yes, I did change the split method to return a CLOB. The big picture is I'm trying to use the DocumentSplitter
    class to assist in the transformation of large XML documents to html or tab-delimited output. Using the standard DOM parser,
    I eventually get an out-of-memory situation. So now I'm trying the DocumentSplitter to do a "mini" XSL transform on each <ROW>.
    The good news is it works for small to medium size reports. But its slower and runs out of memory quicker.
    Below is some of the relevant code. I also wrote associated classes to wrap the DocumentSplitter and to be the 'handler' that transfoms the XML when a <ROW> is found, and returns a string (see 'endElement' method below).
    I'm freeing the CLOBS in PLSQL after reading them - do I need to free them from JVM memory seprately? If so, how can I do that if I need to pass them to PLSQL?
    Thanks much,
    Eric
    // Split a large XML document into N subdocuments, each one identified
    // by the an opening 'splitElement' element. Invoke an XMLDocumentHandler
    // to process each subdocument encountered.
    public CLOB split(String splitElement, CLOB inputCLOB, CLOB outputCLOB)
    throws Exception, SAXParseException,SAXException,IOException, SQLException {
    this.inputCLOB = inputCLOB;
    this.outputCLOB = outputCLOB;
    this.splitOnElement = splitElement;
    // Create a new SAXParser
    SAXParser parser = new SAXParser();
    // Register the current instance of this class as the Document Handler
    parser.setDocumentHandler(this);
    // Create ascii stream from CLOB source
    InputStream inputStream = inputCLOB.getAsciiStream();
    // Start parsing the stream of XML
    parser.parse(inputStream);
    Writer out = this.outputCLOB.getCharacterOutputStream();
    // Set buffer to be the optimal size
    int chunk = outputCLOB.getChunkSize();
    char[] buffer = new char[chunk];
    // Create a reader from the output string
    StringReader reader = new StringReader(this.outputString);
    int length = -1;
    // Now write from output string to output CLOB
    while ((length = reader.read(buffer)) != -1) {
    out.write(buffer, 0, length);
    // Close streams
    reader.close();
    out.close();
    inputStream.close();
    return outputCLOB;
    portion of endElement method:
    // Handle the </Element> "end-element" parsing event
    public void endElement(String name) throws SAXException {
    // If we're NOT building a subdocument, we don't care. Just return.
    if (curDoc == null) return;
    // If this is the endElement event for the subdocument splitElement
    // then we're done with the subdocument and are ready to call the
    // handler to handle it.
    if (name.equals(splitOnElement)) {
    if (curDoc != null) {
    try {
    // Call the XMLDocumentHandler.handle() method for current subdoc
    //Append the output to the growing output string
    if (this.outputString == null) {
    this.outputString = handler.handleDocument(curDoc);
    } else {
    this.outputString = this.outputString + handler.handleDocument(curDoc);
    catch (Exception e) {
    System.out.println(e.getMessage());
    e.printStackTrace();
    }

  • EWS JAVA API 1.2 - Setting Meeting Organizer

    Hi,
    I am evaluating EWS java API ver 1.2 for a use case where we could save an appointment directly to the calendar of an organizer.
    Use Case:
    1. An appointment is created
    2. Appointment is sent from a generic mailbox (Service Account)
    3. Auto update the appointment in the organizer's calndar.
    In my case, the mailbox is not the organizer of the meeting and i should have the capability to set the organizer of a meeting to any person i would want to. Currently, i do not see this capability in the API and the organizer is documented as a read-only
    property.
    Could you please suggest on the following:
    1. How can my use case be implemented with current state of the API
    2. Is there a hook where i can customize the API to implement my use case
    3. Is the use case supported in the .Net version of the API

    >>I am using EWS JAVA API 1.2 to connect to Exchange 2007 SP3
    In your request you have set the server version to Exchange2010 eg
    ><t:RequestServerVersion Version="Exchange2010_SP2" /></soap:Header><soap:Body><m:GetFolder>
    So the server is reporting
    >>The specified server version is invalid.
    Which is correct for Exchange 2007 you need to set the server version to
    ><t:RequestServerVersion Version="Exchange2007_SP1" />
    (there are no EWS schema updates in 2007 SP2 or SP2 so this didn't change)
    Cheers
    Glen

Maybe you are looking for