Change the VM with custom attributes defined in a CSV file

Hi all

I'm doing something that I think should be simple (but this is the first time I used powercli and am not a good code writer), but I find it hard to tell.

I created 2 custom attributes (owner and owner of the SSG system) in vCenter for my virtual machines.  I have a list of vm names csv and their associates "owners".  I would use powercli to read the csv file and connect to the VC server and the 'owners' of entry in the appropriate field.

I borrowed com code from various places on the internet and these forums but I can't seem to make it all work.  I managed at least to read the information in the csv file and is displayed on the screen of my laptop.  What I can't do is get 3 columns in the csv file to be recognized as variables (unless there is some default variables I don't know) I can put in the game-Annotation lines.

The code I have is:

# Input range, includes all IBD VM names that are registered.
$data = import-Csv "C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\vmowners1.csv"-Header ('Hostname', 'Owner', 'SSG owner')
# $data | Get-Member
Write-Output $data
# Loop over all the VMS in vCenter
ForEach ($row in $data)
{
# Create variables for the current virtual and its 'Contact' and 'Description' computer that are custom attribute fields.  Also create a $note string to use Set-VM-Description
$hostname = get-VM-name $vmname;
# $contact = $vm | Get-Annotation CustomAttribute - user;
# $description = $vm | Get-Annotation - CustomAttribute Description;
# $note = $contact.name + ":'t" + $contact.value + "' not n" + $description.name + ":'t" + $description.value;
Set Annotation - entity $hostname - CustomAttribute "Business system owner" - value $SSG_owner
Set Annotation - entity $hostname - CustomAttribute "SSG system owner" - value $system_owner
# Set - VM - VM $vm - $note Description - confirm: $false;
}

The result, I get on my screen is:

PowerCLI C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts >.\setvmownership.ps1

Owner of the company that owns SSG host name

--------                                              --------------                                       ---------

ABPPROXY-00-AH

ACE-01-AH hung Laallmmi hung Laallmmi

Get - VM: could not validate the argument on the parameter 'name '. The argument is null or empty. Provide an argument that is not null or empty, and then try the AGM of the order

in.

To C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\setvmownership.ps1:13 char: 29

+ $hostname = get-VM-name < < < < $vmname;

+ CategoryInfo: InvalidData: (:)) [Get - VM], ParameterBindingValidationException)

+ FullyQualifiedErrorId: ParameterArgumentValidationError, VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

Set Annotation: Impossible to validate the argument on the parameter "entity". The argument is null. Supply a non-null argument, and try the command again.

C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\setvmownership.ps1:17 char: 23

+ Set-Annotation - entity < < < < $hostname - CustomAttribute "Business system owner" - value $SSG_owner

+ CategoryInfo: InvalidData: (:)) [game-Annotation], ParameterBindingValidationException)

+ FullyQualifiedErrorId: ParameterArgumentValidationError, VMware.VimAutomation.ViCore.Cmdlets.Commands.SetAnnotation

Set Annotation: Impossible to validate the argument on the parameter "entity". The argument is null. Supply a non-null argument, and try the command again.

C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\setvmownership.ps1:18 char: 23

+ Set-Annotation - entity < < < < $hostname - CustomAttribute "SSG system owner" - value $system_owner

+ CategoryInfo: InvalidData: (:)) [game-Annotation], ParameterBindingValidationException)

+ FullyQualifiedErrorId: ParameterArgumentValidationError, VMware.VimAutomation.ViCore.Cmdlets.Commands.SetAnnotation

Get - VM: could not validate the argument on the parameter 'name '. The argument is null or empty. Provide an argument that is not null or empty, and then try the AGM of the order

in.

To C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\setvmownership.ps1:13 char: 29

+ $hostname = get-VM-name < < < < $vmname;

+ CategoryInfo: InvalidData: (:)) [Get - VM], ParameterBindingValidationException)

+ FullyQualifiedErrorId: ParameterArgumentValidationError, VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

Set Annotation: Impossible to validate the argument on the parameter "entity". The argument is null. Supply a non-null argument, and try the command again.

C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\setvmownership.ps1:17 char: 23

+ Set-Annotation - entity < < < < $hostname - CustomAttribute "Business system owner" - value $SSG_owner

+ CategoryInfo: InvalidData: (:)) [game-Annotation], ParameterBindingValidationException)

+ FullyQualifiedErrorId: ParameterArgumentValidationError, VMware.VimAutomation.ViCore.Cmdlets.Commands.SetAnnotation

Set Annotation: Impossible to validate the argument on the parameter "entity". The argument is null. Supply a non-null argument, and try the command again.

C:\Program Files (x 86) \VMware\Infrastructure\vSphere PowerCLI\scripts\setvmownership.ps1:18 char: 23

+ Set-Annotation - entity < < < < $hostname - CustomAttribute "SSG system owner" - value $system_owner

+ CategoryInfo: InvalidData: (:)) [game-Annotation], ParameterBindingValidationException)

+ FullyQualifiedErrorId: ParameterArgumentValidationError, VMware.VimAutomation.ViCore.Cmdlets.Commands.SetAnnotation

The CSV file looks like this (but continues for about 500 VMS):

I go with the option import-csv because that said something that I read in my troubleshooting efforts would empty columns and error I received and that import-csv correctly would intrepret in empty columns.

hostname, business_owner, system_owner,

ABPPROXY-00-AH,

ACE-01-AH, James Laallmmi, James Laallmmi,

acrodev-00-ah, tflessa, Bruce Hastings,.

ACT1DDB00AH, Bill Mancini, Mike Bruni,

ACT1TDB00AH, Bill Mancini, Mike Bruni,

What should I do to be able to get this script to work? I don't know that it is related to messages "argument is null." that we see in the output.

Thank you

Dan

Hello, dscottimw-

You were on the right track.  There were a couple of things to change to make it work as you want:

  1. either remove the "-header" part of the Import-Csv line or delete the actual header of the CSV itself - these are elements in conflict (the "-Header" param names of the columns in the CSV and assumes that the CSV file has already no header row)
  2. you need to access the properties of the $row variable in the ForEach loop - not only call the names of the CSV column headers (this is why you may receive errors on things 'null' - whether you use variables that have no value)

Try this:

# Input array, includes all VM names from DCI that are registered.$arrVMsInfo = Import-Csv "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\scripts\vmowners1.csv"#Write-Output $data

## loop through all VMs listed in the CSV, setting custom attrib values for eachForEach ($row in $arrVMsInfo) {    ## get the VM for this row    $vmThisOne = Get-VM -Name $row.hostname    Set-Annotation -Entity $vmThisOne -CustomAttribute "Business System Owner" -Value $row.business_owner    Set-Annotation -Entity $vmThisOne -CustomAttribute "SSG System Owner" -Value $row.system_owner} ## end foreach

And, to give it a shot without actually play the game on annotations, to make sure things go as you like, you could add a - WhatIf to each line in Set-Annotation in the ForEach loop.

Which works better for you?

Tags: VMware

Similar Questions

  • Change the list with Custom MXML itemRenderer DP problem

    Hello

    I have a list of spark with a custom MXML itemRenderer which has two States.

    One or the other is based on a property of data.isTrue, as follows:

    override protected function getCurrentRendererState (): String

    {

    If (Data.isTrue) {return 'TrueState' ;}

    Back to 'FalseState ';

    }

    When data.isTrue is set to true, the TrueState has the value that has a small arrow on the right side.

    When the dataProvider is replaced by a new collection, it restores all data correctly, except the image that is always visible when isTrue was true to the previous data set.

    To the overview, the arrow disappears.

    How can I fix this please?

    You may need to add a substitution of data layer that calls invalidateRendererState

  • Change the Notes to custom for guests attributes field

    People,

    I need a way via Powershell (I know I could probably do via SQL, but I would avoid editing the VC DB directly) to go through a server cluster and be able to edit any guest VM that has a custom attribute defined in the Notes field. Our problem is that we use Platespin for all of our P2V and he puts this long text string after each conversion in the Notes field:

    "Virtual Machine created by PowerConvert 7.0.0.5157 08/08/2008 23:47:46.

    We want to shorten the chain to a something simple, since it appears on reports and causes problems with the formatting, something like "P2V 08/08/2008 23:47:46.

    Anyone have any ideas?

    Thank you.

    You can use the - operator replace like this

    $text = "Virtual Machine created by PowerConvert 7.0.0.5157 on 8/8/2008 11:47:46 PM"
    $pattern = "Virtual Machine created by PowerConvert 7.0.0.5157"
    $newtext = $text -replace $pattern, "P2V"
    $newtext
    

    If the model is not constant, then we use a regular expression for the matching process.

  • Change the workflow by code attribute

    I want to change the value of many attributes of workflow. He points to a single resource, and I want to change it.

    Is it possible to change the workflow assigns values from code?

    Thank you very much

    D.

    It's what configuration items are for. Create a configuration item, add required attributes, set them and then change your workflow attributes to use the configuration item (many attributes can point to a single configuration element attribute)

    You will then be able to change the attributes of the customer or scripting configuration items.

  • Change the 'src' in 'href' attribute, before you import XML

    I need to change the 'src' in 'href' attribute (< img scr = "...) (' >) before importing an XML document. I think that you could do with XSLT, you can add a script to import XML documents. But I don't know much about XSLT...

    Could someone give me an idea?

    Thanks in advance...!

    Piece of cake. This is a transformation of identity, except that it filters the attributes 'src ':

    
    
    
      
        
      
    
    
      
          
       
    
    
    

    See http://stackoverflow.com/questions/2679443/how-do-i-rename-an-attribute-using-xslt

  • Cannot change the value of an attribute

    I'm having a lot of trouble trying to change the value of an attribute in a document in my database. I get the error message:
    Transaction specified for a non-transactional database
    Nov 26, 2008 9:35:02 AM com.kitfox.db.BaseLocal processRequest
    SEVERE: null
    com.sleepycat.dbxml.XmlException: Error: Invalid argument, errcode = DATABASE_ERROR
            at com.sleepycat.dbxml.dbxml_javaJNI.XmlQueryExpression_execute__SWIG_1(Native Method)
            at com.sleepycat.dbxml.XmlQueryExpression.execute(XmlQueryExpression.java:89)
    However, the database is configured to perform operations:
            try {
                EnvironmentConfig config = new EnvironmentConfig();
                config.setAllowCreate(createIfAbsent);
                config.setInitializeLocking(true);
                config.setInitializeLogging(true);
                config.setInitializeCache(true);
                config.setTransactional(true);
                config.setRunRecovery(true);
                config.setThreaded(true);
                //config.setLockDetectMode(LockDetectMode.DEFAULT);
    
                env = new Environment(home, config);
    
                XmlManagerConfig managerConfig = new XmlManagerConfig();
                managerConfig.setAllowAutoOpen(true);
                managerConfig.setAdoptEnvironment(true);
                managerConfig.setAllowExternalAccess(true);
                manager = new XmlManager(env, managerConfig);
    
                manager.setDefaultContainerType(XmlContainer.NodeContainer);
                
                manager.registerResolver(resolver);
    
                if (manager.existsContainer(CONTAINER_NAME) == 0) {
                    container = manager.createContainer(CONTAINER_NAME);
    
                    //Add index
                    {
                        XmlIndexSpecification is = container.getIndexSpecification();
                        is.addIndex(GAMEBASE_NS, "uid", "node-element-presence-none unique-edge-attribute-equality-decimal");
                        is.addIndex(GAMEBASE_NS, "name", "node-element-presence-none edge-attribute-equality-string");
    
                        XmlUpdateContext uc = manager.createUpdateContext();
                        container.setIndexSpecification(is, uc);
                        is.delete();
                    }
                    
                    //Initial document
                    {
                        InputStream is = null;
                        XmlInputStream xin = null;
                        URL initXml = getClass().getResource("/com/kitfox/db/dbInit.xml");
                        is = initXml.openStream();
    
                        xin = manager.createInputStream(is);
    
                        container.putDocument(DOCUMENT_NAME, xin);
                        xin.delete();
                    }
    
                } else {
                    container = manager.openContainer(CONTAINER_NAME);
                }
    While I am able to update my document by running insert or remove instructions independently, they fail:
        let $dir := $repository//gb:directory[@gb:uid=$cmd/@uid]
        return
            replace value of node $dir/@gb:name with "blorp"
    
        let $dir := $repository//gb:directory[@gb:uid=$cmd/@uid]
        return
            (delete node $dir/@gb:name,
            insert node (attribute gb:name {"bigbird"}) into $dir)
    Any idea what goes wrong? How can I change my attribute value?

    Published by: kitfox on November 26, 2008 09:48

    The problem is that even if your environment is configured to use transactions, your container is not. Set up for using transactions is a process in two steps, first of all, you must set up the environment that you did, then you must configure each container in the environment, what you can do as follows:

    XmlContainerConfig config = new XmlContainerConfig();
    config.setTransactional(true);
    container = manager.createContainer(CONTAINER_NAME, config);
    

    The same steps are used to open the container.

    Lauren Foutz

  • My screen iphone6 is cracked and in my country, they can only change the iphone with a new one and with a very high price. Is there anyway that I could replace just the screen?

    My screen iphone6 is cracked and in my country, they can only change the iphone with a new one and with a very high price. Is there anyway that I could replace just the screen?

    No, if you want to keep all rights to the service or support from Apple. Not to mention the fact that it then will be bork Touch ID and make the phone unusable if ever, you restore or update of iOS.

    Apple doesn't sell parts of the iPhone. There is no legitimate sources for replacement screens.

  • HP Deskjet 710C does not print colors (also after changing the cartridge with a new one)

    HP Deskjet 710C on Windows XP

    Problem: Printer does not print color. Black printing works. It also does not print color now, I changed the color with a new cartridge. Remove the printer from Windows XP and reinstall also does not resolve it. Also by using the option in Windows/printer driver for the cleaning cartridge has failed. Anyone know a solution to this?

    There is a document about the lack of color of the issues on the printer Deskjet 710C that can be found here.

    I hope this helps!

  • Another user changed the row with a primary key oracle.jbo.Key]

    I see many discussions about this error, but still cannot understand the difficulty that I need in my scenario.

    I am an Oracle Developer and completely new to ADF, please bear with me.

    I use JDeveloper 11.1.1.9.0

    My scenario:

    Creates an object editable view (UVO) with sub selects in the query, which is from several db tables.

    Creating a table using the UVO

    When I try to update a field in the table, and then click the validate, I get the error message:

    Another user changed the row with a primary key oracle.jbo.Key]

    Can someone explain in what scenarios I see this error and how do I solve this problem?

    Try the viewObject execution after validation and reQueryOnCommit set to true

    For details see - binary: a reason more for "Houston-25014: another user has modified the line containing oracle.jbo.Key primary key '

    Ashish

  • Pages of the OPS (with custom controller) does not not in the R 12.2.4 upgrade custom

    Hi all

    There is a problem, I'm dealing with my custom page. I am trying to expand the controller with my custom class, but get the error below

    oracle.apps.fnd.framework.OAException: could not create Java class: (oracle.apps.xxar.cusstd.createcus.webui.xxArCreCusCO) associated with the area: (ArUtilRN). It is probably because the class name is incorrect or not included in the project.

    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1247)

    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1435)

    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2848)

    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1991)

    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:567)

    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:455)

    If the file is present in the right folder

    [webui applmgr@gfs3devapp1] $ pwd

    / opt/oracle/gfs2d/FS1/EBSapps/COMN/java/classes/Oracle/Apps/xxar/cusstd/createcus/WebUI

    [webui applmgr@gfs3devapp1] $ ls - ltr

    Total 4

    -rw - r-. 1 applmgr oinstall 1177 Feb 25 10:17 xxArCreCusCO.class

    I have to follow this discussion, but is not help me: https://community.oracle.com/thread/3647610

    Please help.

    Thanks, Jerome

    Hello samia,.

    In R12.2.4, you will need to create the jar with custom classes. Please visit the Doc ID 1577661.1

    Hope this helps you solve your problem.

  • How to change the Rectangles with buttons

    I'm working on this example that does not work correctly:

    public class test extends Application
    {
    
        private void init(Stage primaryStage)
        {
    
            Group root = new Group();
            primaryStage.setScene(new Scene(root));
    
            String pillButtonCss = DX57DC.class.getResource("PillButton.css").toExternalForm();
    
            // create 3 toggle buttons and a toogle group for them
            ToggleButton tb1 = new ToggleButton("Left Button");
            tb1.setId("pill-left");
            ToggleButton tb2 = new ToggleButton("Center Button");
            tb2.setId("pill-center");
            ToggleButton tb3 = new ToggleButton("Right Button");
            tb3.setId("pill-right");
    
            final ToggleGroup group = new ToggleGroup();
            tb1.setToggleGroup(group);
            tb2.setToggleGroup(group);
            tb3.setToggleGroup(group);
            // select the first button to start with
            group.selectToggle(tb1);
    
            //////////////////////////////////////////
    
            final VBox vbox = new VBox();
    
            final Rectangle rect1 = new Rectangle(300, 300);
            rect1.setFill(Color.ALICEBLUE);
            final Rectangle rect2 = new Rectangle(300, 300);
            rect2.setFill(Color.AQUA);
            final Rectangle rect3 = new Rectangle(300, 300);
            rect3.setFill(Color.AZURE);
    
            tb1.setUserData(rect1);
            tb2.setUserData(rect2);
            tb3.setUserData(rect3);
    
            group.selectedToggleProperty().addListener(new ChangeListener<Toggle>()
            {
                @Override
                public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle)
                {
                    if (new_toggle == null)
                    {
                        //rect.setFill(Color.WHITE);
                    }
                    else
                    {
                        vbox.getChildren().addAll((Node[]) group.getSelectedToggle().getUserData());
                        //rect.setFill((Color) group.getSelectedToggle().getUserData());
                    }
                }
            });
    
    
            ///////////////////////////////////////////
    
    
            HBox hBox = new HBox();
            hBox.getChildren().addAll(tb1, tb2, tb3);
            hBox.setPadding(new Insets(20, 20, 260, 20));
            hBox.getStylesheets().add(pillButtonCss);
    
    
    
            vbox.getChildren().add(hBox);
            //vbox.getChildren().add(rect);
    
            root.getChildren().add(vbox);
        }
    
        @Override
        public void start(Stage primaryStage) throws Exception
        {
            init(primaryStage);
            primaryStage.show();
        }
    
        public static void main(String[] args)
        {
            launch(args);
        }
    }
    
    
    

    I want to create several Rectangles (or in which object or object) in which I want to store data. I want to spend the Rectangles (objects) that appear in front of the user by using the buttons. The example that I put in place does not work correctly. Can you tell me what is the right way to implement this?

    REF javafx 2 - How to change the Rectangles with buttons - stack overflow

    You have two problems:

    User data that assign you to each button switches are a node, not a [Node]. Thus, the cast will fail on line 43.

    When the selected toggle changes, you add another Rectangle to the vbox. You want to replace the rectangle that is in the vbox.

    Try

    vbox.getChildren () .setAll ((Node) group.getSelectedToggle () .getUserData ());

  • Windows 7 and bios sees not the hard drive, but when I connect the hard drive to the USB with an adapter, I see directories and files

    Please, I need pc

    Original title: windows 7 and bios does not see the hard drive. but when I connect the hard drive to the USB with an adapter, I see directories and files... Ive a hp Pavilion, what to do?

    Check the BIOS for hard drive setting.

    Make sure that you do not connect the drive to a SATA/RAID port.

    Old IDE drives - check the jumper on the drive (use "Cable Select" as a starting point), the BIOS must also be set in legacy/compatibility/IDE mode. Note: If you currently use the AHCI mode, then switch to IDE mode may cause Windows to boot.

    J W Stuart: http://www.pagestart.com

  • Create the user by using the API OIM11g R2 with custom attributes

    Friends,

    I am trying to create a user using API in OIM 11 g 2 with a custom attribute.

    < String, Object > HashMap createUserMap = new HashMap < String, Object > ();
    createUserMap.put (UserManagerConstants.AttributeName.FIRSTNAME.getId (), "Test);
    createUserMap.put (UserManagerConstants.AttributeName.LASTNAME.getId (), "tester);
    createUserMap.put (UserManagerConstants.AttributeName.USER_LOGIN.getId (), "tester1");
    createUserMap.put (UserManagerConstants.AttributeName.USERTYPE.getId (), "End user");
    createUserMap.put (UserManagerConstants.AttributeName.EMPTYPE.getId (), "EMP");
    createUserMap.put (UserManagerConstants.AttributeName.PASSWORD.getId (), "Welcome1);
    createUserMap.put (UserManagerConstants.AttributeName.EMAIL.getId (), "[email protected]");
    createUserMap.put ("act_key", new Long("1"));
    createUserMap.put ("USR_UDF_DEPTNO", "10");

    Try
    {
    UserManager userService = oimClient.getService (UserManager.class);

    User user = new User (userLogin, createUserMap);
    Result = userService.create (user) UserManagerResult;
    System.out.println ("State of creation: '" + result.getStatus ());
    }
    catch (System.Exception e)
    {
    e.printStackTrace ();
    }

    But it fails with the error below.
    Create a user application cannot set or change the USR_UDF_DEPTNO attribute, since it is not defined in the corresponding dataset. : create user: USR_UDF_DEPTNO. *

    But this attribute exists in the IOM and I was able to create the user using the user interface with this custom attribute.

    Please let me know what I am doing wrong.

    You must pass a long time don't value not int. It should be that way.

    Long deptno = 1234;
    createUserMap.put ("deptno", deptno);

  • Change after the addition of custom attribute

    Hello

    I use OIM R2 PS1 and the commissioning of OUD user via the connector.

    Depending on the condition, I added a new custom attribute "HomePhone". However, the value of attribute for this attribute is only pushed for the newly created user. For a user (prior to adding the custom attribute), the attribute values runs not more than on the side of the OUD.

    Is there a planner that I need to run?

    Thank you, John

    Hello

    I'm sure that you have not finished the second part of the extension of connector - "Configurations to achieve synchronization app downstream." However, you mentioned that you don't see a problem with the new user, however if you update the value of the attribute, it does not flow down to OUD, as older users.

    Please go through the link: extend the functionality of the connector

    The steps would be - creating new tasks within the definition of processes, mapping, etc..

    Thank you.

  • Change the background color of a region, I can only change the box with text

    Hello. First of all, sorry for my English.

    I created a new model of the region in my application and I want to change the entire background to silver color.
    After reading the forum, I tried this:

    body = background-color: Silver;

    in "attributes in Table form.

    It works, but only the area with text are silver. I want the entire region with a background silver, (like a scratch on the screen, with black labels).

    My region are copied from the region of breadcrump and there the next CEB code:

    < div class = 'wire of Ariane-region' id = "' #REGION_STATIC_ID # ' #REGION_ATTRIBUTES # > #BODY # < / div >"

    I also tried putting < body bgcolor = "gray" > in several places, but never with the same results.

    Another question. I created a theme in my themes of the workspace to play with it, but... where are the files of ccs? they are not in "/ i/themes"... .and as part of the apex I don't see a way to change the footer, and an other things I want to do.

    Published by: Andres Vilallave on February 15, 2012 16:14

    Andres Vilallave wrote:
    Yes!, it works...
    Well, I think I have more visual changes now... (God thank you...)

    Good.

    But I want to learn more about the themes...
    I would like to change the theme 4, "Topaz".
    As you say, I created a copy of the file ' i/themes/theme_4"as"i/themes/my_theme_4 ".

    I have said "+ are not... create new files there as these can be changed by future updates APEX. Create your own theme folder. + ", i.e. to use a different physical location, which is referenced by another virtual folder (depending on the architecture of the Web server used).

    Then I created a new theme based on theme4 in my workspace as "my"Topaz". "" My Topaz"" theme is now available in the repository of the theme in "custom themes.
    Now I can change the templates, etc., but the css files what, image files, etc., are My_Topaz to help? Are ¿where?.
    Guess as you say I need to link "" My Topaz"" theme in the my_theme_4 folder, by assigning files in the models of the apex, how can I I do this?

    The definition of header for each page template in the theme contains elements of binding that reference the URL of the CSS as style sheets:

      
      
      
      
    

    These must be changed to refer to the new URL CSS files:

      
    

    Notice that the page templates use conditional comments to provide additional style sheets with CSS hacks and fixes for broken Microsoft browsers.

    Some other models can also reference image etc. of localities in theme files (although this is less common in the APEX 4.0 + themes).

Maybe you are looking for