Relationship between a Spark DropDownList's dataProvider and selectedItem

I'm working on an existing project and have come across a somewhat complicated issue regarding a Spark DropDownList's (actually, a custom component inheriting from it) displayed item not changing when its dataProvider is updated.
Here's the code for the custom TitleWindow component containing the custom DropDownList:
<?xml version="1.0" encoding="utf-8"?>
<components:RFTitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
                          xmlns:s="library://ns.adobe.com/flex/spark"
                          xmlns:mx="library://ns.adobe.com/flex/mx"
                          xmlns:components="components.*"
                          xmlns:rfform="rfform.*"
                          width="550" height="450"
                          title="{currentState} Site Equipment"
                          cancelButton="{btnCancel}"
                          defaultButton="{btnSave}"
                          initialFocus="{rftName}"
                          creationComplete="init()" close="cancelEdit()">
  <fx:Script>
    <![CDATA[
      import events.SiteEquipmentEvent;
      import events.SiteEquipmentTypeEvent;
      import mx.collections.ArrayList;
      import mx.controls.Menu;
      import mx.core.FlexGlobals;
      import mx.core.UIComponent;
      import mx.events.MenuEvent;
      import mx.managers.PopUpManager;
      import mx.validators.ValidationResult;
      import mx.validators.Validator;
      import spark.events.IndexChangeEvent;
      private const TYPES:Array = ["A", "B", "C", "D"];
      [Bindable] [Embed(source="../assets/images/circle_red_x.gif")] private var icoRedX:Class;
      [Bindable] private var siteEquipment:SiteEquipment;
      private var validators:Array;
      private var typePopUp:Menu;
      public static function open(item:SiteEquipment):SiteEquipmentEdit
        var s:SiteEquipmentEdit = new SiteEquipmentEdit();
        s.siteEquipment = item;
        PopUpManager.addPopUp(s, DisplayObject(FlexGlobals.topLevelApplication), true);
        PopUpManager.centerPopUp(s);
        return s;
      private function init():void
        initTypePopUp();
        if (siteEquipment.id == SiteEquipment.NEW_ID)
          currentState = "New";
        else
          currentState = "Edit";
          validateAll();
          if (!rftName.enabled)
            rfcmbType.setFocus();
        siteEquipment.addEventListener(SiteEquipmentEvent.SITE_EQUIPMENT_SAVE, saveComplete);
      override public function dispose(event:Event = null):void
        super.dispose();
        siteEquipment.removeEventListener(SiteEquipmentEvent.SITE_EQUIPMENT_SAVE, saveComplete);
        typePopUp.removeEventListener("itemClick", typePopUp_click);
        siteEquipment.dispose();
        icoRedX = null;
        siteEquipment = null;
        validators = null;
        typePopUp = null;
        removeChildren();
      private function cancelEdit():void
        siteEquipment.cancelEdit();
      private function saveForm():void
        var newValue:SiteEquipment = new SiteEquipment();
        newValue.id = siteEquipment.id;
        newValue.locid = siteEquipment.locid;
        newValue.name = rftName.trimmedText;
        siteEquipment.save(newValue);
      private function saveComplete(event:Event):void
        dispose();
      private function typePopUp_click(event:MenuEvent):void
        switch(event.item)
          case "Edit Selected Type":
            SiteEquipmentType(rfcmbType.selectedItem).showEditForm();
            break;
          case "Create A New Type":
            new SiteEquipmentType().showEditForm(type_created, null, type_removeListeners);
            break;
      private function type_created(event:SiteEquipmentTypeEvent = null):void
        type_removeListeners(event);
        rfcmbType.selectedItem = event.siteEquipmentType;
      private function type_removeListeners(event:Event):void
        var s:SiteEquipmentType = SiteEquipmentType(event.target);
        s.removeEventListener(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_CREATE, type_created);
        s.removeEventListener(SiteEquipmentType.SITE_EQUIPMENT_TYPE_CANCEL, type_removeListeners);
      private function initTypePopUp():void
        typePopUp = Menu.createMenu(puType, ['Edit Selected Type', 'Create A New Type']);
        typePopUp.addEventListener("itemClick", typePopUp_click);
      private function popupTypeOptions():void
        var p:Point = puType.localToGlobal(new Point(0, puType.height + 5));
        typePopUp.show(p.x, p.y);
      private function validateAll():void
        var isValid:Boolean;
        for each (var validator:Validator in validators)
          isValid = true;
          for each (var result:ValidationResult in validator.validate().results)
            if (result.isError)
              isValid = false;
              break;
          UIComponent(validator.source).styleName = "valid_" + isValid.toString();
      private function rfcmbType_changeHandler(event:IndexChangeEvent):void
        if (TYPES.indexOf(SiteEquipmentType(RFDropDownList(event.target).selectedItem).name) > -1)
          rftName.text = "Blah";
          rftName.enabled = false;
        else
          rftName.enabled = true;
    ]]>
  </fx:Script>
  <fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
    <s:DateTimeFormatter id="mdy"
                         dateTimePattern="MM/dd/yyyy"/>
  </fx:Declarations>
  <components:states>
    <s:State name="Edit"/>
    <s:State name="New"/>
  </components:states>
  <rfform:RFForm width="100%" height="100%"
                 saveButton="{btnSave}"
                 validators="{new ArrayList([valQuantity, valHeight])}">
    <rfform:RFFormItem label="Type"
                       width="100%">
      <s:HGroup width="100%">
        <rfform:RFDropDownList id="rfcmbType"
                               width="100%"
                               originalValue="{siteEquipment.model.eqType}"
                               dataProvider="{SiteEquipmentType.all}"
                               change="rfcmbType_changeHandler(event)"/>
        <rfform:RFButton id="puType"
                         icon="@Embed(source='/Shared/src/assets/images/settings.png')"
                         width="30"
                         click="popupTypeOptions()"/>
      </s:HGroup>
    </rfform:RFFormItem>
  </rfform:RFForm>
</components:RFTitleWindow>
I've omitted a little bit of code, so please ask if you need anything that I didn't include.
In regards to the RFDropDownList, originalValue is saved so that when a new selection is made, the new selection can be compared to the original value.  Setting originalValue sets the RFDropDownList's selectedItem to originalValue.
When this window is first opened, a new instance of SiteEquipment is created.  Unless the equipment is new, the SiteEquipment instance sets the SiteEquipmentType to whatever has already been saved, using this line:
eqType = SiteEquipmentType.selectFromObject(item.SITE_EQUIPMENT_TYPE);
And here's the code from the SiteEquipmentType class:
package components
  import common.UpdateStatus;
  import events.SiteEquipmentTypeEvent;
  import scripts.MyUtility;
  import flash.events.Event;
  import flash.events.EventDispatcher;
  import flash.utils.setTimeout;
  import mx.collections.ArrayCollection;
  import mx.collections.Sort;
  import mx.collections.SortField;
  import mx.controls.Alert;
  import mx.rpc.events.ResultEvent;
  import mx.utils.ObjectProxy;
  [Event(name="cacheChanged", type="flash.events.Event")]
  [Event(name="SITE_EQUIPMENT_TYPE_CREATE", type="events.SiteEquipmentTypeEvent")]
  [Event(name="SITE_EQUIPMENT_TYPE_EDIT", type="events.SiteEquipmentTypeEvent")]
  [Event(name="SITE_EQUIPMENT_TYPE_CANCEL", type="flash.events.Event")]
  public class SiteEquipmentType extends ObjectProxy
    public static const NEW_ID:int = -1;
    public static const SITE_EQUIPMENT_TYPE_CANCEL:String = "siteEquipmentTypeCancel";
    [Bindable]
    public var id:int = NEW_ID;
    [DefaultProperty]
    [Bindable]
    public var name:String = "";
    private static var dict:Object = new Object();
    private static var getAllServiceCalled:Boolean = false;
    private static var eventDispatcher:EventDispatcher = new EventDispatcher();
    private var updateStatus:UpdateStatus = UpdateStatus.COMPLETE;
    public function SiteEquipmentType(item:Object = null, keepInCache:Boolean = true)
      if (item == null)
        return;
      else if (item is int)
        id = int(item);
        refreshFromDb();
      else
        updateFromResult(item);
      if (keepInCache)
        addToCache(this);
    private static var _all:ArrayCollection = new ArrayCollection();
    public static function get all():ArrayCollection
      if (!getAllServiceCalled)
        getAllServiceCalled = true;
        MyUtility.httpPost("/page.aspx", {request:"SITE_EQUIPMENT_TYPE"}, getAll_result);
        var s:Sort = new Sort();
        s.fields = [new SortField("name", true)];
        _all.sort = s;
      return _all;
    public static function addEventListener(type:String, listener:Function):void
      eventDispatcher.addEventListener(type, listener);
    public static function removeEventListener(type:String, listener:Function):void
      eventDispatcher.removeEventListener(type, listener);
    public static function dispatchEvent(event:Event):Boolean
      return eventDispatcher.dispatchEvent(event);
    private static function addToCache(item:SiteEquipmentType):void
      removeFromCache(item.id);
      dict[item.id] = item;
      _all.addItem(item);
      dispatchEvent(new Event("cacheChanged"));
    private static function removeFromCache(id:int):void
      var item:SiteEquipmentType = dict[id];
      if (item)
        delete dict[id];
        _all.removeItemAt(_all.getItemIndex(item));
    public static function selectById(id:int):SiteEquipmentType
      if (dict[id])
        return dict[id];
      return new SiteEquipmentType(id);
    public static function selectFromObject(obj:Object):SiteEquipmentType
      var selected:SiteEquipmentType;
      var objId:int = obj.SITE_EQUIPMENT_TYPE_ID;
      if (dict[objId])
        selected = dict[objId];
        selected.updateFromResult(obj);
      else
        selected = new SiteEquipmentType(obj);
      return selected;
    private function updateFromResult(item:Object):void
      if (item)
        id = item.SITE_EQUIPMENT_TYPE_ID;
        name = item.SITE_EQUIPMENT_TYPE_NAME;
    private function toRequestObject():Object
      var o:Object = new Object();
      o.SITE_EQUIPMENT_TYPE_ID = id;
      o.SITE_EQUIPMENT_TYPE_NAME = name;
      return o;
    public function copy():SiteEquipmentType
      return new SiteEquipmentType(this.toRequestObject());
    public function save(value:SiteEquipmentType):void
      if (updateStatus == UpdateStatus.PENDING)
        Alert.show("Site Equipment Type is pending an update.", "Pending Update");
        return;
      else if (updateStatus == UpdateStatus.ERROR)
        Alert.show("There is a problem with this Site Equipment Type, and it cannot be saved. Please close the window.", "Save Failure");
        return;
      var request:Object;
      if (id == NEW_ID)
        if (value)
          request = value.toRequestObject();
        else
          request = toRequestObject();
        request._COMMAND = "INSERT";
      else
        if (value)
          request = MyUtility.objectDiff(this.toRequestObject(), value.toRequestObject());
          if (!request)
            dispatchEvent(new SiteEquipmentTypeEvent(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_CREATE, this));
            return;
        else
          request = toRequestObject();
        request._COMMAND = "UPDATE";
        request._SITE_EQUIPMENT_TYPE_ID = id;
      delete request.SITE_EQUIPMENT_TYPE_ID;
      updateStatus = UpdateStatus.PENDING;
      MyUtility.httpPost("/updatetable.aspx?_SCHEMA=dbo&_TABLENAME=SITE_EQUIPMENT_TYPE&_RETURNRECORD=1", request, httpSave_result);
    public function toString():String
      return name;
    public function refreshFromDb():void
      if (updateStatus != UpdateStatus.PENDING)
        updateStatus = UpdateStatus.PENDING;
        MyUtility.httpPost("/page.aspx", {id:id, request:"Site_Equipment_Type"}, httpSelect_result);
    public function showEditForm(onCreate:Function = null, onEdit:Function = null, onCancel:Function = null):void
      if (id == 0)
        Alert.show("Edits are not allowed on this Site Equipment Type.", "Not Allowed");
        return;
      if (onCreate != null)
        addEventListener(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_CREATE, onCreate);
      if (onEdit != null)
        addEventListener(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_EDIT, onEdit);
      if (onCancel != null)
        addEventListener(SITE_EQUIPMENT_TYPE_CANCEL, onCancel);
      if (updateStatus == UpdateStatus.PENDING)
        setTimeout(showEditForm, 500);
      else if (updateStatus == UpdateStatus.COMPLETE)
        SiteEquipmentTypeEdit.open(this);
    public function cancelEdit():void
      dispatchEvent(new Event(SITE_EQUIPMENT_TYPE_CANCEL));
    private static function getAll_result(event:ResultEvent):void
      if (event.result.ROOT)
        if (event.result.ROOT.ERROR)
          Alert.show(event.result.ROOT.ERROR, "Error");
        else
          for each (var o:Object in MyUtility.ToArrayCollection(event.result.ROOT.SITE_EQUIPMENT_TYPE))
            var i:SiteEquipmentType = dict[o.SITE_EQUIPMENT_TYPE_ID];
            // If the Site Equipment Type is already in the cache, update it based on the XML returned
            if (i)
              i.updateFromResult(o);
              // Otherwise, create a new one from the XML returned
            else
              i = new SiteEquipmentType(o);
          _all.refresh();
    private function httpSelect_result(event:ResultEvent):void
      if (event.result.ROOT)
        if (event.result.ROOT.ERROR)
          Alert.show(event.result.ROOT.ERROR, "Error");
          updateStatus = UpdateStatus.ERROR;
        else
          updateFromResult(event.result.ROOT.SITE_EQUIPMENT_TYPE);
          updateStatus = UpdateStatus.COMPLETE;
      else
        updateStatus = UpdateStatus.ERROR;
    private function httpSave_result(event:ResultEvent):void
      if (event.result.ROOT.ERROR)
        Alert.show(event.result.ROOT.ERROR, "Error");
        updateStatus = UpdateStatus.ERROR;
      else
        try
          updateStatus = UpdateStatus.COMPLETE;
          if (id == NEW_ID)
            id = event.result.ROOT.RESULTS.IDENTITY;
            addToCache(this);
            updateFromResult(event.result.ROOT["DBO.SITE_EQUIPMENT_TYPE"]);
            dispatchEvent(new SiteEquipmentTypeEvent(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_CREATE, this));
          else
            updateFromResult(event.result.ROOT["DBO.SITE_EQUIPMENT_TYPE"]);
            dispatchEvent(new SiteEquipmentTypeEvent(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_EDIT, this));
            SiteEquipmentType.dispatchEvent(new SiteEquipmentTypeEvent(SiteEquipmentTypeEvent.SITE_EQUIPMENT_TYPE_EDIT, this));
        catch(ex:Error)
          Alert.show(ex.message, "Error");
          updateStatus = UpdateStatus.ERROR;
So the "_all" ArrayCollection serves as a cache of all of the different site equipment types.  When the edit window is first opened and a new instance of SiteEquipment is created, the SiteEquipmentType of the current SiteEquipment is added to _all and becomes the only SiteEquipmentType within _all.
At this point, the DropDownList has the correct item selected.  The problem occurs when the result comes in from getting all of the SiteEquipmentTypes.  The contents of _all are flushed, and each SiteEquipmentType is added in.  Once this happens, the DropDownList will have nothing for selectedItem.
I know this is quite complex, but any help would be greatly appreciated.

Ok, I have this figured out now.  First, though, I'll point out that this worked fine when using MX components and the Halo theme; the problem only appeared after switching over to Spark components and the Spark theme.  Anyway, since this class functions as a singleton (as best I understand them), I added a boolean variable to the SiteEquipmentType class representing whether or not the results from the HTTPService call had come back and been inserted into _all.  So in the TitleWindow's init method, I only populated the DropDownList's originalValue (which in turn sets the selectedItem) if that variable is true.  The first time an instance of the TitleWindow component is opened, though, this variable will initially be false.  So back in the SiteEquipmentType class, I have it dispatch an event right after setting the variable to true, and the TitleWindow componet will add a listener for this event if the variable is originally false.  If anyone needs further explanation, please ask.

Similar Messages

  • The relationship  between SAP BusinessObjects XI 4.0 and WebIntelligence 6

    A lot of APIs in Rebean\ Report Engine Java SDK are disfunctional in BI 4.0 and there is no replacement.
    [Rebean Developer Guide|http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_resdk_java_dg_en.pdf] say:
    SAP BusinessObjects XI 4.0 release, the Report Engine SDK does not support the following features:
    u2022 Drilling in Web Intelligence documents
    u2022 Building queries
    u2022 Document and report editing
    in [BI 4.0 Javadoc|http://help.sap.com/javadocs/bip/40/re/en/com/businessobjects/rebean/wi/package-summary.html]
    there are a lot of javadoc with warning  Warning: This interface is no longer functional from the SAP BusinessObjects XI 4.0 release onwards
    I found another [Java doc for WebIntelligence 6.x|http://help.sap.com/javadocs/boe/xi/re/en/overview-summary.html].
    http://help.sap.com/javadocs/boe/xi/re/en/overview-summary.html
    This documentation covers the REBean Java SDK. The REBean SDK allows you to work with ** documents and explore the metadata layer.
    not supported by 4.x,but supported by 6.x?
    what's the relationship  between SAP BusinessObjects XI 4.0 and WebIntelligence 6.x?
    What version of WebIntelligence  used by SAP BusinessObjects XI 4.0 ?

    Web Intelligence 6.x is an old product that is currently out of support. 
    Crystal Enterprise 10 and BusinessObjects 6.5 were the last separate Crystal / Web Intelligence products just after BusinessObjects acquired Crystal Decisions.  BusinessObjects XI was the successor to both CE 10 and BO 6.5.
    It just so happens that the product name was carried over from the BusinessObjects side, but the versioning brand was carried over from the Crystal side.  So 6.x doesn't mean a newer version of ReportEngine.  Timeline:
    ReportEngine 6.x -> ReportEngine 11 (XI R1) -> ReportEngine 11.5 (XI R2) -> ReportEngine 12 (XI 3.x) -> ReportEngine 14 (BI 4.x).
    So you can see the evolution of the branding that led to the newest version being branded by the number 4.0.
    The internal APIs being wrapped by ReportEngine was changed from 12 to 14, and thus not all functionality was carried over to 14.
    Sincerely,
    Ted Ueda

  • Relationship between the Koren Colour Management Model and PSE11

    I would like to relate the settings I apply to colour printing in PSE11 to the general model of Colour Management, in particular that described by Norman Koren(see his Papers on the internet). Then I will better understand what I am doing.
    I have an Epson printer and the driver contains the paper profiles for Epson papers.
    In principle, the Koren Model shows each device(camera image, monitor and printer) is linked through its Colour Engine(with the device profile infeed) to the central Image Working Colour Space.
    The PSE11 controls are:
    1. Printer Settings(through the Windows printer menus)
    2. Colour Management (through Edit->Colour Management, and
    3. Printer settings(through the File->print screens).
    1 and 3 are clearly associated with the printer. What happens when I select the options in 3? Am I modifying the paper profiles?
    Is there any control over the central Image Working Space? Is the Koren Model more complicated than the PSE11 Model?
    I know Colour Management can get very complicated - but I hope to find an explanation that will help an amateur photographer! 
    Grateful for any help.

    The menu edit / color management defines which color space will be used internally by Elements to record the edits which change the RGB values of pixels. A correct choice will insure a correct rendition on a calibrated display.
    Several cases :
    - the photo file is tagged for a specific color space. Then, if Elements can work internally with that color space, it uses it for the calculations. Contrary to common belief, Elements can work internally with other spaces than sRGB or aRGB. Lightroom users can easily check that a Prophoto tagged image can be processed in Elements. The picture is correctly displayed and when you 'save as' the checkbox for color space, it is in Prophoto RGB.
    - The photos are not tagged : that's where the options to 'optimize' for sRGB come into play. The internal working space will be assigned to the photo : sRGB to optimize for screen, aRGB to optimize for print.
    - Another situation : raw files. Raw data don't have a color space. They simply record the 'brightness' of the light gathered under the RGB filters. The correct 'white balance' and color space are defined in the conversion process. In the ACR module of Elements, there is no dialog for you to choose between sRGB or aRGB. The settings in your camera are ignored. Instead, ACR reads your choice for optimization in that edit / color menu. The conversion menu adopts the color space in that menu.
    So, that menu is mainly to define which color space will be chosen as 'working space' and what to do if that color space is not yet defined in the file metadata header.
    The printer and paper color settings are not taken into account here, only in the print module.
    Edit:
    I forgot to mention that the same edit / color menu is there to provide ways to convert to another color space (converting the RBG values, not only assigning a color space tag).

  • Clarifying relationship between business content objects in R3 and BW

    Hi,
    On R3 in SBIW, under Organizational Management, there were 3 datacources:
    0HR_PA_2
    0HR_PA_3
    0HR_PA_OS_1
    1
    In BW, under Organizational Management, in the attempt to replicate the datasources,  I found these same 3 datasources already there.
    So, initially when BW was configured for the first time, did these 3 exist exactly the same as in R3 or their existence implies that someone has already performed the data transfer process in SBIW (in R3) before these 3 data sources in R3 appeared in BW?
    2.
    Now, in BW, in rsa1, Business Contents, Infoproviders, under Organizational Management, in the attempt to activate the datasource, I notice that the technical name for “Organizational management “ is 0PAOS instead of 0PA_OS in R3; and the datasources available under 0PAOS are different:
    0PA_DS02
    0PA_DS03
    0PAOS_C01
    a) Shouldn’t I have see the same datasources that I replicated under “BW/Business Contents” for activation? The descriptions seem to be the same though.
    b) Again, were these 3 (0PA……) there after the initial BW configuration or someone went through a process in BW to bring them from R3 down here?
    c) Will activating these implies activation of the 0HR_ …. Datasources, although they are with different technical names?
    Thanks

    Hi,
    Based on your last mail, I now followed: “Business Content”, “InfoSources by Application Component”, “Personnel Management” “Organizational Management” then “Organizational Management Master Data” which now shows
    0HR_PA_2
    0HR_PA_3
    0HR_PA_OS_1
    which I was looking for. So you are right, I was looking at the wrong place.  But see the instructions that I was following from SAP, it pointed me to Business Content then “Data Target” and that is why I chose the InfoProvider areas.
    By the way this was the instructions I was following:
    “Activate the Structural Authorizations ODS data targets 0PA_DS02 via Business Content Activation function.  (Admin Workbench -> Business Content -> Data Target -> Human Resources ->Organizational Management -> drag 0PA_DS02 to the right pane. Use “Data Flow before and after” option  under the “Grouping” Icon  and “Install” in batch on the right pane of your screen. “
    2. Any comment on this part of my question?
    Since this is IDES, I want to remove all the datasources under “Organizational Management” in BW and start it afresh from R3 and get it into BW. What is the best way to remove them?
    Thanks

  • Relationship between invoice and billing document in 3rd party

    Hi Experts,
       Is there any relationship between vendor sending invoice to us and we send billing document to customer in third party scenario ? If yes, kindly let me know the relation please.
    Regards,
    Prasath

    Hi Adwait,
       Thanks for your reply.If the 3rd party vendor sends invoice for quantity 50  to us and the3rd party vendor has delivered the quantity 30 to customer. Which one is to be done first?   invoice from vendor or billing document to customer? How do i check how much the 3rd party vendor has delivered to customer ?
    Regards,
    Prasath

  • Databinding problem with Spark DropDownList

    OK, after several hours, I give up. I'm missing something. I have a dataProvider for a form that works great. I have a manager and model that get updated based on events and all the other controls bind fine when I change the model. However, the Spark DropDownList doesn't work in the sense that when I change another list's selectedItem, it should update the dropDownList dataprovider and selectedItem. The dataProvider changes fine but nothing I do can seem to refresh the selectedItem on every other change! - though it's there for the choosing.
    To baffle me even more, the mx:combobox works fine using the same but not the s:combobox. I'm just trying to find a Spark component that works the same as the mx:comboBox but they're not binding the same way with the same code.
    Using nightly build with suggested changes to 10 and minorPlayerVersion

    Please post a small test case.

  • Extend spark dropdownlist button to the longest item in dataprovider ?

    Hi,
    simple as stated in the thread's title : I cannot figure out a way to have my spark DropDownLists (no particular skin) extend their width to their longest item width ??
    For instance the following :
    <s:DropDownList id="aglist" width="100%" requireSelection="false"
                                    dataProvider="{model.userAssignedAgents}" labelFunction="agentLabel"
                                    change="aglist_changeHandler(event)" open="{aglist.selectedIndex = -1}"/>
    when layed on a simple spark panel gets the standard DDList button width, about 50px whatever its content, though its items are much longer than that. So when the button is clicked, the dropdown menu shows some ugly scrollbars.
    Do you have any clue ? I've been stuck for hours trying to do what sounds like the very-standard-way-of-setting-dropdownlist-width to me !
    Thanks
    Matt

    Good point.
    The main problem I had with the ComboBox is that I don't want to allow "creation" of new elements, so if the typed text doesn't match any element, instead of selectedIndex of -3 it should just keep the old selection. Plus a few other things.
    Thinking about it, this is probably my best choice, and if I were to extend a class it should probably be this one.

  • Error while adding a used relationship between the New DC and the Web DC

    Hi Gurus
    We are getting the Error in NWDS while Adding  a used relationship between the New DC and the Web DC.
    Steps what we are Done
    1. Create the custom project from inactiveDC's
    2.creating the project for the component crm/b2b in SHRAPP_1
    3.After that we changed the application.xml and given the contect path.
    4.Then we tried to add Dependency to the custom create DC we are getting the error saying that illegal deppendency : the compartment sap.com_CUSTCRMPRJ_1 of DC sap.com/home/b2b_xyz(sap.com.CUSTCRMPRJ_1) must explicitly use compartment sap.com_SAP-SHRWEB_1 of DC sap.com/crm/isa/ like that it was throwing the error.
    so, we skip this step and tried to create the build then it is saying that build is failed..
    Please help us in this regard.
    Awaiting for ur quick response...
    Regards
    Satish

    Hi
    Please Ignore my above message.
    Thanks for ur Response.
    After ur valuble inputs we have added the required dependencies and sucessfully created the projects, then building of the  projects was also sucessfully done and  EAR file was created.
    We need to deploy this EAR file in CRM Application Server by using the interface NWDI.
    For Deploying the EAR into NWDI, we need to check-in the activites what i have created for EAR. once i check-in the activites ,the NWDI will deploy the EAR into CRM Application Server.
    In the Activity Log we are able to check the Activities as Suceeded but the Deployment column is not showing any status.
    When i  right click on my activity Id the deployment summery is also disabled.
    So finally my Question is that where can i get the deployment log file, and where can i check the deployment status for my application..
    Any pointers in this regard would be of great help..
    Awaiting for ur valuble Responses..
    Regards
    Satish

  • Relationship between Portal and back-end roles in business package

    Hi all,
    I wonder how technically works on the backend system when I install a BP for SAP EP. Let's say for example that I installed on the portal the business package for SRM. I will have on the Portal some roles configured (buyer, supplier, invoice manager, etc), and some iviews in them organized by pages and workest.
    How can I see the relations with those roles and the roles on the SRM backend system? And then: if I modify a standard role on the Portal, adding new functionalites (iviews), I do update the backend role? We are going to implement SSO, and users will be the same on Portal and backend system. But that also means I need to assign users to backend roles on the backend system, isn't it?
    I would be glad to you if someone can provide me also a link to a document explaining the relationshipe between backend roles management and portal roles management.
    Thanks a lot,
    Valentina

    To add.. no, you will not update a backend SRM role if you update an iView on the Portal. The Backend roles will always be assigned to the user via PFCG and do not change automatically with the Portal roles.
    This help document might help you understand the concept better (Look at the Permissions vs Authorisations section):
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c605c690-0201-0010-e8b5-94677245a46b
    Hope this helps. I am sure SAP/SDN library has many such documents that you can read through.
    Sudha
    Message was edited by:
            Sudha Mohan

  • Getting Error The trust relationship between the primary domain and the trusted domain failed in SharePoint 2010

    Hi,
    SharePoint 2010 Backup has been taken from production and restored through Semantic Tool in one of the server.The wepapplication of which the backup was taken is working fine.
    But the problem is that the SharePoint is not working correctly.We cannot create any new webapplication ,cannot navigate to the ServiceApplications.aspx page it shows error.Even the Search and UserProfile Services of the existing Web Application is not working.Checking
    the SharePoint Logs I found out the below exception
    11/30/2011 12:14:53.78  WebAnalyticsService.exe (0x06D4)         0x2D24 SharePoint Foundation          Database                     
     8u1d High     Flushing connection pool 'Data Source=urasvr139;Initial Catalog=SharePoint_Config;Integrated Security=True;Enlist=False;Connect Timeout=15' 
    11/30/2011 12:14:53.78  WebAnalyticsService.exe (0x06D4)         0x2D24 SharePoint Foundation          Topology                     
     2myf Medium   Enabling the configuration filesystem and memory caches. 
    11/30/2011 12:14:53.79  WebAnalyticsService.exe (0x06D4)         0x12AC SharePoint Foundation          Database                     
     8u1d High     Flushing connection pool 'Data Source=urasvr139;Initial Catalog=SharePoint_Config;Integrated Security=True;Enlist=False;Connect Timeout=15' 
    11/30/2011 12:14:53.79  WebAnalyticsService.exe (0x06D4)         0x12AC SharePoint Foundation          Topology                     
     2myf Medium   Enabling the configuration filesystem and memory caches. 
    11/30/2011 12:14:55.54  mssearch.exe (0x0864)                    0x2B24 SharePoint Server Search       Propagation Manager          
     fo2s Medium   [3b3-c-0 An] aborting all propagation tasks and propagation-owned transactions after waiting 300 seconds (0 indexes)  [indexpropagator.cxx:1607]  d:\office\source\search\native\ytrip\tripoli\propagation\indexpropagator.cxx 
    11/30/2011 12:14:55.99  OWSTIMER.EXE (0x1DF4)                    0x1994 SharePoint Foundation          Topology                     
     75dz High     The SPPersistedObject with
    Name User Profile Service Application, Id 9577a6aa-33ec-498e-b198-56651b53bf27, Parent 13e1ef7d-40c2-4bcb-906c-a080866ca9bd failed to initialize with the following error: System.SystemException: The trust relationship between the primary domain and the trusted
    domain failed.       at System.Security.Principal.SecurityIdentifier.TranslateToNTAccounts(IdentityReferenceCollection sourceSids, Boolean& someFailed)     at System.Security.Principal.SecurityIdentifier.Translate(IdentityReferenceCollection
    sourceSids, Type targetType, Boolean forceSuccess)     at System.Security.Principal.SecurityIdentifier.Translate(Type targetType)     at Microsoft.SharePoint.Administration.SPAce`1.get_PrincipalName()    
    at Microsoft.SharePoint.Administration.SPAcl`1.Add(String princip... 
    11/30/2011 12:14:55.99* OWSTIMER.EXE (0x1DF4)                    0x1994 SharePoint Foundation          Topology                     
     75dz High     ...alName, String displayName, Byte[] securityIdentifier, T grantRightsMask, T denyRightsMask)     at Microsoft.SharePoint.Administration.SPAcl`1..ctor(String persistedAcl)    
    at Microsoft.SharePoint.Administration.SPServiceApplication.OnDeserialization()     at Microsoft.SharePoint.Administration.SPIisWebServiceApplication.OnDeserialization()     at Microsoft.SharePoint.Administration.SPPersistedObject.Initialize(ISPPersistedStoreProvider
    persistedStoreProvider, Guid id, Guid parentId, String name, SPObjectStatus status, Int64 version, XmlDocument state) 
    11/30/2011 12:14:56.00  OWSTIMER.EXE (0x1DF4)                    0x1994 SharePoint Foundation          Topology                     
     8xqx High     Exception in RefreshCache. Exception message :The trust relationship between the primary domain and the trusted domain failed.   
    11/30/2011 12:14:56.00  OWSTIMER.EXE (0x1DF4)                    0x1994 SharePoint Foundation          Timer                        
     2n2p Monitorable The following error occured while trying to initialize the timer: System.SystemException: The trust relationship between the primary domain and the trusted domain failed.       at System.Security.Principal.SecurityIdentifier.TranslateToNTAccounts(IdentityReferenceCollection
    sourceSids, Boolean& someFailed)     at System.Security.Principal.SecurityIdentifier.Translate(IdentityReferenceCollection sourceSids, Type targetType, Boolean forceSuccess)     at System.Security.Principal.SecurityIdentifier.Translate(Type
    targetType)     at Microsoft.SharePoint.Administration.SPAce`1.get_PrincipalName()     at Microsoft.SharePoint.Administration.SPAcl`1.Add(String principalName, String displayName, Byte[] securityIdentifier, T grantRightsMask,
    T denyRightsMask)     at Microsoft.SharePoint.Administrati... 
    11/30/2011 12:14:56.00* OWSTIMER.EXE (0x1DF4)                    0x1994 SharePoint Foundation          Timer                        
     2n2p Monitorable ...on.SPAcl`1..ctor(String persistedAcl)     at Microsoft.SharePoint.Administration.SPServiceApplication.OnDeserialization()     at Microsoft.SharePoint.Administration.SPIisWebServiceApplication.OnDeserialization()    
    at Microsoft.SharePoint.Administration.SPPersistedObject.Initialize(ISPPersistedStoreProvider persistedStoreProvider, Guid id, Guid parentId, String name, SPObjectStatus status, Int64 version, XmlDocument state)     at Microsoft.SharePoint.Administration.SPConfigurationDatabase.GetObject(Guid
    id, Guid parentId, Guid type, String name, SPObjectStatus status, Byte[] versionBuffer, String xml)     at Microsoft.SharePoint.Administration.SPConfigurationDatabase.GetObject(SqlDataReader dr)     at Microsoft.SharePoint.Administration.SPConfigurationDatabase.RefreshCache(Int64
    currentVe...
    Please guide me on the above issue ,this will be of great help
    Thanks.

    I have same error. Verified for trust , ports , cleaned up cache.. nothing has helped. 
    The problem is caused by User profile Synch Service:
    UserProfileProperty_WCFLogging :: ProfilePropertyService.GetProfileProperties Exception: System.SystemException:
    The trust relationship between the primary domain and the trusted domain failed.       at System.Security.Principal.SecurityIdentifier.TranslateToNTAccounts(IdentityReferenceCollection sourceSids,
    Boolean& someFailed)     at System.Security.Principal.SecurityIdentifier.Translate(IdentityReferenceCollection sourceSids, Type targetType, Boolean forceSuccess)     at System.Security.Principal.SecurityIdentifier.Translate(Type
    targetType)     at Microsoft.SharePoint.Administration.SPAce`1.get_PrincipalName()     at Microsoft.SharePoint.Administration.SPAcl`1.Add(String principalName, String displayName, SPIdentifierType identifierType, Byte[]
    identifier, T grantRightsMask, T denyRigh...        
    08/23/2014 13:00:20.96*        w3wp.exe (0x2204)                      
            0x293C        SharePoint Portal Server              User Profiles                
            eh0u        Unexpected        ...tsMask)     at Microsoft.SharePoint.Administration.SPAcl`1..ctor(String persistedAcl)    
    at Microsoft.Office.Server.Administration.UserProfileApplication.get_SerializedAdministratorAcl()     at Microsoft.Office.Server.Administration.UserProfileApplication.GetProperties()     at Microsoft.Office.Server.UserProfiles.ProfilePropertyService.GetProfileProperties()
    Please let me know if you any solution found for this?
    Regards,
    Kunal  

  • 1-to-1 Relationship Between UI and subVI Data Cluster

    Discussion continued from here.
    In summary:
    JackDunaway wrote:
    Yes,
    I can see clear benefits in implementing this Idea - that is, if your
    underlying datatype elements have a 1:1 relationship with the UI
    elements.
    I will
    illustrate this point by showing some potential flaws in your example:
    "Profile Running" and "Profile Complete" are mutually exclusive, no?
    Wouldn't it be better to have a single enum named "Profile" with three
    elements "Idle, Running, and Complete" for the underlying datatype?
    Having two mutually exclusive pieces of data in an underlying datatype
    is among my favorite of code smell indicators.
    Also, the underlying datatype probably only needs "Forward Miles" and
    "Reverse Miles" since "Total Miles" is derived. Exclude "Total Miles"
    from the underlying cluster and just show the sum for display.
    Another
    argument against using a 1:1 relationship: the customer now wants to
    multiply speed by -1 if Direction==Reverse and not show the Direction
    enum on the UI. The data source (the VI that generates the data) would
    need to be updated using your 1:1 relationship. Using underlying data
    different from the display data, only the data client (the UI front
    panel) needs to change. I would be much more inclined to service the UI
    FP for a cosmetic upgrade rather than tracing the data source back
    through the HMI framework, through TCP, back to the RT, back to FPGA...
    Basically...
    I question a perfectly overlapped Venn Diagram where the set of data
    shown to the user equals the dataset used for underlying data
    processing/messaging/storing. The underlying datatype should be as
    stripped and streamlined as possible, while the display datatype can
    inherit all the flair and post-processing that Upper Management wants to
    see in a UI.
    LabBEAN wrote:
    <JackDunaway wrote
    I will illustrate this point by showing some potential flaws in your example...
    <LabBEAN response
    The data you see maps directly to tags on the PLC.
    <JackDunaway wrote
    Yes, I can see clear benefits in implementing this Idea - that is, if your underlying datatype elements have a 1:1 relationship with the UI elements.
    <LabBEAN response
    JackDunaway wrote:
    This is a good indicator that we're both aware at this point that I'm
    missing something... in all seriousness, could you reply to the 1:1
    argument? I really want to understand this Idea and learn how/if I need
    to apply it to my own style (our last back-and-forth turned out to be an enlightening and introspective exercise for me).
    ***EDIT: By all means, please start a discussion on the LabVIEW board so we're not hindered by the Exchange's interface. ***
    My long delayed response:
    The indicators you see map to tags on the PLC.  That is, we were connecting through OPC to an application on a PLC that was written ~15 years ago.  I have a VI where I read a bunch of SVs (Shared Variables).  Each SV is bound through OPC to a PLC tag.  In the interest of disclosure, two 16-bit tags are required to represent each 32-bit mileage number.  In the same subVI, I read each set of mileage tags, convert, and feed my subVI cluster indicator.  The same is true for wheel size:  three bits get converted to the enum.  Regardless, though, I have one subVI that reads SVs and outputs the same "underlying data" cluster that is seen on the UI.  The UI has a "Faults" cluster full of fault Booleans that follows the same logic.  When the user configures a profile of steps, they do so via an array of "step" clusters (although the cluster look is hidden for aesthetics).  It's the same thing as above except we write tags instead of reading them.
    In my case, each set of 16-bit tags is worthless as two 16-bit numbers.  They are only useful as a 32-bit mileage, so I don't pass around the raw 16-bit data.  The same is true for the wheel size bits. My software can just as easily (in fact, more easily) operate on the enum.  So, the underlying cluster from the subVI is programmatically useful and applicable to the UI.  I would guess that the same is true for a lot of RT applications, where the read VI can have some intelligence to process the data into useful / applicable clusters.
    There are going to be cases where "Upper Management" would like to see "flair and post-processing" as you say.  Your speed illustration is a good example of this.  There are also instances where the cluster works fine on the UI the way it is (like this one and many others that we've seen).
    <JackDunaway wrote
    "Profile Running" and "Profile Complete" are mutually exclusive, no?
    Wouldn't it be better to have a single enum named "Profile" with three
    elements "Idle, Running, and Complete" for the underlying datatype?
    <LabBEAN response
    Did you mean "not" mutually exclusive?  We combined 3 "dependent" (not mutually exclusive) Booleans into an enum for Wheel Size, as I mentioned above.  Not sure now why we went the other way with these two (this was 2 years ago).  In any event, with regard to UI representation, I still pass a cluster out of my read-raw-data-and-process-into-cluster subVI up to the applicable queued state machines and to the UI.
    <JackDunaway wrote
    Having two mutually exclusive pieces of data in an underlying datatype
    is among my favorite of code smell indicators.
    <LabBEAN response
    Working with applications written in ladder logic, it is not uncommon to see separate Booleans that indicate the same condition.  This seems to be especially true when safety is a concern.  That is, ladder Coil A ON and Coil B OFF == switch open.  Coil A OFF and Coil B ON == switch closed.  If you ever read OPC tags from Coil A and Coil B and the two are the same, you know the ladder is in transition (hasn't updated the tags).  Throw that point out and read again.
    I, too, appreciate our back-and-forths.  Good discussion.
    Certified LabVIEW Architect
    Wait for Flag / Set Flag
    Separate Views from Implementation for Strict Type Defs

    Thanks for replying, Jason. Let me see if I can craft a coherent response after getting back up to speed...
    (...later)
    OK, let's go. I'm going to fully agree with you that LabVIEW imposes a strange constraint unique from most other languages where a Typedef defines two things: the underlying data structure, and also the view. A Strict Typedef should be more accurately deemed the Datatype-View-Definition, and a Typedef would be more accurately called the Datatype-Definition-and-View-Suggestion. And to be clear, there are two types of views: the programmer's view (a SubVI look and feel) and the UI view (what the user and Upper Management sees). (Finally, I admit I'm ignorant whether view or View is more a more appropriate term)
    Linking the programmer's view to the datatype is perfectly fine with me, and based on your original Idea I think we both agree that's OK. I think we run into a disagreement where you have loosely tied the concept of "Strict TD" to "UI View".
    Historically, I have used Strict Typedefs for the programmer's view (SubVIs), since I like to maintain a "functional UI" at the SubVI level. I don't use type definitions on User Interfaces - only Controls. That's the reason your Idea does not appeal to me, but perhaps if your Idea were implemented, it would appeal to me since View and Implementation would be divorced as separate entities within the Type Definition. (Does that classify as a Catch-22?) So, you're Idea is fundamentally suggesting that Type Definition .ctl files should be more accurately called "a container that holds both a Type Definition and any number of View Definitions as well".
    Fundamentally, I think I finally understand the gist of your Idea: "let's ditch this weird constraint where View and Datatype are inextricably defined together in one file", and for that, I'll give Kudos to the original Idea. I got really tied up with the example you used to present the Idea, and plus I'm still learning a lot.
    Additional thoughts:
    This Idea reminds me of another: Tag XControl as Class View
    We've still got some arguing to do on a 1:1 relationship between underlying datatype and UI presentation, so put your mean face back on: 
    Since our last conversation, interestingly, I have been on an anti-Typedef kick altogether.  Why don't you drop some feedback on my attempt at a completely typedef-free UI framework?
    a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"] {color: black;} a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"]:after {content: '';} .jrd-sig {height: 80px; overflow: visible;} .jrd-sig-deploy {float:left; opacity:0.2;} .jrd-sig-img {float:right; opacity:0.2;} .jrd-sig-img:hover {opacity:0.8;} .jrd-sig-deploy:hover {opacity:0.8;}

  • Extending DataFinder to include Non-Data Entries and Relationships Between Entries

    I am trying to create custom data centralization and management software for our lab with DataFinder Toolkit.  In addition to storing data from data acquisitions, I want to be able to store additional information with the data such as images, pdf files, word documents that can be easily accessed after finding the data.  My current idea is to handle external files by storing the filepath in a property of an object vs trying to store the data itself in the datafinder database.  My code would know how to open these files so the user can see them with external software or a custom labview app.
    I also want to be able to store non-data objects such as an object that describes a piece of test equipment or a sample through properties and external files.  Images and documents are again important here.  And then create relationships through unique barcoded IDs that are a property in the datafinder entry.  So not only could I look at the data, I could find information about the samples and lab equipment. Or anything else we think needs to be saved.
    The code I am writing around DataFinder would be in charge of maintaining the unique IDs and know how the relationships between those IDs work to generate the proper queries. Like a 'Get Test Equipment Used' button next to a search result.
    For the external non-data objects I was going to use Labview code to create a file with all the information about the object (unique ID, properties and external file paths) and create a plug-in so the datafinder will index the file and make it searchable.
    Does this seem reasonable? I like the idea of working with one system and having everything update based on adding, deleting and modifying files in a folder. Also, I like the idea of not splitting the data management up into multiple technologies and having to make those work together.
    Solved!
    Go to Solution.

    From the description, you've given the system seems plausible. The non-data elements you discussed when broken down are just additional data to associate with an object.  Storing file paths seems plausible as done in the community example below:
    Execute String/Numeric Querry Using Data Finder Toolkit
    https://decibel.ni.com/content/docs/DOC-10631
    Regards,
    Isaac S.
    Regards,
    Isaac S.
    Applications Engineer
    National Instruments

  • RELATIONSHIP BETWEEN VBAK/VBAP AND V46R_HEAD TABLE

    Hi,
    can you please tell me that is there any relationship between VBAK and  V46R_HEAD TABLE or VBAP and V46R_HEAD TABLE table.
    where V46R_HEAD TABLE is a structure and i want to display sme fields of vbak and some of V46R_HEAD  and some of VBAP.
    I got the relation between VBAK and VBAP ie. the field VBELN. But i am not getting the relation with V46R_HEAD sturcture.
    Please help me to solve this problem.

    Hi,
    the field vbeln is present in V46R_HEAD also.
    Please check it!!  Please do a CTR+F and look for VBELN.
    Regards.

  • Relationship Between ECC Customers (Contact Persons) and CRM BP

    Hello,
    I am new to middleware and need some help with the relationship between ECC customers/contact persons and CRM business partners.
    We are transferring via bdoc this information from ECC to CRM.
    Which bdoc types are used when transferring customers/contact persons? I believe it is BUPA_MAIN but am not too sure. How is the relationship between customer its contact person transferred? Is this done through BUPA_REL? I looked at the segment fields in SBDM but am not too sure how to understand the relationship...
    Thanks for the help!
    Regards,
    Tiffanie

    Thanks! With the initial load, how do I check what fields are being passed in the bdocs?
    I tried to look for customer_main, customer_rel in SBDM  and couldn't find it. Instead I used BUPA_MAIN and found some segments but couldn't find all the data that was being transferred (e.g. customer name, address, etc...) Where do I find all the fields contained in the bdoc?
    I see them in SMW01 when I view the bdoc contents but can not find the actual structure (data fields) that are being brought in from ECC.
    Thanks!
    Tiffanie

  • Relationship between material type and industry sector

    Hi experts
    when using t-code mm01,there are two fields material type and industry setor in screen.Is there any relationship between material type and industry sector? I want to know if user be able to see the material type related to particular industry sector?
    thanks in advance!

    Hello
    There is no direct relationship between the material type and the industry sector.
    The industry sector is used only for field sttus maintenance (fields in display/optional/requierd entry) in transactions.
    We will assign seperate field reference groups to industry sectors and deopending on how we configure the field references, the fields will appear for the materials created for that industry sector.
    regards

Maybe you are looking for

  • Hp laserjet flow mfp m525c will not scan to a network shared folder in our workgroup

    we have set up a small office network and can access shared folders between computers, but the new hp laserjet flow mfp m525c multi-function printer cannot scan to any of these shared network folders. the printer has an embedded web server that i can

  • GL Account creation

    Hi all, When creating a GL account is there any account for which line item display is not selected but still maintained as open item? cheers Shravan

  • Problem with business partner

    Hello everyone, I have this problem: ive been using extractor 0crm_sales_act_1 for crm, but i just realized that there is no business partner for my activities. I do have a business partner associated to my service order, but not to my activity that

  • Internet explorer 10 + BI Publisher 11.1.1.6.4

    Hi, We are currently experiencing some compatibility issues while accessing BI Publisher datas with Internet Explorer 10. I have tried many thing such as : - Disabling/enabling compatibility - Disabling/enabling pop-ups blocker - Flash/no flash suppo

  • How to deinstall cloud ? can't start my apps !

    i have cs6 design and web premium licence and i don't want to be a cloud membership in the moment. actually i can't use my apps, because all the time i start a app, an window open to sign in to my testversion !!!. i just wanne use my licened version.