Reference Attribute to String

So I am trying to take a reference attribute "Assistant" and convert it to a String to populate msexchAssistantName.
I thought I might be able to do it with an outbound sync rule in the FIM Portal, but I cannot seem to get the custom expression right. "Assistant".Value.ToString
I found alot of String to Reference docs online but not Reference to String.
any help is appreciated.
Thanks
Russ
Russell Lema

Hi,
you can do it the "simple" way if you want by just modify the RCDC for user create/view like this:
<my:Control my:Name="DirectReports" my:TypeName="UocListView" my:ExpandArea="false" my:Caption="DirectReports">
<my:Properties>
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,Description" />
<my:Property my:Name="EmptyResultText" my:Value="There are no groups according to the filter definition." />
<my:Property my:Name="PageSize" my:Value="7" />
<my:Property my:Name="ShowTitleBar" my:Value="false" />
<my:Property my:Name="ShowActionBar" my:Value="false" />
<my:Property my:Name="ShowPreview" my:Value="false" />
<my:Property my:Name="ShowSearchControl" my:Value="false" />
<my:Property my:Name="EnableSelection" my:Value="false" />
<my:Property my:Name="SingleSelection" my:Value="false" />
<my:Property my:Name="ListFilter" my:Value="/Person[(Manager='%ObjectID%')]" />
</my:Properties>
</my:Control>
This will give you a list of all poeple who have the current user set as the Manager.
Regards
Peter
Peter Stapf - ExpertCircle GmbH - My blog:
JustIDM.wordpress.com

Similar Messages

  • Dereference multivalued reference attribute to multivalued string attribute

    How can I Dereference multivalued reference attribute to multivalued string attribute. I want to flow this multivalued string attribute to AD. 

    I was able to develop the activity but it is going into infinite loop while inserting. Below is the code. Can you please guide where I am going wrong. Also as of now I have developed it only for inserting. I am using emuerateresourceactivity and added
    code activity using code.
    using System;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Collections;
    using System.Linq;
    using System.Workflow.ComponentModel.Compiler;
    using System.Workflow.ComponentModel.Serialization;
    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Design;
    using System.Workflow.Runtime;
    using System.Workflow.Activities;
    using System.Workflow.Activities.Rules;
    using Microsoft.ResourceManagement.WebServices;
    using System.Collections.Generic;
    using Microsoft.ResourceManagement.Workflow.Activities;
    using Microsoft.ResourceManagement.WebServices.WSResourceManagement;
    namespace DereferenceActivityLibrary
    public partial class DereferenceActivity : SequenceActivity
    List<UniqueIdentifier> storeList;
    SequentialWorkflow parentWorkflow = null;
    int loopCount = 0;
    Guid targetGUID;
    const string FIMAdminGUID = "7fb2b853-24f0-4498-9534-4e10589723c4";
    List<string> storeName = new List<string>();
    string xpathFilter = "";
    string resourceType = "JambaStore";
    public DereferenceActivity()
    InitializeComponent();
    private void initializeReadResource_ExecuteCode(object sender, EventArgs e)
    if (!SequentialWorkflow.TryGetContainingWorkflow(this, out parentWorkflow))
    throw new InvalidOperationException("Unable to resove parent workflow");
    readResourceActivity.ActorId = new Guid(FIMAdminGUID);
    readResourceActivity.ResourceId = parentWorkflow.TargetId;
    targetGUID = parentWorkflow.TargetId;
    readResourceActivity.SelectionAttributes = new string[] { "StoreListReference" };
    private void initializeEnumerateResource_ExecuteCode(object sender, EventArgs e)
    string filterDEL = "]";
    if (null == readResourceActivity.Resource)
    throw new InvalidOperationException("Unable to determine the current request");
    ResourceType resource = readResourceActivity.Resource;
    storeList = resource["StoreListReference"] as List<UniqueIdentifier>;
    for (loopCount = 0; loopCount < storeList.Count; loopCount++)
    if (loopCount == 0)
    xpathFilter += "/" + resourceType + "[(ObjectID='" + storeList[loopCount].GetGuid() + "')";
    else
    xpathFilter += " or (ObjectID='" + storeList[loopCount].GetGuid() + "')";
    xpathFilter = xpathFilter + filterDEL;
    enumerateResourcesActivity.ActorId = new Guid(FIMAdminGUID);
    enumerateResourcesActivity.XPathFilter = xpathFilter;
    private void readStoresNameActivity_ExecuteCode(object sender, EventArgs e)
    ResourceType jambaStore = EnumerateResourcesActivity.GetCurrentIterationItem((CodeActivity)sender) as ResourceType;
    storeName.Add(jambaStore["DisplayName"].ToString());
    private void initializeUpdateResourceActivity_ExecuteCode(object sender, EventArgs e)
    List<UpdateRequestParameter> updateRequestParameters = new List<UpdateRequestParameter>();
    string targetAttribute = "Store";
    foreach (string store in storeName)
    updateRequestParameters.Add(new UpdateRequestParameter(targetAttribute, UpdateMode.Insert, store));
    this.updateResourceActivity_ActorId1 = new Guid(FIMAdminGUID);
    this.updateResourceActivity_ResourceId1 = targetGUID;
    this.updateResourceActivity_ApplyAuthorizationPolicy1 = false;
    this.updateResourceActivity_UpdateParameters1 = updateRequestParameters.ToArray<UpdateRequestParameter>();
    public static DependencyProperty updateResourceActivity_ActorId1Property = DependencyProperty.Register("updateResourceActivity_ActorId1", typeof(System.Guid), typeof(DereferenceActivityLibrary.DereferenceActivity));
    [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
    [BrowsableAttribute(true)]
    [CategoryAttribute("Parameters")]
    public Guid updateResourceActivity_ActorId1
    get
    return ((System.Guid)(base.GetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_ActorId1Property)));
    set
    base.SetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_ActorId1Property, value);
    public static DependencyProperty updateResourceActivity_ApplyAuthorizationPolicy1Property = DependencyProperty.Register("updateResourceActivity_ApplyAuthorizationPolicy1", typeof(System.Boolean), typeof(DereferenceActivityLibrary.DereferenceActivity));
    [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
    [BrowsableAttribute(true)]
    [CategoryAttribute("Parameters")]
    public Boolean updateResourceActivity_ApplyAuthorizationPolicy1
    get
    return ((bool)(base.GetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_ApplyAuthorizationPolicy1Property)));
    set
    base.SetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_ApplyAuthorizationPolicy1Property, value);
    public static DependencyProperty updateResourceActivity_ResourceId1Property = DependencyProperty.Register("updateResourceActivity_ResourceId1", typeof(System.Guid), typeof(DereferenceActivityLibrary.DereferenceActivity));
    [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
    [BrowsableAttribute(true)]
    [CategoryAttribute("Parameters")]
    public Guid updateResourceActivity_ResourceId1
    get
    return ((System.Guid)(base.GetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_ResourceId1Property)));
    set
    base.SetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_ResourceId1Property, value);
    public static DependencyProperty updateResourceActivity_UpdateParameters1Property = DependencyProperty.Register("updateResourceActivity_UpdateParameters1", typeof(Microsoft.ResourceManagement.WebServices.WSResourceManagement.UpdateRequestParameter[]), typeof(DereferenceActivityLibrary.DereferenceActivity));
    [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
    [BrowsableAttribute(true)]
    [CategoryAttribute("Parameters")]
    public UpdateRequestParameter[] updateResourceActivity_UpdateParameters1
    get
    return ((Microsoft.ResourceManagement.WebServices.WSResourceManagement.UpdateRequestParameter[])(base.GetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_UpdateParameters1Property)));
    set
    base.SetValue(DereferenceActivityLibrary.DereferenceActivity.updateResourceActivity_UpdateParameters1Property, value);
    using System;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Collections;
    using System.Reflection;
    using System.Workflow.ComponentModel.Compiler;
    using System.Workflow.ComponentModel.Serialization;
    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Design;
    using System.Workflow.Runtime;
    using System.Workflow.Activities;
    using System.Workflow.Activities.Rules;
    namespace DereferenceActivityLibrary
    public partial class DereferenceActivity
    #region Activity Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    [System.Diagnostics.DebuggerNonUserCode]
    [System.CodeDom.Compiler.GeneratedCode("", "")]
    private void InitializeComponent()
    this.CanModifyActivities = true;
    System.Workflow.ComponentModel.ActivityBind activitybind1 = new System.Workflow.ComponentModel.ActivityBind();
    System.Workflow.ComponentModel.ActivityBind activitybind2 = new System.Workflow.ComponentModel.ActivityBind();
    System.Workflow.ComponentModel.ActivityBind activitybind3 = new System.Workflow.ComponentModel.ActivityBind();
    System.Workflow.ComponentModel.ActivityBind activitybind4 = new System.Workflow.ComponentModel.ActivityBind();
    this.readStoresNameActivity = new System.Workflow.Activities.CodeActivity();
    this.updateResourceActivity = new Microsoft.ResourceManagement.Workflow.Activities.UpdateResourceActivity();
    this.initializeUpdateResourceActivity = new System.Workflow.Activities.CodeActivity();
    this.enumerateResourcesActivity = new Microsoft.ResourceManagement.Workflow.Activities.EnumerateResourcesActivity();
    this.initializeEnumerateResource = new System.Workflow.Activities.CodeActivity();
    this.readResourceActivity = new Microsoft.ResourceManagement.Workflow.Activities.ReadResourceActivity();
    this.initializeReadResource = new System.Workflow.Activities.CodeActivity();
    this.currentRequestActivity = new Microsoft.ResourceManagement.Workflow.Activities.CurrentRequestActivity();
    // readStoresNameActivity
    this.readStoresNameActivity.Name = "readStoresNameActivity";
    this.readStoresNameActivity.ExecuteCode += new System.EventHandler(this.readStoresNameActivity_ExecuteCode);
    // updateResourceActivity
    activitybind1.Name = "DereferenceActivity";
    activitybind1.Path = "updateResourceActivity_ActorId1";
    activitybind2.Name = "DereferenceActivity";
    activitybind2.Path = "updateResourceActivity_ApplyAuthorizationPolicy1";
    this.updateResourceActivity.Name = "updateResourceActivity";
    activitybind3.Name = "DereferenceActivity";
    activitybind3.Path = "updateResourceActivity_ResourceId1";
    activitybind4.Name = "DereferenceActivity";
    activitybind4.Path = "updateResourceActivity_UpdateParameters1";
    this.updateResourceActivity.SetBinding(Microsoft.ResourceManagement.Workflow.Activities.UpdateResourceActivity.ActorIdProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind1)));
    this.updateResourceActivity.SetBinding(Microsoft.ResourceManagement.Workflow.Activities.UpdateResourceActivity.ApplyAuthorizationPolicyProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind2)));
    this.updateResourceActivity.SetBinding(Microsoft.ResourceManagement.Workflow.Activities.UpdateResourceActivity.ResourceIdProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind3)));
    this.updateResourceActivity.SetBinding(Microsoft.ResourceManagement.Workflow.Activities.UpdateResourceActivity.UpdateParametersProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind4)));
    // initializeUpdateResourceActivity
    this.initializeUpdateResourceActivity.Name = "initializeUpdateResourceActivity";
    this.initializeUpdateResourceActivity.ExecuteCode += new System.EventHandler(this.initializeUpdateResourceActivity_ExecuteCode);
    // enumerateResourcesActivity
    this.enumerateResourcesActivity.Activities.Add(this.readStoresNameActivity);
    this.enumerateResourcesActivity.ActorId = new System.Guid("00000000-0000-0000-0000-000000000000");
    this.enumerateResourcesActivity.Name = "enumerateResourcesActivity";
    this.enumerateResourcesActivity.PageSize = 100;
    this.enumerateResourcesActivity.Selection = null;
    this.enumerateResourcesActivity.SortingAttributes = null;
    this.enumerateResourcesActivity.TotalResultsCount = 0;
    this.enumerateResourcesActivity.XPathFilter = null;
    // initializeEnumerateResource
    this.initializeEnumerateResource.Name = "initializeEnumerateResource";
    this.initializeEnumerateResource.ExecuteCode += new System.EventHandler(this.initializeEnumerateResource_ExecuteCode);
    // readResourceActivity
    this.readResourceActivity.ActorId = new System.Guid("00000000-0000-0000-0000-000000000000");
    this.readResourceActivity.Name = "readResourceActivity";
    this.readResourceActivity.Resource = null;
    this.readResourceActivity.ResourceId = new System.Guid("00000000-0000-0000-0000-000000000000");
    this.readResourceActivity.SelectionAttributes = null;
    // initializeReadResource
    this.initializeReadResource.Name = "initializeReadResource";
    this.initializeReadResource.ExecuteCode += new System.EventHandler(this.initializeReadResource_ExecuteCode);
    // currentRequestActivity
    this.currentRequestActivity.CurrentRequest = null;
    this.currentRequestActivity.Name = "currentRequestActivity";
    // DereferenceActivity
    this.Activities.Add(this.currentRequestActivity);
    this.Activities.Add(this.initializeReadResource);
    this.Activities.Add(this.readResourceActivity);
    this.Activities.Add(this.initializeEnumerateResource);
    this.Activities.Add(this.enumerateResourcesActivity);
    this.Activities.Add(this.initializeUpdateResourceActivity);
    this.Activities.Add(this.updateResourceActivity);
    this.Name = "DereferenceActivity";
    this.CanModifyActivities = false;
    #endregion
    private CodeActivity readStoresNameActivity;
    private Microsoft.ResourceManagement.Workflow.Activities.UpdateResourceActivity updateResourceActivity;
    private CodeActivity initializeEnumerateResource;
    private Microsoft.ResourceManagement.Workflow.Activities.EnumerateResourcesActivity enumerateResourcesActivity;
    private CodeActivity initializeReadResource;
    private Microsoft.ResourceManagement.Workflow.Activities.ReadResourceActivity readResourceActivity;
    private CodeActivity initializeUpdateResourceActivity;
    private Microsoft.ResourceManagement.Workflow.Activities.CurrentRequestActivity currentRequestActivity;

  • Reference attributes from different CS

    Hi!
    I have the following situation: There are two Oracle MA, that imports data from HR-system. The first MA imports persons, the second one imports departments.  It isn't suitable for me to combine them. The department object has an atribute "chiefID",
    where is set an identifier of the person. So the question is: how can I flow chiefID as Reference atribute? AFAIK, to be able to flow reference attributes - both objects should be in one CS.
    Thanks for any help!

    Hello,
    There is another way if you have FIMPortal and service and  keep to independant Oracle MA. Use an Extended flow to transform "chiefid" in "csObjectID of chief" by using code and the FindMvEntries method (http://msdn.microsoft.com/en-us/library/microsoft.metadirectoryservices.utils.findmventries.aspx):
    From Oracle MA, Find user in MV and save his csObjectID into a string
    Define an export flow of this string attribute to a reference attribute in FIM MA (Works only with mono value)
    Define an import flow from FIM MA from the reference attribute to the MV
    Regards,
    Sylvain

  • Problem with Persistent Object as Reference Attribute of Persistent Object

    Hello All,
    I have a problem with a persistent class that contains a reference attribute to another persistent class.  I can write the reference object attribute to the DB but when I read the reference attribute back from the DB the object is null.  Allow me to explain...
    I have two tables; one is a data table with one key field of type OS_GUID, the second is a mapping table with several business key fields and two further fields; an instance GUID and a class identifier GUID.  The data table is used to contain all the data for an object.  The mapping table is used to hold a relationship between the GUID assigned in the data table and the business key.  The mapping table has been structured in this way by following the help here:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/df/e785a9e87111d4b2eb0050dadfb92b/frameset.htm
    and the field mapping in persistent class for the mapping table has been mapped following the help here:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/06/f23c33638d11d4966d00a0c94260a5/frameset.htm
    The code I use to create entries in the data and mapping table is:
    <-snip->
      DATA:
        gv_blank_data_guid TYPE REF TO zcl_ps_data,
        gv_data_guid       TYPE        os_guid,
        go_data_ps         TYPE REF TO zcl_ps_data,
        go_data_agent      TYPE REF TO zca_ps_data,
        go_data_map_ps     TYPE REF TO zcl_ps_data_map,
        go_data_map_agent  TYPE REF TO zca_ps_data_map,
        go_exc             TYPE REF TO cx_root.
      go_data_agent = zca_ps_data=>agent.
      go_data_map_agent = zca_ps_data_map=>agent.
      TRY.
    Check if there's already data with the business key on the DB
          go_data_map_ps = go_data_map_agent->get_persistent(
                             i_data_ref     = iv_data_ref
                             i_action       = iv_action ).
    ... if there is then exit.
          EXIT.
        CATCH cx_root INTO go_exc.
      ENDTRY.
      TRY.
    Create the data...
          go_data_ps = go_data_agent->create_persistent(
                           i_root_guid = gv_blank_data_guid
                           i_req_date  = iv_req_date ).
          TRY.
    ... finally, write the new data to the data business key map table
              go_data_map_ps = go_data_map_agent->create_persistent(
                                 i_data_ref     = iv_data_ref
                                 i_action       = iv_action
                                 i_data_guid    = go_data_ps ).    "note1
            CATCH cx_root INTO go_exc.
          ENDTRY.
        CATCH cx_os_object_not_found.
      ENDTRY.
      COMMIT WORK.
    <-snip->
    The fact that it is possible to pass the object GO_DATA_PS in the call to GO_DATA_MAP_AGENT (the line that I've put the comment "note1" on) indicates to me that the reference to the data persistent object can be written to the DB by the mapping persistent object.  After executing the above code the mapping table object and class identifier fields are populated.  Also, if multiple entries are written to the tables then the class identifier field in the mapping table is always the same and the object ID is different as expected.
    However, the problem I have is if I read an object from the DB using the business key with the following code:
    <-snip->
      DATA:
        gv_req_date        type        datum,
        gv_data_guid       TYPE        os_guid,
        go_data_ps         TYPE REF TO zcl_ps_data,
        go_data_agent      TYPE REF TO zca_ps_data,
        go_data_map_ps     TYPE REF TO zcl_ps_data_map,
        go_data_map_agent  TYPE REF TO zca_ps_data_map,
        go_exc             TYPE REF TO cx_root.
      go_data_agent = zca_ps_data=>agent.
      go_data_map_agent = zca_ps_data_map=>agent.
      TRY.
    Read data mapping with the business key
          go_data_map_ps = go_data_map_agent->get_persistent(
                             i_data_ref     = iv_data_ref
                             i_action       = iv_action ).
    ... then read the data.
          TRY.
              CALL METHOD go_data_map_ps->get_data_guid
                RECEIVING
                  result = go_data_ps.
            CATCH cx_os_object_not_found.
          ENDTRY.
        CATCH cx_root INTO go_exc.
      ENDTRY.
    <-snip->
    At no point during this code are the attributes of the object of the persistent class for the data table populated with the contents of the fields of the data table referenced as the attribute of the mapping table.  To clarify, when viewing the object in the debugger all the attributes of the mapping object that are simple table fields are populated with the values of the fields of in the mapping table, however, the attributes of the object that represents the persistent class for the data table are not populated with the fields of the data table.  I had hoped that by reading the mapping table object the data object would automatically be populated.  Is there another step I need to perform to populate the data object?
    I'm sorry if the above is hard to follow.  Without being able to provide screenshots it's difficult to explain.
    If someone has managed to store references to persistent objects in a table and then read the references back could you list the steps you went through to create the persistent classes and include the code that reads the objects please?  The code I have almost works, I must be just missing some subtle point...
    Thanks in advance,
    Steve.

    Hi Andrea,
    The iObject being replicated at item level for Service Complaints is the SAP standard behaviour.
    Generally we raise complaint refering to some sales or service issues. In your scenario you are trying to create a complaint based on an iObject, then you have to mention the corresponding product details. I dont see any business requirement not to copy the iObject product at the item level.
    If you want it then I think only you have to write a Z program for it.
    Hope this helps!
    Regards,
    Chethan

  • Trouble with anchor and reference attributes combined with a Correlation ID

    Greetings, I'm a little green on FIM and looking for some advice.
    We have an HR system where we store the information on Contractors, Interns, and Employees.
    The business process for converting Contractors and Interns to Employees is to terminate the Contractor and re-hire as an Employee. This gives us a different employee number for the "live" entry in the HR system.
    Also, there is a "Supervisor No" attribute that is a Reference attribute for their manager. This is their employee number.
    What do I do in FIM? If the Employee number is the anchor, won't the system consider the employee a new object? Is there a way to connect the new employee record to the metaverse object that was a contractor or intern, and update the anchor attribute (the
    new employee number)?
    I was thinking of using a different custom field in the HR system as the FIM_Sync. But just realized that if this became the anchor, then no managers would connect since the Supervisor No is an Employee number.
    Thanks in advance for helping.
    -Doug
    *** Update ***
    I read some of the articles on Correlation ID that are in the 2003 version of MIIS the TechNet library. So a follow up question would be what happens between the CS and MV when the HR object changes.. Assuming I have this FIM_Sync attribute to be my
    Correlation ID.
    Contractor is created. Employee ID is anchor and FIM_Sync field is populated.
    New object in CS
    Projected into MV
    Provisioned out to AD and other systems, but they don't have the FIM_Sync attribute in their schema.
    Business Event.. Contactor converted to Employee:
    Contractor in HR system terminated (employment_state) and FIM_Sync entry removed.
    Employee record created in HR system and FIM_Sync value populated with what it was in the contractor record
    New Employee object in CS
    Does Contractor get disconnected?
    Does the Employee CS object get joined to existing MV object?

    At one of my previous projects we solved the same scenario as following:
    1. That was not a fully automatic process.
    2. Once we receive event that Contractor is terminated in HR, we put that user in "Terminated Contractors" set, disabling his active accounts, where the object resides for 30 days (business policy) before his accounts are removed from target systems.
    3. There's a custom workflow which triggers a notification to administrators if the following criteria are met:
    Name/Surname of fresh Employee are equal to one of the members of "Terminated Contractors" set
    Employee record from HR came within a week after Contractor's termination date (also, a business policy, agreed at customer's level. HRs are lazy and not necessarily process that transfer same day).
    4. IAM Administrator contacts HR to ensure that persons in question are actually the same one. Upon confirmation, manual join is made. Once object is joined, Correlation ID is written back to HR (actually, a buffer database acting as HR source) to ensure
    that the join can be made automatically.
    We faced several problems, though, which are beyond the scope of FIM itself:
    1. HRs were creating Employee record before terminating Contractor's one. A major pain, since new accounts are created, et cetera.
    2. HRs were creating Employee records too late (that's why we set a "timeout" for a week, initially it was two days)
    3. We had a case once when Contractor was terminated and new Employee came with the same name, but those were different people and HR application doesnt allow to differentiate "contractor fired" and "contractor moves to employee" events. That's why we had
    to stick to a manual and documented procedure.

  • Change Reference Attribute - "Manager" for multiple users

    Hi,
    I have a scenario in which I have to create a workflow to change a reference value attribute - "Manager" for multiple users in one go. Is it possible to achieve this with workflow. If yes, then how?
    Regards,
    Manuj Khurana

    Hello,
    not out of the box, since in workflows and custom activities you can only access the reqestor and target object direcly.
    But you can develop your own custom activity that fits you need, or do it with powershell custom activity.
    I did a very similar thing, to be able to change users group membership from the user UI, so I have also edit objects other then requestor and target in a workflow.
    Since both (manager and member) are reference attributes you maybe find this article helpful:
    http://social.technet.microsoft.com/wiki/contents/articles/19615.fim-2010-r2-how-to-manage-group-membership-from-the-user-ui.aspx
    I used this powershell activity in my solution:
    http://fimpowershellwf.codeplex.com/
    Regards
    Peter
    Peter Stapf - ExpertCircle GmbH - My blog:
    JustIDM.wordpress.com

  • Reference attributes

    Guys,
    I am trying to figure out what is happening with my custom reference attributes.
    I created two custom resource types, coming from a single view, separated by a object type column.
    On the customs resource types on Portal:
    Extend Schema on FIM Portal / MV
    Set permissions through MPR
    Set ADM and Non-ADM Filters
    Create Synchronization Acct MPR and give permission on the new resource types
    Configure Search Scope by both
    Configure the Inbound Rule (join by a GUID) and attrib flow on the FIM MA
    So, let's Custom1 and Custom2.
    On Custom1 I have two reference attributes, one to refer to user EmployeeID and other to reference to Custom2 ID.
    When I execute the Sync, the FIM doesn't flow the reference attributes to MV neither FIM Portal, if I open the object and try to fill the attribute with EmployeeID / Custom2 ID, FIM not find the objects.
    Any idea?
    Diego Shimohama

    You should read this - http://social.technet.microsoft.com/wiki/contents/articles/331.understanding-reference-attributes-processing-in-fim.aspx
    Both
    referencing objects and referenced objects should be present in connector space. That means Custom1, EmployeeID(Full Object) and Custom2(Full Object again) should be present in CS of FIM MA. This might seems to be confusing but this is the only way you can
    achieve that.

  • Options for Displaying Reference Attribute in AdvancedTable Record

    Hi,
    I'm looking for options for including reference attributes within an advanced table records as just another column.  Specifically how can I include a lookup meaning column in a detail advancedtable component when the lookup meaning is not in the VO?
    Some options I've thought of are:
    1. Change the VO to be defined with the lookup meaning by using "Expert Mode" and adding the joins.  This will not work because I need to change detail VO attribute via a controller/am method and (due to a bug) the change will not be saved to the database.
    2. Create an EO for the lookup entity and an AO to associate the detail EO with the lookup EO.  Then create a VO that is based upon both of these entities.  The problem I ran into with this option is that when the lookup code in the detail VO attribute is changed OAF tries to look for the old lookup code record in the detail VO and it will not find it and throws a error on the page.
    3. Create another detail advancedtable component in the detail VO advancedtable component.  Since I need the value within the detail advancedtable record and this would place it in a new detail this will not satisfy the requirement.
    Thank you

    If UOM is also changed with qty then old & new UOM should be available in CDHDR & CDPOS.
    If not then display current UOM.
    This logic will fail if UOM is also changed several times without changing Qty, which normally does not happen. So you can confirm with business, if this much info is enough.
    Making logic to work in case UOM is also changed several times, would require quite complex logic & will affect performance badly.

  • Imposible to activate characteristic with one reference attribute in 3.5

    Dear Experts,
    I have a really strange problem in 3.5 version.
    I have ZUTSUP attribute like reference char from 0FUNCT_LOC.
    I deleted one Z Character Attribute from 0FUNCT_LOC, when I try to active it shows one error.
    "Characteristic 0FUNCT_LOC: Master data has to be activated before conversion"
    Ok, I go to "Note 451773" trying to activate master data. Like explains this post: "Unable to Activate master Data InfoObject ''0EQUIPMENT''
    But, when i try to reactivate active version... another error
    "Characteristic 0FUNCT_LOC: Navigation attribute ZCIRCUITO does not exist for char. ZUTSUP"
    Well.. this is a bucle, because, in referenced attribute I don't have navigation attribute ZCIRCUITO. and I can't modify it. I tried to reactive ZUTSUP (without ZUTSUP) but problem is...
    "Characteristic ZUTSUP: Referenced characteristic 0FUNCT_LOC not (actively) available"
    Well... Any Idea?
    Thank you!

    Very easy if you know...
    Create another time the same attribute with same parameters and active it. Then Acitve Data Master of InfoObject.
    That's all, now you can delete the attribute normally.
    Edited by: Roger Peruchet on Mar 1, 2010 5:56 PM

  • How to convert javax.naming.directory.Attributes to .String

    hi,
    i am getting values from ldap server.
    but here i want to assin this values to string?
    how?
    Attributes det1 = ctx.getAttributes("cn="+t1+"", attrIDs3);
    String str111=det1;
    here i am getting error like this
    Incompatible type for declaration. Can't convert javax.naming.directory.Attributes to java.lang.String
    can any one help how to overcome and this values how to equal to string?
    jpullareddy

    now i got answer,i solved
    my self for solution
    jpullareddy

  • Converting Attribute to String

    I have obtained the attribute from LDAP (Netscape Directory Server) and I now want to convert it to a string so that I can manipulate it.
    So, I do this:
    Attributes readAttr = sr.getAttributes();
    Attribute attr=readAttr.get("cn");However, when I print this, I get something in the format:
    cn: My Test Group
    I would like to convert this Attribute to a String so that I can obtain the value of the cn without having the attribute name listed (i.e. obtain just "My Test Group"). Any ideas?

    Well, I figured out how to do this...
    I first cast the Attribute as an Object which has a toString() method. I then converted the object to a string and used the substring method to obtain the part I wanted.
    Attributes readAttr = sr.getAttributes();
    Attribute attr=readAttr.get("cn");
    Object objval = (Object)attr;
    String stringval = objval.toString();
    String val = stringval.substring(4);I don't know if this is the best way, but it worked for me!

  • Calculated attribute: Concatenated String not possible ?

    Hi,
    whats the syntax to make a concatenated String view in a calculated attribute of an analytical view ?
    For Example in metasyntax:
    <CONST> = 'EDF'
    CHANNEL_DESCRIPTION  = 'Internet'
    <CONST> || CHANNEL_DESCRIPTION  =  'EDF Internet'
    Is this possible ?
    How ?
    ThanXs
    Martin

    Hi,
    You can use the "+" operator to concat two strings.This will call the CONCAT function of NewDB Engine to concatenate the strings.
    (String1 + String2 in a Calc Attribute)
    Rgds,
    Murali

  • Strange! null reference in a String witch shouldn't be null

    I have a bug that really I dont understand. I get un Id from a database with a select query. and i check that is correctly gotten. then i set this Id in a static attribute of a class. fro example: Test.setId(_id);
    when i want to insert this id in a second table a get an sqlexception saying that the id can't be null.
    When debugging, I add a println to print this Id, and misteriously the id is not null and the insert request is correctly executed.
    Can you help me please, i spend 3 days to think about this problem and i have no explanation

    Post the failing code & point us to the line that fails. Would also help to to post the table definition that includes the column the DBMS is complaining about.

  • Object reference with a String. Is it Possible?

    Hi all
    I know this is a long shot but I'm taking my chances.
    I have the following boring code
    if (labelNo==1) userField1Label.setText(labelText[labelNo]);
    if (labelNo==2) userField2Label.setText(labelText[labelNo]);
    if (labelNo==3) userField3Label.setText(labelText[labelNo]);
    if (labelNo==4) userField4Label.setText(labelText[labelNo]);
    if (labelNo==5) userField5Label.setText(labelText[labelNo]);
    if (labelNo==6) userField6Label.setText(labelText[labelNo]);which I wish to convert to something on the lines of this pseudo code. Is this somehow possible? - Thanks.
    for (int i=1; i<=noOfLabels; i++) {
        labelObject="userField"+i+"Label";
         ((((labelObject)))).setText(labelText)

    Why not just put the fields into an array?
    for ( i = 0; i < 6; i++ )
      userFieldLabels.setText( labelText[i] );
    And no, by the way, you cannot "userfield"+i - that's a trick from interpreted languages such as Basic. Won't work in java.

  • How to reference template substitution string in PL/SQL condition

    hi -- I need to conditionally display an item based on the value of #TITLE#. I'm currently trying a pl/sql expression function body returning boolean
    DECLARE
    page_type VARCHAR2(1000);
    BEGIN
    page_type := lower(substr(:TITLE,instr(:TITLE,'Query')));
    if (page_type = 'query') then
    return TRUE;
    else
    return FALSE;
    end if;
    END;
    There are no errors, but the condition is not being met when it should be.
    I tried setting some app items to the value of #TITLE# and I'm obviously not referencing it correctly; they're all null:
    :TEST_VALUE := &TITLE.;
    :TEST_VALUE2 := :TITLE;
    :TEST_VALUE3 := V('TITLE');
    Help?
    Thanks,
    Carol

    Hi,
    You can use javascript on page HTML header
    <script>
    function getDocTitle(pItem){
      $x_Value(pItem, document.title);
    </script>And page body
    onload=" getDocTitle('Px_YOUR_ITEM');"Br, Jari

Maybe you are looking for

  • BPM Dynamic Roles

    Hi All, I am trying to figure out how I can dynamically assign roles within BPM. So I want to be able to route the BPM process to the manager of the user that the process was assigned. I am just not sure how to dynamically do this within BPM. Any tho

  • Where I can download corrupt pdf viewer for me?

    I found some broken pdf files doing a raw recovery from Ontrack and receive similar issues when trying to open these files (I tried to match some up based on file size. How to view corrupted pdf? Where I can download corrupt pdfviewer for me?

  • Could not create Java class: associated with region:

    Hi All, I am extending the standard controller oracle.apps.pos.supplier.webui.SuppSummCO With a custom controller xxmycomp.oracle.apps.pos.supplier.webui.XXSuppSummCO I have built the project in my local JDEV, Compiled the custom controller and put i

  • MAC Address issue in Linux Guest

    Hi, IP address is getting change on every reboot of Linux machine in HyperV environment even we have make it static inside the Linux configuration file. Any Suggestion ??

  • Question about Servlets

    Hi, I am running WebSphere and when i put my sevlets directly under the classes folder and map it in the web.xml file, they seem to work fine. But when i try to put those servlets in few folders under classes folder, its not able to find it. I even m