Configuring Siebel Open UI > Post-Upgrade Configuration Tasks > Updating Physical Renderer Customizations for Controls >

Control Value Access and Changes


Beginning in Siebel Innovation Pack 2014, Siebel Open UI requires that renderer code that retrieves and sets control values from the DOM consults with the plug-in wrapper interface of the control. Any changes required to the DOM will need to be completed by way of the control plug-in wrapper interface.

Any changes required to the value of the controls will need to be completed by way of the control plug-in wrapper interface. The renderer should not make the changes in itself. The plug-in wrapper should be decorated with the ability to do what is required on the physical UI based on the logical control that it is representing. Wrapper methods can further be customized to decorate on top of these values if required.

To adhere to the conventions used in Siebel Innovation Pack 2014 and later, you need to determine if you have code that needs to be modified. To do this you must find the control value access with specific types in your custom renderer code, and replace that code with new code.

To find and modify the control value access types in your custom renderer code

  1. Determine if you have code that needs to be modified by searching for calls similar to either of the following code samples:
    • var value = $('[name="' + control.GetInputName() + '"]').val();
    • var value = $('#' + control.GetInputName()).attr('val');

      NOTE:  Access is not limited to these calls. Similar types of calls that attempt to find the DOM element using the control object should also be replaced.

  2. Replace all instances of calls similar to code discovered in Step 1 using following convention:

    var value = this.GetUIWrapper(control).GetValue();

    These modifications help ensure that the correct jQuery element representing the control on the UI is retrieved, irrespective of the type of renderer from which the call is being made.

    GetValue() is the plug-in wrapper API that is responsible for getting the DOM value of the control. Similar to this explanation, this change will first fetch the correct wrapper for the control in question and then executes the GetValue API

  3. Determine if you have code that needs to be modified by searching for calls similar to either of the following code samples:
    • $('[name="' + control.GetInputName() + '"]').val(newValue);
    • $('#' + control.GetInputName()).attr('val', newValue);

      NOTE:  Access is not limited to these calls. Similar types of calls that attempt to find the DOM element using the control object should also be replaced.

  4. Replace all instances of calls similar to code discovered in Step 3 using following convention:

    this.GetUIWrapper(control).SetValue(value, index);

    NOTE:  The value set affects neither the client record set nor the server data, unless explicitly committed.

  5. (Optional) Other customizations might be necessary if you are using a custom plug-in wrapper that overrides the base wrapper's API which may affect the value before setting it on the DOM. The following is an example of such a customization:

    CustomPW.prototype.SetValue = function (value, index) {

    value = value + "_suffix";

    SiebelAppFacade.CustomPW.superclass.SetValue.call(this, value, index);

    }

Configuring Siebel Open UI Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Legal Notices.