Can't Update Lighthouse attributes :(

Hi all,
I have a custom workflow I am working on. The custom workflow is being used by administrators to change a users user name. I am having a weird problem. I check out the View, set a bunch of data (username, email, etc) and then check in the view. The data is all being updated on the Resources, but not on Lighthouse. Afterwards, I then open the user under edit, and go to save, and it wants to save over the newer values on the resources with the older values in lighthouse.
I don't know why the Lighthouse attributes are not getting updated...
Here is the workflow:
<!-- MemberObjectGroups="#ID#Top" createDate="Fri Jun 29 10:05:49 PDT 2007" extensionClass="WFProcess" id="#ID#B1B91E225EF0A6F9:1979EB:1136EF5F51B:-7FD0" name="UO_changeUsername" visibility="runschedule"-->
<TaskDefinition id='#ID#B1B91E225EF0A6F9:1979EB:1136EF5F51B:-7FD0' name='UO_changeUsername' lock='Configurator#1184960068433' creator='Configurator' createDate='1183136749878' lastModifier='Configurator' lastModDate='1184959768387' lastMod='719' taskType='Workflow' executor='com.waveset.workflow.WorkflowExecutor' suspendable='true' syncControlAllowed='true' execMode='sync' execLimit='0' resultLimit='0' resultOption='delete' visibility='runschedule' progressInterval='0'>
<Form name='uoChangeUsernameForm' objectLocationID='objectName=UO_changeUsername&isBegin=true&objectPath=81&objectType=TaskDefinition'>
<Display class='EditForm'/>
<defvar name='singleId'>
<block name='singleIdVariable' trace='true'>
<cond>
<eq>
<length>
<get>
<ref>form_inputs</ref>
<s>userObjectIds</s>
</get>
</length>
<i>1</i>
</eq>
<s>true</s>
<s>false</s>
</cond>
</block>
</defvar>
<defvar name='userAccountId'>
<cond>
<eq>
<ref>singleId</ref>
<s>true</s>
</eq>
<block name='fetchTheId' trace='true'>
<get>
<get>
<ref>form_inputs</ref>
<s>userObjectIds</s>
</get>
<i>0</i>
</get>
</block>
</cond>
</defvar>
<Field name='theUser'>
<Derivation>
<block>
<set name='session'>
<invoke name='getAuthenticatedContext'>
<new class='com.waveset.session.InternalSession'/>
<s>Configurator</s>
</invoke>
</set>
<invoke name='getView'>
<ref>:display.session</ref>
<concat>
<s>User:</s>
<ref>userAccountId</ref>
</concat>
<map>
<s>authorized</s>
<s>true</s>
<s>Form</s>
<s>UO Empty Form</s>
</map>
</invoke>
</block>
</Derivation>
<Validation>
<cond>
<not>
<eq>
<ref>theUser.accounts[Lighthouse].accountClaimed</ref>
<s>true</s>
</eq>
</not>
<s>You may not modify unclaimed accounts.</s>
</cond>
</Validation>
</Field>
<Field name='theUser.waveset.accountId'>
<Display class='Label'>
<Property name='title' value='Account ID'/>
</Display>
</Field>
<Field name='newUsername'>
<Display class='Text'>
<Property name='title' value='New Username'/>
</Display>
<Validation>
<block name='validation' trace='true'>
<cond>
<neq>
<rule name='UO Username Library:existsInAuth'>
<argument name='potentialUsername'>
<downcase>
<ref>newUsername</ref>
</downcase>
</argument>
</rule>
<i>0</i>
</neq>
<s>The username you have selected is already in use. Please choose a different username.</s>
<cond>
<neq>
<rule name='UO Username Library:alphanumericOnly'>
<argument name='inputString' value='$(newUsername)'/>
</rule>
<ref>newUsername</ref>
</neq>
<s>The username may only contain alpha-numeric characters. No other character types are allowed.</s>
</cond>
</cond>
</block>
</Validation>
</Field>
</Form>
<Extension>
<WFProcess name='UO_changeUsername' title='UO_changeUsername' maxSteps='0'>
<Variable name='theUser' input='true'/>
<Variable name='newUsername'/>
<Variable name='error'/>
<Activity id='0' name='start'>
<ReportTitle>
<s>start</s>
</ReportTitle>
<Transition to='Update Username Attributes'/>
<WorkflowEditor x='56' y='41'/>
</Activity>
<Activity id='1' name='end'>
<ReportTitle>
<s>end</s>
</ReportTitle>
<WorkflowEditor x='362' y='514'/>
</Activity>
<Activity id='2' name='ReProvision User'>
<ReportTitle>
<s>ReProvision User</s>
</ReportTitle>
<Action id='0' name='Set Process View'>
<ReportTitle>
<s>Set Process View</s>
</ReportTitle>
<expression>
<block>
<set name='theUser.viewOptions.Form'>
<s>UO Empty Form</s>
</set>
</block>
</expression>
</Action>
<Action id='1' name='ReProvision' application='com.waveset.session.WorkflowServices'>
<ReportTitle>
<s>ReProvision</s>
</ReportTitle>
<Argument name='op' value='checkinView'/>
<Argument name='view'>
<ref>theUser</ref>
</Argument>
</Action>
<Transition to='end'/>
<WorkflowEditor x='337' y='359'/>
</Activity>
<Activity id='3' name='Update Username Attributes'>
<ReportTitle>
<s>Update Username Attributes</s>
</ReportTitle>
<Action id='0' name='Update Attributes'>
<ReportTitle>
<s>Update Attributes</s>
</ReportTitle>
<expression>
<block name='ifAccountIDNeedsToChange'>
<block name='setting' trace='true'>
<set name='theUser.update.accounts[Lighthouse].changes[Uname].old'>
<ref>theUser.accounts[Lighthouse].Uname</ref>
</set>
<set name='theUser.update.accounts[Lighthouse].changes[Uname].new'>
<ref>newUsername</ref>
</set>
<set name='theUser.update.accounts[Lighthouse].selected'>
<s>true</s>
</set>
<set name='theUser.accounts[Lighthouse].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.accounts[Lighthouse].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.attributes.Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.accounts[LDAP].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.accounts[LDAP].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.update.accounts[Lighthouse].changes[email].new'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.update.accounts[Lighthouse].changes[email].old'>
<ref>theUser.accounts[Lighthouse].email</ref>
</set>
<set name='theUser.accounts[Lighthouse].email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.waveset.email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.waveset.accounts[Lighthouse].email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.accounts[LDAP].email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.accounts[Lighthouse].Uname'>
<ref>newUsername</ref>
</set>
<append name='theUser.update.toUpdate'>
<s>Lighthouse</s>
</append>
<set name='theUser.Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.accountId'>
<ref>newUsername</ref>
</set>
<set name='theUser.accounts[Lighthouse].accountType'>
<s>TEST</s>
</set>
</block>
</block>
</expression>
</Action>
<Action id='1' name='Update Auth DB'>
<ReportTitle>
<s>Update Auth DB</s>
</ReportTitle>
</Action>
<Transition to='ReProvision User'/>
<WorkflowEditor x='212' y='189'/>
</Activity>
</WFProcess>
</Extension>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
</MemberObjectGroups>
<Properties>
<Property name='editorOriginalName' value='UO_changeUsername'/>
</Properties>
</TaskDefinition>

Hi all,
I have a custom workflow I am working on. The custom workflow is being used by administrators to change a users user name. I am having a weird problem. I check out the View, set a bunch of data (username, email, etc) and then check in the view. The data is all being updated on the Resources, but not on Lighthouse. Afterwards, I then open the user under edit, and go to save, and it wants to save over the newer values on the resources with the older values in lighthouse.
I don't know why the Lighthouse attributes are not getting updated...
Here is the workflow:
<!-- MemberObjectGroups="#ID#Top" createDate="Fri Jun 29 10:05:49 PDT 2007" extensionClass="WFProcess" id="#ID#B1B91E225EF0A6F9:1979EB:1136EF5F51B:-7FD0" name="UO_changeUsername" visibility="runschedule"-->
<TaskDefinition id='#ID#B1B91E225EF0A6F9:1979EB:1136EF5F51B:-7FD0' name='UO_changeUsername' lock='Configurator#1184960068433' creator='Configurator' createDate='1183136749878' lastModifier='Configurator' lastModDate='1184959768387' lastMod='719' taskType='Workflow' executor='com.waveset.workflow.WorkflowExecutor' suspendable='true' syncControlAllowed='true' execMode='sync' execLimit='0' resultLimit='0' resultOption='delete' visibility='runschedule' progressInterval='0'>
<Form name='uoChangeUsernameForm' objectLocationID='objectName=UO_changeUsername&isBegin=true&objectPath=81&objectType=TaskDefinition'>
<Display class='EditForm'/>
<defvar name='singleId'>
<block name='singleIdVariable' trace='true'>
<cond>
<eq>
<length>
<get>
<ref>form_inputs</ref>
<s>userObjectIds</s>
</get>
</length>
<i>1</i>
</eq>
<s>true</s>
<s>false</s>
</cond>
</block>
</defvar>
<defvar name='userAccountId'>
<cond>
<eq>
<ref>singleId</ref>
<s>true</s>
</eq>
<block name='fetchTheId' trace='true'>
<get>
<get>
<ref>form_inputs</ref>
<s>userObjectIds</s>
</get>
<i>0</i>
</get>
</block>
</cond>
</defvar>
<Field name='theUser'>
<Derivation>
<block>
<set name='session'>
<invoke name='getAuthenticatedContext'>
<new class='com.waveset.session.InternalSession'/>
<s>Configurator</s>
</invoke>
</set>
<invoke name='getView'>
<ref>:display.session</ref>
<concat>
<s>User:</s>
<ref>userAccountId</ref>
</concat>
<map>
<s>authorized</s>
<s>true</s>
<s>Form</s>
<s>UO Empty Form</s>
</map>
</invoke>
</block>
</Derivation>
<Validation>
<cond>
<not>
<eq>
<ref>theUser.accounts[Lighthouse].accountClaimed</ref>
<s>true</s>
</eq>
</not>
<s>You may not modify unclaimed accounts.</s>
</cond>
</Validation>
</Field>
<Field name='theUser.waveset.accountId'>
<Display class='Label'>
<Property name='title' value='Account ID'/>
</Display>
</Field>
<Field name='newUsername'>
<Display class='Text'>
<Property name='title' value='New Username'/>
</Display>
<Validation>
<block name='validation' trace='true'>
<cond>
<neq>
<rule name='UO Username Library:existsInAuth'>
<argument name='potentialUsername'>
<downcase>
<ref>newUsername</ref>
</downcase>
</argument>
</rule>
<i>0</i>
</neq>
<s>The username you have selected is already in use. Please choose a different username.</s>
<cond>
<neq>
<rule name='UO Username Library:alphanumericOnly'>
<argument name='inputString' value='$(newUsername)'/>
</rule>
<ref>newUsername</ref>
</neq>
<s>The username may only contain alpha-numeric characters. No other character types are allowed.</s>
</cond>
</cond>
</block>
</Validation>
</Field>
</Form>
<Extension>
<WFProcess name='UO_changeUsername' title='UO_changeUsername' maxSteps='0'>
<Variable name='theUser' input='true'/>
<Variable name='newUsername'/>
<Variable name='error'/>
<Activity id='0' name='start'>
<ReportTitle>
<s>start</s>
</ReportTitle>
<Transition to='Update Username Attributes'/>
<WorkflowEditor x='56' y='41'/>
</Activity>
<Activity id='1' name='end'>
<ReportTitle>
<s>end</s>
</ReportTitle>
<WorkflowEditor x='362' y='514'/>
</Activity>
<Activity id='2' name='ReProvision User'>
<ReportTitle>
<s>ReProvision User</s>
</ReportTitle>
<Action id='0' name='Set Process View'>
<ReportTitle>
<s>Set Process View</s>
</ReportTitle>
<expression>
<block>
<set name='theUser.viewOptions.Form'>
<s>UO Empty Form</s>
</set>
</block>
</expression>
</Action>
<Action id='1' name='ReProvision' application='com.waveset.session.WorkflowServices'>
<ReportTitle>
<s>ReProvision</s>
</ReportTitle>
<Argument name='op' value='checkinView'/>
<Argument name='view'>
<ref>theUser</ref>
</Argument>
</Action>
<Transition to='end'/>
<WorkflowEditor x='337' y='359'/>
</Activity>
<Activity id='3' name='Update Username Attributes'>
<ReportTitle>
<s>Update Username Attributes</s>
</ReportTitle>
<Action id='0' name='Update Attributes'>
<ReportTitle>
<s>Update Attributes</s>
</ReportTitle>
<expression>
<block name='ifAccountIDNeedsToChange'>
<block name='setting' trace='true'>
<set name='theUser.update.accounts[Lighthouse].changes[Uname].old'>
<ref>theUser.accounts[Lighthouse].Uname</ref>
</set>
<set name='theUser.update.accounts[Lighthouse].changes[Uname].new'>
<ref>newUsername</ref>
</set>
<set name='theUser.update.accounts[Lighthouse].selected'>
<s>true</s>
</set>
<set name='theUser.accounts[Lighthouse].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.accounts[Lighthouse].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.attributes.Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.accounts[LDAP].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.accounts[LDAP].Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.update.accounts[Lighthouse].changes[email].new'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.update.accounts[Lighthouse].changes[email].old'>
<ref>theUser.accounts[Lighthouse].email</ref>
</set>
<set name='theUser.accounts[Lighthouse].email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.waveset.email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.waveset.accounts[Lighthouse].email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.accounts[LDAP].email'>
<concat>
<ref>newUsername</ref>
<s>@uoregon.edu</s>
</concat>
</set>
<set name='theUser.accounts[Lighthouse].Uname'>
<ref>newUsername</ref>
</set>
<append name='theUser.update.toUpdate'>
<s>Lighthouse</s>
</append>
<set name='theUser.Uname'>
<ref>newUsername</ref>
</set>
<set name='theUser.waveset.accountId'>
<ref>newUsername</ref>
</set>
<set name='theUser.accounts[Lighthouse].accountType'>
<s>TEST</s>
</set>
</block>
</block>
</expression>
</Action>
<Action id='1' name='Update Auth DB'>
<ReportTitle>
<s>Update Auth DB</s>
</ReportTitle>
</Action>
<Transition to='ReProvision User'/>
<WorkflowEditor x='212' y='189'/>
</Activity>
</WFProcess>
</Extension>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
</MemberObjectGroups>
<Properties>
<Property name='editorOriginalName' value='UO_changeUsername'/>
</Properties>
</TaskDefinition>

Similar Messages

  • How do I update "Rendered" attribute property from VO in runtime?

    I can override isAttributeUpdateable() in RowImpl for "updateable" attribute property of a VO in runtime.
    Is there API to update "Rendered" attribute property? I need to set it based on some condition or business rule in runtime.
    thanks,

    If you have a work flow there are several ways to do this. If the attribute is global, and can change on all resources, you can set user.global.<attribute> to what ever you want and it will usually propagate out fine. You can also update the attribute specifically on the resource with user.accounts[LDAP].<attribute>.

  • Can we update the Category attribute values of a file

    Can we update the Category attibute values of a file with out checkout the file?
    I have set the version configuration to folder and try to update the category attribute values of a file under that folder,
    It is asking to checkout the file before modifying the category attibute values.
    Is it required to checkout the file before modifying the category attribute values of that file?
    Is there any way to update the category attribute values without checkout the file?
    Please help on this

    One of the ways i can think of is using Batch Loader script for large number of files. Mention such files in Batch Loader script, and it will update category and all meta-data required in terms of next revision.
    In case number of files are less manual checkout and check-in will help.

  • Can we update oracle standard table Attributes column by custom trigger?

    Can we update the oracle Standard table's Attributes column using custom trigger? Is it allowed by oracle? Is this supported?
    Thanks

    ATTRIBUTE columns store DFF information and therefore custom code can be used to update their contents. Care must be taken that such updates do not cause "logical" corruption (an ATTRIBUTE column may be designed to store the color of a product, for example, but an incorrect SQL statement can update the value to a numeric one, thus causing corruption - Oracle does not have a means to check the validity of these update statements). Also, some localizations, such as Brazil and India, reserve some ATTRIBUTE columns for their use - updating such columns is not supported. More information may be found in the Flexfields Guide for your release at http://www.oracle.com/technology/documentation/applications.html
    HTH
    Srini

  • Can't update in mysql

    I am using JSP and MYSQL with a bean that does my database work.
    my search.jsp looks up records, when I click edit it sends the values to my inventory_admin.jsp
    When I make the changes to the data, the data is not saved in the database.
    Please, look see!
    <!--search.jsp-->
    <jsp:useBean id="inventoryBean" scope="session" class="mybeans.inventoryBean" />
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <%// Do search with bean.
         String s = request.getParameter("searchField");
         int searchId = -1;
         if(s != null)
              try
                   searchId = Integer.parseInt(s);
              catch(NumberFormatException e) {}
         //Do actual search with bean
         boolean rc = false;
         if(searchId != -1)
              rc = inventoryBean.findByPrimaryKey(searchId);
              %>
    <form action="search.jsp" method="post" enctype="application/x-www-form-urlencoded">
    <h2 align="center">Software Inventory </h2>
    <p align="center"> </p>
    <p>Lookup:
    <input name="searchField" type="text" id="searchField">
    <input type="submit" name="Submit" value="Submit">
    </p>
    </form>
    <%
         //Output 'not found' message if needed
         if(rc == false)
              out.println("<P><B>Product not found</B></P>");
    %>
    <table width="25%" border="0">
    <tr>
    <td>Item ID:</td>
    <td><jsp:getProperty name="inventoryBean" property="itemid" /></td>
    </tr>
    <tr>
    <td>Product Name:</td>
    <td><jsp:getProperty name="inventoryBean" property="item" /></td>
    </tr>
    <tr>
    <td>Platform:</td>
    <td><jsp:getProperty name="inventoryBean" property="platform" /></td>
    </tr>
    <tr>
    <td>Serial:</td>
    <td><jsp:getProperty name="inventoryBean" property="serial" /></td>
    </tr>
    <tr>
    <td>Description:</td>
    <td><jsp:getProperty name="inventoryBean" property="description" /></td>
    </tr>
    </table>
    <p>&nosave=yes">EDIT</a></p>
    <p align="center"> </p>
    </body>
    </html>
    <!--inventory_admin.jsp-->
    <jsp:useBean id="inventoryBean" scope="session" class="mybeans.inventoryBean" />
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <%-- Copy all form variables at once into the bean--%>
    <jsp:setProperty name="inventoryBean" property="*" />
    <%
         boolean saveResult = false;
         boolean notSaved = false;
         //Save our changes
         String s = request.getParameter("nosave");
         if(s == null || s.equals("yes") == false)
    saveResult = inventoryBean.update();
         else
              notSaved = true;
         //Do search with bean
         s = request.getParameter("itemid");
         int searchId = -1;
         if(s != null)
              try
                   searchId = Integer.parseInt(s);
              catch(NumberFormatException e) {}
         //Do actual search with Bean
         boolean rc;
         if(searchId != -1)
              rc = inventoryBean.findByPrimaryKey(searchId);
    %>
    <h2 align="center">Software Inventory - Edit Mode</h2>
    <FORM action="inventory_admin.jsp" method="post" enctype="application/x-www-form-urlencoded">
    <table width="25%" border="0">
    <tr>
    <td>ITEMID</td>
    <td><jsp:getProperty name="inventoryBean" property="itemid" /></td>
    </tr
    <tr>
    <td>Product Name:</td>
    <td><input name="description" type="text" value="<jsp:getProperty name="inventoryBean" property="item" />"></td>
    </tr>
    <tr>
    <td>Platform:</td>
    <td><input name="description" type="text" value="<jsp:getProperty name="inventoryBean" property="platform" />"></td>
    </tr>
    <tr>
    <td>Serial:</td>
    <td><input name="description" type="text" value="<jsp:getProperty name="inventoryBean" property="serial" />"></td>
    </tr>
    <tr>
    <td>Description:</td>
    <td><input name="description" type="text" value="<jsp:getProperty name="inventoryBean" property="description" />"></td>
    </tr>
    </table>
    <%
         if(notSaved == false)
              if(saveResult == true)
                   out.println("Changes saved");
              else
                   out.println("Changes NOT saved");
    %>
    <p><input type="submit" name="Submit" value="Submit"></p>
    <p align="center"> </p>
    </FORM>
    </body>
    </html>
    //inventory.java
    Here is the Bean Im using:
    // inventoryBean.java - Simple database bean for table products
    package mybeans; // Our custom 'package'.
    import mybeans.DBConfigInfo; // Import helper classes
    import mybeans.DBWorker; // for simpler database programming.
    // Import other packages here.
    import java.sql.*; // For database access.
    import java.util.Hashtable; // For findRecords().
    public class inventoryBean
    private boolean isBeanDataValid = false; // Set when bean contains valid data.
    private boolean isDBError = false; // Stores whether there was a processing error.
    private String dbErrorMsg = "(No error)";
    private DBWorker dbWorker; // Helper object for JDBC programming.
    // Attributes
    private String item = "";
    private String platform = "";
    private String serial = "";
    private String description = "";
    private int itemid = 0; // Primary key field
    public void clear()
    // Clears data in all your properties to 'empty' state.
    item = "";
    platform = "";
    serial = "";
    description = "";
    itemid = 0; // Primary key field
    // Accessor Methods
    public void setItem(String newItem) { item = newItem; }
    public String getItem() { return item; }
    public void setPlatform(String newPlatform) { platform = newPlatform; }
    public String getPlatform() { return platform; }
    public void setSerial(String newSerial) { serial = newSerial; }
    public String getSerial() { return serial; }
    public void setDescription(String newDescription) { description = newDescription; }
    public String getDescription() { return description; }
    public void setItemid(int newItemid) { itemid = newItemid; }
    public int getItemid() { return itemid; }
    // Operations
    // Default constructor.
    public inventoryBean()
    // Create a helper object to work with database.
    // DO NOT DELETE THIS CODE.
    dbWorker = new DBWorker();
    // Database Operations
    // Built-in methods:
    public boolean findByPrimaryKey(int searchId)
    // Use this method to find 1 record by primary key for your table.
    // (After this call, all fields will be loaded into your properties.)
    // Clear existing data, if any.
    clear();
    isBeanDataValid = false;
    // Query by primary key.
    boolean rc = dbWorker.open();
    if(rc == false)
    isDBError = true;
    dbErrorMsg = dbWorker.errorMsg;
    return false;
    try
    // 1) Get a connection.
    Connection conn = dbWorker.getConnection();
    // 2) Create a statement.
    Statement st = conn.createStatement();
    // 3) Build your SQL.
    String sql = "SELECT item, platform, serial, description, " +
    "itemid " +
    "FROM products " +
    "WHERE itemid=" + searchId;
    //System.out.println("DEBUG SQL =" + sql);
    // 4) Get a result set.
    ResultSet rs = st.executeQuery(sql);
    // 5) Move to first record
    if(rs.next())
    // 6) Retrieve fields into your properties using JDBC get??? methods.
    item = rs.getString("item");
    platform = rs.getString("platform");
    serial = rs.getString("serial");
    description = rs.getString("description");
    itemid = rs.getInt("itemid");
    // 7) Ensure non-null String fields with dbWorker.safeStr()
    item = dbWorker.safeStr(item);
    platform = dbWorker.safeStr(platform);
    serial = dbWorker.safeStr(serial);
    description = dbWorker.safeStr(description);
    // Set result code.
    isBeanDataValid = true;
    // 8) Close all DB objects.
    rs.close();
    st.close();
    dbWorker.close(); // Connection too.
    catch(SQLException e)
    System.out.println("Error in findByPrimaryKey (" + e.getMessage() + ")");
    return isBeanDataValid;
    // Update a record
    public boolean update()
    // Use this to update a record by a primary key.
    boolean resultCode = false;
    // Query by primary key.
    boolean rc = dbWorker.open();
    if(rc == false)
    isDBError = true;
    dbErrorMsg = dbWorker.errorMsg;
    return false;
    try // Remember to put all DB code inside a try block!
    // 1) Get a connection.
    Connection conn = dbWorker.getConnection();
    // 2) Create a statement.
    Statement st = conn.createStatement();
    // 3) Build your SQL.
    String sql = "UPDATE products SET item=" + dbWorker.sqlStr(item) + "," +
    "platform=" + dbWorker.sqlStr(platform) + "," +
    "serial=" + dbWorker.sqlStr(serial) + "," +
    "description=" + dbWorker.sqlStr(description)+
    " WHERE itemid=" + itemid;
    //System.out.println("DEBUG SQL =" + sql);
    // 4) Run action query.
    int rowsAffected = st.executeUpdate(sql);
    // 5) See if we succeeded (1 recorded affected).
    if(rowsAffected == 1)
    resultCode = true;
    else
    System.out.println("Warning: Can't update in update()!");
    // 6) Close all DB objects.
    st.close();
    dbWorker.close(); // Connection too.
    catch(SQLException e)
    System.out.println("Error in update (" + e.getMessage() + ")");
    return resultCode;
    // Delete a record
    public boolean delete(int deleteId)
    // Use this to delete a record by a primary key.
    boolean resultCode = false;
    // Query by primary key.
    boolean rc = dbWorker.open();
    if(rc == false)
    isDBError = true;
    dbErrorMsg = dbWorker.errorMsg;
    return false;
    try
    // 1) Get a connection.
    Connection conn = dbWorker.getConnection();
    // 2) Create a statement.
    Statement st = conn.createStatement();
    // 3) Build your SQL.
    String sql = "DELETE FROM products WHERE itemid=" + deleteId;
    //System.out.println("DEBUG SQL =" + sql);
    // 4) Run action query.
    int rowsAffected = st.executeUpdate(sql);
    // 5) See if we succeeded (1 recorded affected).
    if(rowsAffected == 1)
    resultCode = true;
    else
    System.out.println("Warning: Can't delete ID #" + deleteId + " in delete()!");
    // 6) Close all DB objects.
    st.close();
    dbWorker.close(); // Connection too.
    catch(SQLException e)
    System.out.println("Error in delete (" + e.getMessage() + ")");
    return resultCode;
    // Insert a new record.
    public boolean insert(String newItem, String newPlatform, String newSerial, String newDescription,
    int newItemid)
         // Use this to update a record by a primary key.
    boolean resultCode = false;
    // Query by primary key.
    boolean rc = dbWorker.open();
    if(rc == false)
    isDBError = true;
    dbErrorMsg = dbWorker.errorMsg;
    return false;
    try // Remember to put all DB code inside a try block!
    // 1) Get a connection.
    Connection conn = dbWorker.getConnection();
    // 2) Create a statement.
    Statement st = conn.createStatement();
    // 3) Build your SQL.
    String sql="INSERT INTO products(item, platform, serial, description, " +
    "itemid) " +
    "VALUES(" + dbWorker.sqlStr(newItem) + "," + dbWorker.sqlStr(newPlatform) + "," + dbWorker.sqlStr(newSerial) + "," + dbWorker.sqlStr(newDescription) + "," +
    newItemid + ")";
    //System.out.println("DEBUG SQL =" + sql);
    // 4) Run action query.
    int rowsAffected = st.executeUpdate(sql);
    // 5) See if we succeeded (1 recorded affected).
    if(rowsAffected == 1)
    resultCode = true;
    else
    System.out.println("Warning: Can't update in insert()!");
    // 6) Close all DB objects.
    st.close();
    dbWorker.close(); // Connection too.
    catch(SQLException e)
    System.out.println("Error in insert (" + e.getMessage() + ")");
    return resultCode;
    public int findMaxPrimaryKey()
    // Use this method to find the current max. value for a primary key
    // in the database for a given table.
    int retVal = -1;
    // Query by primary key.
    boolean rc = dbWorker.open();
    if(rc == false)
    isDBError = true;
    dbErrorMsg = dbWorker.errorMsg;
    return -1;
    try // Remember to put all DB code inside a try block!
    // 1) Get a connection.
    Connection conn = dbWorker.getConnection();
    // 2) Create a statement.
    Statement st = conn.createStatement();
    // 3) Build your SQL.
    String sql = "SELECT MAX(itemid) FROM products";
    //System.out.println("DEBUG SQL =" + sql);
    // 4) Get a result set.
    ResultSet rs = st.executeQuery(sql);
    // 5) Move to first record
    if(rs.next())
    // 6) Retrieve fields into your properties using JDBC get??? methods.
    retVal = rs.getInt(1); // Get first and only column.
    // 7) Close all DB objects.
    rs.close();
    st.close();
    dbWorker.close(); // Connection too.
    catch(SQLException e)
    System.out.println("Error in findMaxPrimaryKey (" + e.getMessage() + ")");
    return retVal;
    public Hashtable findRecords(String filter, String orderBy)
    // Use this method to return a Hashtable filled with
    // one or more records. You can specified a 'filter'
    // for finding records and 'orderBy' will determine the sort order.
    Hashtable retVal = new Hashtable();
    retVal.put("ROWCOUNT", "0");
    retVal.put("COLUMNCOUNT", "0");
    retVal.put("STATUS", "EMPTY");
    // Query by primary key.
    boolean rc = dbWorker.open();
    if(rc == false)
    isDBError = true;
    dbErrorMsg = dbWorker.errorMsg;
    return retVal;
    try // Remember to put all DB code inside a try block!
    // 1) Get a connection.
    Connection conn = dbWorker.getConnection();
    // 2) Create a statement.
    Statement st = conn.createStatement();
    // 3) Build your SQL.
    String sql = "SELECT item, platform, serial, description, " +
    "itemid " +
    "FROM products " +
    "WHERE " + filter + " " +
    "ORDER BY " + orderBy;
    //System.out.println("DEBUG SQL =" + sql);
    // 4) Get a result set.
    ResultSet rs = st.executeQuery(sql);
    int rowCount = 0;
    // 5) Move to first record (and then next) record.
    while(rs.next())
    // 6) Retrieve fields into your properties using JDBC get??? methods.
    String thisItem = rs.getString("item");
    String thisPlatform = rs.getString("platform");
    String thisSerial = rs.getString("serial");
    String thisDescription = rs.getString("description");
    int thisItemid = rs.getInt("itemid");
    // 7) Ensure non-null String fields with dbWorker.safeStr()
    thisItem = dbWorker.safeStr(thisItem);
    thisPlatform = dbWorker.safeStr(thisPlatform);
    thisSerial = dbWorker.safeStr(thisSerial);
    thisDescription = dbWorker.safeStr(thisDescription);
    // 8) Load this row into our Hashtable.
    // The convention here is to pack each row's column name with an ID
    // indicating the row. "ProjectId" + "0" = "ProjectId0" ===mapped to===> Value
    // Put this record into Hashtable.
    retVal.put("item" + rowCount, thisItem);
    retVal.put("platform" + rowCount, thisPlatform);
    retVal.put("serial" + rowCount, thisSerial);
    retVal.put("description" + rowCount, thisDescription);
    retVal.put("itemid" + rowCount, "" + thisItemid);
    rowCount++;
    // 9) Close all DB objects.
    rs.close();
    st.close();
    dbWorker.close(); // Connection too.
    // Write info to our hashtable--Since this container hold virtually anything,
    // you can put in whatever 'metadata' you want about your result set.
    retVal.put("ROWCOUNT", "" + rowCount);
    retVal.put("COLUMNCOUNT", "5");
    retVal.put("STATUS", "OK");
    catch(SQLException e)
    System.out.println("Error in findRecords (" + e.getMessage() + ")");
    retVal.put("STATUS", "ERROR");
    return retVal;
    //============================================================
    // DO NOT CHANGE THE CODE BELOW.
    //============================================================
    public boolean isValid()
    // Does bean contain real data?
    return isBeanDataValid;
    public boolean isError()
    // Returns true if there was a DB error.
    return isDBError;
    public String getErrorMsg()
    // Returns error message, if any.
    return dbErrorMsg;
    //=====================================================================
    // TODO: Remember to comment out main() with /* */ for production code!
    //=====================================================================
    // TEST DRIVER CODE
    public static void main(String[] args)
    // Test driver code goes here.
    String beanName = "inventoryBean";
    String tableName = "products";
    boolean isDataValidationError = false;
    // Exercise CRUD functionality of this bean.
    System.out.println("==============================================================");
    System.out.println("Starting Test Driver for bean " + beanName + "....");
    System.out.println("==============================================================");
    // Create bean.
    inventoryBean myBean = new inventoryBean();
    // Create a new record.
    int newId = myBean.findMaxPrimaryKey();
    newId++;
    boolean rc = myBean.insert("e", "t", "g", "R",
    newId);
    if(rc)
    System.out.println("SUCCESS: Inserted new record #= " + newId + ".");
    else
    System.out.println("ERROR! Can't insert record #= " + newId + ".");
    System.out.println("====================================================");
    System.out.println("VALIDATION FAILED: Test driver generated an error.");
    System.out.println("====================================================");
    return;
    // Retrieve a record
    rc = myBean.findByPrimaryKey(newId);
    if(rc)
    System.out.println("SUCCESS: Record #" + newId + " found.");
    else
    System.out.println("====================================================");
    System.out.println("VALIDATION FAILED: Test driver generated an error.");
    System.out.println("====================================================");
    System.out.println("ERROR! Record #" + newId + " NOT found.");
    // Simulate using set??? accessor methods with test data.
    // (Note: We don't change the primary key.)
    int testItemid = newId;
    System.out.println("Testing set???() accessor methods....");
    System.out.println("Setting Record #" + newId + " to:");
    System.out.println(" inventoryBean.setItem(testItem); // = R");
    myBean.setItem(testItem);
    System.out.println(" inventoryBean.setPlatform(testPlatform); // = Y");
    myBean.setPlatform(testPlatform);
    System.out.println(" inventoryBean.setSerial(testSerial); // = E");
    myBean.setSerial(testSerial);
    System.out.println(" inventoryBean.setDescription(testDescription); // = k");
    myBean.setDescription(testDescription);
    System.out.println(" inventoryBean.setItemid(testItemid); // = " + newId);
    myBean.setItemid(testItemid);
    // Call update.
    rc = myBean.update();
    if(rc)
    System.out.println("SUCCESS: Record #" + newId + " updated.");
    else
    System.out.println("ERROR! Record #" + newId + " NOT updated.");
    System.out.println("====================================================");
    System.out.println("VALIDATION FAILED: Test driver generated an error.");
    System.out.println("====================================================");
    return;
    // Requery and validate each field.
    rc = myBean.findByPrimaryKey(newId);
    if(rc)
    System.out.println("SUCCESS: Updated Record #" + newId + " found.");
    else
    System.out.println("====================================================");
    System.out.println("VALIDATION FAILED: Test driver generated an error.");
    System.out.println("====================================================");
    System.out.println("ERROR! Record #" + newId + " NOT found");
    // Simulate using get??? accessor methods.
    // Validate updated values against test values.
    System.out.println("Validating Record #" + newId + ":");
    String testData;
    String actualItem = myBean.getItem();
    testData = "R";
    if(testData.equals(actualItem))
    System.out.println(" OK: inventoryBean.getItem() = actualItem");
    else
    System.out.println(" ERROR! inventoryBean.getItem() returned [" + actualItem + "] instead of [R]");
    isDataValidationError = true;
    String actualPlatform = myBean.getPlatform();
    testData = "Y";
    if(testData.equals(actualPlatform))
    System.out.println(" OK: inventoryBean.getPlatform() = actualPlatform");
    else
    System.out.println(" ERROR! inventoryBean.getPlatform() returned [" + actualPlatform + "] instead of [Y]");
    isDataValidationError = true;
    String actualSerial = myBean.getSerial();
    testData = "E";
    if(testData.equals(actualSerial))
    System.out.println(" OK: inventoryBean.getSerial() = actualSerial");
    else
    System.out.println(" ERROR! inventoryBean.getSerial() returned [" + actualSerial + "] instead of [E]");
    isDataValidationError = true;
    String actualDescription = myBean.getDescription();
    testData = "k";
    if(testData.equals(actualDescription))
    System.out.println(" OK: inventoryBean.getDescription() = actualDescription");
    else
    System.out.println(" ERROR! inventoryBean.getDescription() returned [" + actualDescription + "] instead of [k]");
    isDataValidationError = true;
    int actualItemid = myBean.getItemid();
    if(actualItemid == newId)
    System.out.println(" OK: inventoryBean.getItemid() = actualItemid");
    else
    System.out.println(" ERROR! inventoryBean.getItemid() returned [" + actualItemid + "] instead of [" + newId + "]");
    isDataValidationError = true;
    // Cleanup with delete.
    rc = myBean.delete(newId);
    if(rc)
    System.out.println("SUCCESS: Record #" + newId + " deleted.");
    else
    System.out.println("ERROR! Record #" + newId + " NOT deleted.");
    // Now test out findRecords() for up to 100 records.
    Hashtable data = myBean.findRecords("itemid > 0", "itemid");
    String s = (String)data.get("STATUS");
    if(s != null && s.equals("OK"))
    s = (String)data.get("ROWCOUNT");
    int rowCount = Integer.parseInt(s);
    if(rowCount > 100) // Just output first 100 records.
    rowCount = 100;
    System.out.println("SUCCESS: Returning " + rowCount + " records (100 max.) using findRecords():");
    for(int i = 0; i < rowCount; i++)
    System.out.println(" Row #" + i + "=" +
    data.get("item" + i) + ", " +
    data.get("platform" + i) + ", " +
    data.get("serial" + i) + ", " +
    data.get("description" + i) + ", " +
    data.get("itemid" + i));
    else
    System.out.println("ERROR! No rows returned using findRecords()!");
    System.out.println("====================================================");
    System.out.println("VALIDATION FAILED: Test driver generated an error.");
    System.out.println("====================================================");
    return;
    if(isDataValidationError == false)
    // Print final success message.
    System.out.println("================================================================================");
    System.out.println("VALIDATION SUCCESS! Bean " + beanName + " passed all automated tests.");
    System.out.println("================================================================================");
    else
    System.out.println("====================================================================================");
    System.out.println("ERROR! Tests completed but bean " + beanName + " had a data validation error.");
    System.out.println("====================================================================================");

    Couple of pointers.
    1 - use [ code ] tags to post code
    2 - that is WAY too much code for more than a cursory glance. You're lucky the problem was easy to spot.
    Your problem lies in your edit JSP form:
    <td>Product Name:</td>
    <td><input name="description" type="text" value="<jsp:getProperty name="inventoryBean" property="item" />"></td>Note that the name of the input field is different from the jsp property you are populating it with.
    In fact, all of your input fields have a name of "description"
    I would recommend on your inventory_admin.jsp page that you put the following debugging code to make sure that the parameter values come through and are set correctly.
      out.println("name = param: " + request.getParameter("name") + "bean = " + inventoryBean.getName() + "<BR>");
      out.println("description = param:" + request.getParameter("description") + "bean = " + inventoryBean.getDescription() + "<BR>");
      ...

  • How can we update data in LDAP server using PL/SQL.

    Hi,
    How can we update data in LDAP server using PL/SQL program.
    Is there any sample code for refrence.
    Thanks,
    Tarun

    Hi Justin,
    Thanks for your help. You got my correct requirements.
    Tim's example returning all the attributes of current user which is admin user. Please correct me if I am wrong.
    I have the following information:
    the admin user and password,server info , port and ldap_base for admin.
    I have uid and password for regular user, I am trying find the ldap_base for regular user, which may be different from adminuser.
    Please help me.
    Thanks,
    Edited by: james. on Jan 12, 2009 5:39 PM

  • How can i update rows  in a table based on a match from a select query

    Hello
    How can i update rows in a table based on a match from a select query fron two other tables with a update using sqlplus ?
    Thanks Glenn
    table1
    attribute1 varchar2 (10)
    attribute2 varchar2 (10)
    processed varchar2 (10)
    table2
    attribute1 varchar2 (10)
    table3
    attribute2 varchar2 (10)
    An example:
    set table1.processed = "Y"
    where (table1.attribute1 = table2.attribute1)
    and (table1.attribute2 = table3.attribute2)

    Hi,
    Etbin wrote:
    Hi, Frank
    taking nulls into account, what if some attributes are null ;) then the query should look like
    NOT TESTED !
    update table1 t1
    set processed = 'Y'
    where exists(select null
    from table2
    where lnnvl(attribute1 != t1.attribute1)
    and exists(select null
    from table3
    where lnnvl(attribute2 != t1.attribute2)
    and processed != 'Y'Regards
    EtbinYes, you could do that. OP specifically requested something else:
    wgdoig wrote:
    set table1.processed = "Y"
    where (table1.attribute1 = table2.attribute1)
    and (table1.attribute2 = table3.attribute2)This WHERE clause won't be TRUE if any of the 4 attribute columns are NULL. It's debatable about what should be done when those columns are NULL.
    But there is no argument about what needs to be done when processed is NULL.
    OP didn't specifically say that the UPDATEshould or shouldn't be done on rows where processed was already 'Y'. You (quite rightly) introduced a condition that would prevent redo from being generated and triggers from firing unnecessarily; I'm just saying that we have to be careful that the same condition doesn't keep the row from being UPDATEd when it is necessary.

  • OIM: Error while updating Task Attributes

    Hi All,
    I am trying to use PeopleSoft User Management using OIM connector.
    I am facing an error saying "problem in updating Task Attributes" while scheduling a task on OIM design Console. I am trying to update and save PSFT Base Non Trusted User Reconciliation. following is the log message displayed in server command prompt.
    ERROR,11 Apr 2008 05:02:53,287,[XELLERATE.SERVER],Class/Method: tcTSA/eventPostU
    pdate encounter some problems: problem in updating Task Attributes
    com.thortech.xl.scheduler.exception.SchedulerGenericException: problem in updati
    ng Task Attributes
    at com.thortech.xl.scheduler.core.quartz.QuartzSchedulerImpl.updateTaskA
    ttributes(Unknown Source)
    at com.thortech.xl.scheduler.ejb.SchedulerControllerBean.updateTaskAttri
    butes(Unknown Source)
    at com.thortech.xl.scheduler.beans.SchedulerControllerSession.updateTask
    Attributes(Unknown Source)
    at com.thortech.xl.scheduler.beans.SchedulerController_z4f4d2_EOImpl.upd
    ateTaskAttributes(SchedulerController_z4f4d2_EOImpl.java:478)
    at com.thortech.xl.scheduler.beans.SchedulerController_z4f4d2_EOImpl_CBV
    .updateTaskAttributes(Unknown Source)
    at com.thortech.xl.dataobj.tcTSA.eventPostUpdate(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.update(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.ejb.databeansimpl.tcDataObjectBase.save(Unknown Sourc
    e)
    at com.thortech.xl.ejb.beans.tcTSA_u3xmy2_EOImpl.save(tcTSA_u3xmy2_EOImp
    l.java:1437)
    at com.thortech.xl.ejb.beans.tcTSA_u3xmy2_EOImpl_WLSkel.invoke(Unknown S
    ource)
    at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(Activata
    bleServerRef.java:90)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:434)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
    a:429)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
    .java:35)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    Caused by [Nested Exception]:
    java.lang.NullPointerException
    at com.thortech.xl.scheduler.core.quartz.QuartzSchedulerImpl.updateTaskA
    ttributes(Unknown Source)
    at com.thortech.xl.scheduler.ejb.SchedulerControllerBean.updateTaskAttri
    butes(Unknown Source)
    at com.thortech.xl.scheduler.beans.SchedulerControllerSession.updateTask
    Attributes(Unknown Source)
    at com.thortech.xl.scheduler.beans.SchedulerController_z4f4d2_EOImpl.upd
    ateTaskAttributes(SchedulerController_z4f4d2_EOImpl.java:478)
    at com.thortech.xl.scheduler.beans.SchedulerController_z4f4d2_EOImpl_CBV
    .updateTaskAttributes(Unknown Source)
    at com.thortech.xl.dataobj.tcTSA.eventPostUpdate(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.update(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.ejb.databeansimpl.tcDataObjectBase.save(Unknown Sourc
    e)
    at com.thortech.xl.ejb.beans.tcTSA_u3xmy2_EOImpl.save(tcTSA_u3xmy2_EOImp
    l.java:1437)
    at com.thortech.xl.ejb.beans.tcTSA_u3xmy2_EOImpl_WLSkel.invoke(Unknown S
    ource)
    at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(Activata
    bleServerRef.java:90)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:434)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
    a:429)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
    .java:35)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    ERROR,11 Apr 2008 05:02:53,287,[XELLERATE.SERVER],Class/Method: tcDataObj/save E
    rror :Data Update Failed
    ERROR,11 Apr 2008 05:02:53,302,[XELLERATE.DATABASE],Class/Method: tcDataBase/rol
    lbackTransaction encounter some problems: Rollback Executed From
    java.lang.Exception: Rollback Executed From
    at com.thortech.xl.dataaccess.tcDataBase.rollbackTransaction(Unknown Sou
    rce)
    at com.thortech.xl.dataobj.tcDataObj.rollback(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.doRollback(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.ejb.databeansimpl.tcDataObjectBase.save(Unknown Sourc
    e)
    at com.thortech.xl.ejb.beans.tcTSA_u3xmy2_EOImpl.save(tcTSA_u3xmy2_EOImp
    l.java:1437)
    at com.thortech.xl.ejb.beans.tcTSA_u3xmy2_EOImpl_WLSkel.invoke(Unknown S
    ource)
    at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(Activata
    bleServerRef.java:90)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:434)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
    a:429)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
    .java:35)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    I am facing above error when try to update any task in the task scheduler.
    Can anyone please suggest me where i am going wrong?
    Thanks,
    Uma.

    I would assume you are missing the jar file for your scheduled tasks. Try and create a new scheduled task with the same class name, if it won't let you save, this is your answer. You'll want to make sure you have the connector scheduled task file in the ScheduleTask folder in your OIM directory.
    -Kevin

  • Insufficient access error while updating AD attributes

    Please find the attachment, I have tried to update the lastLogon attribute to replicate in global catalog, then the error has occurred as follows. I have enterprise administrative power, then also not able to update the attribute, please help
    thanks in advance.

    I would agree with Martin. You simply need to be member of Schema Admins
    group. You can add that using dsa.msc.
    By the way, why are you trying to do that? Lastlogon attribute should not be replicated as it maintained locally on each DC. If you want to get the user exact last logon date and time then you can use my script here: https://gallery.technet.microsoft.com/scriptcenter/Get-Active-Directory-User-bbcdd771
    This posting is provided AS IS with no warranties or guarantees , and confers no rights.
    Ahmed MALEK
    My Website Link
    My Linkedin Profile
    My MVP Profile

  • CRM function module to update the attribute in the classification TAB of BP

    Hi All,
    Can any body let me know if there is any functionmodule to update the CRM function module to update the attribute in the classification TAB of BP tcode.
    I have searched a lot i get FM to update the marketing attribute and not the attributes in the classification tab.
    Thanks in Advance
    Edited by: Sharath Kumar on Dec 2, 2010 4:48 PM

    For material bom: CSAP_MAT_BOM_CREATE
    and CSAP_ORD_BOM_CREATE for Order BOM.
    Regards,
    Ravi

  • User interface for updating/adding attributes in OID

    Hello,
    I have not done the develop work in OAS10g (web, oid, +) though I have years experiences as DBA in OAS and Oracle database servers.
    I need to develop a user interface for users to add or update the user's attributes such as sn, manager etc.
    The IDM system is working in prod: OAS 10g r2, installed (upgraded to) with infrastructure and oid 10.1.4.3.
    OID: user attributes have been loaded with: CN, UID, mail and etc.
    The requirement
    User interface: an app based Ohttp web 10g
    I'd like the interface works like:
    The user accessing the web interface, is prompted with UID and mail. if the user correctly fills the fields, then will be prompted with the attributes which user can add or update.
    Because I have Not done any development in OAS (web, oid), I need know what skills I need to aquire. ANd how should I proceed?
    I may know the skills would be Ohttp development and OID API (LDAP), but I need these be specific as much as possible.
    Can any point the direction with examples and docs?
    TIA
    GA

    ajaybabu007 wrote:
    For managing the user related activities (create,update,lock,unlock,delete and so on) through an Web UI interface can be administrated with the Oracle Identity Management Self Service Console (http://infra_host_name:7777/oiddas) which is an inbuild component of OID/OSSO. Please provide orcladmin/<password> credentials for accessing this Web UI.
    ---ABP thanks.
    1) the app for user to add/update the attributes. we cannot give orcladmin to them
    2) though the users as their own can access the oiddas, there are only limit of user info could be updated, which cannot serve the attributes we customized and loaded in OID.

  • In Which table can I get Customize attribute values?

    Hi All,
    I am new to Solution Manager. I have created customize attributes using std and non std ways. And i have used this attributes for create interface scenarios.
    My problem is, I am not able to get the value of attributes which has created using standard way. From which table I can get.
    While create this std attributes, i have added customize table name and corresponding field name in attribute properties.
    Can I get the attributes from this customize table?
    Kindly any one help for me.
    Thanks in Advance.
    -Thulasi

    Hi tulsi,
    I am also looking for the same solution please update me or the thread with the solution
    Saurabh

  • Update AD attribute in IDM

    Hi,
    we have a working IDM installation doing PasswdSync from AD to DSEE. There is a problem with some users, who are unable to synchronise, because the workflow supplied to us is a bit broken.
    In this case, we have a user who has an account in DSEE and an account in AD, that cannot synchronise. When we investigated, the adEmail attribute for this user is blank.
    So, we Edit the User via the user form, add the AD resource to their resource list and fill in the attribute details and Save. Instead, what we get back is the message:
    "Action failed because feature 'account.CREATE' is disabled by resource Active Directory"
    Now, this is just an UPDATE- the accounts exist as DSEE, AD and IDM Resource accounts.
    I just want to fill in the blank attribute for the ADemail so that our systems "Links" up correctly and the user can synchronise.
    Can someone please point me out to where I could possibly fix this issue?
    The account.create feature is indeed disabled in the AD resource form, because the broken workflow instead of just updating users, will try to create a new one.
    What I need is a way to fill in the empty attribute "ADemail" in the IDM resource without actually communicating to AD the fact, as it already has the attribute and we can't update without it actually doing a Create.
    So, in short, how do I modify the attribute for the user without getting the above error in attempting to update AD which is not required?
    rachel

    adEmail? where is this attribute stored? idm or ad?
    regards,
    MK

  • Update custom attributes in WebUI using 9iFS

    Updating custom attributes of subclassed document in WinUI is
    working. Through the WebUI the attributes appear to be readonly
    (which is not the case).
    Did I forget something or is it still not possible to update
    custom attributes from the WebUI and do I have to write a
    servlet/JSP+bean to accomplish this?
    Thanks in advance,
    Harry.
    Please reply to: [email protected]

    Updating custom attributes of subclassed document in WinUI is
    working. Through the WebUI the attributes appear to be readonly
    (which is not the case).
    Did I forget something or is it still not possible to update
    custom attributes from the WebUI and do I have to write a
    servlet/JSP+bean to accomplish this?
    Yes. You have to write a servlet/JSP+bean to update the
    attributes. You can also upload XML file to update your
    attributes.

  • Forms Personalization: FRM-41017- Cannot set UPDATE ALLOWED attribute error

    Hey All,
    I have a requirement in Projects > Allocation > Allocation Rules which needs a few mandatory columns to be greyed out.
    I think that the form is not getting query-able because of the “FRM-41017- Cannot set UPDATE ALLOWED attribute of non-enabled item RULE.OFFSET_METHOD” error when we open the form.
    I was trying to set the required property to false for personalization’s done on mandatory columns and see if that can work in suppressing that error. But it did not.
    Can anyone help me by telling how to avoid this and make the form query-able?
    Any help is much appreciated.
    Thanks !

    Please post the details of the application release, database version and OS.
    Please see if (Capital Projects Form Personalizations Error- FRM-41017 [ID 1072660.1]) helps.
    Thanks,
    Hussein

Maybe you are looking for

  • Performance tab not working in Enterprise Manager for user with dba role

    Database: 11g2 New to Oracle. Don't want share SYS user account among dbas. Tried to create user with dba role to perform all tasks. 1. Removed DBMS_JOB, DBMS_LOB, UTL_FILE, UTL_HTTP, UTL_SMTP, and UTL_TCP from PUBLIC 2. Created user dbauser1 with db

  • How do I create a hyperlink in my reminders app?

    I set a reminder to check something on the internet. I pasted the link into the reminder, but it remains as plain text. I want to be able to tap the link and it opens the page in Safari (hyperlink). Is this possible? Thanks community.

  • Acrobat Reader X Won't Open/Launch

    Hello All, I have a user running Windows XP Pro (fully patched) and has had Reader X installed for some time - yesterday the user attempted to open a PDF, but Reader would not open.  I've been digging into this issue since then.  The box is clean, no

  • Can't locate or eject CD

    My dad has an iMac and he has shoved a CD in the drive which he says he thinks had photos on it. He couldn't see the CD or what was on it and now he can't eject it either. I have tried the usual things, restart holding mouse button down etc and nothi

  • Change country problems

    I recently moved from the UK to Australia and need to change the country/region of my appstore id to reflect this. However when I go into the apple id, change country or region I click the button to make the change, the phone communicates for a momen