Constructing EVS with WDValueServices.createBoundValueSet

According to Re: Populating a dropdown list box from from a RFC/web service call ,
we have a better way to simplify the creation of EVS. However, checking with the API document, there is another overloaded method with an additional input parameter
IWDBoundValueSet.IWDFilterListener selection
This parameter looks like for filtering of EVS/SVS. Can I have more information on this parameter:
1. what is it purpose?
2. how to use it?

Hello,
What I want to do is to customerize the filtering facility provided by EVS. The filter of EVS is prefix matching. However, I want to filter by anywhere matching, which is similar to <b>String.indexOf(String str) != -1</b> in Java.
Is it possible to have my custom filtering class/code to make it happen, during EVS creation?
There is an API of <b>WDValueServices</b>:
public static IWDBoundValueSet createBoundValueSet(
        IWDAttributeInfo attrInfoSelectedKey,
        IWDNode dataSource,
        IWDAttributeInfo attrInfoKey,
        IWDAttributeInfo attrInfoValue,
        IWDBoundValueSet.IWDFilterListener selection)
It seems be able to have custom filtering, with last parameter.
How can the last parameter be used to have the custom filtering on EVS?
Thanks,
Tony Kwan

Similar Messages

  • Constructing test with multiple results

    Hi, I have the question for Lilybyri:
    I learn to construct test with multiple results from your article:
    Constructing Test with Multiple Results (CP5)
    This is exactly what I need. My question is - can I use the radio button interaction or smart shape instead click box? What you recommend? I use CP7 or CP8.
    Need to publishing the final test both HTML5 and SWF output. My test wil have 55 questions and 4 results score - one of them describe the personality of learner.
    Yarik

    Advasntage of click box and shape button is that they can have score
    attached to it. That is not the case for radio buttons interaction that has
    also limited formatting options.

  • How to use EVS with different data in each row, in a Java Web Dynpro table?

    Hi all,
    I am using EVS in a column of java web dynpro table.
    Let's say the name, and context attribute, of this column is column1.
    It's filled dynamically using an RFC, that uses as input parameter the value of another column, and related context attribute, from the same table (Let's call it column2).  Obviously, from the same row. So, in other words: the values of the EVS in column1 of row1, are dependent of the value of column2 of row1. And the values of the EVS in column1 of row2, are dependent of the value of column2 of row2. And so on... Hope i could explain myself ok.
    The code I'm using works great for filling the EVS dynamically:
    IWDAttributeInfo attrInfo = wdContext.nodeDetail().getNodeInfo().getAttribute(nodeElement.COLUMN1);
    ISimpleTypeModifiable siType = attrInfo.getModifiableSimpleType();
    IModifiableSimpleValueSet<String> value = siType.getSVServices().getModifiableSimpleValueSet();
    value.clear();
    if(this.initRFC_Input(nodeElement.getColumn2())){
         for (int i = 0; i < wdContext.nodeRFCresult().size(); i++){
              value.put(wdContext.nodeRFCresult().getRFCresultElementAt(i).getLgort()
                 , wdContext.nodeRFCresult().getRFCresultElementAt(i).getLgobe());
    In this code, nodeElement is the context row of the table that is passed dynamically to the method when the value of colum2 is changed.
    HOWEVER, the problem I'm having is that after executing this code, EACH NEW ROW that is added to the table has by default the same values as the first row, in the column1 EVS. And, for example, if I refresh the values of the column1 EVS in row 2, all EVS values in the other rows are also refreshed with the same values as the ones of EVS in row 2.
    How can I make sure each row EVS has its own set of independent values, so they don't mess with each other?
    Hope you guys can help me. And please, let me know if I didn't explain myself correctly!
    Thanks!

    I just did as you said (I think), but it's still having the same behaviour as before (same data for all EVS in the table).
    Here´s what I did:
    I
    In node "Detail" (cardinality 0...n, singleton set to true), which is binded to the table, I created a child node named "Column1Values" wth cardinality 1...1 and singleton set to false.
    "Column1Values" node has an attribute called "column1", of type String.
    I did the binding between attribute "column1" and the column1 inputfield celleditor in the table.
    I created an event called Column2Changed and binded it to the column2 celleditor of the table. I added a parameter called nodeElement of type IPrivateCompView.IDetailElement to this event, and mapped it to the column2 editor in the table so that I can dynamically get the nodeElement that is being affected.
    I added the following code to the onActionColumn2Changed(wdEvent, nodeElement) method that gets created in the view:
    IWDAttributeInfo attrInfo = nodeElement.nodeColumn1Values().getNodeInfo().getAttribute("column1");
    ISimpleTypeModifiable siType = attrInfo.getModifiableSimpleType();
    IModifiableSimpleValueSet<String> value = siType.getSVServices().getModifiableSimpleValueSet();
    if(this.initRFC_Input(nodeElement.getColumn2())){
         for(int i =0; i < wdContext.nodeRFCresults().size(); i++){
              value.put(wdContext.nodeRFCresults().getRFCresultsElementAt(i).getId(),
                                  wdContext.nodeRFCresults().getRFCresultsElementAt(i).getDesc());
    And with this, I still get the original problem... When the EVS of one row is updated, ALL other EVS of the table get also updated with the same values.
    What am I missing? Sorry Govardan, I bet I'm not seeing something really obvious... hopefully you can point me in the right direction.
    Thanks!

  • Help on scenario in Real estate/Construction industry with PS,SD,MM modules

    Dear Gurus,
    Iam into implementation of a Real estate/Construction company (FI/CO,SDMM<PS modules). But we are NOT using SAP RE-FX or Homebuilding solutions (HBS).
    My Client's business scenario goes like this.
    There are two broad divisions:
    Residential properties:
    They are going to build 840 flats (divided into 14 blocks with 15 floors in each block) with amenities like club house, parking facilities etc. The flats will be sold to customers.
    Commercial Properties:
    Commercial building is divided into 60000sqft for hotel construction and 40000 sqft for retail space which includes 2 small theatres.
    The commercial complex will be retained by the client.
    Three types of residential properties will be built
    1. 4 blocks of 2 bedroom flats
    2. 5 blocks of 3 bedroom flats with 2 toilets attached which will be termed as 2+1.
    3. 5 blocks of 3 bedroom flats.
    When the customer is enquiring about the FLATS, i have to check the availability of the same.How to do this?
    Iam considering the flats as FINISHED GOODS, So How do I get those into the stock without doing intial entry using 561?( no PP module here)Is is possible to relate the stock through PS module?
    Please give your valuable ideas on this.
    Regards,
    Anbu

    Hi
    From the requirement and design planned, your each flat will be different material. If this is so then whatever material is blocked or not for sale or closed or open you can define te material sales status accordingly. hence if the status is other than released then they will give error and that information will be useful.
    If u have lot of flats which are look alike and hence any allocation of flat to any customer is ok then product allocation cab work.
    Product allocation can work good when the material has characteritics of interchangeablitily and standardization.
    No flat can be same. Eventhough u have same sq ft area same the location according to vastu and east west direction etc criteria will be unique and hence using product allocation wil result into any one flat being allocated to customer which is not desirable.
    hence according to me you can have materials with different status and that will suit ur purpose.
    Reward if helpful
    Kind Regards
    Sandeep

  • How to construct query with null parameters in jpa 2.0

    Hi,
    I am creating a jpa 2.0 application. I have an entity with a large number of fields
    @Entity
    @Table(name="notations")
    public class Notation implements Serializable {
         private static final long serialVersionUID = 1L;
         @Id
         private Integer id;
         @Column(name="action_count")
         private Integer actionCount;
         @Column(name="adaptability_comment")
         private String adaptabilityComment;
         @Column(name="adaptability_score")
         private Integer adaptabilityScore;
         private String comment;
         @Column(name="compatibility_comment")
         private String compatibilityComment;
         @Column(name="compatibility_score")
         private Integer compatibilityScore;
         @Column(name="consistency_comment")
         private String consistencyComment;
         @Column(name="consistency_score")
         private Integer consistencyScore;
         @Column(name="controlpoint_name")
         private String controlpointName;
         @Column(name="device_brand")
         private String deviceBrand;
         @Column(name="device_name")
         private String deviceName;
         @Column(name="error_management_comment")
         private String errorManagementComment;
         @Column(name="error_management_score")
         private Integer errorManagementScore;
         @Column(name="explicit_control_comment")
         private String explicitControlComment;
         @Column(name="explicit_control_score")
         private Integer explicitControlScore;
         @Column(name="functionality_name")
         private String functionalityName;
         @Column(name="guidance_comment")
         private String guidanceComment;
         @Column(name="guidance_score")
         private Integer guidanceScore;
         @Column(name="is_available")
         private Boolean isAvailable;
         private String protocol;
         @Column(name="significance_comment")
         private String significanceComment;
         @Column(name="significance_score")
         private Integer significanceScore;
         @Column(name="tester_name")
         private String testerName;
         @Column(name="use_case_name")
         private String useCaseName;
         @Column(name="workload_comment")
         private String workloadComment;
         @Column(name="workload_score")
         private Integer workloadScore;
            getters, settersI am using a method to update this entity as the user changes different fields. My method takes (almost) all fields, but only one (or few) have values, the others are null.
    public Notation updateNotation(Integer id, Boolean isAvailable, String protocol, String deviceBrand,
                   String deviceName,String testerName, Date ratingDate, String functionalityName,
                   String useCaseName,     String controlPointName, Integer actionCount, String comment,
                   Integer adaptabilityScore, Integer compatibilityScore, Integer consistencyScore,
                   Integer errorManagementScore, Integer explicitControlScore, Integer guidanceScore, Integer significanceScore,
                   Integer workloadScore, String adaptabilityComment, String compatibilityComment,
                   String consistencyComment, String errorManagementComment, String explicitControlComment,
                   String guidanceComment, String significanceComment, String workloadComment) throws PersistenceException{
              String setString = "";
              if(isAvailable != null)
                   setString += "n.isAvailable = '" + isAvailable + "',";
              if(!(protocol==null||protocol.isEmpty()))
                   setString += "n.protocol = '" + protocol + "',";
              if(!(deviceBrand==null||deviceBrand.isEmpty()))
                   setString += "n.deviceBrand = '" + deviceBrand + "',";
              if(!(deviceName==null||deviceName.isEmpty()))
                   setString += "n.deviceName = '" + deviceName + "',";
              if(!(testerName==null||testerName.isEmpty()))
                   setString += "n.testerName = '" + testerName + "',";
              if(!(functionalityName==null||functionalityName.isEmpty()))
                   setString += "n.functionalityName = '" + functionalityName + "',";
              if(!(useCaseName==null||useCaseName.isEmpty()))
                   setString += "n.useCaseName = '" + useCaseName + "',";
              if(!(controlPointName==null||controlPointName.isEmpty()))
                   setString += "n.controlPointName = '" + controlPointName + "',";
              if(actionCount != null)
                   setString += "n.actionCount = '" + actionCount + "',";
              if(!(comment==null||comment.isEmpty()))
                   setString += "n.comment = '" + comment + "',";
              if(adaptabilityScore != null)
                   setString += "n.adaptabilityScore = '" + adaptabilityScore + "',";
              if(compatibilityScore != null)
                   setString += "n.compatibilityScore = '" + compatibilityScore + "',";
              if(consistencyScore != null)
                   setString += "n.consistencyScore = '" + consistencyScore + "',";
              if(errorManagementScore != null)
                   setString += "n.errorManagementScore = '" + errorManagementScore + "',";
              if(explicitControlScore != null)
                   setString += "n.explicitControlScore = '" + explicitControlScore + "',";
              if(guidanceScore != null)
                   setString += "n.guidanceScore = '" + guidanceScore + "',";
              if(significanceScore != null)
                   setString += "n.significanceScore = '" + significanceScore + "',";
              if(workloadScore != null)
                   setString += "n.workloadScore = '" + workloadScore + "',";
              if(!(adaptabilityComment==null||adaptabilityComment.isEmpty()))
                   setString += "n.adaptabilityComment = '" + adaptabilityComment + "',";
              if(!(compatibilityComment==null||compatibilityComment.isEmpty()))
                   setString += "n.compatibilityComment = '" + compatibilityComment + "',";
              if(!(consistencyComment==null||consistencyComment.isEmpty()))
                   setString += "n.consistencyComment = '" + consistencyComment + "',";
              if(!(errorManagementComment==null||errorManagementComment.isEmpty()))
                   setString += "n.errorManagementComment = '" + errorManagementComment + "',";
              if(!(explicitControlComment==null||explicitControlComment.isEmpty()))
                   setString += "n.explicitControlComment = '" + explicitControlComment + "',";
              if(!(guidanceComment==null||guidanceComment.isEmpty()))
                   setString += "n.guidanceComment = '" + guidanceComment + "',";
              if(!(significanceComment==null||significanceComment.isEmpty()))
                   setString += "n.significanceComment = '" + significanceComment + "',";
              if(!(workloadComment==null||workloadComment.isEmpty()))
                   setString += "n.workloadComment = '" + workloadComment + "',";
              if(setString!="") setString = setString.substring(0, setString.length()-1);
              String queryString = "UPDATE Notation n SET " + setString + " WHERE n.id = ?1";
              Query q = em.createQuery(queryString);
              q.setParameter(1, id);
              q.executeUpdate();
              return (Notation) em.createQuery("SELECT n FROM Notation n WHERE n.id = ?1").setParameter(1, id).getResultList().get(0);
         }So my question I think is somewhat obvious. What is a good way to construct my query, so that I am not forced to have such an ugly and laborious code (again, knowing that most of the arguments are null)?
    Thanks in advance
    Edited by: StefanC on Jan 27, 2010 3:01 AM

    That is a good point, I will do the operations directly on the entity. However, that still doesn't save me from having to write all those if statements and having an ugly code.
    Husain.AlKhamis wrote:
    Exactly, this is the concept behind JPA --> you have to write zero SQL queries.It's true that you don't have to write any queries for update and remove, however you still have to write JPQL queries (pretty much like SQL) to selections.

  • Constructing Jtree with data from Database

    Hi
    I am new to JTree and I need some help. My problem goes like this. I have a table in the data base which has data like Folder_Nr, Folder_Name, Folder_Prev_Nr, Folder_Typ_Nr, Folder_Access.
    If the Folder_Nr is 1 and folder_prev_nr =0, then it is a root folder and if folder no is 3 and folder_prev_no is 1 then it is a sub folder of the Folder_Nr 1. and so on is the data. I need to present all these folders in a JTree and be able to dynamically add and delete folders.
    It will be of great help if anyone can provide me with some lead or some source code.
    Thanking u in advance
    BalaaP

    Yes,using LiveCycle you could accomplish this easily.Once you have your invoice form ready based on predefined XSD, you can easily update the form data by fetching the values from database using JDBC operation.Also you could email this updated form using Email service.
    Thanks,
    Wasil

  • Constructing JTree with object[ ] vs object graph

    I have data in a resultset that represents a parent-child relationship. there are fields that identify the parent as well as the position of the item
    Now i want to display this information in a JTree.
    The field format is something like this:
    description parentid level1 level2 level3 level4... etc up to level7
    the level{#} fields determine the position in the tree
    im also looking at the examples here
    http://www.ictp.trieste.it/~manuals/programming/Java/tutorial/uiswing/components/tree.html#data
    im wondering if i need to implement my own treemodel or just create my object array and feed it to the JTree constructor
    suggestions welcome

    Hi,
    I have study JAAS with J2EE for the last two months, don't know whether my ideas can help you. I believed JAAS was designed for java programmer who wanted to have security implement in there application but do not want to write the security themself. JAAS provided a robust system so that someone else can come alone to plug in the security module and security would be implemented.
    Base on your problems, I think what you should do is to have what know as a security access level implement in your object. When you uses JAAS to verify username & password, you can get user's access level as well maybe from LDAP server attribute, store in your principal. So whenever you want to check whethere you're a editor or author.
    You have to identify what is business logic and security logic access level is a business logic, therefore you will have to implement in your application tier. There is no perfect solution, but having these module will save you lots of coding and flexibility.
    Cheers,
    ps: Please correct me if my view are wrong.

  • Manually constructed calendar with checkboxes

    Hi all:
    I am trying to build a calendar-style display using a PLSQL region that inserts a checkbox in specific table cells. I want the user to see this calendar display and be able to select specific dates and then submit these for processing.
    A portion of the code in the PLSQL region is:
    p_checkbox := '<input type="checkbox" name="f' || p_fzero || '" value="' || to_char(p_date, 'mm/dd/yy') || '" />';
    p_f0 := p_f0 + 1;
    p_fzero := lpad(p_f0, 2, '0');
    end case;
    p_string := p_string || '<td ' || p_style || '>' || p_checkbox || '
    ' || p_date_display || '
    ' || p_shift || '</td>' || chr(10);
    This generates a chunk of HTML like this (I edited out the break tags):
    <tr>
    <td align="center">3</td><td >5-12-13 RDO</td>
    <td style="background-color:#FF99C2"><input type="checkbox" name="f09" value="05/13/13" />5-13-13 1300:10</td>
    <td style="background-color:#FF99C2"><input type="checkbox" name="f10" value="05/14/13" />5-14-13 1300:10</td>
    <td style="background-color:#FF99C2"><input type="checkbox" name="f11" value="05/15/13" />5-15-13 1300:10</td>
    <td style="background-color:#FF99C2"><input type="checkbox" name="f12" value="05/16/13" />5-16-13
    1000:10</td>
    <td >5-17-13 RDO</td>
    <td >5-18-13 RDO</td>
    </tr>
    I can't seem to get this process however. It will work for the very first checkbox - the "f01" checkbox. But after that the process doesn't seem to recognize other checked boxes.
    Here is the core part of the process:
    for i in 1..apex_application.g_f01.count loop
    p_date := to_date(apex_application.g_f01(i), 'mm/dd/yy');
    select count(1) into p_count from for_requests where empid = :P12_EMPID and odate = p_date;
    select count(1) + p_count into p_count from for_out where empid = :P12_EMPID and odate = p_date;
    if p_count = 0 then
    p_request := p_request || chr(10) || to_char(p_date, 'FMmm/dd/yy');
    insert into test_requests (empid, odate, descr_id, userid, date_entered, wg_id, remarks) values (:P6_EMPID, p_date, :P12_DESCR_ID, ss_empid(:APP_USER), sysdate, p_wg_id, :P12_REMARKS);
    end if;
    end loop;
    I realize this may not be a standard method of doing things, but is it possible to make this concept work? Thanks very much for any advice!!
    Bill
    Edited by: sk**** on Mar 13, 2013 6:09 PM
    Edited by: sk**** on Mar 13, 2013 6:10 PM

    Hi Mladen,
    Per my knowledge, if the distinct event has been edited in the calendar list, then it will not be affected when we edit the series of the recurring event.
    As you have modified some events in the recurring event, then modifying the series of the recurring event will not affect those events and you do not need to worry about the changes made in those events.
    So you can edit the series of the recurring event to change the end date.
    By the way, as workflow cannot determine which event is the last event, so we cannot use workflow to automatically delete the unwanted events.
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • Creating EVS , OVS with RFC in WebDynpro Java (F4)

    Hello All,
    I am struggling with EVS creation through aRFC. I followed all the tutorials given on the SDN, but of no use till now.
    I have two DC's <b>rmmodel</b> and <b>rmcomponents</b>
    I have created <b>Model</b> in the rmmodel DC through aRFC and added it in the public part. further I added the rmmodel DC in rmcomponent DC's <b>used DC</b> list. Finally i added rmmodel in the <b>used models</b> list of rmcomponent DC.
    Then i created a component in rmcomponent DC.
    I have already done model binding and context binding (XYZ_XYZ_XYX_Input -->Output)
    Now I want to create an EVS with InputField , in my case i want to populate EVS from R/3 Table dynamically. Till now am getting a simple InputField with the first record selected on running my application.
    Please Help.
    Please avoid posting links to other similar threads, as i have already checked most of the popular threads, blogs and tried my hands on tutorials given on sdn library.
    Regards,
    Amol

    Hi Biswal,
    I am trying to do the above but having some problem with the "<attributeName>"
    I created a custom controller and a view then i did the model binding and context binding.
    In my custom controller <b>EvsController</b> I have the following context.
    = Context
    ===Test_xyz_xyz_Input
    =====Output
    =======Lt_xyz_xyz
    <b>Short</b>
    here my attributename is <b>Short</b> so i am writing the following code in the <b>EvsController's</b> wdDoInit()
    IModifiableSimpleValueSet valueset =
         wdContext.nodeLt_xyz_xyz().getNodeInfo().getAttribute(Short).getModifiableSimpleType().getSVServices().getModifiableSimpleValueSet();
    The problem is, it's not able to identify "Short" and giving me an error "Short can not be resolved"
    Please suggest something..
    Regards,
    Amol

  • Custom Filter in EVS Valuehelp

    Hi people,
    I need to implement a custom filter for the EVS Valuehelp. The default filter can not use wildcards in the filtercriteria.
    So I implemented the Interface IWDFilterListener and initialized the EVS  with following code:
    WDValueServices.createBoundValueSet(wdContext.getNodeInfo().getAttribute("test"),
                                                      wdContext.nodeNodes(),
                                                      wdContext.nodeNodes().getNodeInfo().getAttribute("key"),
                                                      wdContext.nodeNodes().getNodeInfo().getAttribute("value"),
                                                       new MyFilter());
    Unfortunatly the methode "fillNode" isn't called, when the enterevent of the EVS Filter is fired.
    How have I to initialize the EVS for using my custom filter?
    Thomas

    Nobody here, who can help me?

  • [Forum FAQ] A content management tool with dashboard based on SharePoint List

    1. 
    Scenario:
    The SharePoint OOTB List has saved us a lot of time on managing mess data. It provides three forms to create/view/edit items, the ability to save the views we want with some specific filtering and sorting condition, versioning for easy restoring, and we
    can make it advanced with workflow contains the specific business logic.
    However, if there is a need for better user experience, interacting with the public APIs and a bit of script to customize the web page would be required.
    Suppose there is a requirement like this:
    We need a content collection tool which collects ideas from contributors, the newly ideas will be reviewed by reviewers.
    We may need to filter the list in a convenient way, get the wanted result with the data from the list and display in a chart or rank list. 
    We can add some buttons in Metro style to display the counting result of the data from the list dynamically. When we click them, the list will be filtered and sorted to display a friendly set of items. Also, we need to display a trend of the mess data graphically
    in some beautiful charts.  If we want to find out some outstanding contributors, top contributor board would be more comfortable than the top N items in the OOTB list view.
    The page would look like this:
    2. 
    Introduction:
    Engineers will come up with some ideas in the daily job and write a content to enlighten others. Reviewers will help to review ideas or contents and publish the contents if qualified.
    The complete process looks like this:
    As we can see, only the approved idea can be written as a content and only the approved content can be published.
    2.1
    How it works
    We build the whole tool in one page. All ideas and contents will be saved in a custom list. This is how it looks like:
    There are three parts in this page:
    1       
    2       
    2.1       
    2.1.1       
    Top menu
    The top menu contains three elements:
    A Drop Down menu for filtering data by team, it will refresh the other two parts with the filtered data:
    A hyperlink “STATISTIC” links to a PowerBI report whose data source is the custom list.
    A hyperlink “FEEDBACK” for collecting feedbacks:
    The feedbacks will be saved in another list:
    2.1.2       
    Information menu
    This part will display the calculated data retrieved from the list within tiles, chart and ranking list.
    The tiles can be clicked to filter and refresh the list view.
    2.1.3       
    List view
    A list stores all ideas and contents with the properties needed. It can be filtered by the Top menu and Information menu.
    The customization on the OOTB custom list template makes it more powerful and more suit for this scenario:
    1. An item leveled comment feature (based on OOTB Tags & Notes feature) for other users make comments to an idea or content:
    2. Title column: When there is no attachment in the current item, it redirects to the default DisplayForm page. If there is, it will open the attachment (usually a .docx file) in Word Online in a new tab.
    3. ECB menu: Add some custom shortcuts for popular actions:
    4. A hyperlink column stores the hyperlink points to the website where the content is published to.
    3.   
    How to achieve it
    This solution will be hosted in SharePoint Online environment, so we do all the job using JavaScript, REST API and Client Object Model.
    The Drop Down menu, tiles, rank list are generated with some HTML+CSS.
    The Trend Chart, we take advantage of the Combo chart in the Google chart library.  
    The list view is hosted in a <iframe> which can be easily filtered and refreshed by just passing a generated URL with query string.
    For the customization on the list view and the ECB menu, JSLink with Client Object Model would be OK.
    3.1
    Specific to every part
    3.1.1       
    Top menu
    3.1.1.1 
    Drop Down menu for retrieving filtered data and refreshing the display of the related controls
    When user selects a team here, there will be a request sent out for retrieving items of the list. By default, the limit is 100 when using REST API to get list items, so we can append a “$top=1000” to require more items from server.
    Code snippet like this:
    $.ajax({
    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items?$top=1000",
    method: "GET",
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
    console.log("getListItems succ");
    console.log(data);
    error: function (data) {
    alert("getListItems error");
    //failure(data);
    Then we will get the “data” as a JSON format string, it contains all the values we need from the list:
    We can get the values we want like this:
    //get item Count
    var arr = [], len;
    for(key in data.d.results)
    arr.push(key);
    len = arr.length;
    for(var ii=0; ii<len; ii++)
    var team = data.d.results[ii].Team;
    var month = data.d.results[ii].Month;
    As we need to know the counts of each type of ideas or contents, we use an array for saving the counters:
    //ary to store all counters for tiles: all/pendingIdea/pendingContent/my/approvedIdea/approvedContent
    var aryAllCounters = [0,0,0,0,0,0];
    for(var ii=0; ii<len; ii++)
    //get pendingIdeaCount
    if(data.d.results[ii].Statuss === 'Pending')
    aryAllCounters[1]++;
    Once all the numbers are ready, we can do the refreshing.
    As the list view page is hosted in a <iframe>, all we need to do is passing a constructed URL with query string:
    url_team = URL + "?FilterField1="+FIELD_MYTEAM+"&FilterValue1=" + sel_val;
    $iframe.attr('src', url_team);
    3.1.1.2 
    Hyperlink for popping up a dialog to collect feedbacks
    The feedback dialog hosts another page which contains two buttons and one text area.
    The HTML code of the FEEDBACK button:
    <a id="feedback" href="#" onclick="javascript:openDialogBox('../SitePages/Feedback.aspx');">FEEDBACK</a>
    The openDialogBox() function:
    function openDialogBox(url){
    var options = SP.UI.$create_DialogOptions();
    options.url = url;
    options.height = 130;
    options.width = 425;
    options.title = "Feedback";
    SP.UI.ModalDialog.showModalDialog(options);
    In the Feedback.aspx page, when user click submit button, we will save the content of the text area into the feedback list:
    function addListItem()
    this.clientContext = new SP.ClientContext.get_current();
    this.oList = clientContext.get_web().get_lists().getByTitle('Feedback');
    var itemCreateInfo = new SP.ListItemCreationInformation();
    this.oListItem = this.oList.addItem(itemCreateInfo);
    //set person field
    var userValue = new SP.FieldUserValue();
    //userValue.set_lookupId(this.currentUser.get_id());
    userValue.set_lookupId(_spPageContextInfo.userId);
    oListItem.set_item('Provider', userValue);
    //Sets the specified field value
    oListItem.set_item('Title', str);
    //datetime field
    var currDate = new Date();
    oListItem.set_item('Submit_Time',currDate);
    oListItem.update();
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded_add), Function.createDelegate(this, this.onQueryFailed));
    3.1.2       
    Information menu
    3.1.2.1 
    Tile shortcut
    In the click event of the tiles, the code will pass a generated URL with query string to the <iframe>:
    //filter list only
    $tile.click(function(){
    //distinguish tiles by id
    var v = $(this).attr('id');
    switch(v)
    case S_MY_CONTENT:
    url_team1 = URL + "?FilterField1="+FIELD_COMPOSER+"&FilterValue1=" + currentUsername;
    break;
    case S_PENDING_IDEA:
    url_team1 = url_team + "&FilterField2="+FIELD_STATUS+"&FilterValue2=Pending&FilterField3="+FIELD_IDEATYPE+"&FilterValue3=Idea";
    break;
    $iframe.attr('src', url_team1);
    3.1.2.2 
    Trend chart
    The chart will be initialized with the numbers by month stored in a 3D array:
    google.load("visualization", "1", {packages:["corechart"]});
    google.setOnLoadCallback(drawVisualization);
    function drawVisualization(ary)
    // Some raw data (not necessarily accurate)
    var data = google.visualization.arrayToDataTable(ary);
    var view = new google.visualization.DataView(data);
    view.setColumns([0, 1,
    { calc: "stringify",
    sourceColumn: 1,
    type: "string",
    role: "annotation"
    2]);
    // Create and draw the visualization.
    var ac = new google.visualization.ComboChart(document.getElementById('chart1'));
    ac.draw(view, {
    //legend: 'top',
    legend: {
    title : '',
    //width: 0,
    //height: 285,
    vAxis: {title: "", format:'#',viewWindowMode:'explicit',
    viewWindow:{
    min:0
    },ticks: ticks
    //hAxis: {title: ""},
    lineWidth: 4,
    bar: {groupWidth: "60%"},
    seriesType: "bars",
    series: {1: {type: "line"}},
    chartArea:{
    colors: ['#A4C400', '#F9A13B']
    3.1.2.3 
    Top contributors rank list
    When retrieving list items, we can get the “AuthorId” which represents the id of the user in the siteUserInfoList. We run another request to retrieve all items in the siteUserInfoList which stores the username with the URL of profile.
    Then we can use a hash table(provided by jshashtable.js) to store the user id, username and profile URL:
    $.ajax({
    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/siteUserInfoList/Items",
    method: "GET",
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
    console.log(data);
    //get item Count
    var arr = [], len;
    for(key in data.d.results)
    arr.push(key);
    len = arr.length;
    var ht_authors = new Hashtable();
    for(var ii=0; ii<len; ii++)
    if(authorSet.contains(data.d.results[ii].Id))
    if(data.d.results[ii].Picture != null)
    ht_authors.put(data.d.results[ii].Id, data.d.results[ii].Title+'|'+data.d.results[ii].Picture.Url);
    else
    ht_authors.put(data.d.results[ii].Id, data.d.results[ii].Title+'|');
    console.log("ht_authors.keys(): "+ht_authors.keys());
    console.log("ht_authors.values(): "+ht_authors.values());
    error: function (data) {
    alert("error");
    //failure(data);
    3.1.3       
    List view
    For the Comment button, custom title link and the custom published link of each item, we can use JSLink to achieve.
    Comment button: It is supposed to be the OOTB “Type” column, I change the icon and modify the click event of it to pop up a comment dialog which take advantage of the OOTB “Tags&Notes” feature;
    Custom Title link: As there will be two situations of an item: has attachment or not. We will need to run a request to get the URL of attachment and change the hyperlink of the Title field accordingly:
    (function () {
    // Create object that have the context information about the field that we want to change it output render
    var linkFiledContext = {};
    linkFiledContext.Templates = {};
    linkFiledContext.Templates.Fields = {
    //"Attachments": { "View": AttachmentsFiledTemplate }
    "LinkTitle": { "View": TitleFieldTemplate },
    "Published_x0020_Link": { "View": PublishedLinkFieldTemplate },
    "DocIcon": { "View": DocIconFieldTemplate },
    "MyTeam": { "View": MyTeamFieldTemplate }
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(linkFiledContext);
    function DocIconFieldTemplate(ctx)
    var htmlStr = "";
    var listId = ctx.listName;
    var itemId = ctx.CurrentItem.ID;
    var s = listId + "," + itemId;
    htmlStr += "<img width='16' height='16' class=' ms-draggable' alt='Comment' src='"+_spPageContextInfo.webAbsoluteUrl+"/Shared%20Documents/img/comment-icon.png' border='0' ms-draggableragId='0' onclick='CommentIcon(\""+ s +"\")'></img>";
    return htmlStr;
    function CommentIcon(s)
    var listId = s.split(',')[0];
    var itemId = s.split(',')[1];
    var url=_spPageContextInfo.webAbsoluteUrl+"/_layouts/15/socialdataframe.aspx?listid="+listId+"&id="+itemId+"&mode=1";
    console.log(url);
    openCustomDialog(url,"Comment",650,520);
    function openCustomDialog(pageUrl,title,width,height)
    SP.UI.ModalDialog.showModalDialog({
    url: pageUrl,
    width: width,
    height: height,
    title: title,
    dialogReturnValueCallback: function (result){
    if(result== SP.UI.DialogResult.OK)
    parent.window.location.href=parent.window.location.href;
    function PublishedLinkFieldTemplate(ctx)
    //console.log(ctx);
    var htmlStr = "";
    var itemPublishedLink = "";
    var itemPublishedLinkDesc = "";
    if((ctx.CurrentItem.Published_x0020_Link != ''))
    itemPublishedLink = ctx.CurrentItem.Published_x0020_Link;
    itemPublishedLinkDesc = ctx.CurrentItem["Published_x0020_Link.desc"];
    htmlStr = "<a href='" + itemPublishedLink + "' target='_blank'>" + itemPublishedLinkDesc + "</a>";
    return htmlStr;
    function MyTeamFieldTemplate(ctx)
    var htmlStr = "";
    var itemMyTeam = "";
    if((ctx.CurrentItem.MyTeam[0] != undefined) && (ctx.CurrentItem.MyTeam[0] != null))
    itemMyTeam = ctx.CurrentItem.MyTeam[0].lookupValue;
    htmlStr = itemMyTeam;
    return htmlStr;
    function TitleFieldTemplate(ctx) {
    console.log(ctx.CurrentItem);
    var itemId = ctx.CurrentItem.ID;
    var itemTitle = ctx.CurrentItem.Title;
    var listName = ctx.ListTitle;
    var siteUrl = _spPageContextInfo.webAbsoluteUrl;
    var listUrl = _spPageContextInfo.webAbsoluteUrl + "/Lists/" +listName;
    var fileNames = getAttachmentsNames(listName, itemId);
    console.log(fileNames);
    var fileNameAry = fileNames.split("|");
    var htmlStr = "";
    //check the attachment existence
    if(fileNameAry[0] != '')
    for(var j = 0; j < fileNameAry.length; j++)
    var fileName = fileNameAry[j];
    var s1 = "<a class=\"ms-listlink ms-draggable\" onmousedown=\"return VerifyHref(this, event, '1', 'SharePoint.OpenDocuments.3', '1";
    //1``https://microsoft.sharepoint.com/teams/spfrmcs
    var s2 = "/_layouts/15/WopiFrame.aspx?sourcedoc=";
    //2``/teams/spfrmcs/Lists/Content%20Pool
    var s3 = "/Attachments/";
    //3``137
    var s4 = "/";
    //4``[Forum FAQ] Highlight the list tab in Quick Launch when the list view changes.docx
    var s5 = "&action=default'); return false;\" href=\"";
    //5``https://microsoft.sharepoint.com/teams/spfrmcs/Lists/Content Pool
    var s6 = "/Attachments/";
    //6``137
    var s7 = "/";
    //7``[Forum FAQ] Highlight the list tab in Quick Launch when the list view changes.docx
    var s8 = "\" target=\"_blank\" DragId=\"1\">";
    //8``Highlight the list tab in Quick Launch when the list view changes
    var s9 = "</a>";
    var s = s1+siteUrl+s2+listUrl+s3+itemId+s4+fileName+s5+listUrl+s6+itemId+s7+fileName+s8+itemTitle+s9;
    htmlStr += s;
    //console.log(htmlStr);
    if (j != fileNameAry.length - 1)
    htmlStr += "<br/>";
    //if no attachments, set the <a> point to displayForm
    else
    htmlStr += "<a class='ms-listlink ms-draggable' onclick='EditLink2(this,28);return false;' onfocus='OnLink(this)' href='" + siteUrl + "/_layouts/15/listform.aspx?PageType=4&ListId=%7BE54A4FBB%2DDDC2%2D4F7E%2D8343%2D8A1C78757CF4%7D&ID=" + itemId + "&ContentTypeID=0x010079A1D928FF77984C80BFEF1D65C3809F' target='_blank' DragId='0'>" + itemTitle + "</a>";
    return htmlStr;
    function getAttachmentsNames(listName,itemId) {
    var url = _spPageContextInfo.webAbsoluteUrl;
    var requestUri = url + "/_api/web/lists/getbytitle('" + listName + "')/items(" + itemId + ")/AttachmentFiles";
    var str = "";
    // execute AJAX request
    $.ajax({
    url: requestUri,
    type: "GET",
    headers: { "ACCEPT": "application/json;odata=verbose" },
    async: false,
    success: function (data) {
    for (var i = 0; i < data.d.results.length; i++)
    if(i != 0)
    str += "|";
    str += data.d.results[i].FileName;
    error: function (err) {
    //alert(err);
    return str;
    3.2
    How to make them work together
    When selecting an option in the Drop Down menu, the Information menu and the List view will be refreshed separately.
    When clicking the tiles, only the list view will be filtered and refreshed, the other parts will not be influenced.
    When items created/modified, the whole page will be refreshed to keep all the numbers in each part updated.  A workflow will also be triggered to inform engineers or reviewers the progress of an item or content.
    3.3
    Other customizations
    3.3.1       
    ECB menu and permission control
    As we need to refresh the page when new item or modify item, we put all the form pages in a custom modal dialog and execute the refresh in the success callback function.
    There are three roles: Site owner, reviewer and engineer. They have limited privileges according to the roles they are:
    Site owner: Full control on the list, can see all the buttons in the ECB menu;
    Reviewer: There is another list which stores the names of each team and reviewers’ names of each team. The reviewer has limited full control only on the team they belong to. To other teams, the role can be seen as a visitor;
    Composer
    (create owner): The one who contribute an idea. For the ideas\contents from other teams, this role can be seen as visitor.
    The ECB menu they can see is:
    For the visitor, the ECB menu will only display a few buttons:
    The code:
    (function () {
    var viewContext = {};
    viewContext.Templates = {};
    viewContext.OnPostRender = OnViewPostRender;
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(viewContext);
    function OnViewPostRender(ctx) {
    $("a[title='More options']").removeAttr("onclick");
    $(".ms-list-itemLink").removeAttr("onclick");
    $("a[title='More options']").attr("onclick", "showMenuList(this);return false;");
    function showMenuList(obj) {
    var itemId = $(obj).parents("tr").attr("id").split(",")[1];
    //show ECB menu
    CoreInvoke('ShowECBMenuForTr', obj, event);
    var teamId = getCurrentTeamId("Content Pool", itemId);
    var styles = "";
    if (isSiteOwner("Technet SharePoint Team Owners")) {
    styles = "li[text='Delete Item ']{display:block;} li.ms-core-menu-separator:last-child{display:block;} ul.ms-core-menu-list > li:nth-last-child(5){display:block;} li[text='Edit Item ']{display:block;} li[text='Upload Document']{display:block;} li[text='Approve']{display:block;} li[text='Reject']{display:block;} li[text='Add Publish Link']{display:block;}";
    } else if (isReviewer("List1_FAQ_team", teamId, "Reviewers")) {
    styles = "li[text='Delete Item ']{display:block;} li.ms-core-menu-separator:last-child{display:block;} ul.ms-core-menu-list > li:nth-last-child(5){display:block;} li[text='Edit Item ']{display:block;} li[text='Upload Document']{display:block;} li[text='Approve']{display:block;} li[text='Reject']{display:block;} li[text='Add Publish Link']{display:block;}";
    } else if (isComposer(obj)) {
    styles = "li[text='Delete Item ']{display:block;} li.ms-core-menu-separator:last-child{display:block;} ul.ms-core-menu-list > li:nth-last-child(5){display:block;} li[text='Edit Item ']{display:block;} li[text='Upload Document']{display:block;} li[text='Approve']{display:none;} li[text='Reject']{display:none;} li[text='Add Publish Link']{display:none;}";
    } else {
    styles = "li[text='Delete Item ']{display:none;} li.ms-core-menu-separator:last-child{display:none;} ul.ms-core-menu-list > li:nth-last-child(5){display:none;} li[text='Edit Item ']{display:none;} li[text='Upload Document']{display:none;} li[text='Approve']{display:none;} li[text='Reject']{display:none;} li[text='Add Publish Link']{display:none;}";
    includeStyleElement(styles);
    //get current team id
    function getCurrentTeamId(listName,itemId){
    var teamId="";
    var requestUri = _spPageContextInfo.webAbsoluteUrl +
    "/_api/Web/Lists/getByTitle('"+listName+"')/items("+itemId+")?$select=MyTeamId";
    // execute AJAX request
    $.ajax({
    url: requestUri,
    type: "GET",
    headers: { "ACCEPT": "application/json;odata=verbose" },
    async: false,
    success: function (data) {
    if(data.d.MyTeamId!=null){
    teamId=data.d.MyTeamId;
    }else{
    teamId="0";
    error: function () {
    //alert("Failed to get details");
    return teamId;
    //check whether is owner
    //Technet SharePoint Team Owners
    function isSiteOwner(groupName) {
    var flag = false;
    var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/Web/effectiveBasePermissions";
    // execute AJAX request
    $.ajax({
    url: requestUri,
    type: "GET",
    headers: { "ACCEPT": "application/json;odata=verbose" },
    async: false,
    success: function (data) {
    var permissions = new SP.BasePermissions();
    permissions.fromJson(data.d.EffectiveBasePermissions);
    flag = permissions.has(SP.PermissionKind.managePermissions);
    error: function () {
    //alert("Failed to get details");
    return flag;
    function isComposer(obj) {
    var flag = false;
    var userId = _spPageContextInfo.userId;
    var composerId = $(obj).parents("tr").find("a[href*='userdisp.aspx']").attr("href").split("ID=")[1];
    if (composerId == userId) {
    flag = true;
    return flag;
    //check whether is reviewer
    function isReviewer(listName,teamId,peopleColumn){
    var flag=false;
    var userId=_spPageContextInfo.userId;
    // begin work to call across network
    var requestUri = _spPageContextInfo.webAbsoluteUrl +
    "/_api/Web/Lists/getByTitle('"+listName+"')/items?$select=ID&$filter=(ID eq '"+teamId+"' and "+peopleColumn+"Id eq '"+userId+"')";
    // execute AJAX request
    $.ajax({
    url: requestUri,
    type: "GET",
    headers: { "ACCEPT": "application/json;odata=verbose" },
    async: false,
    success: function (data) {
    if(data.d.results.length>0){
    flag=true;
    error: function () {
    //alert("Failed to get details");
    return flag;
    //insert style into page
    function includeStyleElement(styles) {
    var style = document.createElement("style");
    style.type = "text/css";
    (document.getElementsByTagName("head")[0] || document.body).appendChild(style);
    if (style.styleSheet) {
    //for ie
    style.styleSheet.cssText = styles;
    } else {
    //for w3c
    style.appendChild(document.createTextNode(styles));
    3.3.2       
    Workflow email customization
    The email will only be sent to engineer or team reviewer in the three scenarios:
    When engineer uploads an idea or content, reviewer will receive an email;
    When engineer uploads a content to an existing idea, reviewer will receive an email;
    When reviewer approve/reject an idea or content, engineer will receive an email;
    The design of the workflow process  :
     The email design like this:
    Email to engineer
    Email to reviewer
    Let us know if you are interested in it. Happy coding!
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

    A good solution. Liked it very much. Can you please make it a technet blog for others.
    [email protected]

  • EVS - how to get selected values back into model?

    Hi all!
    I am new to ‘WebDynpro’ but I’ve got a closer look to the tutorials but since I didn’t found a hint for my problem I try it this way! The situation is the following:
    I am using selector fields to support the user with some constants to choose from but it is still possible to enter the data directly into the input field.
    I followed the tutorial for this purpose with the difference that I initialized the selector fields with data coming from the model. This happens in the ‘wdDoInit()’ of the view controller.
    The problem is how to get the selected value back into the model without forcing the user to use the F4-Help or trigger a ‘onEnter’ event on the input field.
    Due to the modification of the data type at runtime I can’t bind the attribute of the view context holding the selected value to another one of a custom controller context.
    I hope there is a simple solution because I am just asking for a common functionality on a web site.
    Thanks in advance!
    Frank

    Reiner,
    I cannot fully understand your requirements, but probably my solution described in blog post <a href="/people/valery.silaev/blog/2006/03/10/minus-evs-plus-ovs-value-help-smart-input">Minus EVS, Plus OVS == value help + "smart" input</a> will help you.
    My idea was to use OVS instead of EVS with pair of calculated "proxy" attribute and real attribute. Real attribute has enumeration, proxy attribute used for input. In my solution real attribute is always synchronized with proxy attribute...
    Valery Silaev
    EPAM Systems
    http://www.NetWeaverTeam.com

  • Sending Mail with attachment like User Decision

    Hi,
    Is there any way to send the document attached with the send mail step ? In User Decision, we can use binding between the workflow and task and document is attached. Like wise, is there any method ??
    I know we can send the attachment using the FM SO_****. So don give that answers. I want to know without using the FM, is it possible or not ?
    And i don want to use BO SOFM.
    For example, in Project Definition, one person creates a milestone. WF is triggered and goes for attachment of concorrence note. One attaches the concorrence note and mail is send to initiator. In that mail, can he able to see the attachment ??

    As far as I know the answer is "probably". You aren't saying how the mail is sent to initiator, you just say you don't want to use the FM or the BOR object type SOFM. I assume you are using the standard sendmail step type, i.e. BOR object type SELFITEM with method SendTaskDescription.
    As I am sure you can imagine, an attachment doesn't magically appear. If you send a workflow step (task) to someone, you can bind attachments to make them available in work item display. If you send a message you can construct it with attachments, but that doesn't happen without any effort. If you look at the parameters for SendTaskDescription you will see that there is a parameter for attachments. Try passing (binding) a value to it. If your SendMail task doesn't include that parameter as importing parameter you will of course have to fix your task (TS object) first.

  • Can't create a repository with a local physical disk

    Hi,
    I'm using Oracle VM Manager 3.0.3.
    I created a non clustered server pool with one server. That server has 2 identical SATA 500GB internal drives and 1 eSATA 750GB drive in AHCI mode. The 750G eSATA drive is the primary boot drive and hosts the MBR with Windows 7. One of the 500GB SATA internal drive hosts Oracle VM Server. The other 500GB SATA drive has no partition and I want to use it as a local OVM repository. When I boot the server I can select to boot Windows 7 or Oracle VM Server with no issue.
    After the OVM server boots, OVM Manager 3.0.3 can discover it along with 2 physical disks: the 500GB SATA internal drive (SATA_WDC_WD5000BEKT-_WD-WX41A11X1750) I want to use as a repository and the eSATA 750GB drive. OVM Manager reports these physical disks as SAN type with no file system.
    When I create my local repository for the server pool, I select the physical disk SATA_WDC_WD5000BEKT-_WD-WX41A11X1750 and click the "Next" button. But the job always fails with the following details:
    Job Construction Phase
    begin()
    Appended operation 'File System Construct' to object '0004fb0000090000865c3f26b528bc39 (Local FS OracleVS01)'.
    Appended operation 'Repository Construct' to object '0004fb0000030000182872191a913bac (SATA_WDC_WD5000BEKT-_WD-WX41A11X1750)'.
    commit()
    Completed Step: COMMIT
    Objects and Operations
    Object (IN_USE): [LocalFileServer] 0004fb0000090000865c3f26b528bc39 (Local FS OracleVS01)
    Operation: File System Construct
    Object (CREATED): [LocalFileSystem] 0004fb0000050000f36710bdcca530d4 (fs_MyLocalRepository)
    Object (CREATED): [Repository] 0004fb0000030000182872191a913bac (MyLocalRepository)
    Operation: Repository Construct
    Object (IN_USE): [StorageElement] 0004fb00001800004e793d6f05fced03 (SATA_WDC_WD5000BEKT-_WD-WX41A11X1750)
    Job Running Phase at 12:18 on Tue, Jan 31, 2012
    Job Participants: [00:25:22:dc:0a:ee:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff (OracleVS01)]
    Actioner
    Starting operation 'File System Construct' on object '0004fb0000050000f36710bdcca530d4 (fs_MyLocalRepository)'
    Job Internal Error (Operation)com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_B000E Storage plugin command [storage_plugin_createFileSystem] failed for storage server [0004fb0000090000865c3f26b528bc39] failed with [com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750, Status: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012] OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    at com.oracle.ovm.mgr.action.StoragePluginAction.processException(StoragePluginAction.java:1325)
    at com.oracle.ovm.mgr.action.StoragePluginAction.createFileSystem(StoragePluginAction.java:868)
    at com.oracle.ovm.mgr.op.physical.storage.FileSystemConstruct.createFileSystem(FileSystemConstruct.java:57)
    at com.oracle.ovm.mgr.op.physical.storage.FileSystemConstruct.action(FileSystemConstruct.java:49)
    at com.oracle.ovm.mgr.api.job.JobEngine.operationActioner(JobEngine.java:193)
    at com.oracle.ovm.mgr.api.job.JobEngine.objectActioner(JobEngine.java:264)
    at com.oracle.ovm.mgr.api.job.InternalJobDbImpl.objectCommitter(InternalJobDbImpl.java:1090)
    at com.oracle.odof.core.AbstractVessel.invokeMethod(AbstractVessel.java:247)
    at com.oracle.odof.core.AbstractVessel.invokeMethod(AbstractVessel.java:207)
    at com.oracle.odof.core.BasicWork.invokeMethod(BasicWork.java:136)
    at com.oracle.odof.command.InvokeMethodCommand.process(InvokeMethodCommand.java:100)
    at com.oracle.odof.core.BasicWork.processCommand(BasicWork.java:81)
    at com.oracle.odof.core.TransactionManager.processCommand(TransactionManager.java:751)
    at com.oracle.odof.core.WorkflowManager.processCommand(WorkflowManager.java:401)
    at com.oracle.odof.core.WorkflowManager.processWork(WorkflowManager.java:459)
    at com.oracle.odof.io.AbstractClient.run(AbstractClient.java:42)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    at com.oracle.ovm.mgr.action.ActionEngine.sendCommandToServer(ActionEngine.java:475)
    at com.oracle.ovm.mgr.action.ActionEngine.sendUndispatchedServerCommand(ActionEngine.java:427)
    at com.oracle.ovm.mgr.action.ActionEngine.sendServerCommand(ActionEngine.java:369)
    at com.oracle.ovm.mgr.action.StoragePluginAction.createFileSystem(StoragePluginAction.java:864)
    ... 18 more
    Caused by: com.oracle.ovm.mgr.api.exception.IllegalOperationException: OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    at com.oracle.ovm.mgr.action.ActionEngine.sendAction(ActionEngine.java:753)
    at com.oracle.ovm.mgr.action.ActionEngine.sendCommandToServer(ActionEngine.java:471)
    ... 21 more
    FailedOperationCleanup
    Starting failed operation 'File System Construct' cleanup on object 'fs_MyLocalRepository'
    Complete rollback operation 'File System Construct' completed with direction=fs_MyLocalRepository
    Rollbacker
    Objects To Be Rolled Back
    Object (IN_USE): [LocalFileServer] 0004fb0000090000865c3f26b528bc39 (Local FS OracleVS01)
    Object (CREATED): [LocalFileSystem] 0004fb0000050000f36710bdcca530d4 (fs_MyLocalRepository)
    Object (CREATED): [Repository] 0004fb0000030000182872191a913bac (MyLocalRepository)
    Object (IN_USE): [StorageElement] 0004fb00001800004e793d6f05fced03 (SATA_WDC_WD5000BEKT-_WD-WX41A11X1750)
    Write Methods Invoked
    Class=InternalJobDbImpl vessel_id=5063 method=addTransactionIdentifier accessLevel=6
    Class=LocalFileServerDbImpl vessel_id=4954 method=createFileSystem accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setName accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setFoundryContext accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=onPersistableCreate accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setLifecycleState accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setRollbackLifecycleState accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setRefreshed accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setBackingDevices accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setUuid accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setPath accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setSimpleName accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=addFileServer accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setStorageDevice accessLevel=6
    Class=StorageElementDbImpl vessel_id=4972 method=addLayeredFileSystem accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=setSimpleName accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=createRepository accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setName accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setFoundryContext accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=onPersistableCreate accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setLifecycleState accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setRollbackLifecycleState accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setRefreshed accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setDom0Uuid accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setSharePath accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setSimpleName accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setFileSystem accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=addRepository accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setManagerUuid accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setVersion accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=addJobOperation accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setSimpleName accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=setDescription accessLevel=6
    Class=InternalJobDbImpl vessel_id=5063 method=setCompletedStep accessLevel=6
    Class=InternalJobDbImpl vessel_id=5063 method=setAssociatedHandles accessLevel=6
    Class=InternalJobDbImpl vessel_id=5063 method=setFailedOperation accessLevel=6
    Class=LocalFileServerDbImpl vessel_id=4954 method=nextJobOperation accessLevel=6
    Class=LocalFileSystemDbImpl vessel_id=5072 method=nextJobOperation accessLevel=6
    Class=RepositoryDbImpl vessel_id=5078 method=nextJobOperation accessLevel=6
    Class=StorageElementDbImpl vessel_id=4972 method=nextJobOperation accessLevel=6
    Completed Step: ROLLBACK
    Job failed commit (internal) due to OVMAPI_B000E Storage plugin command [storage_plugin_createFileSystem] failed for storage server [0004fb0000090000865c3f26b528bc39] failed with [com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750, Status: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012] OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_B000E Storage plugin command [storage_plugin_createFileSystem] failed for storage server [0004fb0000090000865c3f26b528bc39] failed with [com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750, Status: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012] OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    at com.oracle.ovm.mgr.action.StoragePluginAction.processException(StoragePluginAction.java:1325)
    at com.oracle.ovm.mgr.action.StoragePluginAction.createFileSystem(StoragePluginAction.java:868)
    at com.oracle.ovm.mgr.op.physical.storage.FileSystemConstruct.createFileSystem(FileSystemConstruct.java:57)
    at com.oracle.ovm.mgr.op.physical.storage.FileSystemConstruct.action(FileSystemConstruct.java:49)
    at com.oracle.ovm.mgr.api.job.JobEngine.operationActioner(JobEngine.java:193)
    at com.oracle.ovm.mgr.api.job.JobEngine.objectActioner(JobEngine.java:264)
    at com.oracle.ovm.mgr.api.job.InternalJobDbImpl.objectCommitter(InternalJobDbImpl.java:1090)
    at sun.reflect.GeneratedMethodAccessor867.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.oracle.odof.core.AbstractVessel.invokeMethod(AbstractVessel.java:247)
    at com.oracle.odof.core.AbstractVessel.invokeMethod(AbstractVessel.java:207)
    at com.oracle.odof.core.BasicWork.invokeMethod(BasicWork.java:136)
    at com.oracle.odof.command.InvokeMethodCommand.process(InvokeMethodCommand.java:100)
    at com.oracle.odof.core.BasicWork.processCommand(BasicWork.java:81)
    at com.oracle.odof.core.TransactionManager.processCommand(TransactionManager.java:751)
    at com.oracle.odof.core.WorkflowManager.processCommand(WorkflowManager.java:401)
    at com.oracle.odof.core.WorkflowManager.processWork(WorkflowManager.java:459)
    at com.oracle.odof.io.AbstractClient.run(AbstractClient.java:42)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_4010E Attempt to send command: storage_plugin_createFileSystem to server: OracleVS01 failed. OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    Tue Jan 31 12:18:46 CST 2012
    at com.oracle.ovm.mgr.action.ActionEngine.sendCommandToServer(ActionEngine.java:475)
    at com.oracle.ovm.mgr.action.ActionEngine.sendUndispatchedServerCommand(ActionEngine.java:427)
    at com.oracle.ovm.mgr.action.ActionEngine.sendServerCommand(ActionEngine.java:369)
    at com.oracle.ovm.mgr.action.StoragePluginAction.createFileSystem(StoragePluginAction.java:864)
    ... 18 more
    Caused by: com.oracle.ovm.mgr.api.exception.IllegalOperationException: OVMAPI_4004E Server Failed Command: storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000f36710bdcca530d4 /dev/mapper/SATA_WDC_WD5000BEKT-WD-WX41A11X1750, Status: org.apache.xmlrpc.XmlRpcException: OSCPlugin.FileSystemBusyEx:'An ocfs2 filesystem already exists on /dev/mapper/SATAWDC_WD5000BEKT-_WD-WX41A11X1750'
    Tue Jan 31 12:18:46 CST 2012
    at com.oracle.ovm.mgr.action.ActionEngine.sendAction(ActionEngine.java:753)
    at com.oracle.ovm.mgr.action.ActionEngine.sendCommandToServer(ActionEngine.java:471)
    ... 21 more
    End of Job
    I don't understand why I always get the error message 'An ocfs2 filesystem already exists on /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750' since that disk is blank with no partition.
    Please help me.
    Daniel.

    Hi Avi,
    Blkid returns the following:
    /dev/sda1: LABEL="/boot" UUID="00b66c82-c4e2-4067-bbc4-f22899fce856" TYPE="ext3"
    /dev/sda2: LABEL="/" UUID="b6bc51a3-884a-4d9d-8bc1-8c68792cbe57" TYPE="ext3"
    /dev/sda3: TYPE="swap" LABEL="SWAP-sda3" UUID="58f3de58-a13b-4239-9894-8dffa0856a1a"
    /dev/sdb1: TYPE="ntfs"
    /dev/sdb2: TYPE="ntfs"
    /dev/sdc: LABEL="OVSd62418098e5d5" UUID="0004fb00-0005-0000-d3ad-62418098e5d5" TYPE="ocfs2"
    /dev/mapper/SATA_ST750LX003-1AC1_W2001LHFp2: TYPE="ntfs"
    /dev/mapper/SATA_ST750LX003-1AC1_W2001LHFp1: TYPE="ntfs"
    /dev/mapper/SATA_WDC_WD5000BEKT-_WD-WX41A11X1750: LABEL="OVSd62418098e5d5" UUID="0004fb00-0005-0000-d3ad-62418098e5d5" TYPE="ocfs2"
    /dev/sdd1: SEC_TYPE="msdos" LABEL="CLE" UUID="827A-C3D5" TYPE="vfat"
    "CLE" is an attached USB jump drive.
    Thanks.

  • Combining results with a Query of Queries - NOT QUITE THERE!!!

    I have included a small sample of my database, specifically the four tables I am trying to work with in the hopes that someone can steer me down the right path. Here are the four tables and the bottom is a visual desciption of what I am trying to achieve;
    ORDERS
    SALES CALLS
    ID
    SaleDate
    TerritoryManager
    UserID
    SaleDate
    TerritoryManager
    ID
    UserID
    426
    01-Oct-09
    Mike B
    10112
    10/1/2009
    Mike  B
    253
    10112
    427
    01-Oct-09
    Russ  C
    10115
    10/1/2009
    Mike  B
    254
    10112
    430
    01-Oct-09
    Jerry W
    10145
    10/1/2009
    Mike  B
    255
    10112
    432
    01-Oct-09
    Ron  H
    10118
    10/1/2009
    Mike  B
    256
    10112
    433
    01-Oct-09
    Ron H
    10118
    10/1/2009
    Ron  H
    257
    10118
    10/1/2009
    Ron  H
    258
    10118
    PRODUCTS ORDERED
    10/1/2009
    Ron  H
    260
    10118
    OrderID
    Quantity
    NewExisting
    UserID
    10/1/2009
    Russ  C
    261
    10115
    426
    12
    0
    10112
    10/1/2009
    Mike  B
    267
    10112
    427
    2
    0
    10115
    10/1/2009
    Mike  B
    268
    10112
    427
    3
    1
    10115
    430
    1
    0
    10145
    USERS
    430
    1
    0
    10145
    TerritoryManager
    Zone
    UserID
    432
    1
    0
    10118
    Mike B
    Central
    10112
    432
    1
    0
    10118
    Russ  C
    Central
    10115
    432
    1
    1
    10118
    Jerry W
    Central
    10145
    432
    1
    1
    10118
    Ron  H
    Central
    10118
    433
    2
    1
    10120
    Don  M
    Central
    10120
    Central Zone
    Ttl Calls
    Ttl Orders
    Ttl Items
    Ttl New Items
    Mike B
    5
    1
    12
    1
    Russ  C
    1
    1
    5
    Jerry W
    1
    2
    Ron  H
    3
    2
    6
    3
    I have tried to achieve this result in many ways to no avail. If I try to combine PRODUCTS ORDERED with ORDERS I get an erroneous count. I finally resigned myself to getting all the info I needed with separate queries and then trying to combine them with a query of queries. This worked fine until the last query of queries which timed out with no results. I am a newbie and would appreciate any constructive help with this. I am including my queries below as well;
    <cfquery name="qGetOrders" datasource="manna_premier">
    SELECT Count(Orders.ID) AS CountOfID,
           Orders.UserID AS Orders_UserID,
        Users.UserID AS Users_UserID,
        Users.TMName
    FROM Users INNER JOIN Orders ON Users.[UserID] = Orders.[UserID]
    GROUP BY Orders.UserID, Users.UserID, Users.TMName;
    </cfquery>
    <cfquery name="qGetSalesCalls" datasource="manna_premier">
    SELECT Count(Sales_Calls.ID) AS CountOfID,
           Users.UserID AS Users_UserID,
        Users.TMName,
        Sales_Calls.UserID AS Sales_Calls_UserID
    FROM Users INNER JOIN Sales_Calls ON Users.[UserID] = Sales_Calls.[UserID]
    GROUP BY Sales_Calls.UserID, Users.UserID, Users.TMName;
    </cfquery>
    <cfquery name="qGetProducts" datasource="manna_premier">
    SELECT Count(ProductOrders.OrderID) AS CountOfOrderID,
           Sum(ProductOrders.Quantity) AS SumOfQuantity,
        Sum(ProductOrders.NewExisting) AS SumOfNewExisting,
        ProductOrders.UserID
    FROM Orders INNER JOIN ProductOrders ON Orders.[ID] = ProductOrders.[OrderID]
    GROUP BY ProductOrders.UserID;
    </cfquery>
    <cfquery name="qqCombOrd_Prod" dbtype="query">
    SELECT *
    FROM qGetOrders, qGetProducts
    </cfquery>
    <cfquery name="qqCombOrd_ProdtoSales" dbtype="query">
    SELECT *
    FROM qqCombOrd_Prod, qGetSalesCalls
    </cfquery>
    PLEASE HELP!!! I'm about to go scouting for bridges to leap from!

    You might be able to simplify that query by getting rid of the subqueries.  Something like this
    SELECT TerritoryManager
    , count(sc.userid) totalcalls
    , sum(po.quantity) total
    , sum(newexisting) totalnew
    , count(o.userid) totalorders
    from users u join salescalls sc on u.userid = sc.userid
    join orders o on u.userid = o.userid
    join productorders po on u.userid = po.userid
    where userzone = 'CENTRAL'

Maybe you are looking for

  • ADF BC - Date Picker closes Popup

    Hi all, I have a inputDate field inside of a form which is in a popup. When i choose a date from the date picker that comes up, (the one built in to the inputDate field) my popup closes. Is there a way to keep the popup open until a user clicks back

  • I cant open my trash

    Whatever I do, I cant open my trash. Ive tried relaunching finder, and "killall dock" and "killall finder" in terminal. Nothing works. ans when i look up trash in spotlight I get a error. I dont really get how terminal works either.....

  • Allocation units based on file size

    Hi Experts, I have 11gR2 RAC environment which i installed recently with ASM. When i create a datafile of size 12GB its taking 2MB extra. For storing what information this 2MB is taken, as far as my understanding, 1MB is for maintaining block extent

  • Credit Management Horizon not in months

    Hi All, In Dynamic credit check, if i want to enable the horizon as weeks or days instead of months, how to do that. When viewing the credit check screen for dynamic credit check, the field for selecting the month/week/days is always greyed out with

  • Ugrading to 10.4.6 and old peripherals

    Will upgrading an iMac 15 inch flat panel G4, 800Mhz, 256Mb, USB1.1 ports to OSX 10.4.6 cause problems with the old peripherals? A gift of a video iPod means I need to upgrade the flat panel iMac so the Video iPod can be used. My concern is regarding