Access custom metadata from another plugin
I was wondering if it would be possible to access the custom metadata from one plugin from another plugin.
I know you use the _PLUGIN object when you read or write the metadata with a plugin.Is there any way to pass the varible to another plugin, maybe stored in a xml or text file in the modules folder? I also see where you can use the "unique identifying string" or plugin.id. Is this id differant for every installation of Lightroom?
Allen, I'm pretty sure the answer is no - you can't access another plug-in's custom fields.
I'm sure I have read this limitation somewhere - even if I can't now see it stated explicitly in the documentation. If anything, the docs imply getPropertyForPlugin can do so by specifying the LrToolkitIdentifier value (which you may be able to pass as a preference). So this doesn't work:
getData = photo:getPropertyForPlugin("uk.co.beardsworth.missing", jbMissing )
It is an important point though that one plug-in should be able to access another's custom fields. Obviously one can think of many ordinary circumstances where it would be handy, but I'm more worried about the longer term DAM viability of custom metadata. Let's say I decided to release a plug-in based around custom fields and users entered metadata which had some value to them - whether that's just input time or business data (eg client or agency account number). Now move on to LR3 and the plug-in no longer works - I've disappeared, driven mad by SDK changes, or you're unwilling to pay my extortionate plug-in upgrade fee.
Now what happens to that valuable metadata? The data is still in the database but you can't read it because the original plug-in's unavailable, and Adobe's built-in "All" Plugin Metadata panel only shows data from enabled plug-ins. It's not in the XMP either. You're stuffed - unless you're resourceful enough to reverse engineer chunks of the plug-in. Assuming that I encrypted my plug-in's code, that means you're going to have to dig around the SQL to figure out my plug-in's ID and its field names. Only then can you create a plug-in to rescue your custom data. And you've got to hope to hell that my plug-in didn't encrypt or obscure the values you entered.
For me what this shows is
1) You're taking a big risk if you store valuable custom metadata - if you can't sort it out yourself, should you do it?
2) You should ensure any plug-in with custom metadata stores its field definitions in unencrypted files
3) The All Plug-in Metadata panel needs to show all plug-in metadata
4) The SDK should allow you to get custom metadata from other plug-ins
4) Custom fields should be mapped to XMP
Short answer - No.
John
Similar Messages
-
How to load a plugin from another plugin?
Hi,
I'm trying to load a plugin, which is not located in the plugin-paths of After Effects from another plugin. It seems to load the aex(dll) and execute the main function fine, but afterwards it crashes immediately and I have no idea why.
This is how my pluginLoader-PlugIn looks like:
1. I created a commandHook to be able to trigger the pluginLoad from the Edit Menu
2. for the actual load of the dll I use the following commands:
AEGP_SuiteHandler suites(basic_suite);
std::string dllName = "C:/PATH/TO/plugin.aex";
// defining type and order of the arguments of the entry function
typedef A_Err (*args_type)(SPBasicSuite *pica_basicP, A_long major_versionL, A_long minor_versionL, A_long aegp_plugin_id, AEGP_GlobalRefcon *global_refconP);
args_type pluginEntryMethod = NULL;
// loading the dll(aex) and the entry function
# ifdef _WIN32
HMODULE hDLL = LoadLibrary(dllName.c_str());
if (hDLL != NULL)
pluginEntryMethod = (args_type) GetProcAddress(hDLL, "EntryPointFunc");
else
return err;
# else
void *pLib = ::dlopen(szMyLib, RTLD_LAZY);
if (pLib != NULL) {
pluginEntryMethod = (args_type)::dlsym(pLib, "EntryPointFunc");
else
return err;
# endif
if (pluginEntryMethod != NULL)
// hardcoding the plugin version
A_long mavL = 0L;
A_long mivL = 1L;
AEGP_PluginID plId;
// to get a valid plugin-id I use this command
suites.UtilitySuite3()->AEGP_RegisterWithAEGP(*globalRefcon, "nameOfPlugin", &plId);
// I create copy of the refcon and the suite
AEGP_GlobalRefcon newRefcon(*globalRefcon);
SPBasicSuite newSuite(*basic_suite);
pluginEntryMethod(&newSuite, mavL, mivL, plId, &newRefcon);
# ifdef _WIN32
FreeLibrary(hDLL);
# else
dlclose(pLib);
# endif
If I run After Effects with the debugger, the EntryFunction of the new plugin runs through without errors. But Then it crashes and stops at random positions: sometimes in the IdleHook of the newly loaded Plugin, sometimes in the MenuHook.
Does anyone have an idea, what I am doing wrong?
btw: when I copy the second plugin in the default Afx-Plugin-Folder it loads fine and seems to work correct.
Thanks for your help!
MartinOkay, unfortunately it had nothing to do with static or dynamic linking of the dependencies.
I was able to boil it down to the following problem but I'm still stuck on how to solve the situation:
The problem has to do with an invalid AEGP_GlobalRefcon of the Plugin I load:
the plugin loader:
// the load of the inner plugin..
AEGP_GlobalRefcon newRefcon; // generating a new refcon
suites.UtilitySuite5()->AEGP_RegisterWithAEGP(newRefcon, pluginName.c_str(), &plId); // gathering a plugin id
pluginEntryMethod(basic_suite, mavL, mivL, plId, &newRefcon) // calling the entry function
the loaded plugin:
A_Err EntryPointFunc(
struct SPBasicSuite *pica_basicP,
A_long major_versionL,
A_long minor_versionL,
AEGP_PluginID aegp_plugin_id,
AEGP_GlobalRefcon *global_refconP)
*global_refconP = (AEGP_GlobalRefcon) new CustomClass(pica_basicP, aegp_plugin_id); // this is where the refcon gets invalid
return err;
To gather a valid plugin id, I register the plugin and assign a new AEGP_GlobalRefcon to it, which is for instance at address 0x0001234abcd (plugin-loader line 3)
then I call the entry function(plugin-loader line 4) and the entry function creates a custom class and stores a pointer to its instance in the global_refconP pointer, which changes the address from 0x0001234abcd to 0x0a010b020c3d4.
The crash happens later, when a hook (eg IdleHook) is called, which tries to reinterpret the refconPV-pointer of the plugin (address 0x0001234abcd) to a CustomClass-instance, because the actual instance is stored at 0x0a010b020c3d4.
I reckon, that I can fix this if I either can change the global refcon of the plugin after the enty function has run or if I can get a valid plugin id before calling the entry function and doing the registration with the new refcon I got returned by the entry function of the loaded plugin.
Does anyone know how to achieve one of these two goals? -
Access to MD03 from another transaction
Hi Gurus,
We did a trace to all the users, and one of them used the MD03 transaction. The point is that he has no authorization to this transaction, so probably he is accessing to it from another.
Could you help me searching any transaction where the user could jump to MD03 from menu, buttons, double click,...?
Thank you in advance.Hi,
Click on Enviornment>>Navigation profile>>Assign. In the General settings tab page you can assign the navigation profile. Just check whether the navigation profile assigned to the user has the T-code MD03. Check the seetings and t-codes in OM0K - Define navigation profile.
But as suggested by Mr.Brahmankar kindly check whether it's possible to access the transaction from MD04 if the user doesn't have the authorization of other transaction which he/she is accessing. In your case MD03. I'm not sure about that.
Regards,
Lodhi.S -
Calling Custom Form from Another Form
Hi All,
I have created a Custom form using TEMPLATE.fmb and created functions in Apps and assigned to Responsibility etc and it all works OK.
Now, I need to call this Custom form from another seeded(PO form) Via Tools -> Menu.
using Forms personalization I can get the Menu Entry and Actions to execute the Form successfully from the PO Form.
BUT, I need it to automatically query records in my CUSTOM form based on my current PO_HEADER_ID value on my PO Form.
How can I do it ?
Do I need to modify my Block and add some parameters and then pass a value via Personalization ?
Please help !
Thanks
ShankarHi ,
I found similiar solution on another forum as below.
http://it.toolbox.com/blogs/apps-traction-blog/how-to-create-a-zoom-using-oracle-form-personalization-12081
This works fine for the Purchasing form and allows me to zoom to the Supplier form.
But in my case, I want to zoom from the Supplier Form to my CUSTOM form. I replicated the exact steps as per the link.
However, it does NOT work as expected. It gets up to the ENTER QUERY mode in my CUSTOM form and remains in Enter Query mode. If I manually then Press key F11 to execute the query it brings back all records.
Do I need to do anything special in my CUSTOM form to make it behave in a similiar way to the Supplier Form ?
Thanks
Shanky -
How to access my mail from another computer. Both iPads
HHow to access my mail from another computer. Both iPads. Both iCloud.
add the email account to your email software like with any email service, or go to www.iCloud.com
-
How to access Enterprise manager from another computer
Hi There,
I have Oracle 10g installed on a PC. I can access EM from that PC.
I would like to know how would I access EM Dbconsole from another computer under same LAN.
Thanks
RafOpening the web browser, you can specify the hostname and the port configured to listen the incoming call.
For example:
https://hostname:port_number/em
or
https://ip_address:port_number/em
you can get information about the information that you need from the "emctl"
emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://hostname:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is not running.
Best regards !
Shin-Iti. -
What URL do I need to use to sign-in to my Firefox Sync acct to access my bookmarks from another device? I am not sure what URL to type in on the other device to access my Sync Acct. Do I type www.firefox.com/sync or www.firefox.com, or what? ....Thanks
You need to enter the email address and password that is use to set up the Firefox account
See also:
*https://support.mozilla.org/kb/how-to-update-to-the-new-firefox-sync
*https://wiki.mozilla.org/Identity/Firefox-Accounts -
A warning popped up on my ipod touch saying someone else has accessed my account from another device
Was I hacked? While playing my ipod touch app dragonvale a warning poppoed up that said someone else has accessed my account from another device? What do I do?
Change your password.
-
Access Time Capsule from another location
My Time Capsule works well in my WiFi at home with both automatic backup of my Macbook Pro and to save large files on. What are the setting i need to add to be able to access the files from another WiFi system away from home?
There is a lot of setup involved..
The TC must be the main router of the network.. it cannot be bridged.
The wifi network you are attached to remotely must give you a full public access IP address. Find the public IP of the TC and see if you can then access it.
Do not ever expect this sort of thing to be completely straight forward.
Read the many many posts about remote access. There are different methods if BTMM doesn't work.
See AirPort
Remote access article as a starting point. -
Accessing a JTextField from another class
I 've got 2 classes I am trying to get the value of a JTextField that located in a second class see the code
class1 myClass = new class1();
String text = myClass.jTextField1.getText();
System.out.print(text);What happens is when i run the program and enter some text in the jTextFild1 and then click on my Jbutton it does not print anything
the JButton is in the caller class
Could anyone explains to me what is wrongan example would help maybe....
if you want to access your jtextfield from another class then:
import javax.swing.*;
public class FieldHolderClass {
public JTextField jtf = null;
public FieldHolder() {
JFrame jf = new JFrame();
jtf = new JTextField();
jtf.setText("this is the text that is here when other callerclass seeks for text");
jf.getContentPane().add(jtf);
jf.setVisible(true);
public class CallerClass {
public static void main(String args[]) {
FieldHolderClass fHolder = new FieldHolderClass();
System.out.println((fHolder.jtf.getText());
}of course i have not written any swing app for a long time, so i might have forgotten everything... so, don't flame me when that code does not compile.
the thing that it's supposed to show, is that you make a <b>public</b> variabel (jtf) and you simply ask for it from another class by typing holderclass instances name dot and that variable name (in this case jtf) and dot and then call the method on that variable (or object...)
it might also be that you want your code to work the way that when you enter a text into jtextfield, then after pressing enter it would get printed on terminal...
in that case you should also register some Listeners... i remember that back when i was just getin' to know java then i had problems with it as well... but then again, i didn't read any manuals...
i hope i was somewhat help... -
How can I access my email from another computer. Both iPads.
HHow to access my email from another computer. Both iPads.
depend on the mail provider really this sub forum is about installing windows on mac computer though you may get more advice if you post your question in the ipad forum
Using iPad -
Accessing Custom Controller from setter and Getter methods
Hi Gurus
How can we access the custom controller from setter and getter methods,is there any way to do that.
Thanks & Regards
RajasekharHi Steve.
Thanks very much for valuable information, the main controller class is getting tracked in mo_owner which is declared as CL_BSP_WD_VIEW_CONTROLLER, and I'm getting the reference through
mo_owner ?= owner. (since mo_owner = owner is not getting converted of type mo_owner ). After doing this on whatever the contexnode class (say zl_xxxx_xxx_cnxx) the corressponding context node values are getting turned as <#ERROR IN METADATA.
I mean when I'm checking the configuration in bsp_wd_cmpwb configuration tab -> Available Fields->Enlarge the contex node->BTSTATUS (say for Example) there the values are showing as <#ERROR IN METADATA , After executing the above procedure
I cross checked several times before and after redefining the context node method IF_BSP_MODEL~INIT, before redefining this method UI is working fine, after redefintion UI is throwing below error .
Exception Details
CX_SY_REF_IS_INITIAL - Dereferencing of the NULL reference
Method: CL_BSP_MODEL=>IF_BSP_MODEL_BINDING~IS_ATTRIBUTE_VALID
Source Text Row: 13
Thanks & Regards
Rajasekhar -
Can multiple users access apps purchased from another Apple ID account?
I have several iMacs under my control. I need to find a way to download iLife using one Apple ID, so I can have all users on each machine to also have access to the updated iLife suite.
Is it possible for other users to access an app that was purchased from another Apple ID. If one purchases an app, does the machine allow access to all the users?
(I know those two last sentences are redundant, but I want to make sure everyone understands problem).
I've read countless articles on this, and can't seem to catch a break from the problem.If this is in a school of some type or a corporate learning center with multipple Mac computers you should contact Apple directly and ask them for help in getting a version that can be installed on multiple Mac with out have to down the updates to each computer individually.
-
How to access icloud account from another iphone
My iphone fell in the water. I am on vacation and need to access info from my calendar. How can i do it from another iphone device?
Just enter your account details under:
Settings > Mail, Contacts, Calendar
and add your account.
Finished. -
How to access a page from another website in to the portlet
Hai,
I need this specific requirement. In a portlet that is written in jsp, i need to access another page which is running in another server.I will explain what is my requirement clearly.. In a portlet, i have to acess a page from another site, and i have to pass a parameter directly. If i use URL-Based Portlet with passing parameters, It ask the user to enter the parameter and submit the page.. But what my need is, i have to pass the parameter directly. what i am planning is in a new tab, i will add a portlet, where i need to access the another website page..when the user opens that tab, it directly shows that website..... How do i proceed...
Can anybody help me.. Its URGENT....
If possible send me the code..
my mail id: [email protected]
Thanks in advance
damodarDamodar,
To include an existing JSP page as a portlet have a look in the PDK section http://portalcenter.oracle.com there is lots useful information. The two things you might find most relevant is a paper on creating java portlets. This paper has a section on turning an existing JSP page into a portlet
http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/PDK/ARTICLES/HOW.TO.BUILD.A.JAVA.PORTLET.USING.PDK.JAVA.V2.HTML
and to pass parameters and events
http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/PDK/ARTICLES/OVERVIEW.PARAMETERS.EVENTS.HTML
Hope this helps,
Candace
Maybe you are looking for
-
LabView 2010 Applicatio​n Builder for EXE Always Included files are not Included
In LabVIEW 2010 F2, When I am using the Application Builder to build an EXE file, I have listed 10 or so files to Be "Always Included". But when I Explore the directory where the EXE was built, those "Always Included" files are not there or in any su
-
How to Create a rule in Oracle Business Rules Rule Author and how to create a Decision Service Partner Link in BPEL that referers the Rule Repository and implement the same in a BPEL process. can anybody help me with an example...
-
Custom Tab Missing in Template Section
Hello - I recently migrated to SharePoint 2013. Under Site Settings > Web Design Galleries > Solutions, I can see that my site templates carried over. They have been activated. However, when I go to create a new subsite, I noticed that the Cu
-
We are facing a issue in our OAM environment and would like to know if there are any suggestions. Our setup is OAM – OVD – OID. Here is the issue: Only Admins are able to successfully login to Identity Server User Manager. A regular user is able to l
-
Everytime I connect my Iphone to my computer, it syncs, then soon after disconnects, then reconnects, and so on....Does anyone know why it's doing this? It makes it hard to back things up and charge it. I checked and my iTunes and iPhone software are