Edit Authorization at Entity Level

Problem: I am trying to Edit Authorization at entity level but my changes are not getting saved.
Discription:
I have use case that I want to make an entity read only for a role defined in my jazn.
To do so, I am opening my entity, and in struture window...on right clicking the entity name I get this option to Edit Authorization.
On Edit Authorization window, I get name of all the roles listed and options to select Read, Update and Delete in from of each Role.
When I select "Read" for the role I want only read access and close this Edit Authorization window...my changes are not getting saved.
Does anyone know why this is happening? Or any other way I can restrict users of a specific role to change the data for an entity.
Thanks
Vikas Kumar

Hi,
not sure what you mean by "changes are not saved". Are you saying they are physically not saved in that they don't show in the jazn-data.xml file ? If so, then this sounds odd and you should file a bug. If it is only that authorization is not enforced,have a look at this video as authorization on entities is a two step task
http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/AdfSecurity/AdfSecurity.html
Frank

Similar Messages

  • Disable EDIT AUTHORIZATIONS in PI 7.1

    Hi all,
    In PI 7.1 we can define and edit authorizations for access to objects in the Enterprise Services Repository.
    Is there any way that i can disable EDIT AUTHORIZATIONS  option of the context menu at the Software component level.
    regards
    Gangaprasad

    Sebastian,
    I found these Actions in Identity-Managements, where I can do settings for a virtual Provider.
         jms.default          topic.all.all
         jms.default          temp.topic.all.all
         jms.default          administration.all.all     
         jms.default          queue.all.all
         jms.default          temp.queue.all.all
    So I will create a new Virtual Provider "myProvider" assing my JMS-Queue to this provider and play around with the parameter settings "jms.myProvider" and assign these actions to a test user.
    Furthermore I found these actions in Identy Management. I think in the first step I won't change anything at these parameters.
         jms_provider          topic.all.all
         jms_provider          temp.topic.all.all
         jms_provider          administration.all.all
         jms_provider          queue.all.all
         jms_provider          temp.queue.all.all
    I let you know the result of my tests.
    regards
    Barbara

  • Data model 0G: No authorization for entity type Account (Company Code) - activity Display

    Hello Expert,
    I have a problem with authorization in MDG-F.
    I want to create Account with Collective processing. After, entered Entity type, Edition and Chart of account,  Blocking message "Data model 0G: No authorization for entity type Account (Company Code) - activity Display" is displayed.
    But, i checked in PFCG transaction, for this user profil, activity are : create or generate, Change and display. So, for me , it is correct.
    Please, check screen shot below :
    Blocking message :
    and in PFCG transaction
    Could you help me to solve this point?
    Kind regards,
    Heri RAOELISON

    Hi Heri,
    the system behavior is correct. The account in company code consists of three entity types:
    1) COA - Chart of Accounts (Type 3)
    2) ACCOUNT - Account (A-Segment, related to ECC table SKA1, Type 1)
    3) ACCCCDET - Account in Company Code (B-Segment, releated to ECC table SKB1, Type 1).
    3) includes 1) and 2) whereas 2) includes 1). If you grant authorization only for 3) but not for 1) and 2), you cannot do anything.
    Best regards
    Michael

  • How to display Entity level validation messages in a table

    I'm using ADF 11g 11.1.1.2.0. I have a page with an updateable table based on an EO. In the EO I have defined some entity level and attribute level declarative business rules. When the user enters a value in the table that violates an attribute level validation, the related message is displayed inline and the attribute is surrounded by a red box. Furthermore the user is not able to place his cursor in a different row. In this way it is clear which row and attribute caused the error. However if the user enters some data that violates an entity level validation, the validation message is displayed as global messages in the message-popup when the business rule is based on a script or a method. This means that the user gets a global message popup, and does not know which row caused the error. Ofcourse we can include the identifying attributes of the row in the error message, but I would like to know if there is another more visual way to communicate to the user which row caused the error.
    Edited by: Jonas de Graaff (PSB) on 10-feb-2010 2:51

    Hi Chittibabu,
    what about using a TreeTable control?
    SAPUI5 SDK - Demo Kit
    Regards
    Tobias

  • Entity level validation suppressed in backend

    Hi,
    I am working on jdev 11.1.1.6, where I face a issues which is pretty much strange. I created a editable table from a view object datacontrol by dragging and dropping. This UI table consist of two columns with two LOVs providing them values.
    The entity level validation when I create two rows with same values are fired but the error message is not shown to the UI, but able to find the stack trace in the jdev console.The same happens even when I try to commit the rows. This rather breaks the page stopping me to do further activities.
    Please do help......

    Hi frank,
    Here is a detials of the present implementation,
    * The entity E1 has three keys. I created a business rule validation with as unique key validation with a custom error message ('*the record is already found*').
    * The view object used for table creation is created using the above entity with the same three key attributes.
    * Out of the three keys, two are provided with an LOV and the other is set but the same lov when choosing the values.
    * The view object is dragged and dropped in the jsf which looks as follows,
    <af:table value="#{bindings.xxxxx.collectionModel}"
                           var="row" rows="#{bindings.xxxxx.rangeSize}"
                           emptyText="#{bindings.xxxxx.viewable ? 'No data to display.' : 'Access Denied.'}"
                           fetchSize="#{bindings.xxxxx.rangeSize}"
                           rowBandingInterval="0"
                           selectedRowKeys="#{bindings.xxxxx.collectionModel.selectedRow}"
                           selectionListener="#{bindings.xxxxx.collectionModel.makeCurrent}"
                           rowSelection="single" id="t4"
                           width="1000"
                           autoHeightRows="6"
                           styleClass="AFStretchWidth SimpleTable Debt"
                           partialTriggers="::cl15 ::cl16 ::cl18 cl14">
                  <af:column sortProperty="ModuleNo" sortable="false"
                             headerText="Report..."
                             id="c8" width="250">
                   <af:inputListOfValues id="moduleNoId"
                                         popupTitle="Search and Select: #{bindings.xxxxx.hints.ModuleNo.label}"
                                         value="#{row.bindings.ModuleNo.inputValue}"
                                         model="#{row.bindings.ModuleNo.listOfValuesModel}"
                                         required="#{bindings.ReportsShared1.hints.ModuleNo.mandatory}"
                                         columns="#{bindings.ReportsShared1.hints.ModuleNo.displayWidth}"
                                         shortDesc="#{bindings.ReportsShared1.hints.ModuleNo.tooltip}"
                                         autoSubmit="true">
                    <f:validator binding="#{row.bindings.ModuleNo.validator}"/>
                   </af:inputListOfValues>
                  </af:column>
                  <af:column sortProperty="SharedTo" sortable="false"
                             headerText="With..."
                             id="c11" width="250">
                   <af:inputListOfValues id="sharedToId"
                                         popupTitle="Search and Select: #{bindings.xxxxx.hints.SharedTo.label}"
                                         value="#{row.bindings.SharedTo.inputValue}"
                                         model="#{row.bindings.SharedTo.listOfValuesModel}"
                                         required="true"
                                         columns="#{bindings.xxxxx.hints.SharedTo.displayWidth}"
                                         shortDesc="#{bindings.xxxxx.hints.SharedTo.tooltip}"
                                         autoSubmit="true">
                    <f:validator binding="#{row.bindings.SharedTo.validator}"/>
                   </af:inputListOfValues>
                  </af:column>
                  <af:column id="c7" width="100">
                      <af:commandLink actionListener="#{bindings.Delete1.execute}"
                                 shortDesc="Delete line"
                                styleClass="Small Button GrayDelete"
                                 immediate="true"
                                 partialSubmit="true" id="cl14"/>
                  </af:column>
                   <af:column sortProperty="LedgerType" sortable="false"
                             headerText="#{bindings.xxxxx.hints.LedgerType.label}"
                             id="c6">
                   <af:outputText value="#{row.LedgerType}" id="ot10"/>
                  </af:column>
                  <af:column sortProperty="ReportName" sortable="false"
                             headerText="#{bindings.xxxxx.hints.ReportName.label}"
                             id="c1">
                   <af:outputText value="#{row.ReportName}" id="ot11"/>
                  </af:column>
                 </af:table>
    <af:commandLink actionListener="#{bindings.CreateInsert1.execute}"
                                 text=""
                                 partialSubmit="true"
                                 id="cl15"
                                 styleClass="debtAddlinesButton"/>
    <af:commandLink actionListener="#{bindings.Commit.execute}"
                                               text="Share" id="cl16"
                                               styleClass="greyButton"/>
    <af:commandLink actionListener="#{bindings.Rollback.execute}"
                                               text="Cancel"
                                               immediate="true" id="cl18"
                                               styleClass="greyButton">
                                <af:resetActionListener/>
    </af:commandLink>
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////Now when I use the CreateInsert1 command link and create a row and fill in the values that are already present , say I select name in 'sharedTo' that is already present.... it does not show me the validation error in the ballon as it always does but doesnt fill the value in that too....and when I enter the value instead of using the LOV it shows a blink of the custom error popup I set in the entity (*the record is already found*) and disappears. After that nothing is functional in the page. But I see the jev console with the same custom error message with stack trace
    <Utils> <buildFacesMessage> ADF: Adding the following JSF error message: the record is already found
    oracle.jbo.AttrSetValException: JBO-com.symmetry.dashboard.panels.model.eo.XXXE1: the record is already found
         at oracle.jbo.rules.RulesBeanUtils.createException(RulesBeanUtils.java:381)
         at oracle.jbo.rules.AbstractValidator.createException(AbstractValidator.java:1065)
         at oracle.jbo.rules.AbstractValidator.doRaiseException(AbstractValidator.java:1120)
         at oracle.jbo.rules.AbstractValidator.raiseException(AbstractValidator.java:1109)
         at oracle.jbo.rules.JboAbstractValidator.raiseException(JboAbstractValidator.java:409)
         at oracle.jbo.rules.AbstractValidator.raiseException(AbstractValidator.java:1096)
         at oracle.jbo.server.JboUniqueKeyValidator.validateValue(JboUniqueKeyValidator.java:369)
         at oracle.jbo.server.JboUniqueKeyValidator.validateValueWithContext(JboUniqueKeyValidator.java:84)
         at oracle.jbo.rules.JboAbstractValidator.callValidateValueWithContext(JboAbstractValidator.java:235)
         at oracle.jbo.rules.JboAbstractValidator.validate(JboAbstractValidator.java:386)
         at oracle.jbo.rules.RulesBeanUtils.validateObject(RulesBeanUtils.java:716)
         at oracle.jbo.rules.RulesBeanUtils.validate(RulesBeanUtils.java:696)
         at oracle.jbo.server.AttributeDefImpl.validate(AttributeDefImpl.java:3349)
         at oracle.jbo.server.AttributeDefImpl.set(AttributeDefImpl.java:3294)
         at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:2012)
         at oracle.jbo.server.AttributeDefImpl.resolveSet(AttributeDefImpl.java:3510)
         at oracle.jbo.server.EntityImpl.setAttrInvokeAccessor(EntityImpl.java:1993)
         at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:1920)
         at oracle.jbo.server.ViewRowStorage.setAttributeValue(ViewRowStorage.java:2363)
         at oracle.jbo.server.ViewRowStorage.setAttributeInternal(ViewRowStorage.java:2165)
         at oracle.jbo.server.ViewRowImpl.setAttributeInternal(ViewRowImpl.java:1453)
         at oracle.jbo.server.ViewRowImpl.setAttrInvokeAccessor(ViewRowImpl.java:1428)
         at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:1089)
         at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:1029)
         at oracle.jbo.server.ViewRowImpl.setAttributeValues(ViewRowImpl.java:1703)
         at oracle.adf.model.binding.DCDataControl.setAttributesInRow(DCDataControl.java:2428)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeValuesInRow(JUCtrlValueBinding.java:976)
         at oracle.jbo.uicli.binding.JUCtrlListBinding.setTargetAttrsFromLovRow(JUCtrlListBinding.java:2801)
         at oracle.jbo.uicli.binding.JUCtrlListBinding.setTargetAttrsFromLovRowAndUpdateMRU(JUCtrlListBinding.java:2702)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding.setInputValueInRow(FacesCtrlLOVBinding.java:1164)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValue(JUCtrlValueBinding.java:2814)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValue(JUCtrlValueBinding.java:2777)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.put(JUCtrlValueBinding.java:2434)
         at oracle.jbo.uicli.binding.JUCtrlListBinding.put(JUCtrlListBinding.java:3428)
         at javax.el.MapELResolver.setValue(MapELResolver.java:229)
         at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:252)
         at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:278)
         at com.sun.el.parser.AstValue.setValue(Unknown Source)
         at com.sun.el.ValueExpressionImpl.setValue(Unknown Source)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.updateModel(UIXEditableValue.java:289)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.processUpdates(UIXEditableValue.java:252)
         at org.apache.myfaces.trinidad.component.ChildLoop$Update.process(ChildLoop.java:76)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:55)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:48)
         at org.apache.myfaces.trinidad.component.UIXColumn.processUpdates(UIXColumn.java:111)
         at oracle.adf.view.rich.component.rich.data.RichColumn.processUpdates(RichColumn.java:264)
         at org.apache.myfaces.trinidad.component.UIXCollection.processComponent(UIXCollection.java:993)
         at org.apache.myfaces.trinidad.component.TableUtils$3.process(TableUtils.java:283)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:55)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:48)
         at org.apache.myfaces.trinidad.component.TableUtils.processStampedChildren(TableUtils.java:278)
         at oracle.adf.view.rich.component.UIXTable.processStamps(UIXTable.java:202)
         at org.apache.myfaces.trinidad.component.UIXTable.processFacetsAndChildren(UIXTable.java:382)
         at org.apache.myfaces.trinidad.component.UIXCollection.updateChildrenImpl(UIXCollection.java:209)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXTable.processUpdates(UIXTable.java:166)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$201(ContextSwitchingComponent.java:41)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$4.run(ContextSwitchingComponent.java:137)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processUpdates(ContextSwitchingComponent.java:140)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$201(ContextSwitchingComponent.java:41)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$4.run(ContextSwitchingComponent.java:137)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processUpdates(ContextSwitchingComponent.java:140)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXForm.processUpdates(UIXForm.java:89)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1084)
         at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:728)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$UpdateModelValuesCallback.invokeContextCallback(LifecycleImpl.java:1436)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:397)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

  • EO entity level validations being executed multiple times

    Hi,
    I'm using JDev 10.1.3.4, BC, JSF
    I have defined multiple entity level method validators in my entity object. On commit I get the desired results except for the fact that each of my method validators runs multiple times when they should only run once. So I end up with twice the method validator messages that I should. And if I put any additional messaging in in the validators themselves I end up with 10 times the desired messages.
    What are some of the reasons that would cause this looping through the validators. I assume I have done something to cause this but can not figure out what it is. Any ideas on what I should look for?
    Note : Also using JHeadstart but I don't think it should be a factor at the entity level.
    Thanks,
    Jim
    Edited by: 170412 on May 5, 2009 4:11 PM

    Hi,
    1) Set the Foreign key using setAttribute Methods ? When u create a VO based on Multiple EO's, there should be some relationship between those 8 EO's like Primary key & Foregin key. And when u perform Commit on this all the value from ur beans will get saved to the database. But the Foreign u need to set independently using setAttribute method becoz it wont get saved by its own.
    2) If i'm doing the validations at EO level, those setters and getters will be called before the Create(), Update() and Delete()
    methods in the EOImpl class. Is that true?Yes, you are right it will get called for create and update operation but not for Delete.
    Regards,
    Gyan

  • DIR Authorization by Organizational Level

    Hi fellows!
    I would like to know if it is possible restrict access of DIR by organizational levels?
    Example: I need that if User A from plant 1234, creates a DIR type AAA number 0001, the User B from plant 4567 shouldn't have to access this DIR type AAA number 0001. I want that the users only can access the DIRs created by the plant which they have access.
    In the master roles of DMS I didn't find any object to help me in this scenario. I dont want to use the ACL to restrict the access of the documents. I want that this restriction has to be done by authorizations rules as in other areas.
    Can someone help me with some idea or case about this?
    Best Regards!
    Daniel
    Edited by: D Quintal on Nov 25, 2010 5:43 PM

    Hi Daniel,
    Its quite possible to achieve your requirement.
    There is a field called 'Authorization group' in a DIR if you have observed.This enables you to restrict authorization at Document level in addition to authorizations at Document Type and Status level.Suggest you create Authorization Groups like Plant1234,Plant4567 and so on with the help of your ABAPer.Now assign the required users to these Authorization groups.
    Once implemented,whenever a DIR is created and specific Authorization group is assigned, only those users part of this Authorization group will be able to process/access this DIR.Hope this addresses your requirement.
    For details on implementing Authorization group in DMS,refer link,
    http://wiki.sdn.sap.com/wiki/display/PLM/UsingAuthorizationGroupfieldin+DMS
    Regards,
    Pradeepkumar Haragoldavar

  • How can I disable POST GOODS RECEIPT button in transactions VL31N/VL32N via Authorization or Role Level.

    How can I disable POST GOODS RECEIPT button in transactions VL31N/VL32N via Authorization or Role Level, There is a requirement from my client  and i propose two methode
    1- Creation of Ztcode ZVL32N and do changes ABAP program level
    2- Disablement via Authorization/Role level - but how can i find the auth object/ Authorization corresponds to POST GOODS RECEIPT button in VL32N

    I think you can make use of SHD0 - Transaction variant to achieve this. You can make it as grayed out while recording steps in SHD0.

  • Restrict Authorization at Material level during production confirmation

    Hi SAP Gurus,
    I would like to ask if its possible to restrict authorization at Material Level during production confirmation.
    Our scenario is we have SFG and FG which are handled by different group of people but it has the same Order Type. Now we want to restrict authorization such as one department can only confirm SFG and the other department can confirm FG only.
    Is it possible to set authorization at material type or production scheduler level. IF not possible, is there other way except creation of new Order Type?
    Thanks,
    Raymond

    Hi Raymond,
    DO you mean I should create a customized table for this?
    Yes
    Are there no standard way?
    As per my knowledge, you can control through production order type, so you need to create seprate order type for this
    Thanks,
    Sankaran

  • Validation on Entity level

    Hi All,
    In Jdev11g, I have set the validation on attribute level to check whether a field (e.g. password) contains only alphanumeric.
    I have used Rule Type as Regular Expression with the regular expression value [A-Za-z0-9]+.
    I am worried, why this validation is not getting fired up?
    Please help me to get around this.
    Regards,
    Loganathan

    When do you expect it to fire?
    Entity level validation only occurs if you call it directly or doDML call has been issued.
    I guess the validation rules are inherited by the VO and by components build from the VO.
    Timo

  • Entity-level screen text substitution

    I am trying to create an entity-level attribute that will allow me to substitute text on an entity-level screen.
    My data model is: Global --> the employer --> the date of the absence from work. When asking about each absence, I want to display the name of the employer on the screen. Because you can only substitute (using public names) attributes at the same entity level as the screen, I need to make an attribute at the level of the absence that is equivalent to the name of the employer.
    How do I do this?
    (I suspect that I need to use ForScope(), but it's not clear to me how to use this to assign a value to a text attribute.)
    Thanks for any guidance you can provide.

    I'm assuming you know how to set up regular substitution where everything is at the same entity level, so I won't go into that.
    To substitute the name of the employer into labels on screens at the entity level below (the 'absence' level), you need to create an attribute at the 'absence' entity level, then infer its value based on the name of the employer. You'll need to use the 'For' function, and the reverse text of the relationship from Employer --> Absence
    There was a related question asked yesterday on the forum (Refering to entity instances from a more specific entity context I'll use the example from that to explain:
    We have the following entities:
    Global -- one-to-many --> the cat (Relationship text: the cats)
    the cat -- one-to-many --> the cat's toys (Relationship text: the cat's toys; Reverse relationship text: the toy of the cat)
    To substitute in the name of the cat into a label on a question screen about the cat's toy, I need to create an attribute at the entity level of the cat's toy ("the cat's toy name substitution variable" in this example). Then set it to be equal to the variable which collects the cat's name ("the cat" in this example), using the 'For' function and the reverse relationship text:
    the cat's toy name substitution variable = For(the toy of the cat, the cat)Then create a public name for "the cat's toy name substitution variable" (e.g. "CatNameSubstitution"), then plug that into the screen label in the usual way, i.e. %CatNameSubstitution%. Since the substitution variable is at the entity level of the cat's toy, it will work.

  • Entity level validation

    I have a requirement where there are two entities in a master detail relationship (A and B respectively linked through entity association)
    EO A has a field called TotalQuantity (master)
    EO B has a field called Split Quantity (detail)
    The total quantity in the EO A to be split in the EO B, whereas the totals of the splits should equal the Total quantity of the EO A.
    Can anyone suggest how to achieve this consistency by using an entity level validation.?
    Please note that the EO A will be created and committed first, then only the child records are created(EO B). Both are not created and committed together.

    for the sales Quantity you can have a validation on 'SalesQuantity' as 'Compare Validation' against the ViewAccessors attribute in the EO. operator as less than or equal to
    for Entity you can have a 'Collection Validation' with the operaiton as 'Sum' with 'Equals' operator against the ViewAccessors attribute in the EO

  • Entity level validation and view level validation in programmatic approach

    I want to know entity level validation and view level validation in programmatic approach how to i start and how to fetch the data pls tell me
    am new to df

    Hi,
    did you read the documentation ? http://download.oracle.com/docs/cd/E17904_01/web.1111/b31974/toc.htm
    Frank

  • Show validation X besign fields if validation at entity level failed

    Hi,
    We are doing all validation at the entity level by throwing sth like the following
    when a condition mandatory field is not filled in (i.e we override the validateEntity method).
    <pre>
    return new AttrSetValException(MetaObjectBase.TYP_ATTRIBUTE, OurMessageBundle.class, "27014", fieldName, fieldName, fieldValue);
    </pre>
    Everything is cool, as the validation message is showing up at the top. However, we need to put a X besides the field too when this failed, much like what you see when you use <af:convertDateTime tag...> .
    How to do this? Is it possible? We have defined our own error handle class and faces life cycle as doc by Oracle.
    I though by throwing AttrSetValException with fieldname="name" and my input text on jspx has id="name" will do the trick but it doesn't.
    Help is much appreciated.
    Mel

    See an example of custom-validation rule that can be applied to an entity/attribute.
    It's oracle.jbo.server.rules.JboGenericValidator and the source is in BC4J/src/bc4jaddinsrc.zip
    Also I've verified on JDev 903 Preview release that creating a new 'validationrule' in the project editor and applying it to 'entity' at entity level does work. validateValue() is called with 'entity' as the input Object.

  • Validation in entity level

    hi all
    I have an entity "currncy" and I want to make
    a validation in entity level on its attribute "Isdefaultcurrency"
    which is boolean.
    Entity Object : Currency
    attributes :
    1. Currencyid DBsequence
    2. Currencyname String
    3. Isdefaultcurrency, Boolean, CheckBox
    Rule Type : List
    Operator : In
    List Type : Query Result 'select ISDEFAULTCURRENCY from currency where ISDEFAULTCURRENCY=1'
    I want when user insert in table, validation checks the attribute 'Isdefaultcurrency'
    was true then show the error message that there was default currency and if you
    want to set it to true (or default) you must change another record that was true
    and uncheck it then back to current record and will make it true and
    there is one record in my table that its attribute 'Isdefaultcurrency' must be true
    please explain it

    Hi Thanks for reply,
    i used following but same issue, the respected fields are not getting marked.
    EoIMpl
      public void registerAttrValExceptionForAttribute(String attrName)
        oracle.jbo.AttributeDef attrDef = getDefinitionObject().getAttributeDefImpl(attrName);
        registerAttributeException(attrDef, 0,
                                          new oracle.jbo.AttrValException(oracle.jbo.common.MetaObjectBase.TYP_ENTITY_OBJECT, getResourceBundleDef(), ERRCODE, getEntityDef().getFullName(),
                                                                          attrName, getAttribute(attrName), null, false));
      }EO-Validation Groovy Script
    source.registerAttrValExceptionForAttribute('MyAttr');Thanks,
    Santosh.

Maybe you are looking for