OIM and disabled objects

when a disabled user is re-enabled in OIM , it automatically re-enables all the users disabled objects . is there any way to customize or turn off this behaviour . i would like the reneabled users to get his resource objects freshly provisioned

Do you intend to provision multiple instances of the same resource to the user?
What I mean is, when you disable the user, all the resources get disabled. While when you re-enable it, if you re-provision the resources, users would have 2 resources one which is disabled and other which is provisioned. We had a similar requirement and in our case we Revoked the resources when the user was disabled and users would re-request for those resources once user is re-enabled.
Additionally, if you want multiple instances of the same resource to the user with multiple instances in the disabled state (number of times you disable the user) and one in provisioned, you need to modify the Enable User task not to e-enable anything. In the same time you need to have a custom code which raises a request to provision the user with the resource (if you have approval) or provision directly.
Hope it helps!
Rgds, Ajay

Similar Messages

  • How to programati​cally set front panel objects (buttons) to enable, disabled, and disabled and gray

    I'm writing a program that when I am iterating through a loop, I want to have some buttons disabled and grayed. Once the loop is done, I want those buttons to now be enabled.
    But I have no clue how to programatically do this
    (aka enable and disable while the program is running, NOT before the program starts)
    Any help would be appreciated

    Create a property node, & select the 'Disabled' property.  Set it to 0 for enabled, 1 for disabled, & 2 for disabled & grayed.
    Paul Cardinale

  • [OIM 9.1.0.2] Access Policy being evaluated to an OIM user disabled.

    Hi Gurus,
    I have an Access Policy being evaluated and provisioning resource (AD) to an OIM user disabled.
    Any tip on what I should take a look?
    Thanks in advance.

    Hi all,
    I have configured out the XL.EvaluateMembershipForInactiveUser System Property as TRUE, but the membership rule does not get evaluated for disabled users. So the user still remain into the group. I have restarted the OIM.
    I need to active the Evaluate User Policies schedule task for this configuration be effective. Or should I do something more?
    Thanks a lot.

  • OIM and MS Exchange - Invalid mail store name error

    hello,
    I'm trying to provision a user with a mailbox in Exchange. I have setup SSL between the AD/Exch box and OIM. After a manual provisioning is initiated through OIM, the "Create Mailbox" adapter status is shown as "Rejected".
    In the details, the Reason show is "Invalid mail store name passed". However, the mail store name used in the IT Resource Configuration is as per the connector documentation and as seen in the Exchange System Manager console i.e. "Mailbox Store (BASE)" where "BASE" is the name of the computer where AD/Exch is installed.
    Am I missing something? Is there a full DN of the mail store required? Is this something to do with the access permissions in AD or Exchange?
    Please advise. Thank you!

    Hi,
    I was able to resolve this by changing the value of "Server Name" value in the IT Resource. The issue is not with the Mail Store Name or "Store Name" rather it's with the "Server Name".
    The value of "Server Name" should be the host name without the domain name for example, BASE only instead of BASE.mydomain.com.
    The value of "Store Name" should be as shown in the Windows Exchange Admin Console. E.g. "Mailbox Store (BASE)".
    Also, ensure that the value "AD User" is added under the "Depends On" for the "Exchange" Resource Object.
    Once you provide the values as mentioned above, create a user in OIM and assign AD User and Exchange resources.
    The mailbox will not be created/shown in the Exchange Admin Console unless you access the Exchange URL and login with the target user's credentials.
    The Exchange URL can be accessed as "http://hostname or IP/exchange". Provide the user's username and password and the Outlook Web Access screen will be displayed.
    Now go to Exchange Admin System console and check the mail store if the maiilbox is created.
    Hope this helps. Thanks!!

  • Beginners Guide sound installation -- OSS and ALSA objective features

    Beginners Guide sound installation -- OSS and ALSA objective features needed
    Hi,
    In most wiki pages i just edit the things that i think need editing. Just look at the oss history
    In all those cases i didn't really saw a need to ask for permission.. that would kinda destroy the wiki idea.
    However i want to change the sound instructions in the beginners guide so i made a copy of the entire guide and the part that i changed there is: http://wiki.archlinux.org/index.php/Use … ling_Sound now i have a slight issue there. As you can see i'm in favor of OSS and because you can spot that it's not objective. Now i would ask 2 things.
    1. Could you all post your features of OSS and ALSA
    2. Once that's done can i have permission to place that section in the beginners guide? that will also include removing the sound installation from the beginners guide which i already did in my version
    My personal reason to do this. i've read this  and am since then pro OSS and against the ALSA/PulseAudio combo. i think that combo needs to get out of linux (most notably Fedora and Ubuntu) ASAP. and oss needs to go back into the linux kernel
    Thank you for your time,
    Mark

    ngoonee wrote:
    I'm an alsa/pulse user, so I'll give a bit of the 'other side'.
    Alsa/pulse
    Pros:-
    network sound
    advanced connection of sink/source (including merging sinks)
    bluetooth support!
    highly supported by existing apps, either through directly supporting Pulse or through its alsa plugin (you should not need to recompile properly-written apps which do not assume they should write audio data directly to hardware, I think I only needed to recompile mpd on my system)
    Cons:-
    Setup isn't the easiest. Can't comment vs OSS4 because I haven't tried it
    OSS4
    Pros:-
    Everyone seems to say sound quality is better. I guess that's because they're comparing it with dmix alsa. Use pulse with alsa and you should not notice any difference in sound quality though.
    Cons:-
    Most apps nowadays default output to alsa. Meaning OSS plays them using an alsa plugin.
    USB support is admittedly skimpy.
    EDIT: Having read the sound article you referred to, my only comment is that the writer really has it in for Pulse... 3 seconds latency, where'd he get that from? I use pulse for audio recording (when I'm lazy to fire up JACK) and while there IS latency, its definitely in the ms range.
    Thanx for the input
    Gen2ly wrote:
    Gen2ly wrote:...As a side note, do you need libflashsupport here???...
    markg85, libflashsupport isn't needed. [1]
    pacman -Ql oss | grep flash
    If you don't know, please don't put in wiki, this could cause unnecessary problems.  As for the mms section:
    If your stream sounds ugly in totem like it did with me then you could try to play it with another codec like ffmpeg (mplayer). That "fixed" the issue for me. This will not fix the issue that somehow pops up in gstreamer when playing MMS streams but it will give you the option to play it with good sound quality. Playing it in mplayer is simple:
    # mplayer mmsh://yourstreamurl
    Could you fix this?  ffmpeg is not a codec .  Also define ugly, and what is somehow?
    markg85 wrote:Thanx a lot for your feedback. i will certainly use it when i make more edits.
    As for the things you didn't know. As soon as i fully understand how i can get a microphone working in OSS i will add that to the wiki as well. Unless you already know it.. in that case, feel free to add it.
    For the mic, I did get mine going.  Can't remember just how I did mine (sorry, think I had to disable one of the inputs),  but do remember to prevent it from passing through the speakers had to disable "Misc Microphone".
    # ossmix
    Selected mixer 0/High Definition Audio ALC888
    Known controls are:
    jack.green.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
    jack.green [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.green.mute ON|OFF (currently OFF)
    jack.black.mode <front|rear|center/LFE|side|pcm4|input> (currently center/LFE)
    jack.black [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.black.mute ON|OFF (currently OFF)
    jack.orange.mode <front|rear|center/LFE|side|pcm4|input> (currently rear)
    jack.orange [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.orange.mute ON|OFF (currently OFF)
    jack.gray.mode <front|rear|center/LFE|side|pcm4|input> (currently pcm4)
    jack.gray [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.gray.mute ON|OFF (currently OFF)
    jack.pink.mode <front|rear|center/LFE|side|pcm4|input> (currently input)
    jack.pink [<leftvol>:<rightvol>] (currently 19.9:19.9 dB)
    jack.pink.mute ON|OFF (currently OFF)
    jack.fp-pink.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
    jack.fp-pink [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.fp-pink.mute ON|OFF (currently OFF)
    jack.blue.mode <front|rear|center/LFE|side|pcm4|input> (currently input)
    jack.blue [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.blue.mute ON|OFF (currently OFF)
    jack.fp-green.mode <front|rear|center/LFE|side|pcm4|input> (currently front)
    jack.fp-green [<leftvol>:<rightvol>] (currently 29.9:29.9 dB)
    jack.fp-green.mute ON|OFF (currently OFF)
    record.mix.mute.mic1 ON|OFF (currently OFF)
    record.mix.mute.fp-mic1 ON|OFF (currently OFF)
    record.mix.mute.linein1 ON|OFF (currently OFF)
    record.mix.mute.fp-headphone1 ON|OFF (currently OFF)
    record.mix.mute.green1 ON|OFF (currently OFF)
    record.mix.mute.black1 ON|OFF (currently OFF)
    record.mix.mute.orange1 ON|OFF (currently OFF)
    record.mix.mute.gray1 ON|OFF (currently OFF)
    record.mix.mute.input-mix1 ON|OFF (currently OFF)
    record.mix1 [<leftvol>:<rightvol>] (currently 38.9:38.9 dB)
    record.mix.mute.mic2 ON|OFF (currently OFF)
    record.mix.mute.fp-mic2 ON|OFF (currently OFF)
    record.mix.mute.linein2 ON|OFF (currently OFF)
    record.mix.mute.fp-headphone2 ON|OFF (currently OFF)
    record.mix.mute.green2 ON|OFF (currently OFF)
    record.mix.mute.black2 ON|OFF (currently OFF)
    record.mix.mute.orange2 ON|OFF (currently OFF)
    record.mix.mute.gray2 ON|OFF (currently OFF)
    record.mix.mute.input-mix2 ON|OFF (currently OFF)
    record.mix2 [<leftvol>:<rightvol>] (currently 4.4:2.9 dB)
    misc.mic [<leftvol>:<rightvol>] (currently 0.0:0.0 dB)
    misc.fp-mic [<leftvol>:<rightvol>] (currently 46.4:37.4 dB)
    misc.linein [<leftvol>:<rightvol>] (currently 38.9:38.9 dB)
    misc.fp-headphone [<leftvol>:<rightvol>] (currently 34.4:34.4 dB)
    misc.green [<leftvol>:<rightvol>] (currently 34.4:38.9 dB)
    misc.black [<leftvol>:<rightvol>] (currently 38.9:38.9 dB)
    misc.orange [<leftvol>:<rightvol>] (currently 38.9:38.9 dB)
    misc.gray [<leftvol>:<rightvol>] (currently 40.4:41.9 dB)
    misc.input-mix <mic|fp-mic|linein> (currently mic)
    misc.front-mute ON|OFF (currently OFF)
    misc.input-mix-mute1 ON|OFF (currently OFF)
    misc.front1 [<leftvol>:<rightvol>] (currently 43.4:43.4 dB)
    misc.front2 <front|input-mix> (currently front)
    misc.rear-mute ON|OFF (currently OFF)
    misc.input-mix-mute2 ON|OFF (currently OFF)
    misc.rear1 [<leftvol>:<rightvol>] (currently 4.4:4.4 dB)
    misc.rear2 <rear|input-mix> (currently rear)
    misc.center/lfe-mute ON|OFF (currently OFF)
    misc.input-mix-mute3 ON|OFF (currently OFF)
    misc.center/lfe1 [<leftvol>:<rightvol>] (currently 41.9:41.9 dB)
    misc.center/lfe2 <center/LFE|input-mix> (currently center/LFE)
    misc.side-mute ON|OFF (currently OFF)
    misc.input-mix-mute4 ON|OFF (currently OFF)
    misc.side1 [<leftvol>:<rightvol>] (currently 35.9:35.9 dB)
    misc.side2 <side|input-mix> (currently side)
    misc.pcm4-mute ON|OFF (currently OFF)
    misc.input-mix-mute5 ON|OFF (currently OFF)
    misc.pcm41 [<leftvol>:<rightvol>] (currently 25.4:25.4 dB)
    misc.pcm42 <pcm4|input-mix> (currently pcm4)
    vmix0-enable ON|OFF (currently ON)
    vmix0-rate <decimal value> (currently 48000) (Read-only)
    vmix0-channels <Stereo|Multich> (currently Stereo)
    vmix0-src <Fast|Low|Medium|High|High+|Production|OFF> (currently Medium)
    vmix0-outvol <monovol> (currently 25.0 dB)
    vmix0-invol <monovol> (currently 25.0 dB)
    vmix0.pcm8 [<leftvol>:<rightvol>] (currently 19.9:19.9 dB) ("knotify4")
    vmix0.pcm9 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB)
    vmix0.pcm10 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB)
    vmix0.pcm11 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB)
    For libflashsupport on the same page you linked it clearly states:
    #  Flash V9 and V10 require libflashsupport to output sound via OSS. Typically a 32-bit version of the library is required.
    # Flash V10 has a 64-bit version which requires a 64 bit libflashsupport.
    Also i tested it with and without libflashsupport. On archlinux (x64 running here) there most certainly is a need for libflashsupport when you want to have sound in your flash. And yes i tested the archlinux OSS version and the mercurial version (running now) bith need it  installed manually! On my pc sound in flash didn't work without it but did with it. So, no not removing from the wiki as it's needed. But i see you removed it for me! please do NOT do that if you didn't even verified it. I use flash 10 x64 and i need it!
    As for the ffmpeg "codec" changed it to backend.
    And i did get the microphone working near perfect: http://www.4front-tech.com/forum/viewtopic.php?p=13192
    Now for some news you all might like.
    On my school i need to do an investigation to whatever i want and i'm heavily thinking about investigating the pros/cons of alsa compared to oss (or oss compared to alsa). That investigation will take from monday next week till next mondey till friday 23 of oktober. In that investigation i'm going to do some in depth look of alsa and oss and that will include the usability as well.
    Following up on that investigation i will spend another 8 weeks on my school making a volume control application that can be used with alsa and oss and easily expandable with other sound systems. The goal of this is to make one sound application that can manage (in the first place) alsa and oss. oss is going to be implemented and alsa is probably going to be dummy implemented because it's likely way to much for me to implement both.
    Before you get to exited, both projects (investigating and making the application) are just made up today and i just don't know if both will get accepted by my school. I asked one teacher and he liked the idea a lot and could potentially have a value for the sound management under linux. Once i do get this started i will involve the community (YOU!) with this since this project can't be done without the community specially the investigation.
    And once i start and have something to tell/ask i will blog about it on http://blog.mageprojects.com
    edit::
    And this idea already got dumped. read more a few posts down or click: http://bbs.archlinux.org/viewtopic.php? … 34#p612634
    Last edited by markg85 (2009-09-03 17:51:45)

  • Automatic deletion of temp files and Disabling copy to option of originals in DMS

    Dear DMS Experts,
    I have 3 requirements, I have searched the net ,but I am still clueless as to how to do it.
    1) The temporary files created in C;\temp ( or the path we have given in dc20 ) has to be deleted after viewing the documents because of security reasons.
    I heard about enabling the OLE2 option in table TDWX, but I am not sure .
    2) The 'copy to' option of originals has to be disabled in display mode ( CV03N ). Adding further, the 'save as' and 'print option' for MS Office applications ( word, excel ) has to be disabled due to security reasons( I tried with both office integration and %AUTO% )
    3) In product browser view ( using folder structure in CV01N ), I need the users to have 'delete link as ' option disabled as they are not supposed to delete the folders created by admin ( Deleting means deleting from the structure and not from the system) . For this, I have given authorization object for bill of materials for the users and disabled 'delete' checkbox as well as 'Delete from database' checkbox . But still, I am able to delete the folders from the structure.
    Any help would be appreciated.
    Thanks in advance.
    Regards,
    Aravind

    Hi Chandu,
    I am still in the dark regarding Q2 and Q3 . Regarding Q2, I tried disabling the check out options and also try opening it in SAP Script or smartform by populating the entries in the originals to the smartform. But still download option is possible. Hence I have raised to SAP service market place.
    Regarding Q3 , I am trying to use custom authorization object .
    Regards,
    Aravind

  • Disabled Object Gets Focus

    Hi
    I am in the process of migrating from version 1.3 to 1.4.2
    I have a screen on which I I have a button which is disabled when teh screen initializes. There are other items to which I can navigate through TAB.
    If i keep pressing Tab so that the focus comes to the disabled object, then it just stays there...nothing happens in version 1.4 although version 1.3 works for a similar scene and teh control goes to teh next component on the screen
    I have tried setting the focus by checking the status of teh button and have set it to the same value as being enabled or disabled.
    Any help please!
    Thanks
    priya

    If i keep pressing Tab so that the focus comes to the disabled object, then it just stays thereNever seen this behaviour.
    If you need further help then you need to create a [url http://homepage1.nifty.com/algafield/sscce.html]Short, Self Contained, Compilable and Executable, Example Program that demonstrates the incorrect behaviour, because I can't guess exactly what you are doing based on the information provided.
    And don't forget to use the [url http://forum.java.sun.com/help.jspa?sec=formatting]Code Formatting Tags so the code retains its original formatting.

  • Create a dummy workbench and customizing object as critical object

    Hi!
    I am testing now the transport settings for critical objects.
    what is the easiest way to create a dummy workbench and customizing object, assign them to transport request and try to transport?
    (e.g. Work Bench object: LIMU, DOCU, "Documentation")
    Thank you very much!
    regards
    Thom

    I think i misinterpret my requirement.
    I have various other applications looking into my metadirectory. There is integration between OIM and Metadirectory and we have to update the various priviledges (multi value data) in Meta Resource form for this so that from MetaDirectory they can flow to other systems. For that i was thinking of using dummy resource object for each resource (attached to Meta). To update the various priviledges (group names and other entitlements) in meta collectively , i think we attached the dummy resource to access policies and once the values will update in dummy resource process form we can update the Meta Process Form accordingly (though i am not sure with this part that how can i achieve this). Also can we define the multi value data field in process form. By default child table having lookup is multivalue field (may be its only my conception) can we add it in core process form?
    Pardon me for confusion but i am really patch up between business and technical people requirement :(...
    just a follow up i need a pre-populate kind of functionality managing by access policy but after the value pre-populate in dummy resource object process form how to update the value in other process form and update the target resource.
    Edited by: user10781632 on Jun 19, 2009 7:05 AM

  • Difference between 'Always Refresh' and 'Disable Cache Hits'

    We are using clustered application servers with its own cache. We are not doing any cache synchronization. So, for selective objects we should ensure that cache is not returning stale objects.
    I see two options in MWB for refreshing and disabling the cache. Can somebody explain the difference between these two and recommend what I should do to address my problem.
    Thanks in advance.

    These are similar and often used together settings:
    'Disable Cache Hits'
    Is used by TopLink when a ReadObjectQuery is executed with only the PK fields. By default TopLink will short-circuit going to the database and try to find the object in the cache first. This includes 1:1 mapping queries. Turning this on will cause TopLink to go to the database instead of the cache in these cases.
    'Always Refresh'
    Is used to tell TopLink how to handle the results returned from a query against the database. By default TopLink will trust the cached version of any instances already cached. When this is enabled, or the refreshIdentityMapResult is turned on for a specific query the results of the query are used to refresh the values of the cached version.
    The trick with always-refresh is that it does not force all queries to go to the database. It simply forces all returned rows to refresh cached instances.
    These are often selected by customers who never want to trust a cached instance. They are typically used together to get that effect. This configuration will get minimal performance gain from the cache but still require the cache for object-identity (avoid duplicate instances).
    Be careful though because these will have the effect for EVERY query and mapping traversal. I typically prefer to manually turn this on for my specific queries where I need to get the latest version from the database versus turning it on for all queries.
    On the query the methods you will be interested in are:
    query.refreshIdentityMapResult()
    This will force the query to the database and have the results refresh the cached instance if it already exists.
    One setting that is of definite interest is
    descriptor.onlyRefreshIfNewerVersion();
    This must be used in conjunction with the above query refresh and optimistic locking but it will avoid additional unecessary steps if the row has not changed since the cached version was read.
    Doug

  • Activex enums and disabled methods

    I am relatively new to using Labview for accessing COM objects. I am trying to use Labview to access an SDK library for controlling a USB ultrasound machine. I am having a couple of problems that I am not sure if I can get around and would appreciate any help.
    Firstly, I am having accessing tagged enums which are inputs to methods. This works for some inputs, where the enums are sequential (SCAN_STATE_STOP = 0, SCAN_STATE_ACQUIRE = 1, SCAN_STATE_FREEZE = 2,SCAN_STATE_RUN = 3). When I right click on the input and right click, the appropriate enum list shows. But this does not work for others that are not sequential (e.g. SCAN_MODE_UNKNOWN = 0,SCAN_MODE_B = 1,SCAN_MODE_M = 2,SCAN_MODE_PW = 4,SCAN_MODE_BPW = 7 etc). Is there a way of being able to access these? By just defining the integer value, I seem to be getting errors in some methods (but not all). 
    I am also having a problem in that one of the methods of the a specfic class is greyed out and disabled (GetControlObj). The input for this method is 'System.Guid@ riidCtrl', System.UInt32 ScanMode and System.UInt32 streamId. I suspect that the problem is that Labview cannot interfacece GUID object that needs to be input. Is this correct? Is there any way around this?
    Regards,
    Glen 

    Litch09 wrote:
    I am sorry if my lingo is not up to speed, I have no formal programming training!
    Neither have I, and that's never stopped me... (My "formal training" is as an electrical engineer! )
    What you are seeing is behavior by design. Whether or not it's correct is debatable. LabVIEW enums are always consecutive. If you want to use a dropdown that has a text label with non-consecutive values then you can make a ring constant. Unfortunately, you have to do this manually. Basically, you're wanting to create a "sparse enum".If you do search for "spase enum" you'll find some information. A while ago JeanPierre wrote a tool to create an enum typedef and a lookup VI to conver the enum to the sparse value. 

  • Delegation to allow HelpDesk users to Enable and Disable accounts

    We currently have a HelpDeskAdmins group that these users are allowed to perform certain functions within Active Directory. I need to add the ability to Enable and Disable user accounts.
    I have been looking through the Delegation of Control settings but do not know which ones to add to enable this...
    Has anyone setup accounts to perform this before?

    You need to create a delegation for the attribute userAccountControl. So run the delegation wizard as usual, but select "Create a custom task to delegate", then pick up "User objects", then "Property-specific" and select the
    "Read and Write userAccountInformation".
    So, you can do it directly on the attribute, or you can do it using the property set User-Account-Restrictions (this last one actually give you a little bit more permission, see
    here).
    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

  • How IT Resource and Resource Objects are linked?

    Hi All,
    I am new to OIM product and learning the basics. I have 2 questions.
    I am not able to figure out how an "IT Resource" and "Resource Objects" are linked?
    We always link "Resource Objects" and "Process Definition". How "Process Definition" picks the values provided in "IT Resource"?
    Thanks in Advance
    Jatin

    Hi
    I don't think "IT Resource" and "Resource Objects" are anyway linked with each other.
    "IT Resource" is something where you specify all the resources in the system which are not meant to be provisioned to users. Like proxy server or Email server in your organization.
    "Resource Objects" is a place where you define all the resources that you provision to users.
    This is my understanding, which might be wrong. I think someone more experienced user can give better answer to this question.
    -Kiran Thakkar

  • Issues in persisting dynamic entity and view objects using MDS

    Hi All,
    I'm trying to create dynamic entity and view objects per user session and to persist these objects throughout the session, I'm trying to use MDS configurations(either file or Database) in adf-config.xml.
    I'm facing following two errors while trying to run the app module:
    1. MDS error (MetadataNotFoundException): MDS-00013: no metadata found for metadata object "/model/DynamicEntityGenModuleOperations.xml"
    2. oracle.mds.exception.ReadOnlyStoreException: MDS-01273: The operation on the resource /sessiondef/dynamic/DynamicDeptEntityDef.xml failed because source metadata store mapped to the namespace / DEFAULT is read only.
    I've gone through the following links which talks about the cause of the issue, but still can't figure out the issue in the code or the config file. Please help if, someone has faced a similar issue.
    [http://docs.oracle.com/cd/E28271_01/doc.1111/e25450/mds_trouble.htm#BABIAGBG |http://docs.oracle.com/cd/E28271_01/doc.1111/e25450/mds_trouble.htm#BABIAGBG ]
    [http://docs.oracle.com/cd/E16162_01/core.1112/e22506/chapter_mds_messages.htm|http://docs.oracle.com/cd/E16162_01/core.1112/e22506/chapter_mds_messages.htm]
    Attached is the code for dynamic entity/view object generation and corresponding adf-config.xml used.
    ///////////App Module Implementation Class/////////////////////////
    public class DynamicEntityGenModuleImpl extends ApplicationModuleImpl implements DynamicEntityGenModule {
    private static final String DYNAMIC_DETP_VO_INSTANCE = "DynamicDeptVO";
    * This is the default constructor (do not remove).
    public DynamicEntityGenModuleImpl() {
    public ViewObjectImpl getDepartmentsView1() {
    return (ViewObjectImpl) findViewObject("DynamicDeptVO");
    public void buildDynamicDeptComp() {
    ViewObject internalDynamicVO = findViewObject(DYNAMIC_DETP_VO_INSTANCE);
    if (internalDynamicVO != null) {
    System.out.println("OK VO exists, return Defn- " + internalDynamicVO.getDefFullName());
    return;
    EntityDefImpl deptEntDef = buildDeptEntitySessionDef();
    ViewDefImpl viewDef = buildDeptViewSessionDef(deptEntDef);
    addViewToPdefApplicationModule(viewDef);
    private EntityDefImpl buildDeptEntitySessionDef() {
    try {
    EntityDefImpl entDef = new EntityDefImpl(oracle.jbo.server.EntityDefImpl.DEF_SCOPE_SESSION, "DynamicDeptEntityDef");
    entDef.setFullName(entDef.getBasePackage() + ".dynamic." + entDef.getName());
    entDef.setName(entDef.getName());
    System.out.println("Application Module Path name: " + getDefFullName());
    System.out.println("EntDef :" + entDef.getFileName() + " : " + entDef.getBasePackage() + ".dynamic." + entDef.getName());
    entDef.setAliasName(entDef.getName());
    entDef.setSource("DEPT");
    entDef.setSourceType("table");
    entDef.addAttribute("ID", "ID", Integer.class, true, false, true);
    entDef.addAttribute("Name", "NAME", String.class, false, false, true);
    entDef.addAttribute("Location", "LOCATION", Integer.class, false, false, true);
    entDef.resolveDefObject();
    entDef.registerSessionDefObject();
    entDef.writeXMLContents();
    entDef.saveXMLContents();
    return entDef;
    } catch (Exception ex) {
    System.out.println(ex.getLocalizedMessage());
    return null;
    private ViewDefImpl buildDeptViewSessionDef(EntityDefImpl entityDef) {
    try {
    ViewDefImpl viewDef = new oracle.jbo.server.ViewDefImpl(oracle.jbo.server.ViewDefImpl.DEF_SCOPE_SESSION, "DynamicDeptViewDef");
    viewDef.setFullName(viewDef.getBasePackage() + ".dynamic." + viewDef.getName());
    System.out.println("ViewDef :" + viewDef.getFileName());
    viewDef.setUseGlueCode(false);
    viewDef.setIterMode(RowIterator.ITER_MODE_LAST_PAGE_FULL);
    viewDef.setBindingStyle(SQLBuilder.BINDING_STYLE_ORACLE_NAME);
    viewDef.setSelectClauseFlags(ViewDefImpl.CLAUSE_GENERATE_RT);
    viewDef.setFromClauseFlags(ViewDefImpl.CLAUSE_GENERATE_RT);
    viewDef.addEntityUsage("DynamicDeptUsage", entityDef.getFullName(), false, false);
    viewDef.addAllEntityAttributes("DynamicDeptUsage");
    viewDef.resolveDefObject();
    viewDef.registerSessionDefObject();
    viewDef.writeXMLContents();
    viewDef.saveXMLContents();
    return viewDef;
    } catch (Exception ex) {
    System.out.println(ex.getLocalizedMessage());
    return null;
    private void addViewToPdefApplicationModule(ViewDefImpl viewDef) {
    oracle.jbo.server.PDefApplicationModule pDefAM = oracle.jbo.server.PDefApplicationModule.findDefObject(getDefFullName());
    if (pDefAM == null) {
    pDefAM = new oracle.jbo.server.PDefApplicationModule();
    pDefAM.setFullName(getDefFullName());
    pDefAM.setEditable(true);
    pDefAM.createViewObject(DYNAMIC_DETP_VO_INSTANCE, viewDef.getFullName());
    pDefAM.applyPersonalization(this);
    pDefAM.writeXMLContents();
    pDefAM.saveXMLContents();
    ////////adf-config.xml//////////////////////
    <?xml version="1.0" encoding="windows-1252" ?>
    <adf-config xmlns="http://xmlns.oracle.com/adf/config" xmlns:config="http://xmlns.oracle.com/bc4j/configuration" xmlns:adf="http://xmlns.oracle.com/adf/config/properties"
    xmlns:sec="http://xmlns.oracle.com/adf/security/config">
    <adf-adfm-config xmlns="http://xmlns.oracle.com/adfm/config">
    <defaults useBindVarsForViewCriteriaLiterals="true"/>
    <startup>
    <amconfig-overrides>
    <config:Database jbo.locking.mode="optimistic"/>
    </amconfig-overrides>
    </startup>
    </adf-adfm-config>
    <adf:adf-properties-child xmlns="http://xmlns.oracle.com/adf/config/properties">
    <adf-property name="adfAppUID" value="TestDynamicEC-8827"/>
    </adf:adf-properties-child>
    <sec:adf-security-child xmlns="http://xmlns.oracle.com/adf/security/config">
    <CredentialStoreContext credentialStoreClass="oracle.adf.share.security.providers.jps.CSFCredentialStore" credentialStoreLocation="../../src/META-INF/jps-config.xml"/>
    </sec:adf-security-child>
    <persistence-config>
    <metadata-namespaces>
    <namespace metadata-store-usage="mdsRepos" path="/sessiondef/"/>
    <namespace path="/model/" metadata-store-usage="mdsRepos"/>
    </metadata-namespaces>
    <metadata-store-usages>
    <metadata-store-usage default-cust-store="true" deploy-target="true" id="mdsRepos">
    <metadata-store class-name="oracle.mds.persistence.stores.file.FileMetadataStore">
    <property name="metadata-path" value="/tmp"/>
    <!-- <metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
    <property name="jndi-datasource" value="jdbc/TestDynamicEC"/>
    <property name="repository-name" value="TestDynamicEC"/>
    <property name="jdbc-userid" value="adfmay28"/>
    <property name="jdbc-password" value="adfmay28"/>
    <property name="jdbc-url" value="jdbc:oracle:thin:@localhost:1521:XE"/>-->
    </metadata-store>
    </metadata-store-usage>
    </metadata-store-usages>
    </persistence-config>
    </adf-config>
    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    Hi Frank,
    I m trying to save entity and view object xml by calling writeXMLContents() and saveXMLContents() so that these objects can be retrieved using the xmls later on.
    These methods internally use MDS configuration in adf-config.xml, which is creating the issue.
    Please share your thoughts on resolving this or if, there is any other way of creating dynamic entity/view objects for db tables created at runtime.
    Nik

  • How to Enable and Disable column in Table Control.

    Hi all,
    I want to make certain column of Table control as Enable or Disable on Button action.
    Enable means ready for input and Disable means not ready for input.
    Please send me sample code.
    Thanks in advance.

    Hi Vipin,
        You have to loop through the table columns to set the properties in the PBO of your screen.
    Here is the sample solution.
    delcare a workarea for the columns in the table control in your top include.
    Table Control .
    CONTROLS: TAB1 TYPE TABLEVIEW USING SCREEN '0100'.
    DATA: WA_COLS LIKE LINE OF TAB1-COLS.
    in your screen
    PROCESS BEFORE OUTPUT.
      MODULE INTIALISE_100.
    *&      Module  0100_INTIALISE  OUTPUT
    MODULE INTIALISE_100 OUTPUT.
        LOOP AT TAB1-COLS INTO WA_COLS.
          WA_COLS-SCREEN-INPUT = 1.
          MODIFY TAB1-COLS FROM WA_COLS TRANSPORTING SCREEN-INPUT.
        ENDLOOP.
    ENDMODULE.                 " 0100_INTIALISE  OUTPUT
    modify the screen-input property as required for the table control columns.
    Please provide points if helpfull.....
    Thanks,
    Karthik
    Message was edited by: Karthik
            Karthikeyan K

  • Validating enabled and disabled menu bar in JInternalFrame

    hi,
    everybody.
    i have created a main window using JInternalFrame and JDesktopPane. The window has a menu bar in which document menu is used for closing the main window, while employee menu is used for adding new frame for the employee. while the login frame is displayed when the application is executed.
    my problem is, i want to validate that before login process, employee menu should be disabled, and after login is performed employee menu is enabled.
    the following is my code.
    please reply me as i am stucked with it.
    waiting for the reply
    thanks in advance.
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.io.*;
    import java.util.*;
    public class InternalFrameDemo extends JFrame implements ActionListener
    JDesktopPane desktop;
    public InternalFrameDemo()
    super("InternalFrameDemo");
    int inset = 50;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(inset, inset, screenSize.width - inset*2, screenSize.height - inset*2);
    desktop = new JDesktopPane();
    setContentPane(desktop);
    desktop.setBackground(Color.white);
    setJMenuBar(createMenuBar());
    desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
    createLogin();
    public JMenuBar createMenuBar()
    JMenuBar menuBar = new JMenuBar();
    JMenu menu = new JMenu("Document");
    menu.setMnemonic(KeyEvent.VK_D);
    menuBar.add(menu);
    JMenuItem menuItem = new JMenuItem("Quit");
    menuItem.setMnemonic(KeyEvent.VK_Q);
    menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_Q, ActionEvent.ALT_MASK));
    menuItem.setActionCommand("quit");
    menuItem.addActionListener(this);
    menu.add(menuItem);
    JMenu employee = new JMenu("Employee");
    employee.setMnemonic(KeyEvent.VK_E);
    employee.setActionCommand("employee");
    menuBar.add(employee);
    JMenuItem additem = new JMenuItem("Add");
    additem.setMnemonic(KeyEvent.VK_A);
    additem.setActionCommand("add");
    additem.addActionListener(this);
    employee.add(additem);
    return menuBar;
    public void actionPerformed(ActionEvent ae)
    String str = ae.getActionCommand();
    if(str.equals("add"))
    System.out.println("Employee Form Invoked");
    createEmployee();
    else if(str.equals("quit"))
    quit();
    public void createEmployee()
    MyEmployeeFrame employeeframe = new MyEmployeeFrame();
    employeeframe.setVisible(true);
    desktop.add(employeeframe);
    try
    employeeframe.setSelected(true);
    catch(Exception e)
    public void createLogin()
    MyLogin loginframe = new MyLogin();
    loginframe.setVisible(true);
    desktop.add(loginframe);
    try
    loginframe.setSelected(true);
    catch(Exception e){}
    public void quit()
    System.exit(0);
    private static void createAndShowGUI()
    JFrame.setDefaultLookAndFeelDecorated(true);
    InternalFrameDemo frame = new InternalFrameDemo();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800,600);
    frame.setVisible(true);
    public static void main(String a[])
    createAndShowGUI();
    class MyEmployeeFrame extends JInternalFrame implements ActionListener
    JFrame employeeframe;
    JLabel labelfirstname;
    JLabel labellastname;
    JLabel labelage;
    JLabel labeladdress;
    JLabel labelcity;
    JLabel labelstate;
    JTextField textfirstname;
    JTextField textlastname;
    JTextField textage;
    JTextField textaddress;
    JTextField textcity;
    JTextField textstate;
    JButton buttonsave;
    FileOutputStream out;
    PrintStream p;
    String strfirstname,strlastname,strage,straddress,strcity,strstate;
    GridBagLayout gl;
    GridBagConstraints gbc;
    public MyEmployeeFrame()
    super("Employee Details",true,true,true,true);
    setSize(500,400);
    labelfirstname = new JLabel("First Name");
    labellastname = new JLabel("Last Name");
    labelage = new JLabel("Age");
    labeladdress = new JLabel("Address");
    labelcity = new JLabel("City");
    labelstate = new JLabel("State");
    textfirstname = new JTextField(10);
    textlastname = new JTextField(10);
    textage = new JTextField(5);
    textaddress = new JTextField(15);
    textcity = new JTextField(10);
    textstate = new JTextField(10);
    buttonsave = new JButton("Save");
    gl = new GridBagLayout();
    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 3;
    gl.setConstraints(labelfirstname,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 3;
    gl.setConstraints(textfirstname,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 5;
    gl.setConstraints(labellastname,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 5;
    gl.setConstraints(textlastname,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 7;
    gl.setConstraints(labelage,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 7;
    gl.setConstraints(textage,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 9;
    gl.setConstraints(labeladdress,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 9;
    gl.setConstraints(textaddress,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 11;
    gl.setConstraints(labelcity,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 11;
    gl.setConstraints(textcity,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 13;
    gl.setConstraints(labelstate,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 13;
    gl.setConstraints(textstate,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 3;
    gbc.gridy = 17;
    gl.setConstraints(buttonsave,gbc);
    Container contentpane = getContentPane();
    contentpane.setLayout(gl);
    contentpane.add(labelfirstname);
    contentpane.add(textfirstname);
    contentpane.add(labellastname);
    contentpane.add(textlastname);
    contentpane.add(labelage);
    contentpane.add(textage);
    contentpane.add(labeladdress);
    contentpane.add(textaddress);
    contentpane.add(labelcity);
    contentpane.add(textcity);
    contentpane.add(labelstate);
    contentpane.add(textstate);
    contentpane.add(buttonsave);
    buttonsave.addActionListener(this);
    public void reset()
    textfirstname.setText("");
    textlastname.setText("");
    textage.setText("");
    textaddress.setText("");
    textcity.setText("");
    textstate.setText("");
    public void actionPerformed(ActionEvent ae)
    String str = ae.getActionCommand();
    System.out.println(str);
    if(str.equalsIgnoreCase("Save"))
    try
    out = new FileOutputStream("myfile.txt",true);
    p = new PrintStream( out );
    strfirstname = textfirstname.getText();
    strlastname = textlastname.getText();
    strage = textage.getText();
    straddress = textaddress.getText();
    strcity = textcity.getText();
    strstate = textstate.getText();
    p.print(strfirstname+"|");
    p.print(strlastname+"|");
    p.print(strage+"|");
    p.print(straddress+"|");
    p.print(strcity+"|");
    p.println(strstate);
    System.out.println("Record Saved");
    reset();
    p.close();
    catch (Exception e)
    System.err.println ("Error writing to file");
    class MyLogin extends JInternalFrame implements ActionListener
    JFrame loginframe;
    JLabel labelname;
    JLabel labelpassword;
    JTextField textname;
    JPasswordField textpassword;
    JButton okbutton;
    String name = "";
    FileOutputStream out;
    PrintStream p;
    Date date;
    GregorianCalendar gcal;
    GridBagLayout gl;
    GridBagConstraints gbc;
    public MyLogin()
    super("Login",true,true,true,true);
    setSize(400,300);
    gl = new GridBagLayout();
    gbc = new GridBagConstraints();
    labelname = new JLabel("User");
    labelpassword = new JLabel("Password");
    textname = new JTextField("",9);
    textpassword = new JPasswordField(5);
    okbutton = new JButton("OK");
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 5;
    gl.setConstraints(labelname,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 2;
    gbc.gridy = 5;
    gl.setConstraints(textname,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 10;
    gl.setConstraints(labelpassword,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 2;
    gbc.gridy = 10;
    gl.setConstraints(textpassword,gbc);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    gbc.gridx = 1;
    gbc.gridy = 15;
    gl.setConstraints(okbutton,gbc);
    Container contentpane = getContentPane();
    contentpane.setLayout(gl);
    contentpane.add(labelname);
    contentpane.add(labelpassword);
    contentpane.add(textname);
    contentpane.add(textpassword);
    contentpane.add(okbutton);
    okbutton.addActionListener(this);
    public void reset()
    textname.setText("");
    textpassword.setText("");
    public void run()
    try
    String text = textname.getText();
    String blank="";
    if(text.equals(blank))
    System.out.println("First Enter a UserName");
    else
    if(text != blank)
    date = new Date();
    gcal = new GregorianCalendar();
    gcal.setTime(date);
    out = new FileOutputStream("log.txt",true);
    p = new PrintStream( out );
    name = textname.getText();
    String entry = "UserName:- " + name + " Logged in:- " + gcal.get(Calendar.HOUR) + ":" + gcal.get(Calendar.MINUTE) + " Date:- " + gcal.get(Calendar.DATE) + "/" + gcal.get(Calendar.MONTH) + "/" + gcal.get(Calendar.YEAR);
    p.println(entry);
    System.out.println("Record Saved");
    reset();
    p.close();
    catch (IOException e)
    System.err.println("Error writing to file");
    public void actionPerformed(ActionEvent ae)
    String str = ae.getActionCommand();
    if(str.equals("OK"))
    run();
    loginframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }

    I realize this post is from a few days ago, but if you're still looking for help:
    This is my first thought on how to do this. Unfortunately, it's a bit messy. JMenuItems can be enabled and disabled but JMenus don't have this option...
    public class InternalFrameDemo extends JFrame implements ActionListener
        JDesktopPane desktop;
        JMenuBar menuBar;
        public InternalFrameDemo()
         setJMenuBar(createMenuBar());
         desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
         createLogin();
        public JMenuBar createMenuBar()
         menuBar = new JMenuBar();
         JMenu menu = new JMenu("Document");
         menu.setMnemonic(KeyEvent.VK_D);
         menuBar.add(menu);
         JMenuItem menuItem = new JMenuItem("Quit");
         menuItem.setMnemonic(KeyEvent.VK_Q);
         menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_Q, ActionEvent.ALT_MASK));
         menuItem.setActionCommand("quit");
         menuItem.addActionListener(this);
         menu.add(menuItem);
         JMenuItem additem = new JMenuItem("Add");
         additem.setMnemonic(KeyEvent.VK_A);
         additem.setActionCommand("add");
         additem.addActionListener(this);
         employee.add(additem);
         return menuBar;
        public void createLogin()
         MyLogin loginframe = new MyLogin( menuBar );
         loginframe.setVisible(true);
         desktop.add(loginframe);
         try
             loginframe.setSelected(true);
         catch(Exception e)
    class MyLogin extends JInternalFrame implements ActionListener
        JMenuBar menuBar;
        public MyLogin( JMenuBar menuBar1 )
         super("Login",true,true,true,true);
         menuBar = menuBar1;
        public void actionPerformed(ActionEvent ae)
         String str = ae.getActionCommand();
         if(str.equals("OK"))
             run();
             JMenu employee = new JMenu("Employee");
             employee.setMnemonic(KeyEvent.VK_E);
             employee.setActionCommand("employee");
             menuBar.add(employee);
             loginframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }

Maybe you are looking for