Headstart prevents using Module components based on IOTs

I want to build a module component based on an index-organized
table. The following Designer + Headstart behaviour prevents
correct functioning of such a block:
- Block property 'Enforce Primary Key' must be set
- Block Property 'Key mode' must be set to 'Non Updatable'
- 'Primary Key' property of PK items must be set
- The event ON-LOCK calls qms$record.unlock, which calls
the lock_record built-in. This should not be done for an IOT.
Solutions:
- I have made new source objects for IOT Block and PK items,
and assign these to the MC and bound items when applicable.
- I modified the ON-LOCK event to not include the lock_record.
The qms$record.unlock procedure is obsolete anyhow, since it
is a workaround for an old (solved) bug.
Headstart Team:
I recommend you include these workarounds in the standard object
library and pl/sql library.

Peter,
Thanks for your feedback. I have posted an enhancement request
for the next release of Headstart.
Regards,
Lauri

Similar Messages

  • Should ADT create module components based on views?

    I have a function (representing a report) with Read usage on two entities, and one entity is implemented by a table and the other implemented by a view. When I run the Application Design Transformer, the resulting module has a module component based on the table, but no component based on the view. This happens in our new configuration (9iDS/10g Database), as well as in our old one (Designer 2.1/8i Database). Is this expected behavior for the ADT, or should I see a component based on the view?

    Peter,
    Thanks for your feedback. I have posted an enhancement request
    for the next release of Headstart.
    Regards,
    Lauri

  • Best Practice for module components based on API's

    Hi all,
    is there a white paper/other documents which outline best
    practice for using table/module component api's and best
    approaches to get around restrictions?
    I would also appreciate war stories about using this method of
    Forms development bearing in mind i would be using this as the
    foundation of a web deployed based application (intranet first -
    ultimately internet).
    Thanks
    Mark
    null

    You cannot add agents to skills dynamically; however, you can queue the caller into more than one CSQ based on statistics. You would use the Get Reporting Statistics and an If step within the Queued branch of your first Select Resource step. If the condition is met (e.g. Contacts Waiting >= 10) then exectue a second Select Resource step within the queued branch of the first. The contact would then be waiting in both CSQs waiting for an agent.

  • Module component based on pl/sql procedure....

    Hi everyone,
    could anybody help me with step by step instructions on how to generate module component which is based on PL/SQL procedure and how the procedure must look like.
    Well, I make it in Forms Builder but I want to build it in oracle designer too, just to have consistent state of all forms in designer.
    Well, what to say at the end... thanks a lot for help,
    Zlatko

    I'm a user of the Web PL/SQL generator, not the Forms generator, so I was hoping that someone else would step in with some help for you. Seeing as no-one else gave this a try, here is my two cents worth:
    As far as I know, the module components based on a procedure expect to use the Table API (TAPI) packages, and I think they can optionally use the Module API (MAPI) packages. I think MAPI calls TAPI, so if you use MAPI, you must also generate TAPI. These are generated from the Design Editor, TAPI from the Table Definition. The Web PL/SQL generator REQUIRES the TAPI, so I'm very familiar with them. The on-line help has some good descriptions of TAPI.
    The advantage of using TAPI/MAPI instead of direct table updates from your Form is that TAPIs can enforce business rules at the database level, no matter how your table is updated, whether with Forms, Web PL/SQL or even SQL*Plus. They can also do trigger-like actions that would not be possible with actual database triggers (can you say, mutating table?) You might also want to use TAPI if you have both Forms modules and Web PL/SQL modules against the same table.
    Now - if someone with more Forms generator experience than I wants to chime in with a better answer, please do, especially if anything I said is wrong.

  • How to prevent GL module to use migration lines already accounted

    Dear all,
    I work for a migration data to module AR
    So datas which produced less one year ago
    And at this moment, I use API AR_RECEIPT_API_PUB.APPLY to insert the clearing in the table AR_RECEIVABLE_APPLICATIONS_ALL
    However another teams use module GL and they noticed GL take my reconciliation's lines
    So my question is how to do for that GL don't take my lines already entered into the accounts
    I should like GL don't use my lines stored in AR_RECEIVABLE_APPLICATIONS_ALL table (and also AR_CASH_RECEIPTS_ALL)
    Someone advice to update posting_control_id column with -1 value in AR_RECEIVABLE_APPLICATIONS_ALL table
    But It doesnt work !
    Have you got any ideas of my problem ?
    Thanks for your help
    EBS R11.5.9

    You need to have the orion-ejb-jar.xml in your app before you initially deploy it, otherwise OC4J will automatically create it for you. I would take to copy of the orion-ejb-jar.xml that is a result of the combination of OC4J and XDoclet generated and add this to my code base as the de-facto orion deployment descriptor to be included in all app deployments. On deploying the app, OC4J will see that a orion-ejb-jar file already exists and will not auto create one. Hope this makes sense!

  • Large Application - Should I be using modules?

    I have built an Estate Agency application in Flex 4.6 which is solely used internally.
    Each process within the application, such as editing property information, is handled within a component and some components have sub-components which are loaded via a ViewStack, such as the customer account component which has sub-components like "address information", "summary", etc.
    The problem is when a large component is loaded for the first time which has multiple sub-components, such as the customer account component, data is fetched from the server application (which takes 200ms) and populated into the various TextInput/DataGrid/DropDownList components within the customer account component and its sub-components. This results in the entire application hanging until the components have been populated.
    Is there a way to prevent this from happening, such as being able to load the component and its sub-components in the background, allowing the user to continue using the application in the foreground?
    Would it be more beneficial to use modules instead of components so the code is loaded from a separate SWF?
    Any help and advice would be greatly appreciated. Thanks in advance.

    IMO, If your application is large, modules will likely help in ease of development, load time, and memory management.
    As far as initializing a lot of components and stuffing them with data, I don't think it will matter too much if the components are in a module or not.  You are correct that you want to try to do it in the "background" although there is no official background processing in Flash/Flex.
    IMO, it comes down to whether you really can do all of that work of initializing "all" of the components fast enough.  If you can guess you're going to need those components then you can get a head start, but will you know soon enough to finish before the user starts complaining about waiting?  If you think you can, then one technique folks use is to only initialize a few components at a time.  Use states or pure AS to add and initialize "some" of the components and when they are initialized, do a few more.
    Also consider whether all of these components fit on the screen or not.  If there are components that are not immediately on screen consider initializing them later.
    Another thing worth doing is using the profiler.  Several times I've seen folks go through extra validation passes in the LayoutManager than can often be avoided and save bit on initialization time.
    A final technique is to give up and choose to distract the user instead.  The simplest form of that is giving them something to read while everything else is going on behind the scenes.
    Good luck,
    -Alex

  • How to use an existing data model using Business Components in OEPE

    I am a beginner in ADF. I am working on a project with an existing data model that uses Business Components (EO, VO and AM). I know that OEPE does not handle the creation of BC, so if I want to modify them, I will have to do that in JDev. That's fine.
    OEPE can create pages with drag and drop like in JDev. In my eclipse ADF projects, I would like to use the existing BC, to be able to use the bindings with ADF Faces. So far I have nothing in the Data Controls tab.
    How to import the BC into the Data Controls tab?
    JDev 11.1.1.6
    WLS 10.3.6
    Eclipse Kepler

    We currently don't support DataControls based on the ADF BC technology. We will consider such support if there is a strong interest in that use case.
    Independent of the IDE's you use, there are ways to expose services based on ADF BC that can then be consumed by the view layer. A Google search will point you to some of the approaches.
    HTH. Thanks for your interest in OEPE.

  • Issues in ADF mobile application using Trinidad components

    I am facing the following issues when developing a mobile application using trinidad components :
    Jdev version : 11.1.1.6
    1) I dont see a date component using trinidad components? The dev guide http://docs.oracle.com/cd/E23943_01/web.1111/e10140/sup_comp.htm says that tr:inputDate is supported but when i try to drag a data field to jsf page i don't see an option for Trinidad date component. so i went ahead and created an af:inputDate in the page. But the date selection dialog doesnt open up.
    2) i tried using 'Rendered' for conditional rendering of a component but it does not work or refresh immediately, the same problem is solved in my adf application using visible property but looks like there is no 'Visible' property for Trinidad components. any work around?
    3) i wanted to have a 'create insert' call in my task flow before launching the page. Since Task flows are not supported in ADF mobile application, i have added 'ADF Faces' also into my project and created task flow and jsff page as i do for a adf web application the only diff being the usage of trinidad components in my jsff page. is this fine? Also can we mix trinidad components and adf components into the same page?
    4) I have a tr:inputText on a clob input text field which i am updating in ADF page using a clob converter class. Same thing i cannot do for trinidad text as it is resulting in null pointer exception. any solution to update clob fields into database which uses tr:inputText compents.
    Help to solve any one of the above issues (by quoting serial no) would be highly appreciated. Thanks.

    >
    4) I have a tr:inputText on a clob input text field which i am updating in ADF page using a clob converter class. Same thing i cannot do for trinidad text as it is resulting in null pointer exception. any solution to update clob fields into database which uses tr:inputText compents.
    wht is the stack trace.. when is it giving null pointer exception.. explain
    >
    Below is the code for an inputText component based on a CLOB Field.
    <tr:inputText value="#{bindings.ObsComments.inputValue}"
                        label="#{bindings.ObsComments.hints.label}"
                        required="#{bindings.ObsComments.hints.mandatory}"
                        columns="#{bindings.ObsComments.hints.displayWidth}"
                        maximumLength="#{bindings.ObsComments.hints.precision}"
                        id="it4" rows="4" binding="#{ObsMobileBean.obsComments}"
                        showRequired="#{bindings.WoNeeded.attributeValue eq 'Y'}"
                        partialTriggers="sbc1" converter="ClobConverter">
            <f:validator binding="#{bindings.ObsComments.validator}"/>
          </tr:inputText>When i try to render the page it self i face this error initially.
    >
    java.lang.NullPointerException
         at sfi.apps.sso.mobileUi.util.ClobConverter.getAsString(ClobConverter.java:41)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.ValueRenderer.getConvertedString(ValueRenderer.java:63)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.EditableValueRenderer.getConvertedString(EditableValueRenderer.java:163)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputTextRenderer.renderContent(SimpleInputTextRenderer.java:364)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputTextRenderer.encodeAllAsElement(SimpleInputTextRenderer.java:121)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormElementRenderer.encodeAll(FormElementRenderer.java:109)
         at org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRenderer.java:435)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.renderFieldCellContents(InputLabelAndMessageRenderer.java:146)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessageRenderer._renderFieldCell(LabelAndMessageRenderer.java:492)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessageRenderer.encodeAll(LabelAndMessageRenderer.java:359)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.encodeAll(InputLabelAndMessageRenderer.java:124)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer._encodeFormItem(PanelFormLayoutRenderer.java:911)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer.access$100(PanelFormLayoutRenderer.java:48)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1419)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1338)
         at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
         at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
         at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer._encodeChildren(PanelFormLayoutRenderer.java:312)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer.encodeAll(PanelFormLayoutRenderer.java:137)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:421)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelHeaderRenderer.encodeAll(PanelHeaderRenderer.java:133)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:421)
         at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer._encodeChildren(RegionRenderer.java:278)
         at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer.encodeAll(RegionRenderer.java:201)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at oracle.adf.view.rich.component.fragment.UIXRegion.encodeEnd(UIXRegion.java:300)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:421)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:69)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:142)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:151)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:78)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:911)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:367)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:222)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
         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.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.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)
    >
    Now if i remove the tag converter="ClobConverter" then the page renders fine but when i try to submit the values back into the database, then i got the error
    >
    Cannot convert <entered text> of type class java.lang.String to class oracle.jbo.domain.ClobDomain
    >
    My clob converter class is registered in faces-config.xml file and the code for it is also pasted below for reference:
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
    import javax.faces.convert.ConverterException;
    import oracle.jbo.domain.ClobDomain;
    public class ClobConverter implements Converter {
        public ClobConverter() {
        public Object getAsObject(FacesContext context, UIComponent component,
                                  String value) {
            if (context == null || component == null) {
                throw new NullPointerException("FacesContext and UIComponent can not be null");
            if (value == null) {
                return null;
            try {
                return new ClobDomain(value);
            } catch (Exception ex) {
                final String message =
                    String.format("Unable to convert boolean value \"%s\" into a oracle.jbo.domain.Number",
                                  value);
                throw new ConverterException(message, ex);
        public String getAsString(FacesContext context, UIComponent component,
                                  Object value) {
            if (context == null || component == null) {
                throw new NullPointerException("FacesContext and UIComponent can not be null");
            return value.toString();
    }

  • Will it feasable to use Module in this case :screen shot attached

    Hi ,
    We are developing a Application which provides several facilities like Forum , Remote User , --- etc screen shot attached for this reference .
    Please tell me will it feasable to develop each of this service as a Module ??
    Please tell me shall we go for seperate Modules or for Seperate Components , what will be feasable
    Please share your experience

    Anybody please tell me if its better to go using Modules Approach , in case if they were part of the Application itself .
    Thanks.

  • Use of components in Cisco PGW2200

    Hi All,
      We are using PGW2200 in signaling mode .. Kindly clarify the use of linkset , ss7route , ss7path , naspath , c7link etc and how all are interrelated and with one call flow eg.
    Regards
    Sathya.

    Hi
    Pl find the document which I created based on your query and this document will help you to understand the use of components, its interrelation.
    Kindly rate if you find the document helpful.
    https://supportforums.cisco.com/docs/DOC-13683
    Thanks.

  • Module components

    HI
    Is it possible to have two or more module components on the same page using web server generator with designer 6i
    in the case of master details relation.
    If it is possible then how can i do it?
    thanks in anticipation

    In designer6i we cant do this.
    In designer 9i, it is taken up as an enhacement request and work is going on, maybe indesigner 9i we would be able to have more than one module component on the same web page.
    Hope this solves your query

  • Table maintenance by using module pool program

    Hi
    Please give me step by step procedure to generate table maintenance by using module pool program

    While creating table maintenance, you can go thro' the module pool program used for that.In that,in PBO part,just try making particular field active = 1 inside loop at screen.
    Girish Kumar Lo...  
    Posts: 1,518
    Questions: 2
    Registered: 4/19/07
    Forum points: 1,982 
       Re: Regarding Table maintanence generator  
    Posted: Jun 26, 2007 9:02 AM    in response to: Younus Khan       Reply      E-mail this post 
    here is the code for that
    REPORT ZTAB_MAINT
           NO STANDARD PAGE HEADING
           MESSAGE-ID ZZ.
                      T Y P E  D E C L A R A T I O N S
    *--Types declaration for selection to be passed as parameter into
    *--VIEW_MAINTENANCE_CALL FM
    TYPES: BEGIN OF TP_RANGETAB.
            INCLUDE STRUCTURE VIMSELLIST.
    TYPES: END OF TP_RANGETAB.
                   D A T A  D E C L A R A T I O N S
    DATA: V_MATNR TYPE MATNR,              " Material Number
          V_WERKS TYPE WERKS_D,              " Plant
          V_KONOB TYPE KONOB,              " Product allocation object
          V_ZCPLT(40) TYPE C.              " Message
           I N T E R N A L  T A B L E  D E C L A R A T I O N S
    Internal table to subroutine code
    *Internal table used as selection for VIEW_MAINTENANCE_CALL FM
    DATA: IT_RANGETAB TYPE STANDARD TABLE OF TP_RANGETAB WITH HEADER LINE.
    *--Internal table used for getting the tablefields
    DATA: BEGIN OF IT_HEADER OCCURS 1.
            INCLUDE STRUCTURE VIMDESC.
    DATA: END   OF IT_HEADER.
    *--Name Tabel
    DATA: BEGIN OF IT_NAMTAB OCCURS 50.
            INCLUDE STRUCTURE VIMNAMTAB.
    DATA: END   OF IT_NAMTAB.
    *--Used for handling 'BT' option
    DATA: BEGIN OF IT_MATNR OCCURS 0,
            MATNR TYPE MATNR,
          END OF IT_MATNR.
    *--Used for handling 'BT' option
    DATA: BEGIN OF IT_WERKS OCCURS 0,
            WERKS TYPE WERKS,
          END OF IT_WERKS.
    *--Used for handling 'BT' option
    DATA: BEGIN OF IT_KONOB OCCURS 0,
            KONOB TYPE KONOB,
          END OF IT_KONOB.
    *--Used for handling 'BT' option
    DATA: BEGIN OF IT_ZCPLT OCCURS 0,
            ZCPLT(40) TYPE C,
          END OF IT_ZCPLT.
                       I N P U T  S C R E E N
    SELECTION-SCREEN BEGIN OF BLOCK SELSCR WITH FRAME TITLE TEXT-001.
    RANGES: R_MATNR FOR V_MATNR.
    RANGES: R_WERKS FOR V_WERKS.
    RANGES: R_KONOB FOR V_KONOB.
    RANGES: R_ZCPLT FOR V_ZCPLT.
    Select Options
    SELECT-OPTIONS: S_MATNR FOR V_MATNR NO-EXTENSION,     " Material
                    S_WERKS FOR V_WERKS NO-EXTENSION,     " Plant
                    S_KONOB FOR V_KONOB NO-EXTENSION,
                                            " Product allocation object
                    S_ZCPLT FOR V_ZCPLT NO-EXTENSION.     " Plant
    SELECTION-SCREEN END OF BLOCK SELSCR.
                 A T  S E L E C T I O N  S C R E E N
    AT SELECTION-SCREEN.
    Validate user inputs
      PERFORM FRM_VALIDATIONS.
                S T A R T  O F  S E L E C T I O N
    START-OF-SELECTION.
    Fetch Data from Data Base
      PERFORM FRM_GET_DATA.
                         S U B  R O U T I N E S
    *&      Form  frm_get_data
          Call the function module VIEW_MAINTENNACE_CALL to get data
          based on selection criteria
    FORM FRM_GET_DATA .
      CALL FUNCTION 'VIEW_GET_DDIC_INFO'
        EXPORTING
          VIEWNAME = 'ZTAB'
        TABLES
          X_HEADER = IT_HEADER
          X_NAMTAB = IT_NAMTAB
          SELLIST  = IT_RANGETAB
        EXCEPTIONS
          NO_TVDIR_ENTRY = 1
          TABLE_NOT_FOUND = 2.
      IF SY-SUBRC <> 0.
        MESSAGE E002 WITH 'Error in ZTAB table'(005).
      ENDIF.
      CLEAR: IT_RANGETAB,
             IT_RANGETAB[].
      LOOP AT IT_NAMTAB.
        CASE IT_NAMTAB-VIEWFIELD.
          WHEN 'MATNR'.
            CLEAR IT_RANGETAB.
            IT_RANGETAB-VIEWFIELD = 'MATNR'.
            IT_RANGETAB-TABIX     = SY-TABIX.
            IT_RANGETAB-DDIC      = IT_NAMTAB-READONLY.
            LOOP AT S_MATNR.
              CASE S_MATNR-OPTION.
                WHEN 'EQ'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'EQ'.
                  IT_RANGETAB-VALUE     = S_MATNR-LOW.
                  APPEND IT_RANGETAB.
                WHEN 'BT'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'GE'.
                  IT_RANGETAB-VALUE     = S_MATNR-LOW.
                  APPEND IT_RANGETAB.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'LE'.
                  IT_RANGETAB-VALUE     = S_MATNR-HIGH.
                  APPEND IT_RANGETAB.
                WHEN 'NB'.
                  CLEAR: R_MATNR,
                         R_MATNR[].
                  R_MATNR-SIGN = 'I'.
                  R_MATNR-OPTION = 'BT'.
                  R_MATNR-LOW = S_MATNR-LOW.
                  R_MATNR-HIGH = S_MATNR-HIGH.
                  APPEND R_MATNR.
                  SELECT MATNR
                         INTO TABLE IT_MATNR
                         FROM ZTAB
                         WHERE MATNR IN R_MATNR.
                  DELETE ADJACENT DUPLICATES FROM IT_MATNR COMPARING MATNR
                  LOOP AT IT_MATNR.
                    IT_RANGETAB-AND_OR    = 'AND'.
                    IT_RANGETAB-OPERATOR = 'NE'.
                    IT_RANGETAB-VALUE    = IT_MATNR-MATNR.
                    APPEND IT_RANGETAB.
                  ENDLOOP.
                WHEN 'NE'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'NE'.
                  IT_RANGETAB-VALUE     = S_MATNR-LOW.
                  APPEND IT_RANGETAB.
                WHEN OTHERS.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = S_MATNR-OPTION.
                  IT_RANGETAB-VALUE    = S_MATNR-LOW.
                  APPEND IT_RANGETAB.
              ENDCASE.
            ENDLOOP.
          WHEN 'WERKS'.
            CLEAR IT_RANGETAB.
            IT_RANGETAB-VIEWFIELD = 'WERKS'.
            IT_RANGETAB-TABIX     = SY-TABIX.
            IT_RANGETAB-DDIC      = IT_NAMTAB-READONLY.
            LOOP AT S_WERKS.
              CASE S_WERKS-OPTION.
                WHEN 'EQ'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'EQ'.
                  IT_RANGETAB-VALUE     = S_WERKS-LOW.
                  APPEND IT_RANGETAB.
                WHEN 'BT'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'GE'.
                  IT_RANGETAB-VALUE     = S_WERKS-LOW.
                  APPEND IT_RANGETAB.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'LE'.
                  IT_RANGETAB-VALUE     = S_WERKS-HIGH.
                  APPEND IT_RANGETAB.
                WHEN 'NB'.
                  CLEAR: R_WERKS,
                         R_WERKS[].
                  R_WERKS-SIGN = 'I'.
                  R_WERKS-OPTION = 'BT'.
                  R_WERKS-LOW = S_WERKS-LOW.
                  R_WERKS-HIGH = S_WERKS-HIGH.
                  APPEND R_WERKS.
                  SELECT WERKS
                         INTO TABLE IT_WERKS
                         FROM MARC
                         WHERE WERKS IN R_WERKS.
                  DELETE ADJACENT DUPLICATES FROM IT_WERKS COMPARING WERKS
                  LOOP AT IT_WERKS.
                    IT_RANGETAB-AND_OR    = 'AND'.
                    IT_RANGETAB-OPERATOR = 'NE'.
                    IT_RANGETAB-VALUE    = IT_WERKS-WERKS.
                    APPEND IT_RANGETAB.
                  ENDLOOP.
                WHEN 'NE'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'NE'.
                  IT_RANGETAB-VALUE     = S_WERKS-LOW.
                  APPEND IT_RANGETAB.
                WHEN OTHERS.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = S_WERKS-OPTION.
                  IT_RANGETAB-VALUE    = S_WERKS-LOW.
                  APPEND IT_RANGETAB.
              ENDCASE.
            ENDLOOP.
          WHEN 'KONOB'.
            CLEAR IT_RANGETAB.
            IT_RANGETAB-VIEWFIELD = 'KONOB'.
            IT_RANGETAB-TABIX     = SY-TABIX.
            IT_RANGETAB-DDIC      = IT_NAMTAB-READONLY.
            LOOP AT S_KONOB.
              CASE S_KONOB-OPTION.
                WHEN 'EQ'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'EQ'.
                  IT_RANGETAB-VALUE     = S_KONOB-LOW.
                  APPEND IT_RANGETAB.
                WHEN 'BT'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'GE'.
                  IT_RANGETAB-VALUE     = S_KONOB-LOW.
                  APPEND IT_RANGETAB.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'LE'.
                  IT_RANGETAB-VALUE     = S_KONOB-HIGH.
                  APPEND IT_RANGETAB.
                WHEN 'NB'.
                  CLEAR: R_KONOB,
                         R_KONOB[].
                  R_KONOB-SIGN = 'I'.
                  R_KONOB-OPTION = 'BT'.
                  R_KONOB-LOW = S_KONOB-LOW.
                  R_KONOB-HIGH = S_KONOB-HIGH.
                  APPEND R_KONOB.
                  SELECT KONOB
                         INTO TABLE IT_KONOB
                         FROM T190
                         WHERE KONOB IN R_KONOB.
                  DELETE ADJACENT DUPLICATES FROM IT_KONOB COMPARING KONOB
                  LOOP AT IT_KONOB.
                    IT_RANGETAB-AND_OR    = 'AND'.
                    IT_RANGETAB-OPERATOR = 'NE'.
                    IT_RANGETAB-VALUE    = IT_KONOB-KONOB.
                    APPEND IT_RANGETAB.
                  ENDLOOP.
                WHEN 'NE'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'NE'.
                  IT_RANGETAB-VALUE     = S_KONOB-LOW.
                  APPEND IT_RANGETAB.
                WHEN OTHERS.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = S_KONOB-OPTION.
                  IT_RANGETAB-VALUE    = S_KONOB-LOW.
                  APPEND IT_RANGETAB.
              ENDCASE.
            ENDLOOP.
          WHEN 'ZCPLT'.
            CLEAR IT_RANGETAB.
            IT_RANGETAB-VIEWFIELD = 'ZCPLT'.
            IT_RANGETAB-TABIX     = SY-TABIX.
            IT_RANGETAB-DDIC      = IT_NAMTAB-READONLY.
            LOOP AT S_ZCPLT.
              CASE S_ZCPLT-OPTION.
                WHEN 'EQ'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'EQ'.
                  IT_RANGETAB-VALUE     = S_ZCPLT-LOW.
                  APPEND IT_RANGETAB.
                WHEN 'BT'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'GE'.
                  IT_RANGETAB-VALUE     = S_ZCPLT-LOW.
                  APPEND IT_RANGETAB.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = 'LE'.
                  IT_RANGETAB-VALUE     = S_ZCPLT-HIGH.
                  APPEND IT_RANGETAB.
                WHEN 'NB'.
                  CLEAR: R_ZCPLT,
                         R_ZCPLT[].
                  R_ZCPLT-SIGN = 'I'.
                  R_ZCPLT-OPTION = 'BT'.
                  R_ZCPLT-LOW = S_ZCPLT-LOW.
                  R_ZCPLT-HIGH = S_ZCPLT-HIGH.
                  APPEND R_ZCPLT.
                  SELECT ZCPLT
                         INTO TABLE IT_ZCPLT
                         FROM ZTAB
                         WHERE ZCPLT IN R_ZCPLT.
                  DELETE ADJACENT DUPLICATES FROM IT_ZCPLT COMPARING ZCPLT
                  LOOP AT IT_ZCPLT.
                    IT_RANGETAB-AND_OR    = 'AND'.
                    IT_RANGETAB-OPERATOR = 'NE'.
                    IT_RANGETAB-VALUE    = IT_ZCPLT-ZCPLT.
                    APPEND IT_RANGETAB.
                  ENDLOOP.
                WHEN 'NE'.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR  = 'NE'.
                  IT_RANGETAB-VALUE     = S_ZCPLT-LOW.
                  APPEND IT_RANGETAB.
                WHEN OTHERS.
                  IT_RANGETAB-AND_OR    = 'AND'.
                  IT_RANGETAB-OPERATOR = S_ZCPLT-OPTION.
                  IT_RANGETAB-VALUE    = S_ZCPLT-LOW.
                  APPEND IT_RANGETAB.
              ENDCASE.
            ENDLOOP.
        ENDCASE.
      ENDLOOP.
      IF S_ZCPLT[] IS INITIAL.
        CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
          EXPORTING
            ACTION      = 'U'
            VIEW_NAME   = 'ZTAB'
          TABLES
            DBA_SELLIST = IT_RANGETAB
          EXCEPTIONS
            CLIENT_REFERENCE                     = 1
            FOREIGN_LOCK                         = 2
            INVALID_ACTION                       = 3
            NO_CLIENTINDEPENDENT_AUTH            = 4
            NO_DATABASE_FUNCTION                 = 5
            NO_EDITOR_FUNCTION                   = 6
            NO_SHOW_AUTH                         = 7
            NO_TVDIR_ENTRY                       = 8
            NO_UPD_AUTH                          = 9
            ONLY_SHOW_ALLOWED                    = 10
            SYSTEM_FAILURE                       = 11
            UNKNOWN_FIELD_IN_DBA_SELLIST         = 12
            VIEW_NOT_FOUND                       = 13
            MAINTENANCE_PROHIBITED               = 14
            OTHERS                               = 15.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ELSE.
        CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
          EXPORTING
            ACTION      = 'U'
            VIEW_NAME   = 'ZTAB_ZTEST'
          TABLES
            DBA_SELLIST = IT_RANGETAB
          EXCEPTIONS
            CLIENT_REFERENCE                     = 1
            FOREIGN_LOCK                         = 2
            INVALID_ACTION                       = 3
            NO_CLIENTINDEPENDENT_AUTH            = 4
            NO_DATABASE_FUNCTION                 = 5
            NO_EDITOR_FUNCTION                   = 6
            NO_SHOW_AUTH                         = 7
            NO_TVDIR_ENTRY                       = 8
            NO_UPD_AUTH                          = 9
            ONLY_SHOW_ALLOWED                    = 10
            SYSTEM_FAILURE                       = 11
            UNKNOWN_FIELD_IN_DBA_SELLIST         = 12
            VIEW_NOT_FOUND                       = 13
            MAINTENANCE_PROHIBITED               = 14
            OTHERS                               = 15.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDFORM.                    " frm_get_data
    *&      Form  frm_validations
          Validating field values
    FORM FRM_VALIDATIONS .
    Material number should not be validated (10/17/2005)
      CLEAR V_MATNR.
      SELECT SINGLE MATNR
                    INTO V_MATNR
                    FROM MARA
                    WHERE MATNR IN S_MATNR.
      IF SY-SUBRC <> 0.
        MESSAGE E002 WITH 'Material not found'.
      ENDIF.
      CLEAR V_WERKS.
      SELECT SINGLE WERKS
                    INTO V_WERKS
                    FROM ZTAB
                    WHERE WERKS IN S_WERKS.
      IF SY-SUBRC <> 0.
        MESSAGE E002 WITH 'Plant (WERKS) not found'(002).
      ENDIF.
      CLEAR V_KONOB.
      SELECT SINGLE KONOB
                    INTO V_KONOB
                    FROM ZTAB
                    WHERE KONOB IN S_KONOB.
      IF SY-SUBRC <> 0.
        MESSAGE E002 WITH ' Product allocation object not found'(003).
      ENDIF.
      CLEAR V_WERKS.
      SELECT SINGLE WERKS
                    INTO V_WERKS
                    FROM ZTAB
                    WHERE WERKS IN S_ZCPLT.
      IF SY-SUBRC <> 0.
        MESSAGE E002 WITH 'Plant (ZCPLT) not found'(004).
      ENDIF.
    ENDFORM.                    " frm_validations
    reward points if it is usefull ...
    Regarding Table maintanence generator

  • Building dynamic LOV  using ADF components

    Hi,
    I am trying to do a dynamic LOV on an item data bound to an ADF component using UIX components. I have two LOVs and would like that on change of the first LOV my second LOV is populated based on my first LOV choice. How is the best way to do this?
    Thanks,
    Mia

    Mia,
    My suggestion would be to look into the Query Bind Params functionality of JHeadstart. The online help in the Application Structure File (it's a group level property) should help you along.
    kind regards,
    Sandra Muller
    JHeadstart Team
    Oracle Consulting

  • Using existing components

    hi
    i have several components like Buttons,TextFileds,Labels,Tabs
    etc. in separate class files. If i want to make a new class using
    hose components and retain their properties like label name,width etc
    Is it possible?? how can i do that??
    Thanx in advance
    Ashish

    We currently don't support DataControls based on the ADF BC technology. We will consider such support if there is a strong interest in that use case.
    Independent of the IDE's you use, there are ways to expose services based on ADF BC that can then be consumed by the view layer. A Google search will point you to some of the approaches.
    HTH. Thanks for your interest in OEPE.

  • How can I convert an outlook pst file to mac mail without using a windows based computer

    I recently bought the new iMac as my older Windows based computer crashed with a bad motherboard.  I have been trying to find a way to convert Outlook 2007 pst files to Mac Mail without the need to use a Windows based computer since all I have now is a Mac.  I have the copies of the pst files on my Mac, so I am looking for the most efficient way to convert them to the format that I can then open them in the Mac Mail.  Any suggestions would be greatly appreciated.

    Hi - thanks for the instructions but where do you get the option for Quicktime. If I do File - Export I only get the options for File name, place and size but no option that allows to select quicktime:-(
    Have you got any more tips?

Maybe you are looking for

  • Can I add internal storage to a mac mini?

    I am out of space and have plenty of external storage,   I just think that it works better with internal storage.

  • New iPod shuffle, INVISIBLE to Mac/PC

    Have bought a silver ipod shuffle 3G, and charged it fully. When headphones are plugged in it says ' please sync with itunes' - so the headphones function correctly, as well as charging as the batt is full, and the light is constant orange when plugg

  • Photoshop 10 crashes when I select quick edit and get no response when guided edit selected

    PS Elements 10 crashes when I select quick edit and I get no response when guided edit is selected.  Auto edit is working.  Help???

  • Number range elements

    Hello, I've tried to maintain number ranges for controlling documents. Transaction KANK. The system displays a message: No elements exists for the object/sub-object ESCO (which is my controlling area) The problem are missing number range elements (bu

  • BR*Tools 7.x, Oracle 10.x, instant client 10.x and Kernel 6.4

    All, Please keep in mind I am running Kernel 6.4 When upgrading a 9.2 database to 10.2, the documentation indicates you should upgrade BR*Tools to 7 and the instant client to 10. Can I have the following configuration running and working: Oracle 10.2