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. -
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,
AlexHi,
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 -
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
); -
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
DavidHi 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 -
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
RumaSaritha,
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.
SteveI 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 appreciateHi,
Check this <http://discussions.apple.com/thread.jspa;jsessionid=27B9AEB46A905A978B5FCBED90 90F02F.node0?messageID=10942969�>, it might help you.
Regards,
Larry -
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
-
"You can download past purchases on this computer with just one Apple ID every 90 days. This computer can be used with a different Apple ID in 63 days." How to handle this situation
-
Hi all, I am facing error while scheduling infopackage for 0MATERIAL_ATTR. I have ECC source system. 0BASIC_MATL is not a valid. amit
-
How do I sort a bunch of date by week number and year? I have a bunch of date in the format IW-YYYY such as 45-2010 46-2010 47-2010 48-2010 49-2010 50-2010 51-2010 52-2010 01-2011 02-2011 If I sort by week, I get the following which is not what I wan
-
Hi there, We have a Sharepoint 2013 farm. Amongst other things, we have a Trouble tickets site. Basically people use Sharepoint as a Ticketing System for different IT problems they have. Everything works ok, but i would like a monthly report on all T
-
How can I update the artwork in my ipod?
The artwork is getting updated in the itunes not in the ipod. I am using the itunes 7.0.1 & last when i faced this problem it got resolved only after restoring my ipod. I dont want to keep restoring the ipod. The ipod software is also up to date I am