KM Std Properties via API: can be done!

Hi guys,
This is to let you know that <b>std resource properties</b> (created by, created on, changed by, changed on, content length, ...) <b>can indeed be set using KM API's</b>.
Maybe this is not great surprise to someone, but it is for me, that after reading this <a href="https://www.sdn.sap.com/irj/sdn/thread?threadID=25606">thread</a> was very very scared...
Well, here's the code that worked for me on EP 6 SP 16 (honestly I don't see any serious reason for which it shouldn't be running on EP5 and EP7 as well... believe me: I decompiled a lot):
final String cmadmin = "cmadmin_service";
context = factory.getServiceContext(cmadmin);
com.sapportals.portal.security.usermanagement.IUser puser = context.getUser();
puser.setTransientAttribute("--km-change-systemproperties--", new Boolean(true));
Basically, create a context with the std service user cmadmin_service, and then set its "km-change-systemproperties" trasient attribute to true. Done!
For <i>the rest of the story</i> (how to set properties, etc), see KM API documentation under IResource interface or search SDN with "km api properties".
Cheers,
Alex

Hi Alex
Thanks for the reply. Here is the code:
Folder Structure:
documents
     testfolder
         Folder 1
            Some files here
        Folder 2
             Empty
         Folder 3
              Some more files here
try{
     String rLocationtest = "/documents/testfolder" ;
     IResourceContext c = ResourceFactory.getInstance().getServiceContext("cmadmin_service");
     IUser user = c.getUser();
     user.setTransientAttribute("--km-change-systemproperties--", new Boolean(true));
     ICollection collection = (ICollection)ResourceFactory.getInstance().getResource(RID.getRID(rLocationtest),c);
     loopFolder(collection,c,response);
catch(Exception e){
    e.printStackTrace();
public void loopFolder(ICollection collection, IResourceContext c, IPortalComponentResponse response){
try{
         IResourceList resList = collection.getChildren();
      IResourceListIterator resItr = resList.listIterator();
          while(resItr.hasNext()){
     IResource restemp = resItr.next();
     if(restemp.isCollection() && LinkType.NONE.equals(restemp.getLinkType())){
          loopFolder((ICollection)restemp,c,response);
IPropertyName modifiedByPropertyName = new PropertyName("http://sapportals.com/xmlns/cm","modifiedby");
IPropertyName createdByPropertyName = new PropertyName("http://sapportals.com/xmlns/cm","createdby");
//get the properties          
  IProperty resMProperty = restemp.getProperty(modifiedByPropertyName);
  IProperty resCProperty = restemp.getProperty(createdByPropertyName);                    
//get mutable properties
IMutableProperty mutableModifiedByProperty = resMProperty.getMutable();
IMutableProperty mutableCreatedByProperty = resCProperty.getMutable();               
//set mutable properties
mutableModifiedByProperty.setStringValue("Administrator");
mutableCreatedByProperty.setStringValue("Administrator");
//set the resource with new properties
restemp.setProperty(mutableModifiedByProperty);
restemp.setProperty(mutableCreatedByProperty);
response.write("Changed modified and created");
}// End of while
}catch(Exception e){
     e.printStackTrace();
  }//End of catch
         } //End of loopFolder
It updates only createdBy field and not the other one. If I modify one at a time instead of two, it works fine.
Thanks
Deepak

Similar Messages

  • Manage OIM 11g System Properties via API

    Can someone please help me understand how to use the OIM 11g API to manage OIM System Properties. In the prior version I was able to use the tcPropertyOperationsIntf class, but it looks like this now only supports reading the attributes, but I need the ability to update and delete properties from the API.
    What is the proper API to use to implement this in an EventHandler class that extends tcBaseEvent?
    Thanks!

    Hey,
    Sorry to revive this pretty old thread, but it's still unanswered and I would be interested in having the answer to this question...
    Thanks,
    --jtellier                                                                                                                                                                                                                                                                                                                                       

  • HT4597 Can I just choose which apps or photos to sync via iCloud since I don't want all of them in all my devices?  I have all photos & apps in my iMac but only sync manually some of them to my iPad and to my iPhone. Can I still do this with iCloud?

    I have 3 Apple devices - iMac, iPhone, and iPad.  I am planning to move to iCloud from MobileMe.  In iTunes, I just choose to sync whatever files I want my iPhone and iPad to have since they don't have sufficient disk space as my iMac. 
    Can I just choose which apps or photos to sync via iCloud since I don't want all of them in my iPhone and iPad?  I have all photos & apps in my iMac but only sync manually some of them to my iPad and to my iPhone. Can I still do this with iCloud?
    Calendars, emails, contacts, are fine since files are small.  What I'm afraid of are the apps and photos.
    Any reply will be appreciated.
    Thanks.

    With the exception of photo stream, iCloud doesn't sync your apps or photos between devices. You will continue to sync this content via iTunes in the same way as you do now.
    Photo stream allows you to sync your most recent photos between all devices, you have the option to use photostream or not.

  • How can I add credit to my account via PayPal? I don't have a credit card? Thanks.

    How can I add credit to my account via PayPal? I don't have a credit card? Thanks.

    Open iTunes.  Scroll to the bottom.  Click "Redeem".

  • Can I upload color themes via API?

    I would like to upload color themes to Kuler accounts from our Android app, Real Colors (https://play.google.com/store/apps/details?id=com.macaw.pro).
    Is it possible via API?

    Hi AndreiBlaj,
    Kuler currently does not have any public APIs that support uploading color themes to Kuler acounts. However, we are actively looking into how can we help the Kuler customers in this regard. We will inform the community via forum posts if and when we have any news to share on this front.
    Thanks,
    Kuler team

  • Sync iphoto files between MacBooks via wifi - can it be done?  Both MacBooks are operating on Maverick and latest version of iPhoto.

    I have 2 MacBooks and want to sync iPhoto database and folder structure between to 2.  I have WiFi and currently sync Contacts, Calendar and email between the 2 computers.  Main purpose is to ensure that what changes are made on one MacBook are replicated on the other and visa versa.  Of particular importance is the ability to replicate the 'albums' and 'folders' between the 2 - I want the 2 MacBooks to have the same iPhoto structure of folders and albums. 
    What can be done and how?
    Thank you whoever it is who comes to my assistance.
    Terry

    What do you mean by "Sync"?
    Main purpose is to ensure that what changes are made on one MacBook are replicated on the other and visa versa.
    The vice versa is the always going to be a problem.
    The general term means when two Libraries (A and B) are compared and files in Library A are copied to Library B, while files in Library B are also copied to Library A so that both Libraries are identical.
    This is bi-directional copying and you cannot do this automatically with iPhoto. No Syncing software is capable of parsing the iPhoto Library in this manner. One or both of your Libraries will be damaged if you try this.
    You can have uni-directional copying - files in Library A are copied to Library B - this is essentially backing up. Obviously you can also copy from Library B to Library A.
    The nearest you can get to syncing is to use iPhoto Library Manager  to move files/Albums/Events plus associated metadata between Libraries. This process cannot be automated.
    I would note that the upcoming Photos app and the iCloud Library feature may make this possible.

  • Re-using Segments Created via API or Re-creating Every Time?

    Hi All,
    Wanted to get your thoughts on this...
    We have been able to create Segments via the API, however, which way to go:
    OPTION 1: Re-use Segment if there are no additions or deletions (changes) to the list? or
    OPTION 2: Re-create the Segment every time via API.
    In Option 1, we will still need to compare the existing list to the new list before deciding to re-use. However, the comparison will be done outside of Eloqua.
    In Option 2, we may create a new list even though there are no changes but we will have the historical data and it will be easier to identify lists.
    In both scenarios, data processing may affect performance.
    For those who have done this or are familiar, what would you recommend?
    Hope it's clear.
    Pinging: TJ Fields-Oracle, 1065474, freejung
    Thanks!!

    In simpler terms of creating assets and storage, creating new segments each time should not be a problem. That said, the asset choosers might end up being slow if you're blowing past 100k which will ultimately result in a poor user experience for the marketers. Please see:
    Eloqua Product Thresholds
    Beyond that, you should also consider:
    - Developers creating a process where segments and campaigns are being created automatically, and the campaigns being left active for a long time with segments are set to run every hour. For static lists, it wouldn't really result in heavy calculating but you can run into delayed contact entry into campaigns if you have hundreds of segments feeding hundreds of campaigns - each with heavy filtering. At best it would be pointless to run segments (on the canvas) hourly if the lists are static, and at worst you're making everything slower. That doesn't sound like a major concern here but something to keep in mind.
    - API tools automatically updating segments which are currently referenced in live campaigns (again, running hourly segments). This means if you re-use assets for new campaigns there is a risk that they're being referenced by a currently live campaign and you end up adding the wrong contacts to the wrong flow. Since segments share a relationship to campaigns as their primary contact feeder, the API tools should only be updating the same segment asset with new contacts if the intent is to add those contacts to an existing campaign.
    - Although keeping shared lists or segments untouched gives you some historical tracking, do not assume the contacts in those assets are exactly the same ones which were used when the campaign was launched. For example, if you delete the bouncebacks and unsubscribes after the campaign has run and go back to your segment, even if it is a simple segment with a local list, it will not contain the deleted contacts. For any serious auditing task, let the API tool archive what contacts were added to what segment. Then you can use Bulk 2.0 activity exports to keep a list of what contacts received what emails from various campaigns.
    Regards,
    Bojan

  • How to Get a Resource Id via API

    Hi,
    Is there any way to get the short id associated with a resource via API??
    I need to get an Id from a resource that it's unique for every one, so I can show an identifier for every document in a custom report...
    Thank you,
    Felipe Vieira

    Hi Valery,
    I mean a Portal Resource..
    Inside portal, when a go to properties  of a specific document, in tab "Access Link" it shows a "Short Id".
    I'd like to know via API how to get this Id, or any other Code that it's unique for every resource or document in portal.
    Thank you!

  • How do I read & update email group subscription status for a specific contact via api?

    Looking at Eloqua's api documentation, I can find out how to update contacts, and even the global subscription flag, however we want to build a page on our custom website whcih allows users to opt in and out of specific email groups (as can be done manually from the contact page / preferences tab)
    I cant find the appropriate api documentation for this - I found a page for contacts:
    REST API - Contact Fields
    and a page for email group:
    REST API - Email Groups
    any idea how can I find and udpate the object linking the two ?!?

    Via REST API, the bare bones call is:
    PUT /API/REST/2.0/data/contact/{contactid}/email/group/{groupid}/subscription
      "type": "ContactEmailSubscription",
      "contactId": "3174",
      "emailGroup": {
      "type": "EmailGroup",
      "id": "15",
      "depth": "minimal",
      "name": "Test Email Group"
      "isSubscribed": "false"
    Where isSubscribed can be toggled to true. This is the same call made by the UI when you open the contact record, move to the preferences tab and right click to subscribe or unsubscribe on an email group:
    The list of email groups and their ids can be obtained via GET /assets/email/groups. I recommend adding ?depth=minimal to avoid retrieving unnecessary configuration information.
    Best regards,
    Bojan

  • Creating an opportunity linked to a contact via API

    Hi,
    We are trying to create opportunity records against a contact but don't understand how to link the 2 objects via API as my development team can't find a direct link when looking in the WSDL.
    I can see in the UI that the primary contact can be stored against the object, would just like to know how to do this via API.
    Thanks for your help in advance.
    Leslie

    Hello Leslie,
    There are a number of ways to accomplish this. As you mentioned in your post there are often Id fields exposed on a parent object that allow one to associate to a record of a different type, in this case you can send a request for the parent object, in this case Contact and specify the ID of an existing Opportunity record.
    You can also use the child object structure to create an association. For example, if you are entering a new Contact and a new Opportunity you can use the <ListOfOpportunity> within a Contact Insert request to also insert a new Opportunity. I have attached a sample SOAP request below.
    I would recommend your team review the WS User Guide as well as the sample code provided at samplecode.oracle.com for further details. Please see the announcements at the top of the forum for additional links.
    I hope this helps.
    Thanks,
    Sean
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <ContactWS_ContactInsert_Input xmlns="urn:crmondemand/ws/contact/10/2004">
    <ListOfContact>
    <Contact>
    <ContactFirstName>Bruce</ContactFirstName>
    <ContactLastName>Wayne</ContactLastName>
    <ListOfOpportunity>
    <Opportunity>
    <OpportunityName>Capture the Joker!</OpportunityName>
    <CloseDate>04/10/2011</CloseDate>
    <Priority>High</Priority>
    <Status>Pending</Status>
    <SalesStage>Selected</SalesStage>
    </Opportunity>
    </ListOfOpportunity>
    </Contact></ListOfContact></ContactWS_ContactInsert_Input></soap:Body></soap:Envelope>

  • Bi publisher repository via api

    Hi,
    using BI Publisher 10.1.3.4.0, I have 4 reports that are basically the same but each one is getting data from different database,
    is it possible to create only one report and then dynamically call it and send database connection through url, also is it possible to send username & password for protected reports through url.

    There has been some succes in what I'm trying to accomplish,
    when I create Report in BI Publisher only two files are created (can be found on server) .xdo and .rtf. So I've manually downloaded them and I'm able to extract sql query & params from .xdo file run it throught data processor with desired jdbc connection (which is the most important thing for me) to create .xml file, then I run .rtf through rtf processor to get .xsl, and finally I use fo processor to create report from .xml and .xsl and everything works as expected.
    Now the only thing that I don't know is how to access the files on server through api, there's nothing in documentation regarding this, I don't want to use web services bpel wsdl or anything similar, I just want to be able to download them from my app.
    Ok just to sum up, I need to manage following somehow:
    FileInputStream fiS = new FileInputStream("http://ias.test.hr:7787/xmlpserver/~administrator/TEST/Z/Z.rtf");
    RTFProcessor rtfP = new RTFProcessor(fiS);
    or
    InputStream input = new FileInputStream(new File("http://ias.test.hr:7787/xmlpserver/~administrator/TEST/Z/Z.xdo"));
    I think this is not possible since I should be passing username & password, so just to make sure, is it anyhow possible to get to bi publisher repository via api or not.
    If anyone has any suggestions or advices I would be very thankful,
    thanks in advance,
    Tomislav.

  • How to populate Values in Value Set via API or Interface

    Dear frds:
    i need to know is there any API or interface available to load thousands of values in particular valueset via API or Interface. I know Dataload is the alternative but i don't want to use that as the data is too much so its not feasible.
    waiting for your response
    Thanks.

    There is no API for fnd_flex_values.
    You will have to do a direct table insert (or call FND_FLEX_VALUES_PKG which does nothing but a direct table insert).
    Sandeep Gandhi

  • De-authorizing itunes? Several of my authorized pc's have died, and have no way to deauthorize iTunes on them. Now I am unable to synch purchases on my Iphone to new computer with iTunes because I already have 5 computers authorized. What can be done?

    Several of my authorized pc laptops and desktops have completely died over the years, and have no way to deauthorize iTunes on them. Now I am unable to synch purchases on my Iphone to new computer with iTunes because I already have 5 computers authorized. What can be done?

    Deauthorise all to reset to zero, then authorize again.
    Following quote from Apple Support:
    If you need to authorize your new computer and are unable due to already having five authorized computers, you can deauthorize all computers by doing the following:
    Click iTunes Store on the left side of iTunes.
    If you're not signed in to the store, click the Account button, then enter your account name and password.
    Click the Account button again (your Apple ID appears on the button), enter your password, and then click View Account.
    In the Account Information window, click Deauthorize All.
    Note: You may only use this feature once per year. The Deauthorize All button will not appear if you have fewer than two authorized computers. If you need assistance on using this feature, please contact iTunes Store support via email (http://www.apple.com/support/itunes/store/).

  • Number of System Log Errors Increasing During Nightly Backup - What Can Be Done?

    Right now, I'm getting quite a number of warnings and errors with my nightly (wbadmin) backups to external USB drive using Windows 8.1 and the Spring Update.  Fortunately, the VSS-integrated system image backups are still sound, but it seems as though
    Windows 8.1 is becoming less and less aware and tolerant of them.  That's not right!
    With Windows 8.1 before the Spring Update I was seeing the warnings, but not the FilterManager errors.  The update brought the errors.
    Perhaps not too many Windows 8 users use wbadmin start backup -vssFull commands to do their backups, but I'm sure a lot of folks running Server 2012 do.
    What can be done to make the backup process smoother and eliminate these warnings and errors?
    Here's the specific list of warnings / errors I got from last night, which started at 2:00am and ran to 4:26am:
    As usual, clicking the Event Log Online Help button yields:  "We're sorry, but the page you requested could not be found.  You can search on TechNet for more information."  Microsoft, you know that needs to be fixed too, right?
    The specific command I'm using, via the Task Scheduler, is:
    wbadmin start backup -allCritial -vssFull -quiet -backupTarget:G:\
    For those who might suggest 3rd party backup, bear in mind I very much want the VSS integration that Windows Backup provides, and while wbadmin is producing backups that can actually be restored I can ignore these warnings and errors.  But it would
    be nice to not have them.
    And yes, I've considered 3rd party backup solutions, but while wbadmin is producing VSS-integrated system image backups that can be restored from the Windows startup recovery environment I'd prefer those.
    -Noel
    Detailed how-to in my eBooks:  
    Configure The Windows 7 "To Work" Options
    Configure The Windows 8 "To Work" Options

    The errors suddenly stopped on their own, but the warnings continue.
    As with most software issues, the errors came back again, specifically after a reboot mandated by yet another Windows Update.  I'm assuming they stopped before because the Filter Manager just gave up, or maybe the volume numbers got too high (notably
    the volume numbers started over again at a lower number).
    As of last night, these messages apparently having to do with my wbadmin backup (which starts at 2am) were logged in my System Event Log:
    2:00:00 (Information) - Virtual Disk Service - Service started.
    2:01:52 (Information) - Ntfs (Microsoft-Windows-Ntfs) - Volume System Reserved (\Device\HarddiskVolumeShadowCopy22) is healthy.  No action is needed.
    2:02:15 (Information) - Ntfs (Microsoft-Windows-Ntfs) - Volume C - NoelC4 SSD (\Device\HarddiskVolumeShadowCopy23) is healthy.  No action is needed.
    2:02:17 (Information) - Kernel-General - TxR init phase for hive \??\GLOBALROOT\Device\HarddiskVolumeShadowCopy23\Windows\system32\config\SYSTEM (TM: {5df557d3-c9aa-11e3-829a-1803734ec99c}, RM: {5df557d2-c9aa-11e3-829a-1803734ec99c}) finished with
    result=0xC00000A2 (Internal code=7).
    2:02:17 (Information) - Kernel-General - TxR init phase for hive \??\GLOBALROOT\Device\HarddiskVolumeShadowCopy23\Windows\system32\config\DRIVERS (TM: {5df557d5-c9aa-11e3-829a-1803734ec99c}, RM: {5df557d4-c9aa-11e3-829a-1803734ec99c}) finished with
    result=0xC00000A2 (Internal code=7).
    2:02:21 (Information) - Kernel-General - The access history in hive \??\GLOBALROOT\Device\HarddiskVolumeShadowCopy23\Users\default\ntuser.dat was cleared updating 528 keys and creating 29 modified pages.
    2:02:25 (Information) - FilterManager - File System Filter 'FsDepends' (6.3, ?2013?-?08?-?22T07:39:42.000000000Z) has successfully loaded and registered with Filter Manager.
    2:02:27 (Warning) - disk - Disk 5 has been surprise removed.
    2:02:29 (Warning) - disk - Disk 5 has been surprise removed.
    2:02:44 (Error) - FilterManager - Filter Manager failed to attach to volume '\Device\HarddiskVolume15'.  This volume will be unavailable for filtering until a reboot.  The final status was 0xC03A001C.
    2:02:44 (Error) - FilterManager - Filter Manager failed to attach to volume '\Device\HarddiskVolume15'.  This volume will be unavailable for filtering until a reboot.  The final status was 0xC03A001C.
    2:02:45 (Warning) - disk - Disk 5 has been surprise removed.
    2:19:55 (Error) - FilterManager - Filter Manager failed to attach to volume '\Device\HarddiskVolume17'.  This volume will be unavailable for filtering until a reboot.  The final status was 0xC03A001C.
    2:19:55 (Error) - FilterManager - Filter Manager failed to attach to volume '\Device\HarddiskVolume17'.  This volume will be unavailable for filtering until a reboot.  The final status was 0xC03A001C.
    2:19:55 (Error) - FilterManager - Filter Manager failed to attach to volume '\Device\HarddiskVolume17'.  This volume will be unavailable for filtering until a reboot.  The final status was 0xC03A001C.
    2:19:55 (Warning) - disk - Disk 5 has been surprise removed.
    2:20:04 (Warning) - disk - Disk 5 has been surprise removed.
    2:30:00 (Information) - Virtual Disk Service - Service stopped.
    -Noel
    Detailed how-to in my eBooks:  
    Configure The Windows 7 "To Work" Options
    Configure The Windows 8 "To Work" Options

  • My ipad air was stolen. Besides the find my ipad app (since it doesn't work if they don't hook up to wi-fi) any things else that can be done

    I had my ipad air stolen and tried using the "find my ipad app" only to realize it won't even track it unless it it hooked to wi-fi! I am sure thieves figure out how to use it even with my pass code on. Is there ANY thing else that can b done to track it? Serial number possibly? Please please anyone with info please help!

    No, there is no other way to track it. If you have a pass code set and are using iOS 7.x.x then the thieves simply have a bricked iPhone that is useless to them.
    What To Do If Your iDevice or Computer Is Lost Or Stolen
    iPhone, iPod Touch, and iPad
    If you activated Find My Phone before it was lost or stolen, you can track it only if it is connected to the Internet by Wi-Fi or cellular. What you cannot do is track your device using a serial number or other identifying number. You cannot expect Apple or anyone else to find your device for you. You cannot recover your loss unless you insure your device for such loss. It is not covered by your warranty.
    If your iPhone, iPod, iPod Touch, or iPad is lost or stolen what do you do? There are things you should have done in advance - before you lost it or it was stolen - and some things to do after the fact. Here are some suggestions:
    This link, Re: Help! I misplaced / lost my iPhone 5 today morning in delta Chelsea hotel downtown an I am not able to track it. Please help!, has some good advice regarding your options when your iDevice is lost or stolen.
      1. Reporting a lost or stolen Apple product
      2. Find my lost iPod Touch
      3. AT&T. Sprint, and Verizon can block stolen phones/tablets
      4. What-To-Do-When-Iphone-Is-Stolen
      5. iCloud- Use Lost Mode
      6. What to do if your iOS device is lost or stolen
      7. 6 Ways to Track and Recover Your Lost/Stolen iPhone
      8. Find My iPhone
      9. Report Stolen iPad | Stolen Lost Found Online
    It pays to be proactive by following the advice on using Find My Phone before you lose your device:
      1. Find My iPhone
      2. Setup your iDevice on iCloud
      3. OS X Lion/Mountain Lion- About Find My Mac
      4. How To Set Up Free Find Your iPhone (Even on Unsupported Devices)
    Mac Computer
           Find My Mac can be used from Find My Phone at iCloud.com and via Find
           My Phone on your iDevice.
          The following is third-party anti-theft software:
               1.  STEM 2.1
               2.  MacPhoneHome 3.5
               3.  MacTrack 7.5.0
               4.  VUWER 1.7
               5.  Sneaky Bastar* 0.2.0
               6.  Undercover 5.1.1
               7.  LoJack for Laptops
               8. Hidden 2.0
               9. Prey 0.6.2

Maybe you are looking for

  • Performance Issue for BI system

    Hello, We are facing performance issues for BI System. Its a preproductive system and its performance is degrading badly everyday. I was checking system came to know program buffer hit ratio is increaasing everyday due to high Swaps. So asked to chan

  • Backing up and Restoring/Recovering an Oracle 9i Database

    I am fairly new at this and have been tasked with managing off site backups for customer data on a 9i database. I am carrying out a user managed backup of the following data files to the offsite data centre. User File USERS01.DBF Control File CONTROL

  • Database link in forms is different that actual database name

    I am using a database link in Oracle Forms 6i, however, the database link name for the referenced database is not the same as the actual databse service/instance name. It does not work, and I suppose its something to do with the global names feature

  • Best Hardware Server Specs for Wsus to run close to 3000 Clients

    Hello Team, I am currently configuring a Wsus server 2012 for my company. I am looking forward to buy a Dell rack server and would like to take your input on what is the best server specs I could go for. I am intending to use a San-box to store Wsus

  • Targeting all objects in multiple subforms with a shared name throughout a form

    Hi Jono Moore was able to find an excellent solution from an original by Radzmar for targeting subforms throughout a form that share a name: function hideSubs(vNode) {      if (vNode.className === "subform") {           //name of subform you're targe