Configuring approval for update of some profile attributes

Hi All,
I need to configure approval when some of the profile attributes are updated.
1. How do i know which attribute is updated?
2. How do i configure approval ?
Thanks in Advance.
Shrinath

The standard strategy for detecting which attribute has been updated is to add a hidden "shadow" attribute for each attribute.
Implementing your scenario turns out to be a bit complex but I think the following approach should work.
To implement your scenario you also need a boolean flag for each attribute kept in a db table or lookup table (not on the USR form). This flag is normally set to false.
When a change comes in the shadow attribute is used to detect which attribute is updated through a post insert event handler (or entity adapter). This adapter sets the flag to true, resets the main attribute to the value kept in the shadow attribute and kicks off the request. The entity adapter always checks the flag as the first step in the flow and if the flag is set the entity adapter does nothing.
This will trigger the event handler but as the two attributes now are identical nothing happens.
When the approval is done either the change is approved or denied.
In the case of approval the provisioning code sets the flag to false and writes the new value to the main attribute, next to the shadow attribute and finally sets the flag.
In case of denied you need to reset the flag to false. Not exactly sure if you can do this as part of the deny workflow or if you would have to create a scheduled task that does this.
A bit complex but should solve your problem.
Hope this helps
/Martin

Similar Messages

  • Row cannot be located for updating. Some values may have been changed...

    Hello,
    I have a legacy application written in VB6 and using Oracle OLEDB Provider (version 9 and updated to the last ones from oracle site)
    I've a problem during insert of a record using recordset method (AddNew).
    The returned message is "Row cannot be located for updating. Some values may have been changed since it was last read. "
    I know that problem is caused by a Before Insert trigger that I CANNOT change.
    Trigger does not change any primary key values !!!. It put only some default values on other not rilevant columns.
    I tried to use the recordset Property option "Update Criteria" = adCriteriaKey without success !
    I had same problem with SQL Server but i solved putting into the trigger SET NOCOUNT ON.
    I think problem is related to the fact that ADO tries to calculate number of affected rows and for doing that it use a where clause built on the changed columns but using values it had on the client.
    Other important info:
    Cursor = adUseClient (and i cannot adUseServer)
    Provider= MSDAORA (version 9.2...)
    Oracle server = 9.1
    Trigger causing problem = BEFORE INSERT (for each row)
    Thanks in advance
    Luigi

    Hello,
    I have a legacy application written in VB6 and using Oracle OLEDB Provider (version 9 and updated to the last ones from oracle site)
    I've a problem during insert of a record using recordset method (AddNew).
    The returned message is "Row cannot be located for updating. Some values may have been changed since it was last read. "
    I know that problem is caused by a Before Insert trigger that I CANNOT change.
    Trigger does not change any primary key values !!!. It put only some default values on other not rilevant columns.
    I tried to use the recordset Property option "Update Criteria" = adCriteriaKey without success !
    I had same problem with SQL Server but i solved putting into the trigger SET NOCOUNT ON.
    I think problem is related to the fact that ADO tries to calculate number of affected rows and for doing that it use a where clause built on the changed columns but using values it had on the client.
    Other important info:
    Cursor = adUseClient (and i cannot adUseServer)
    Provider= MSDAORA (version 9.2...)
    Oracle server = 9.1
    Trigger causing problem = BEFORE INSERT (for each row)
    Thanks in advance
    Luigi

  • Event Handlers Invoked Everytime for update on User Profile.(OIM 11g)

    Hi,
    We had Custom event handlers for generating some fields on user form.
    Everytime there is update on user profile on any field, All the event handlers fired, (As seen from logs).
    I want to fire particular event handlers on particular update. Like if first name is updated then only display name event handler should fire. (not all)
    How can i achieve this???

    Here is my code..it is working fine for creation of the user. but when i am updating the user i am getting all null values except the updated one.
    Example if there are 5 fields in that i am updating 2 .apart from those 2 fields the other 3 are coming as null which is making validation to fail.
    package flatfilevalidation;
    import java.io.Serializable;
    import java.util.Date;
    import java.util.HashMap;
    import oracle.iam.platform.context.ContextAware;
    import oracle.iam.platform.kernel.ValidationException;
    import oracle.iam.platform.kernel.ValidationFailedException;
    import oracle.iam.platform.kernel.spi.ValidationHandler;
    import oracle.iam.platform.kernel.vo.BulkOrchestration;
    import oracle.iam.platform.kernel.vo.Orchestration;
    import oracle.iam.identity.usermgmt.api.UserManagerConstants.AttributeName;
    import Thor.API.*;
    import Thor.API.Exceptions.tcAPIException;
    import Thor.API.Operations.*;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;
    import oracle.iam.identity.usermgmt.api.UserManagerConstants;
    import oracle.iam.identity.usermgmt.vo.User;
    import oracle.iam.passwordmgmt.utils.MLSUtils;
    import oracle.iam.platform.Platform;
    import oracle.iam.platform.kernel.vo.OrchestrationTarget;
    import oracle.iam.upgrade.changes.jaxb.Entity;
    public class FFValidation implements ValidationHandler {
    int count;
    tcUserOperationsIntf userOperationsService;
    Entity ent = null;
    @Override
    public void validate(long arg0, long arg1, Orchestration orchestration)
    throws ValidationException, ValidationFailedException {
    System.out.println("entered the Validation methode");
    HashMap<String, Serializable> parameters = orchestration.getParameters();
    System.out.println("****************************************************************");
    User user = getUser(orchestration);
    Object passwdOrchParam = parameters.get(UserManagerConstants.AttributeName.EMPLOYEE_NUMBER.getId());
    System.out.println("***************************"+passwdOrchParam+"*************************************");
    System.out.println("orch.getParameters() ============================ " + parameters);
    String ceo="CEO";
    String trainee="Trainee";
    String Emp="EMP";
    String Contractor="Contractor";
    //int Skypecount,Empcount,phonecount;
    String Role= getParameterValue(parameters, "Role");
    String Designation = getParameterValue(parameters, "Designation");
    Long Manager =getManagerid(parameters, "USR_MANAGER_KEY");
    Date EndDate =getDate(parameters, "End Date");
    String EmpNo=getParameterValue(parameters, "Employee Number");
    String skypeid=getParameterValue(parameters, "SkypeId");
    String Mobile=getParameterValue(parameters, "Mobile");
    String skypeidDb="usr_udf_skypeid";
    String MobileDb="usr_mobile";
    String EmpDB="usr_emp_no";
    //validating SkypeID
    uniquevalidate(skypeid,skypeidDb);
    //Validating Employee Number
    uniquevalidate(EmpNo,EmpDB);
    //Validating Employee Number
    uniquevalidate(Mobile,MobileDb);
    //CEO Validation
    if(Designation.equals(ceo)){
    if(Manager!=null){
    String msg="ManagerID not required";
    System.out.println("ManagerID not required ");
    throw new ValidationFailedException(msg);
    //Cotractor Validation
    if(Role.equals(Contractor) && Designation.equals(ceo)) {
    System.out.println(Designation.equals(ceo));
    String msg="Contractor Cannot be CEO";
    System.out.println("Contractor Cannot be CEO");
    throw new ValidationFailedException(msg);
    if(Role.equals(Contractor)&& EndDate==null) {
    String msg="Contractor Endate is not provided";
    System.out.println("Contractor Endate is not provided");
    throw new ValidationFailedException(msg);
    //Trainee Validation
    if(Role.equals(trainee) && Designation.equals(ceo)) {
    System.out.println(Designation.equals(ceo));
    if(Designation.equals(ceo)) {
    String msg="Trainee Cannot be CEO";
    System.out.println("Trainee Cannot be CEO");
    throw new ValidationFailedException(msg);
    //manager validation
    if(!Designation.equals(ceo)){
    if(Manager==null){
    String msg="ManagerID Can not be Null";
    System.out.println("ManagerID Can not be Null");
    throw new ValidationFailedException(msg);
    //Employee Validation
    if(Role.equals(Emp)){
    if(EndDate!=null) {
    String msg="Employee End Date Should be empty";
    System.out.println("Employee End Date Should be empty");
    throw new ValidationFailedException(msg);
    @Override
    public void validate(long arg0, long arg1, BulkOrchestration arg2)
    throws ValidationException, ValidationFailedException {
    System.out.println("**************Inside BulkOrchestration****************");
    HashMap<String, Serializable> parameters = arg2.getParameters();
    System.out.println("orch.getParameters() ============================ " + parameters);
    @Override
    public void initialize(HashMap<String, String> arg0) {
    private String getParameterValue(HashMap<String, Serializable> parameters,
    String key) {
    String value = (parameters.get(key) instanceof ContextAware) ? (String) ((ContextAware) parameters
    .get(key)).getObjectValue()
    : (String) parameters.get(key);
    System.out.println("VALUE::" + value);
    return value;
    private boolean isNullOrEmpty(String str) {
    return str == null || str.isEmpty();
    private Long getManagerid(HashMap<String, Serializable> parameters,
    String key) {
    System.out.println(parameters);
    Long managerLogin = (parameters.get(AttributeName.MANAGER_KEY.getId()) instanceof ContextAware)
    ? (Long) ((ContextAware) parameters.get(AttributeName.MANAGER_KEY.getId())).getObjectValue()
    : (Long) parameters.get(AttributeName.MANAGER_KEY.getId());
    System.out.println("managerLogin "+managerLogin);
    return managerLogin;
    private Date getDate(HashMap<String, Serializable> parameters,
    String key) {
    System.out.println("date "+ parameters);
    Date date = (parameters.get(AttributeName.ACCOUNT_END_DATE.getId()) instanceof ContextAware)
    ? (Date) ((ContextAware) parameters.get(AttributeName.ACCOUNT_END_DATE.getId())).getObjectValue()
    : (Date) parameters.get(AttributeName.ACCOUNT_END_DATE.getId());
    System.out.println("EndDate "+date);
    return date;
    void uniquevalidate(String idvalue,String idDbvalue){
    userOperationsService = Platform.getService(tcUserOperationsIntf.class);
    HashMap<String, String> UMAttr = new HashMap<String, String>();
    String msg="Entered Value is not unique" + idvalue;
    System.out.println("idvalue="+ idvalue);
    System.out.println("idDbvalue="+ idDbvalue);
    if(idvalue!=null){
    try {
    System.out.println("in try block");
    UMAttr.put(idDbvalue, idvalue);
    tcResultSet USAttr = userOperationsService.findUsers(UMAttr);
    System.out.println(USAttr);
    System.out.println("User set count ========================= " + USAttr.getRowCount());
    count=USAttr.getRowCount();
    if(count>0)
    throw new ValidationFailedException(msg);
    catch (tcAPIException e) {
    e.printStackTrace();
    private User getUser(Orchestration orchestration)
    if(orchestration.getTarget() != null && orchestration.getTarget().getEntityId() != null)
    return new User(orchestration.getTarget().getEntityId());
    HashMap orchParams = orchestration.getParameters();
    User user = new User(null);
    Set orchParamNames = orchParams.keySet();
    String orchParamName;
    for(Iterator i$ = orchParamNames.iterator(); i$.hasNext(); user.setAttribute(orchParamName, orchParams.get(orchParamName)))
    orchParamName = (String)i$.next();
    MLSUtils.setStringValuesForMLSAttributes(user);
    System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"+user);
    return user;
    }

  • BAPI for update field marc-profil (backfl.profile, mrp4)

    G'day!
    What bapi will update field marc-profil (backfl.profile, mrp4)?
    Thank you!

    Anupam Sharma wrote:
    You can use the T code MM17/ MASS for your requirement .
    BAPI need for transfer data from non SAP PLM system.

  • Spaces Profile Attributes

    I am looking to add some custom attributes to the WebCenter Spaces (11.1.1.4) user profile and a cannot find any documentation regarding this issue. I have followed the examples from the WebCenterSpacesExtensions and DesignWebCenterSpaces tutorials. In there i found a sample of changing an attribute to return a constant string, but I cannot find a way to access the LDAP layer and read a different property.
    Can anyone help me? 10x

    For your configuration issues -
    follow these links-
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_security.htm
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_security.htm#BGBBHAGJ
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_security.htm#BGBHHGEH
    http://www.art2dec.com/documentation/docs/fmw11g1114documentation/install.1111/e12001/config.htm#BABIDAFG(in section Setting Up an External LDAP-Based Identity Store)
    In jdeveloper , you can customize the profile taskflow and build your own UI for displaying the user profile attributes.In this way you can only customize (rename or
    delete ) the existing attributes which are provided by webcenter spaces.
    otherwise you can use REST API's for building your custom UI build use them in taskflows to add the custom attributes which will be available in resource catalog in webcenter spaces .
    or.
    if you use DesignWebCenterSpaces for your spaces application then use the jdbc code and fetch the attributes for spaces user from custom schema /tables in databases or use LDAP.
    For further references s-
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_wcs_prop.htm#CEGJBAIJ
    in section 18.9-Managing personal profiles

  • Custom profile attributes

    Is there any way to add custom attributes to the user's profile information?

    For your configuration issues -
    follow these links-
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_security.htm
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_security.htm#BGBBHAGJ
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_security.htm#BGBHHGEH
    http://www.art2dec.com/documentation/docs/fmw11g1114documentation/install.1111/e12001/config.htm#BABIDAFG(in section Setting Up an External LDAP-Based Identity Store)
    In jdeveloper , you can customize the profile taskflow and build your own UI for displaying the user profile attributes.In this way you can only customize (rename or
    delete ) the existing attributes which are provided by webcenter spaces.
    otherwise you can use REST API's for building your custom UI build use them in taskflows to add the custom attributes which will be available in resource catalog in webcenter spaces .
    or.
    if you use DesignWebCenterSpaces for your spaces application then use the jdbc code and fetch the attributes for spaces user from custom schema /tables in databases or use LDAP.
    For further references s-
    http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_wcs_prop.htm#CEGJBAIJ
    in section 18.9-Managing personal profiles

  • Either need ability to edit PS layer style in FC or allow for update check to the .psd file

    There is not much control over look in FC of imported .psd file. So please allow for update import some how.

    I think if you poll users you will find Designers and Artists are most familiar and comfortable with Photoshop than Illustrator. That is one of the reasons I never upgraded or pushed to get the latest illustrator. Illustrator seems to not be as easy to use as Photoshop or AfterEffects. I am hoping that CS4 is identical to Photoshop for me to even consider to upgrading. I only use illustrator for the vector brush storkes it can do to paths, or to open a vector file and instantly copy and paste it as smart object into Photoshop.
    I also do not understand why every element in Photoshop can't behave like in AfterEffects. In AfterEffects every value is re-editable and stackable. Thus no need to come up with new workflow of converting to smart object as everything is smart.
    To me it seems like software development groups are siloed from each other at Adobe. I hope I am proved wrong and roundtriping become real for Photoshop as well as Illustrator. 

  • OS X 10.6.8 FF35.0 Prefs set for update inform but 35.0.1 downloaded automatically Why? How to abort?

    I always have "Check for updates but let me choose whether to install them" selected in the Update preferences. FF35.0. still downloaded and began install 35.0.1 process automatically without permission.
    This has happened occasionally in the past, but usually the manual process works properly. How can I abort the automatic process once the download is underway?

    ''guigs2 [[#answer-683158|said]]''
    <blockquote>
    It is possible to close Firefox before the update is applied.
    Please make sure that updates are configured the way you want them to be: [[Configuration Options for Updates]]
    </blockquote>
    As indicated in my original post, I have the "Check for updates but let me choose whether to install them" option selected in the FF Update preferences. And my Mac OS prefs are set to automatically request an administration password before a manual install, but this was by-passed by the auto-update.
    The auto-update caught me by surprise -- I had several FF tabs on the go when the update process started, and by the time that I realized it was installing and not just downloading, the process was well underway.

  • How to Configure approval

    Hi,
    I want to configure approvals on a service only for VSO. So I add an approval in Authorizations tab and I put this on the condition field:
    "Approval"="Approval" and "SIBDApprovals.OTAApproval"="Yes".
    I checked that the value of OTAApproval is "Yes" when the user is a VSO and "No" if an OTA order this service.
    But it doesn't work. There is no approval. If I only use "Approval"="Approval" as a condition, there is an approval for all user who order this service.
    So how to configure Approval for VSO and not for OTA?

    You'll want to start with configuring approval for this service via the Configure Approvals service.
    And then extend the service with an additional conditional for VSO users only.

  • Updated! App-V: A Configuration Template for Deploying to Stateless RDS Clients on Citrix Published Desktops with Citrix UPM for Profile Management

    I've updated my App-V Startup script that I use.  The new version includes Event Logging as well as detailed logging, and its in PowerShell finally)
    Check out the wiki!
    http://social.technet.microsoft.com/wiki/contents/articles/25318.app-v-a-configuration-template-for-deploying-to-stateless-rds-clients-on-citrix-published-desktops-with-citrix-upm-for-profile-management.aspx

    I've updated my App-V Startup script that I use.  The new version includes Event Logging as well as detailed logging, and its in PowerShell finally)
    Check out the wiki!
    http://social.technet.microsoft.com/wiki/contents/articles/25318.app-v-a-configuration-template-for-deploying-to-stateless-rds-clients-on-citrix-published-desktops-with-citrix-upm-for-profile-management.aspx

  • App-V: A Configuration Template for Deploying to Stateless RDS Clients on Citrix Published Desktops with Citrix UPM for Profile Management

    Please Vote if you find this to be helpful!
    App-V:  A Configuration Template for Deploying to Stateless RDS Clients on Citrix Published Desktops with Citrix UPM for Profile Management
    Just posted this to the wiki:
    http://social.technet.microsoft.com/wiki/contents/articles/25318.app-v-a-configuration-template-for-deploying-to-stateless-rds-clients-on-citrix-published-desktops-with-citrix-upm-for-profile-management.aspx

    I would not recommend this and keep the package cache and the client on the same non-persistent drive and enable the Shared Content Store. If you separate the cache and the App-V client they could get out of sync and strange behaviour can occur. 
    You can use a temporary local profile with Citrix UPM or UE-V and specify what to roam/save.
    You can use the Shared Content Store so packages will stream over the network. When the user logs on there is a publishing phase where shortcuts etc are created for the user, this will take some time.
    Are you using the App-V full infrastructure?
    Are you using a boot disk, partition or PXE in combination with PVS?

  • Reg:BAPI for updation of Progress parameter and status profile

    Hi,
    Can anybody suggest name of BAPI used for updating "progress parameter" & "Status Profile" in actvity.
    With Regards
    Rohit Prakash

    Hi Ammar,
    I have checked both BAPI but BAPI are not working as per our requirement.
    Firstly we wanted to update progress parameter like measurement method(progress version,method plan,method actual) & POC weight into activity but as per BAPI given by you there is no any field available related to measurement method(progress version,method plan,method actual).
    And secondly we wanted to update status profile residing in Activity tab not in network header or WBS.
    Waiting for some more input related to  query.
    With Regards
    Rohit Prakash

  • OIM 11gR2 PS1: Need to configure auto approval for self registration

    Hi All
    I need to configure auto approval for self registration in OIM 11g R2 PS1. I have done this in R1 but looks like it is different in R2.
    Can you please guide me or point me to some blog/guide.
    Thanks

    check this link:
    Developing Workflows for Approval and Manual Provisioning - 11g Release 2 (11.1.2.1.0)

  • HT202577 Is the apple configurator available for Windows in order to push profiles to apple TVs?

    We currently have a windows environment at work and use 802.1x authentication and have some 1st generation apple TVs. We would like to get them on our wireless but are having issues. I would like to push profiles to these apple TVs to see if I can get them on but I am not going to buy a Mac to do it.
    Is the apple configurator available for Windows or even ubuntu?

    Hello,
    Thanks for using Apple Support Communities.
    Apple Configurator requires both Mac OS X, and the most up to date version of iTunes, and can only be installed from the Mac App Store.
    Mac App Store - Apple Configurator
    Cheers,
    Alex H.

  • What a horrible way to treat customers. I was due for updates on my phones and thought I should maybe check some other prices but have been with Verizon for 20 yrs so ended up there. I got 2 new IPhones 5s and the wife couldn't decide what she wanted so s

    What a horrible way to treat customers. I was due for updates on my phones and thought I should maybe check some other prices but have been with Verizon for 20 yrs so ended up there. I got 2 new IPhones 5s and the wife couldn’t decide what she wanted so she stayed with old phone but this locked me into a new 2 yr contract . Within a wk one of the new iPhones started turning on and of like 10 –15 times a day. Wk 2 it turned off and would not turn on again . It was my sons who was in college at the time so we talked and he took it in to a Verizon store where he was told I need to come in since the account was in my name. He was away from home , Verizon could see on account it was his phone they said it was not abused, they could not even turn it on , they sold me the phone give him another phone maybe even a loaner till he gets another. So now I need to go to store and explain to 3 different people this is my phone and my son has it and I need a new one. what a waste of time after about 2 hrs and talking to different people and yes they said there were notes on his account from other person he had talked to from different store. So I finally walk out with a receipt in hand and being told I would have a new phone in a couple days. As I sat in my vehicle thinking this is stupid I looked at my receipt and noticed it said droid on it so back into Verizon I went. The salesman said that’s what your son has on his account. My son had activated a friends old phone so he has one since VERIZON REFUSED to give him one. Another hr 3 people and yes they can see he had a new iPhone and notes on it from other store. Sometimes sorry just doesn't do it. I was now late for a appointment . Now I walk out and have been told I will get a new iPhone in the mail in about 2 wk Yes 2 wks   again I bought it there just give me a new one and you send old one back. I will also get a new droid that I have to send back because they said they cant cancel it  . In about 3 days I get the Droid and sent it back Verizon mistake and a waste of my time . After waiting over 2 wks and not receiving a new iPhone back to Verizon I went . I am now bitter at Verizon after doing 20 yrs of business with them. 3 people 1 hr later I was told it got delivered to my post office . I got the tracking num called the post office and they say o yes that was the droid. Go back in to Verizon another hr of explaining I walk out being told I will get a new iPhone in a couple of days, We’ll see . Once again I got the phone in your store just give me a new one . Do you realize how much of my time you have wasted ? do you care? O what is Your Policy ? How many Billion did you make last year ? I am Locked into a new 2 yr contract . Why don’t you just release me ? After 20 yrs do you think I will ever renew my contract ?

    Simple process. If an iPhone go to the Apple Store and not Verizon
    the phone from Verizon will be a refurbished device and not new unless under the 14 day worry free guarantee
    good luck

Maybe you are looking for

  • What does this message mean...Program: C:\Program Files (x86)\Internet Explore\iexplore.exe

    everytime i log onto the internet this message appears Program: C:\Program Files (x86)\Internet Explore\iexplore.exe AND THEN AN INTERNET HAS STOPPED WORKING BOX APPEAR AND IT SHUTS OFF WHAT DOES IT MEAN

  • Re: Tecra S10 and S11 freeze randomly

    We have several Tecra S10's and S11's. They freeze randomly during the day. Some even twice within half an hour, others spread it out through the day. The Tecra's are all Windows 7. Some have 64 bit, others a 32 bit installation. After the Windows 7

  • ASCII and Unicode problem...

    Would you happen to know if InDesign CS3 still recognizes ASCII characters in an Applescript? I did some tweaking of a search & replace script (formerly used in Quark 6.5), to apply in InDesign, but it doesn't seem to work. I read online that when Le

  • Format date between 2 linux (red hat & ubuntu)

    Hello, I have a little date format problem. I have a soft php (and apache)+oracle 9i. I have ONE database, and 2 applications (same php) on 2 different server (one on red hat, the other on ubuntu (edgy). My probleme is, on my red, when I select a dat

  • Event ID 139 error MUP

    We have following situation: On most of our Windows Server 2008 R2 SP1 systems we get an "Delayed Write File" event, about every 5 minutes. Event ID: 139 Source: Mup Description: {Delayed Write FIle} Windows was unable to save all data for the file \