JDeveloper10g VCS Extension API Question

Hi.
I wrote a VCS system for JDeveloper9.0.3 against Microsoft Visual Source Safe, which worked fine. We've now upgraded to 10g, and this system does no longer work, because the JDev's extension API has changed.
I'm therefore rewriting the system to support the 10g API. But I'm a bit overwhelmed by the changes made to the API. Where do I start?
1. I wish to implement a new panel in JDev's preferences screen under VersionControl systems which can configure my plugin.
2. I wish to present files in the Navigator window with overlay icons on files checked in, checked out, not present and such.
4. I wish to add my plugin to the context menu for the Navigator, so that users can be presented with the choice to perform file operations against VSS.
3. I wish to present one dialog for single file operations and one for multiple file operations.
Which classes do I need to extend? Which interfaces do I need to implement?
Can someone give me directions? The help file for the extension API does not give sufficient answers.

To answer your other questions:
The VCSPropertyCustomizer object I've written contains properties I need to use during any VSS operations. Does the IDE store these properties in an easily retrievable place, or do I need to handle this myself.
You can get a VCSPropertyMap from the Ide like this:
  ((VCSPropertyMap)Ide.getSettings().getData( YOUR_DATA_KEY );
And another thing, the example above does not describe dialogs on operations like checkin, checkout and so on.
Would this be implemented in the doitImpl() method in my implementation of VCSAbstractCommand?
Yes... Below is a snippet from the code for the ClearCase client.
FWIW, sorry it's so much work to do this. I'm working on an (optional, i.e won't break existing code) way of just writing a simple xml file to integrate version control clients into JDeveloper that should hopefully make everyone's life easier in the future :P
  protected int doitImpl() throws Exception
    final Collection nodes = getNodesToCheckIn();
    if ( nodes.size() <= 0 )
      return NOOP;
    if (! saveDirtyDocuments( nodes ))
      return Command.CANCEL;
    final Map timestampMap = VCSBufferUtils.storeTimestamps( nodes );
    final VCSDirectoryInvokableState invokableState =
        new VCSDirectoryInvokableState( VCSModelUtils.convertNodesToURLs(
            nodes ) );
    final VCSCommandState state = new VCSCommandState( invokableState,
        timestampMap );
    if ( context.getView() instanceof ClearCaseChangeListWindow &&
      !((ClearCaseChangeListWindow)context.getView()).isUsingCheckInDialog() )
      return checkInSilently( nodes, state,
        ClearCaseClient.getInstance().getChangeListCustomizer() );
    else
      return checkIn( nodes, state );
  protected void noOpImpl() throws ClearCaseValidationException
    throw new ClearCaseValidationException(
        ResourcePicker.get().getString( "ERROR_CHECKIN_FILTERED_TITLE" ), //NOTRANS
        ResourcePicker.get().getString( "ERROR_CHECKIN_FILTERED" ) ); //NOTRANS
  private int checkInSilently(
    final Collection nodes,
    final VCSCommandState state,
    final VCSOptionsCustomizer customizer )
    Ide.getWaitCursor().show();
    Runnable r = new Runnable()
      public void run()
        try
          doCommitOperationImpl( Ide.getMainWindow(), customizer.getOptions(),
            state );
        catch ( Exception e )
          getExceptionHandler().handleException( e, Ide.getMainWindow() );
        finally
          EventQueue.invokeLater( new Runnable()
            public void run()
              Ide.getWaitCursor().hide();
              postCheckIn( state );
    Thread t = new Thread( r, "ClearCase Check In Committer" ); // NOTRANS
    t.start();
    return OK;
  private int checkIn( final Collection nodes,
      final VCSCommandState state )
    throws Exception
    boolean multiCheckin = ( nodes.size() > 1 );
    final VCSOptionsCustomizer customizer =
        new VCSCommentsCustomizer( new ClearCaseCheckinCustomizer(),
        multiCheckin );
    if ( getContext().getView() instanceof ClearCaseChangeListWindow )
      customizer.setOptions(
        ClearCaseClient.getInstance().getChangeListCustomizer().getOptions()
    final JEWTDialog dialog = VCSComponents.createOperationDialog(
      VCSWindowUtils.getCurrentWindow(),
      ResourcePicker.get().getString( "CHECKIN_CAPTION" ), //NOTRANS
      ResourcePicker.get().getString( "CHECKIN_LONG_PROMPT" ), //NOTRANS
      VCSComponents.createFileListerComponent( nodes ),
      customizer.getComponent(),
      "f1_clearcasechkin_html", //NOTRANS
      customizer.getInitialFocusComponent()
    Map options = null;
    if ( ! multiCheckin )
      String checkoutComments = retrieveCheckoutComments( ((Locatable)nodes.
          iterator().next()).getURL() );
      // bug 3067323 - check in dialog does not prepopulate with check out comments
      if ( checkoutComments != null )
        customizer.setOptions( Collections.singletonMap( KEY_SETTING_COMMENTS,
            checkoutComments ) );
    else
      customizer.setOptions( Collections.singletonMap(
          KEY_SETTING_REUSE_COMMENTS, _optionReuseComments ) );
    dialog.addVetoableChangeListener( new VCSDialogCommitter()
      protected final boolean doCommitOperation() throws Exception
        return doCommitOperationImpl(
            dialog, customizer.getOptions(), state);
    boolean dialogSuccessful = ClearCaseDialogRunner.runDialog( dialog );
    postCheckIn( state );
    _optionReuseComments = (Boolean)customizer.getOptions().get(
        KEY_SETTING_REUSE_COMMENTS );
    return (! dialogSuccessful ? Command.CANCEL : Command.OK);
  private void postCheckIn( VCSCommandState state )
    Collection processedUrls = state.getInvokableState().getProcessedURLs();
    if ( processedUrls.size() > 0 )
      VCSBufferUtils.reloadBuffers( state.getTimestampMap() );
    URLFilter filter = VCSURLFilters.createSpecificURLFilter(
      (URL[])processedUrls.toArray( new URL[0] ) );
    ClearCaseClient.getInstance().getStatusCache().clear( filter );
  private boolean doCommitOperationImpl(
      Component dialog, Map options, VCSCommandState state )
      throws Exception
    DeterminateProgressMonitor monitor = new DeterminateProgressMonitor(
      dialog,
      ResourcePicker.get().getString( "CHECKIN_PROGRESS_TITLE" ), //NOTRANS
      ResourcePicker.get().getString( "CHECKIN_WATCHER_DESCRIPTION" ), //NOTRANS
      0,
      -1
    final ClearCaseShellRunner runner = new ClearCaseShellRunner();
    List cmd = new ArrayList();
    cmd.add( "ci" ); //NOTRANS
    Boolean b = (Boolean)options.get( KEY_SETTING_IDENTICAL_CHECKIN );
    if (b != null && b.booleanValue())
      cmd.add( "-ide" ); //NOTRANS
    b = (Boolean)options.get( KEY_SETTING_REUSE_COMMENTS );
    String s = null;
    if (b == null || ! b.booleanValue())
      s = (String)options.get( KEY_SETTING_COMMENTS );
    URL commentFile = writeCommentsFile( s, cmd );
    runner.setCmdList( cmd );
    VCSDirectoryInvokable invokable = new ClearCaseDirectoryInvokable(
        state.getInvokableState(), ClearCaseUtil.FILE_COMMAND_BATCH_SIZE )
      protected final boolean doInvocation2( URL parent, URL[] invokeUrls )
          throws Exception
        String[] filenames = VCSFileSystemUtils.getURLFileNames( invokeUrls );
        runner.setDirURL( parent );
        runner.setOptions( Arrays.asList( filenames ) );
        doInvocationImpl( runner );
        return true;
    invokable.setProgressMonitor( monitor );
    try
      if (! invokable.runInvokable())
        return false;
    finally
      if ( commentFile != null )
        URLFileSystem.delete( commentFile );
    return true;
  private void doInvocationImpl( ClearCaseShellRunner runner ) throws Exception
    runner.exec();
    String error = runner.getErrorText();
    if ( error != null &&
         error.indexOf( "The most recent version on branch" ) >= 0 && //NOTRANS
         error.indexOf( "is not the predecessor of this version" ) >= 0 ) //NOTRANS
      throw new ClearCaseOperationException(
        ResourcePicker.get().getString( "ERROR_CHECKIN_FAILED_TITLE" ), //NOTRANS
        ResourcePicker.getPicker( ClearCaseOperationCheckin.class ).getString(
            "ERROR_CHECKIN_FAILED_SUBSUMED" ) ); //NOTRANS
    if (runner.getExitCode() == null ||
        runner.getExitCode().intValue() != 0)
      throw new ClearCaseProcessException(
        ResourcePicker.get().getString( "ERROR_CHECKIN_FAILED_TITLE" ), //NOTRANS
        ResourcePicker.getPicker( ClearCaseOperationCheckin.class ).getString(
            "ERROR_CHECKIN_FAILED" ), runner.getErrorText() ); //NOTRANS
  private String retrieveCheckoutComments( URL url )
    // bug 3067323 - check in dialog does not prepopulate with check out comments
    String[] cmd = new String[] { "lsco", "-me", "-fmt", "%c", "-cvi", //NOTRANS
        URLFileSystem.getPlatformPathName( url ) };
    try
      ClearCaseShellRunner runner = new ClearCaseShellRunner();
      URL parent = URLFileSystem.getParent( url );
      if ( url == null )
        return null;
      runner.setCmdArray( cmd );
      runner.setDirURL( parent );
      runner.setQuiet( true );
      runner.exec();
      String output = runner.getOutputText();
      if ( output != null && output.equals( "" ) )
        return null;
      return output;
    catch ( Exception e )
      oracle.ide.util.Assert.printStackTrace( e );
      return null;

Similar Messages

  • Hello world Native Extension API

    Hi all :-)
    I am an android expert and I'd really love to create some cool extensions like the android notifications, but since I don't know much about Flex, I have a lot of trouble getting the test vibrator with native extension working.
    (http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html)
    My sample is still buggy, it is probably beginner's bug, but I don't see how to fix it yet.
    I am surely not the only native guy trying to do this, so I would like to sumarize here all the steps needed to have our first hello world Native Extension API
    Install Flex 4.5.1 http://www.adobe.com/go/try_flashbuilder/ and download the Adobe AIR 3.0 RC http://labs.adobe.com/downloads/air3.html  as well as the sample files http://download.macromedia.com/pub/developer/air/ane/Vibration.zip
    Create a test Flex mobile project.(all the deffault parameters are fine) I'll call it HelloWorldNativeExtension.
    (If AIR 3 is not released yet) Do the following to tell Flex builder to use the RC on your test project : http://forums.adobe.com/thread/899921
    Unzip the vibration.zip, and go to ready to use extansion.
    Go to Project -> Flex buildpath -> Libraries -> Add a new swc. Add the ready to use extension as a library. Then open the extensions properties and change the link type from "bundled with" to "external linkage"
    Go to HelloworldNativeExtension-app.xml and in the tag manifestAddition, add : <uses-permission android:name="android.permission.VIBRATE"/>
    Write a sample view (as described below)
    Run (target platform->android and then chosse to run on a device)
    When asked to update the air version, answer yes
    Wait a loooong time before it actually start.
    Here is my code for the sample view:
    In HelloworldNativeExtension.mxml
    Use the following code :
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx">
        <fx:Script>
            <![CDATA[
                import com.adobe.nativeExtensions.Vibration;
                protected function testButton():void
                    textArea.text="Before vibration";
                    var vibe:Vibration;
                    if (Vibration.isSupported)
                        vibe = new Vibration();
                        vibe.vibrate(2000);
                    textArea.text="After vibration";
            ]]>
        </fx:Script>
        <s:Panel title="Exemple MXML" width="330">
            <s:layout>
                <s:VerticalLayout paddingLeft="15" paddingTop="15" paddingBottom="15" paddingRight="15"/>
            </s:layout>
            <s:Label x="223" y="173" text="test" id="textArea"/>
            <s:Button label="Vibrate" click="testButton()"/>
            <s:Label id="result" width="265"/>
        </s:Panel>
    </s:Application>
    Well... so far my project doesn't compile because the library is loaded externally. It compiles fine if I add it as a bundled library, but then the virbrator can't work (External native code have to be loaded externally)
    And thus so far I get the errors :
    Description
    Ressource
    Chemin
    Emplacement
    Type
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.display]::IBitmapDrawable.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
    HelloworldNativeExtension
    Inconnu
    Erreur Flex
    (Which means something like : 1046: this type cannot be resolved or is not in the buildpath ... So it probably means the project doesn't compile well)
    So I'm still trying to figure out what to do, but I am close I think... Very close.

    Yes, in fact you are very close
    You will have to put an <extensions> tag in app-xml if not already done so:
    <extensions>
    <extensionID>com.adobe.Vibration</extensionID>
    <extensions>
    Then since it is FlashBuilder 4.5.1, you will have to package the android application through command line since it requires 1 more parameter -extdir :
    adt -package -target apk . . . app.apk app.xml app.swf -extdir extensions
    extensions is the directory which contains your .ane file. Checkout http://www.adobe.com/devnet/air/articles/extending-air.html#articlecontentAdobe_numberedhe ader_1 for more details.
    Thats all. You should be able to run your app now. Let me know if it still doesnt work.
    Thanks,
    Meet
    AIR Team

  • Create packages from the SqlDeveloper 1.5 Extension API

    How do you CREATE and EXECUTE packages and procedures from the SqlDeveloper 1.5 Extension API?
    Not from the GUI... but from the Extension API.
    Any kind of package, for example...
    create or replace package MY_PKG is
    procedure my_procedure (a number, b number) ;
    end;
    create or replace package body MY_PKG is
    procedure my_procedure (a number, b number) is
    begin
    select 'x' from dual;
    end ;
    end;
    And then EXECUTE a package from the API...
    For example...
    exec MY_PKG.my_procedure (1, 2)

    Just use ordinary JDBC:
    Using the API, you can execute a query the following way:
    oracle.dbtools.db.DBUtil dbutil = oracle.dbtools.db.DBUtil.getInstance();
    dbutil.execute(oracleConnection, sql, binds);
    // There are various overloads and/or similar methods such as the following:
    String s = dbutil.executeReturnOneCol(oracleConnection, sql, binds);
    // (binds is a java.util.HashMap<String, Object>)
    It's interesting to note that you can turn on and off the notification of exceptions:
    dbutil.setRaiseError(false); //off
    dbutil.setRaiseError(true); //on
    Because of these methods, I was half expecting similar methods for executing PL/SQL.
    Apparently, there isn't any equivalent method for PL/SQL and you should just use ordinary JDBC instead.

  • Javadoc for Extension API

    Hello,
    I'm wondering if there is a Javadoc documentation for the JDeveloper 9i Extension API.
    Does someone know about it? A download-URL would be very helpful.
    Thanks in advice,
    Alex

    Hi,
    You can find this in your JDeveloper install folder under:
    {JDEV_HOME}/jdev/doc/ohj/jdev-doc.zip
    Just extract the zip into an empty folder.
    Alernatively, from within JDeveloper's help system, under the "Reference" tree, you will see a topic called "JDeveloper Addin API", this provides access to the extension API javadoc from within the IDE.
    Thanks,
    Brian
    JDev Team

  • [Extension API] Connect Listener

    I'm currently studying JDeveloper extension API as I would like to develop a custom plugin for SQL Developer.
    I'm looking for a way to be notified of new connections to database. I saw that API provide a DisconnectListener, but no ConnectListener...
    Is there a different way to achieve this?

    That seems to be logical, but I am trying to import the following classes
    import javax.sql //Downloaded the Sun API
    import oracle.jdbc.pool.OracleDataSource;
    These are the part of the sample applications coded in the JDBC reference documentation.
    A quick kelp appreciated.

  • OA Framework Extension / Substitution question

    OA Framework Extension / Substitution question:
    I am not sure how to do the following, any input will be helpful. Thanks in advance.
    Oracle Application has a page on table “FND_NEW_MESSAGES” – Related Entity object is “FndNewMessagesEO” and View object is “FndMessagesResultSetVO”. Primary key on this table is “APPLICATION_ID, MESSAGE_NAME and LANGUAGE_CODE”. I want to extend this page and add my own table say “CUST_FND_NEW_MSG_EXT” with the same primary key and has an extended column “EXTRA_MESG1”.
    How do I extend this page to include my new table / column and make select/update/insert work?
    Questions:
    1.     Should I create EO for my new table say CustExtEO
    2.     Create an association between FndNewMessageEO and CustExtEO
    3.     Then create CustExtVO and extend FNDMessagesResultSetVO and build view on FndNewMessageEO and CustExtEO and then perform substitution?
    Or
    1.     Should I create EO for my new table say CustExtEO
    2.     Create CustExtVO
    3.     Create an View Link between FndNewMessageVO and CustExtVO
    4.     Then what??
    More questions:
    1.     Can I achieve this by not writing any code?
    2.     Can the EO Association or View Link automatically insert / update my new table after I do the substitution?
    3.     FndNewMessageVO has join to tables “FND_NEW_MESSAGES, FND_APPLICATION_VL, FND_LANGUAGES_VL, FND_LOOKUPS” – when you do an insert / update how does OA Framework know that it has to insert / update the corresponding tables?

    Well, if you want to have the page based on your custom table, then you will have to create new VO, EO. You cann't use extension in that case.
    1. Can I achieve this by not writing any code?No.
    .2. Can the EO Association or View Link automatically insert / update my new table after I do the substitution?You need to have new EO, VO based on your new table.
    3. FndNewMessageVO has join to tables “FND_NEW_MESSAGES, FND_APPLICATION_VL, FND_LANGUAGES_VL, FND_LOOKUPS” – when you do an insert / update how does OA Framework know that it has to insert / update the corresponding tables?
    EO handles all the insert, update.
    For more details go through the Dev guide.
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Swing API question

    hello.
    my name is james mcfadden and i am a final year computing student at letterkenny IT in ireland. i have a program here that i want you to take a look at. i am using this program among many programs in my final year project. the program compiles and runs. but when it compiles, i get a message from the jGRASP compiler (which always works well for me) saying that i was using a depracated API function. i found out what that depracated API function was. it was the show() function. this function was used in version 1.4.2 of java, but was dropped out of java 5.0. i checked up the java 5.0 API on the web and discovered that the show() function had been replaced by the setVisible(boolean b) function. i don't know how to use this new API function in my code. the question that i have to ask you is: how do i replace the show() function in my code with the setVisible(boolean b) function? Below is the code and the result i got back from the compiler when i compiled the code. thank you very much for your help.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    class LogOn extends JPanel{
       private static JTextField username=null;
       private static JPasswordField password=null;
       private static JButton button=null;
       public LogOn(){
          setSize(260,160);
          username=new JTextField(15);
          password=new JPasswordField(15);
          JLabel usernameLabel=new JLabel("Username: ");
          JLabel passwordLabel=new JLabel("Password: ");
          add(usernameLabel);
          add(username);
          add(passwordLabel);
          add(password);
          show();
          button=new JButton("Ok");
          add(button);
          button.addActionListener(new ButtonListener());
          JFrame frame=new JFrame("Welcome to Home Entertainment");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add(this);
          frame.pack();
          frame.setVisible(true);
       private class ButtonListener implements ActionListener{
          public void actionPerformed(ActionEvent e){
             try{
                Demo d = new Demo();
                d.getChoice();
             catch(Exception ex){}
    }----jGRASP exec: javac -g X:\CP4B Project\LogOn.java
    Note: X:\CP4B Project\LogOn.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    ----jGRASP: operation complete.

    Hi James,
    your class extends JPanel. JPanel inherits show from java.awt.Component. If you have a look at the API documentation. The extension path of JPanel is
    java.lang.Object
    java.awt.Component
    java.awt.Container
    javax.swing.JComponent
    javax.swing.JPanel
    javax.swing.JComponent has a method setVisible(<boolean>). That means JPanel has all methods,that are Implemented in JComponent
    So (although I have not yet used it)
    replacing
    show() ;
    by
    setVisible(true) ;
    in your code should do the trick...

  • Oracle Install Base API question

    Hi...I need help. I am writing an extension to the Service Fulfillment Manager (SFM) Transactions
    Here is a functional background:
    For all SFM message types, SFM exposes the PL/SQL code in the iMessage studio. iMessage studio is an Oracle EBS Application tool. The PL/SQL for the following message types will be modified:
    ·     Sales Order Shipment - CSISOSHP
    ·     Miscellaneous Receipt - CSIMSRCV
    ·     Receipt into Inventory – CSIPOINV
    The processing logic for each of these transaction types contains a call to an Installed Base package and stores the return status in a variable. For PO Receipt and SO Issue transactions referencing serial numbers prefixed by the Vertical Bar (‘|’) character this call will be bypassed and a successful status placed in the return status variable.
    For PO Receipt and Miscellaneous Receipt transactions referencing serial numbers not prefixed by the Vertical Bar (‘|’) character, the processing logic will be extended to extract the IUID value from the serial numbers table in the Oracle Inventory module (MTL_SERIAL_NUMBERS) and call the public IB Application Programming Interface (API) (CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE) to update the associated IB instance with the IUID.
    OK, so Question #1:
    I get all I need to do is bypass the code in 2 instances if a bar is found at the beginning of the serial number.. And I can do that. But where is this serial number? I assume it is stored in MTL_SERIAL_NUMBERS but how do I get it?
    The code doesn't have it stored as a variable, and it doesn't seem to have the IB record either. Is there a foreign key? Anyone have imessage studio and can look into that?
    Question #2:
    To update the IB record with the serial number I need to make a call to the below procedure. The thing is, it seems to require the IB instance record. Again, I don't have that cause the code is creating it! Is there some way to get that created record back and pass it into the update procedure?
    PROCEDURE update_item_instance
    p_api_version IN NUMBER
    ,p_commit IN VARCHAR2
    ,p_init_msg_list IN VARCHAR2
    ,p_validation_level IN NUMBER
    ,p_instance_rec IN csi_datastructures_pub.instance_rec
    ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
    ,p_party_tbl IN OUT NOCOPY csi_datastructures_pub.party_tbl
    ,p_account_tbl IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
    ,p_pricing_attrib_tbl IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
    ,p_org_assignments_tbl IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
    ,p_asset_assignment_tbl IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
    ,p_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec
    ,x_instance_id_lst OUT NOCOPY csi_datastructures_pub.id_tbl
    ,x_return_status OUT NOCOPY VARCHAR2
    ,x_msg_count OUT NOCOPY NUMBER
    ,x_msg_data OUT NOCOPY VARCHAR2
    Thanks for any and all help in advance!

    OK! I found the instance id!
    But when trying to get the IB record, the API fails. Can someone take a look at this...what's wrong?
    msg_data from API call =
    MSG DATA FND FND_AS_UNEXPECTED_ERROR N PKG_NAME CSI_ITEM_INSTANCE_PUB N PROCEDURE_NAME GET_ITEM_INSTANCE_DETAILS N ERROR_TEXT ORA-01008: not all variables bound
    PROCEDURE populate_iuid(
    p_transaction_id IN NUMBER
    IS
    l_api_version CONSTANT NUMBER := 1.0;
    l_msg_count NUMBER;
    l_msg_data VARCHAR2(2000);
    l_msg_index NUMBER;
    l_instance_id_lst csi_datastructures_pub.id_tbl;
    l_instance_header_rec csi_datastructures_pub.instance_header_rec;
    l_party_header_tbl csi_datastructures_pub.party_header_tbl;
    l_party_acct_header_tbl csi_datastructures_pub.party_account_header_tbl;
    l_org_unit_header_tbl csi_datastructures_pub.org_units_header_tbl;
    l_instance_rec csi_datastructures_pub.instance_rec;
    l_party_tbl csi_datastructures_pub.party_tbl;
    l_account_tbl csi_datastructures_pub.party_account_tbl;
    l_pricing_attrib_tbl csi_datastructures_pub.pricing_attribs_tbl;
    l_org_assignments_tbl csi_datastructures_pub.organization_units_tbl;
    l_asset_assignment_tbl csi_datastructures_pub.instance_asset_tbl;
    l_ext_attrib_values_tbl csi_datastructures_pub.extend_attrib_values_tbl;
    l_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
    l_ext_attrib_tbl csi_datastructures_pub.extend_attrib_values_tbl;
    l_ext_attrib_def_tbl csi_datastructures_pub.extend_attrib_tbl;
    l_asset_header_tbl csi_datastructures_pub.instance_asset_header_tbl;
    l_txn_rec csi_datastructures_pub.transaction_rec;
    l_return_status VARCHAR2(2000) ;
    l_instance_id NUMBER := 0 ;
    l_serial_number VARCHAR2(30);
    l_inventory_item_id NUMBER := 0 ;
    l_iuid VARCHAR2(150);
    CURSOR c_get_serial_numbers( p_transaction_id NUMBER ) IS
    SELECT inventory_item_id, serial_number, attribute1
    FROM mtl_unit_transactions
    WHERE transaction_id = p_transaction_id;
    BEGIN
    -- GET THE SERIAL NUMBER AND INVENTORY ITEM ID BY USING THE TRANSACTION ID
    FOR rec IN c_get_serial_numbers( p_transaction_id ) LOOP
    l_inventory_item_id := rec.inventory_item_id;
    l_serial_number := rec.serial_number;
    l_iuid := rec.attribute1;
    -- GET THE INSTANCE ID BY USING THE SERIAL NUMBER AND INVENTORY ITEM ID
    SELECT instance_id
    INTO l_instance_id
    FROM csi_item_instances
    WHERE inventory_item_id = l_inventory_item_id
    AND serial_number = l_serial_number;
    -- RETRIEVE THE INSTANCE RECORD TO BE UPDATED
    l_instance_rec.instance_id := l_instance_id;
    csi_item_instance_pub.get_item_instance_details(p_api_version => l_api_version
    ,p_commit => fnd_api.g_false
    ,p_init_msg_list => fnd_api.g_false
    ,p_validation_level => fnd_api.g_valid_level_full
    ,p_instance_rec => l_instance_header_rec
    ,p_get_parties => fnd_api.g_true
    ,p_party_header_tbl => l_party_header_tbl
    ,p_get_accounts => fnd_api.g_true
    ,p_account_header_tbl => l_party_acct_header_tbl
    ,p_get_org_assignments => fnd_api.g_true
    ,p_org_header_tbl => l_org_unit_header_tbl
    ,p_get_pricing_attribs => fnd_api.g_false
    ,p_pricing_attrib_tbl =>l_pricing_attribs_tbl
    ,p_get_ext_attribs => fnd_api.g_false
    ,p_ext_attrib_tbl => l_ext_attrib_tbl
    ,p_ext_attrib_def_tbl => l_ext_attrib_def_tbl
    ,p_get_asset_assignments => fnd_api.g_false
    ,p_asset_header_tbl => l_asset_header_tbl
    ,p_resolve_id_columns => fnd_api.g_false
    ,p_time_stamp => SYSDATE
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    );

  • API Question

    Does the configurator provide a means of accessing the PS API..? I was contemplating createing a UI using C#/C++ or Delphi and COM but if this tool will give me the UI ability while exposing the SDK API for PS then that would be prefered. I looked through the threads and didnt see this question, apologies if its a dupe.
    Also, is there an example of running scripts and actions for PS from a UI element created with the configurator...?
    Thanks
    David

    Hi David,
    may I suggest you to get a look to the Photoshop Panel Developer's Guide here:
    http://www.adobe.com/devnet/photoshop/pdfs/photoshop_panel_developers_guide.pdf
    It gives you advices and examples on how to build photoshop panels in Flash/Flex (with Flex you've plenty of UI element to play with - sliders, drop down lists, etc). I don't think you need patchpanel, or at least I've been able to do my own stuff without it: I've some javascript functions that are called by the panel depending on few sliders and checkbox.
    Anyway, something that prooved to be impossible without writing some temporary image files and managing in fancy ways the input-output stream is to embed in the panel a PixelBender kernel - something that would make the panel a close brother of a Photoshop plugin
    Regards,
    Davide Barranca
    Bologna, Italy

  • FA API QUESTION

    Hi,
    I am developing an extension in FA where I have to update the column LIFE_IN_MONTHS in the FA_BOOKS table, based on some logic.
    I am working in 11.5 10
    Can I use the API FA_ADJUSTMENT_PUB.DO_ADJUSTMENT?
    Thanks
    Ruma

    Saritha,
    We generate that on the fly. Just insert records into the table fa_asset_keywords.
    INSERT INTO fa_asset_keywords
    (enabled_flag, code_combination_id, segment1,
    summary_flag, last_update_date, last_updated_by,
    last_update_login)
    VALUES ('Y', fa_asset_keywords_s.NEXTVAL, substr(model,1,30),
    'N', SYSDATE, fnd_global.user_id,
    fnd_global.login_id);
    Both value sets are "None" validated. Hence gives us a choice to insert the values on the fly and generate CCID.
    Thanks
    Nagamohan

  • Extension development question

    Hello!
    How can I use for example standard „Select Connection” dialog in my own extension development? Is it allowed? Or should I create my own?
    Regards,
    Alexandre S.

    Alexandre,
    While we don't have the javadoc published, you can ask any questions here.
    What your looking for is this:
    * Invokes a dialog for selecting a connection.
    * @param title the dialog title
    * @param prompt the prompt string for the dialog
    * @param connName the initially selected connection name, or <code>null</code> to
    * use the default
    * @param oracleOnly whether to only display Oracle connections.
    * @param openConnection whether to open the connection if not yet opened
    oracle.dbtools.raptor.controls.ConnectionSelectorUI.getConnection( String title, String prompt, String connName, boolean oracleOnly ,boolean openConnection)
    The return is a string of the name of the connection.
    To get the actual connection from the name of the connection, you'll do this:
    oracle.dbtools.raptor.utils.Connections.getInstance().getConnection(name)
    -kris

  • JHeadstart and Subversion VCS Extension

    Hello,
    I have read most, if not all, of the blogs and articles publish by your team on VCS. In those articles you all suggest the use of the TortiseSVN and occasionally say that the Subversion extension is useable.
    We have started using Subverion for version control with a JHeadstart application. We are running JDeveloper 10.1.3.2 with the Subversion extension and JHeadstart 10.1.3.2.
    Our group of developers all gathered in a room last Friday to get used to the interface together. In the process we found, that the Subversion extension doesn't seem to always catch the changes made to "hidden" files, like the UserInterface/properties/*.xml files.
    Also, we had issues with conflicts or the resolution process corrupting the file with diff info. and then having to revert.
    Have you had any experiences like these or similar issues? If so, how do you resolve/fix the issues?
    Thanks in advance for your time and assistance.
    Steve

    I have tried out JDeveloper's Subversion extension as well, and didn't like it very much, so I just uninstalled it and used TortoiseSVN again. That works very satisfactorily.
    So I'm sorry, I can't help you with solving problems with the JDeveloper extension. You can try to ask the JDeveloper OTN forum.
    Hope this helps,
    Sandra Muller
    JHeadstart Team
    Oracle Consulting

  • Extension API 1.5.1: How can i open a SQL Worksheet ?

    Hi,
    i try to build a simple Table API generator. Everything is finish. The only thing i need is open the generated sql script inside a SQL Worksheet for preview. I try following code:
    RaptorDBAddin.getSqlOpener().openNewEditor("select sysdate from dual;", getDBObject().getConnectionName());
    But i get following compile error:
    Error(32,9): class oracle.ide.db.model.SqlNode not found  in class de.team.sqldev.generator.GenerateAction
    My extension.xml looks like:
    <extension id="team.sqldevgenerator" version="1.0" esdk-version="1.0"
    rsbundle-class="team.sqldevgenerator.Res"
    xmlns="http://jcp.org/jsr/198/extension-manifest">
    <name>team.sqldeveloper.generator</name>
    <dependencies>
    *<import>oracle.ide</import>*
    *<import>oracle.sqldeveloper</import>*
    *<import>oracle.javacore</import>*
    </dependencies>
    <hooks>
    <feature-hook>
    <description>This Extension provide generation of database objects based on table definition such like sequence, trigger, table-api-package</description>
    </feature-hook>
    <jdeveloper-hook xmlns="http://xmlns.oracle.com/jdeveloper/1013/extension">
    <addins>
    <addin>de.team.sqldev.generator.GeneratorAddin</addin>
    </addins>
    </jdeveloper-hook>
    <sqldev-navigator-hook xmlns="http://xmlns.oracle.com/sqldeveloper/sqldev-navigator">
    <descriptor>/de/team/sqldev/generator/table.xml</descriptor>
    </sqldev-navigator-hook>
    </hooks>
    </extension>

    If the WMVs don't contain DRM, use a product such as VLC.
    If the WMVs do contain DRM, no Mac OS X software will open or convert them.
    (120714)

  • 24" LED Cinema Display Extension Cable Question

    Hi, I have a 24" LED Cinema Display. Unfortunately the display's cable is too short which means I have to have the cable in front of the desk in order to reach my Mac Pro. I don't like having it in front of the desk as it's an eyesore.
    I've had it like this since I purchased the display in March 2009. I was thinking of purchasing an extension cable for my Display so I can finally put the displays cable behind the desk.
    I have some questions, Are there any issues with having an extension cable attached to the 24" LED Cinema Display? Is there a loss in picture quality with an extension cable? What extension cables do you guys recommend?
    Any help is greatly appreciate

    Hi,
    Check this <http://discussions.apple.com/thread.jspa;jsessionid=27B9AEB46A905A978B5FCBED90 90F02F.node0?messageID=10942969&#10942969>, it might help you.
    Regards,
    Larry

  • GraphViz  API  Question

    I am looking for someone with experience working with the GraphViz API. Do you have experience working with GraphViz? If you are such a person, please say ?Hello? to prompt my question. Thank you. Mike

    Hi David,
    may I suggest you to get a look to the Photoshop Panel Developer's Guide here:
    http://www.adobe.com/devnet/photoshop/pdfs/photoshop_panel_developers_guide.pdf
    It gives you advices and examples on how to build photoshop panels in Flash/Flex (with Flex you've plenty of UI element to play with - sliders, drop down lists, etc). I don't think you need patchpanel, or at least I've been able to do my own stuff without it: I've some javascript functions that are called by the panel depending on few sliders and checkbox.
    Anyway, something that prooved to be impossible without writing some temporary image files and managing in fancy ways the input-output stream is to embed in the panel a PixelBender kernel - something that would make the panel a close brother of a Photoshop plugin
    Regards,
    Davide Barranca
    Bologna, Italy

Maybe you are looking for