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!
    Martin

    Okay, 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
    Shankar

    Hi ,
    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
    Raf

    Opening 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?

    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 wrong

    an 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
    Rajasekhar

    Hi 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
    damodar

    Damodar,
    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

  • Buisiness rules in bpel

    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

  • Identity Server issue

    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

  • My iPhone won't stay sync'd to iTunes, It syncs but then disconnects, then reconnects. Can anyone help me with this problem??

    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