SQL recursion problem in custom groups table

hi all,
Consider the following seemingly simple table structure ( with sample rows ) :
PERMISSION_ID P_ID DESCRIPTION DESIGNATION
============= ==== =========== =======
1776 Null Z-ENGINEERING 88888
1860 Null Z-LABORATORY 88888
1909 Null Z-RESEARCH 88888
1902 Null Z-PLANT 88888
1905 Null Z-SOFTWARE DESIGN 88888
1903 Null Z-BLANKET 88888
1904 Null Z-OFFICE 88888
40000 1909 James Gosling 67890
40001 1909 Edgar Codd 21135
40002 1904 Alan Turing 85542
40003 1909 Z-SOFTWARE DESIGN 88888
40004 1905 Dennis Ritchie 12111
40005 1909 Z-OFFICE 88888
40006 1776 Brian Kernighan 84251
40007 1904 Z-ENGINEERING 88888
Explanation of table structure :
(1) All rows with P_ID = {Null} are the root groups, and they all have a uniform DESIGNATION of 88888.
(2) All rows that starts with 40000 are memberships; under these memberships scheme, a root group can become a member of another root group, cascaded, which means that root groups can be members of another root group or they can be members of multiple root groups ( and cascaded even ), as long as the cascade do not end up in a circular reference, or an endless cycle. The idea here is so that the memberships for both groups and human members can be chained.
(3) Both root groups and human memberships are stored in the same table above, using rules (1) & (2) as the logic.
(4) No additional table may be added to this table in order to implement rules (1), (2), & (3); columns may be added, though.
(5) Use only plain SQL statements ( SELECT, CONNECT BY, PRIOR, NOCYCLES, etc ... ); PL/SQL, functions, and procedures are strongly discouraged.
Desired output of the query is as follows :
The SELECT query should return a list of all human members which belongs to a specific root group. Using the example table above, the initial query should have the following intended result set:
(start with p_id = 1909) -- 1909 is root group Z-RESEARCH
PERMISSION MEMBERS
========== =======
40000 James Gosling
40001 Edgar Codd
40003 Z-SOFTWARE DESIGN
40005 Z-OFFICE
However, Z-SOFTWARE DESIGN has it's own member , Dennis Ritchie, so the updated result set should be :
PERMISSION MEMBERS
========== =======
40000 James Gosling
40001 Edgar Codd
40004 Dennis Ritche
40005 Z-OFFICE
Same is true for Z-OFFICE, but it's member is another root group, Z-ENGINEERING, whose member is Brian Kernighan, thus the final result set list would be as follows, which is the final intended list :
PERMISSION MEMBERS
========== =======
40000 James Gosling
40001 Edgar Codd
40004 Dennis Ritche
40002 Alan Turing
40006 Brian Kernighan
The problem now would be, how to generate the final intended list using the table scheme illustrated above, with no additional tables, but possible additional columns, using Oracle's SELECT ... START WITH ... CONNECT BY PRIOR ?
Any theoretical advice is greatly appreciated; even our consulting firm cannot solve this problem. Coming here to the Oracle Forums itself is a last resort. Perhaps someone here can take a gander at this seemingly simple problem. Fact is, solving this problem has lots of applications, one of which is the ability to mimic Outlook's nested distribution groups list.
Thank you so much for your time.

Ok, first time back at a database, here my 2 cent.
I use the with-clause to simulate your sample-data, i have also added the master-reference-column i suggested. Just restrict the result to the group you want to. (i only put the id's in the query)
WITH DATA AS (SELECT 1776 PERMISSION_ID, TO_NUMBER(NULL) P_ID, TO_NUMBER(NULL) MASTER_PERMISSION_ID, 'Z-ENGINEERING' DESCRIPTION,  88888 DESIGNATION FROM DUAL
              UNION ALL
              SELECT 1860, Null, Null, 'Z-LABORATORY', 88888 FROM DUAL
              UNION ALL
              SELECT 1909, Null, Null, 'Z-RESEARCH', 88888 FROM DUAL
              UNION ALL
              SELECT 1902, Null, Null, 'Z-PLANT' ,88888 FROM DUAL
              UNION ALL
              SELECT 1905, Null, Null, 'Z-SOFTWARE DESIGN', 88888 FROM DUAL
              UNION ALL
              SELECT 1903, Null, Null, 'Z-BLANKET', 88888 FROM DUAL
              UNION ALL
              SELECT 1904, Null, Null, 'Z-OFFICE', 88888 FROM DUAL
              UNION ALL
              SELECT 40000, 1909, Null, 'James Gosling', 67890 FROM DUAL
              UNION ALL
              SELECT 40001, 1909, Null, 'Edgar Codd', 21135  FROM DUAL
              UNION ALL
              SELECT 40002, 1904, Null, 'Alan Turing', 85542 FROM DUAL
              UNION ALL
              SELECT 40003, 1909, 1905, 'Z-SOFTWARE DESIGN', 88888 FROM DUAL
              UNION ALL
              SELECT 40004, 1905, Null, 'Dennis Ritchie', 12111 FROM DUAL
              UNION ALL
              SELECT 40005, 1909, 1904, 'Z-OFFICE', 88888 FROM DUAL
              UNION ALL
              SELECT 40006, 1776, Null, 'Brian Kernighan', 84251  FROM DUAL
              UNION ALL
              SELECT 40007, 1904, 1776, 'Z-ENGINEERING', 88888  FROM DUAL
SELECT GROUP_REFERENCE,
       THE_USERS.PERMISSION_ID,
       USER_NAME,
       FROM_GROUP
  FROM (SELECT PERMISSION_ID,
               DESCRIPTION FROM_GROUP,
               CONNECT_BY_ROOT(PERMISSION_ID) GROUP_REFERENCE
          FROM (SELECT PERMISSION_ID, TO_NUMBER(NULL) P_MASTER, DESCRIPTION
                  FROM DATA
                 WHERE DESIGNATION=88888
                   AND P_ID IS NULL
                UNION ALL
                SELECT MASTER_PERMISSION_ID PERMISSION_ID,  P_ID P_MASTER, DESCRIPTION
                  FROM DATA
                 WHERE DESIGNATION=88888
                   AND P_ID IS NOT NULL       
        CONNECT BY PRIOR PERMISSION_ID=P_MASTER
        START WITH P_MASTER IS NULL
       ) THE_GROUPS,
       (SELECT P_ID PERMISSION_REFERENCE,
               PERMISSION_ID,
               DESCRIPTION USER_NAME
          FROM DATA
         WHERE MASTER_PERMISSION_ID IS NULL
           AND P_ID IS NOT NULL
       ) THE_USERS
WHERE THE_GROUPS.PERMISSION_ID=THE_USERS.PERMISSION_REFERENCE

Similar Messages

  • Recursion Problem with custom realms built on EJB's

    Hello there,
    We have developed a web-app which uses authentication on a derivative of
    RDBMSRealm, except that instead of RDBMSDelegate we have created our
    'EJBDelegate' to do all of our database dirtywork. Unfortunately there
    appears to be a problem that after a certain length of time some
    security check happens in the EJB layer, which calls getUser(), which
    calls the EJB layer, and I am stuck in an infinite recursive loop.
    Ideal solution - I disable security for the EJB's entirely as we view
    web-app level security as sufficient.
    Any ideas on where I might find such a setting?
    Thanks much,
    Daniel Wabyick
    Server Applications Engineer
    Fluid, Inc.
    http://www.fluid.com

    Hi Tony,
    i got the same problem as described on :
    Use of "displaytag" on WebAS 6.4
    Did you already found a solution how to deal with this displaytag-tld problem?
    hope to hear from you. thx in advance,
    lars

  • Problem with checkbox group in row popin of table.

    In table row popin I have kept Check Box Group.I have mapped  the texts property of checkbox group to the attribute which is under the subnode of the table.the subnode properties singleton=false,selectioncardinality=0-n,and cardinality=0-n.
    if there are 'n' number of records in the table.each record will have its own row popin and in the row popin there is check box group.
    the check box group in the row popin  belongs to that perticular row.
    but the checkboxegroup values in row popins of all the  rows are getting changed to the row which is lead selected.
    The same scenario  (table in the row popin is showing the values corresponding to its perticular row and all the table values in popin are not getting changed to the one lead selected in the main table)is working fine with the table in place of  checkbox group in row popin with datasource property of table  binded to the subnode
    I cant trace out the problem with checkbox group in place of table.
    Please help me in this regard.I have to place check box group in place of table in row popin.
    Thanks and Regards
        Kiran Kumar K

    I have done the same thing successfully with normal check box ui element. Try using check box in your tabel cell editor instead of check box group.

  • Custom PL/SQL API that inserts the data into a custom interface table.

    We are developing a custom Web ADI integrator for importing suppliers into Oracle.
    The Web ADI interface is a custom PL/SQL API that inserts the data into a custom interface table. We have defined the content, uploader and an importer. The importer is again a custom PL/SQL API that will process the records inserted into the custom table and updates the STATUS column of the custom interface table. We want to show the status column back on the spreadsheet.
    Defined the 'Document Row' import rule and added the rows that would identify the unique record.
    Errored row import rule, we are using a SELECT * from custom_table where status<>'Success' and vendor_name=$param$.vendor_name
    The source of this parameter is import.vendor_name
    We have also defined an Error lookup.
    After the above setup is completed, we invoke the create document and click on Oracle->Upload.
    The records are getting imported, but the importer program is failing with An error has occurred while running an API import. The ERRORED_ROWS step 20003:ER_500141, parameter number 1 must contain the value BIND in attribute 1.'

    The same issue.
    Need help.
    Also checked bne.log, no additional information.
    <bne:document xmlns:bne="http://www.oracle.com/bne">
    <bne:message bne:type="DATA" bne:text="BNE_VALID_ROW_COUNT" bne:value="11" />
    <bne:message bne:type="DATA" bne:text="BNE_INVALID_ROW_COUNT" bne:value="0" />
    <bne:message bne:type="ERROR" bne:text="An error has occurred while running an API import"
    bne:cause="The ERRORED_ROWS step 20003:ER_500165, parameter number 1 must contain the value BIND in attribute 1."
    bne:action="" bne:source="BneAPIImporter" >
    <bne:context bne:collection="collection_1" />
    </bne:message><bne:message bne:type="STATUS"
    bne:text="No rows uploaded" bne:value="" >
    <bne:context bne:collection="collection_1" /></bne:message>
    <bne:message bne:type="STATUS" bne:text="0 rows were invalid" bne:value="" >
    <bne:context bne:collection="collection_1" /></bne:message></bne:document>

  • Problem accessing custom Portal DB Table using default Datasource in VA

    Hello,
    I have a PAR application which tries to connect to a custom DB table defined inside the Portal DB Schema. The application uses a JNDI lookup to JDBC Connection service and uses the default DataSource (SAPJ2EDB/SAPSR3DB) defined in Visual Admin. However it gives the folowing exception while running a SQL query on the custom table,
    SQLException::The SQL statement "SELECT COUNT(*) "ROWCOUNT" FROM "<Z Table Name>"" contains the semantics error[s]:
    - 1:34 - the table or view >><Z Table Name><< does not exist.
    I can connect and execute a SQL using the same defualt DSN on any of the standard Portal Tables like, ume_strings
    Any ideas where its failing for the custom table??
    I can create a new DSN in Visual Admin but would like to use the default DSN privided by the J2EE engine.
    Thanks
    Sandip Agarwal

    Hi,
    So you can execute that exact SQL statement for example via the SQL Query tool? Does that Z table actually exist in the DB? Are you just using the table name or do you fully qualify it like master.ztable (e.g. are you telling it what db to use?).
    Hope this helps,
    Simon

  • Whats the table name which connects BP and customer group code?

    Hi,
    Please let me know the table name which connects BP and its customer group code, i tried CRMM_BUT_SET0010 but i am not sure how to get "GUID for sets of business part"
    regards
    Vinay

    Hi Vinay
    Try instead table vision CRMV_BUT_SET0010. There you can use as search criteria the business partner number.
    However, if you want to understand the partner relation with guid_set value, just study how this table vision join is built.
    Kind regards,
    Garcia

  • What is the problem with native dynamic sql when counting rows in all table

    what is the problem with native dynamic sql when counting rows in all table?Giving an error "table or view does not exist". Thanks.
    DECLARE
    v_sql_string varchar2(1000);
    v_no_of_rows number;
    BEGIN
    for i in ( select table_name from all_tables )
    loop
    v_sql_string := ' select count(1) from ' || i.table_name;
    dbms_output.put_line( v_sql_string );
    --execute immediate v_sql_string into v_no_of_rows;
    end loop;
    END;

    Usually your problem can be described with 'Who cares'. I mean, for what reason do you do this? I doubt that there's a business need to get 100 % accurate answers for this. Normally such things are used to get a picture about the growth of data.
    Personally I would prefer to have up-to-date statistics for all tables and just query the number of rows from there. Sufficient for me in < 99 % of all cases.
    Just my $ .02...

  • Problem in creating a Generic Extractor on a custom 'Z' table

    This is regarding an earlier question I posted in sdn today. I am trying to create a generic extractor on a custom 'Z' table and iam getting the following message.
    Invalid extract structure template YBW_Z3PVR of DataSource YCNA_3PVAR_RPT
    Message no. R8359
    Diagnosis
    You tried to generate an extract structure with the template structure Z3PVR. This operation failed, because the template structure quantity fields or currency fields, for example, field MENGE refer to a different table.
    Procedure
    Use the template structure to create a view or DDIC structure that does not contain the inadmissable fields.
    Please advise. how do i solve this?

    Hi there,
    Is your Z* table working? It must be add check field for quantity field and currency field.
    Hope this helps.

  • Sql server problem - space in table name

    Hi
    I am getting the following error
    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: In
    correct syntax near 'Mapping'.
    when running the sql statement
    stmt.executeQuery("SELECT * from dbo.Smallworld US$CMF Mapping")
    in my JSP.
    Please suggest

    I don't know for sure if this will work, but MS SQL Server allows you to reference tables with spaces in the names using [] syntax:
    SELECT * from [CMF Mapping]

  • Possible new feature for SQL Data modeler: grouping tables by subfolder/

    When creating models of more than 500 tables. it would be nice if there was a way to be able group sets of tables into subfolders.
    while I might have a centralized schema, meaning the physical schema inside a database can have all 500 tables.
    for example:
    I might choose to group tables by product.
    HR folder contains all my HR_<tables>
    OrderEntry folder contains all my OE_<tables>
    Inventory folder conatins all my INV_<tables>
    this will help to view in the explorer window when searching for a table.

    I might choose to group tables by product.
    HR folder contains all my HR_<tables>
    OrderEntry folder contains all my OE_<tables>
    Inventory folder conatins all my INV_<tables>You can use subviews for that. Subview can be created in different ways:
    - drag&drop from browser
    - using selected objects on diagram
    - context menu for table in browser
    - context menu for subview in browser - you can create similar subview and use it as starting point
    - context menu for schema object in relational model - such subview becomes schema bound - you can update it later with tables added/removed to/from that svchema
    Philip

  • Error while deleting a custom group associated with role 'BIConsumer'

    Hi All,
    We are using OBIEE 11.1.1.6.2 and using the BISQLGroupProvider to get the groups from database tables for an user available in LDAP.
    I have a group named 'OBA Test Group' created in a database table. This group is linked to a user in another database table.
    In OBIEE enterprise manager, the group 'OBA Test Group' is associated with Application role 'BIConsumer'.
    In OBIEE enterprise manager , when i try to remove this custom group from the application role 'BIConsumer' i am getting the error as 'The search for role OBA Test Group failed'.
    In the admin log below is the error message:
    java.sql.SQLSyntaxErrorException: ORA-00918: column ambiguously defined
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:947)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1283)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1441)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3769)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3823)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1671)
    at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:135)
    at oracle.ods.virtualization.engine.backend.db.DBEntrySet2.hasMoreInternal(DBEntrySet2.java:284)
    at oracle.ods.virtualization.engine.backend.db.DBEntrySet2.initialize(DBEntrySet2.java:176)
    at oracle.ods.virtualization.engine.backend.db.BackendDB.getMatches(BackendDB.java:2108)
    at oracle.ods.virtualization.engine.backend.db.BackendDB.get(BackendDB.java:885)
    at oracle.ods.virtualization.engine.chain.Chain.nextGet(Chain.java:303)
    at oracle.ods.virtualization.engine.chain.BasePlugin.get(BasePlugin.java:89)
    at oracle.ods.virtualization.engine.chain.plugins.virtualattr.VirtualAttributePlugin.get(VirtualAttributePlugin.java:220)
    at oracle.ods.virtualization.engine.chain.Chain.nextGet(Chain.java:314)
    at oracle.ods.virtualization.engine.chain.PluginChain.runGet(PluginChain.java:211)
    at oracle.ods.virtualization.engine.chain.PluginManager.runGet(PluginManager.java:351)
    at oracle.ods.virtualization.engine.chain.PluginManager.runGet(PluginManager.java:316)
    at oracle.ods.virtualization.engine.backend.AdapterServiceInterface.getByAdapter(AdapterServiceInterface.java:582)
    at oracle.ods.virtualization.engine.backend.AdapterServiceInterface.get(AdapterServiceInterface.java:453)
    at oracle.ods.virtualization.engine.backend.BackendHandler.get(BackendHandler.java:429)
    at oracle.ods.virtualization.engine.chain.Chain.nextGet(Chain.java:295)
    at oracle.ods.virtualization.engine.chain.BasePlugin.get(BasePlugin.java:89)
    at oracle.ods.virtualization.engine.chain.plugins.uniqueentry.UniqueEntryPlugin.get(UniqueEntryPlugin.java:132)
    at oracle.ods.virtualization.engine.chain.Chain.nextGet(Chain.java:314)
    at oracle.ods.virtualization.engine.chain.BasePlugin.get(BasePlugin.java:89)
    at oracle.ods.virtualization.engine.chain.plugins.mlsfilter.MlsFilter.get(MlsFilter.java:116)
    at oracle.ods.virtualization.engine.chain.Chain.nextGet(Chain.java:314)
    at oracle.ods.virtualization.engine.chain.plugins.genericmapping.GenericMapper.get(GenericMapper.java:241)
    at oracle.ods.virtualization.engine.chain.Chain.nextGet(Chain.java:314)
    at oracle.ods.virtualization.engine.chain.PluginChain.runGet(PluginChain.java:211)
    at oracle.ods.virtualization.engine.chain.PluginManager.runGet(PluginManager.java:351)
    at oracle.ods.virtualization.engine.chain.PluginManager.runGet(PluginManager.java:316)
    at oracle.ods.virtualization.engine.chain.GlobalServicesInterface.runGet(GlobalServicesInterface.java:137)
    at oracle.ods.virtualization.operation.SearchOperation.process(SearchOperation.java:168)
    at oracle.ods.virtualization.service.DefaultVirtualizationSession.search(DefaultVirtualizationSession.java:191)
    at oracle.ods.virtualization.service.DefaultVirtualizationSession.search(DefaultVirtualizationSession.java:175)
    at oracle.security.idm.providers.libovd.util.LibOVDDirectSearchResponse.search(LibOVDDirectSearchResponse.java:302)
    at oracle.security.idm.providers.libovd.util.LibOVDDirectSearchResponse.getNextPage(LibOVDDirectSearchResponse.java:291)
    at oracle.security.idm.providers.libovd.util.LibOVDDirectSearchResponse.initSearch(LibOVDDirectSearchResponse.java:130)
    at oracle.security.idm.providers.libovd.util.LibOVDNonPagedSearchResponse.<init>(LibOVDNonPagedSearchResponse.java:59)
    at oracle.security.idm.providers.libovd.util.LibOVDRealm.searchRoles(LibOVDRealm.java:477)
    at oracle.security.idm.providers.libovd.LibOVDIdentityStore.searchRole(LibOVDIdentityStore.java:538)
    at oracle.security.jps.mas.mgmt.jmx.policy.JpsPolicyUtil.convertPortablePrincipal(JpsPolicyUtil.java:333)
    at oracle.security.jps.mas.mgmt.jmx.policy.JpsPolicyUtil.convertPortablePrincipal(JpsPolicyUtil.java:277)
    at oracle.security.jps.mas.mgmt.jmx.policy.JpsApplicationPolicyStoreImpl.addRemoveMembersToRole(JpsApplicationPolicyStoreImpl.java:566)
    at oracle.security.jps.mas.mgmt.jmx.policy.JpsApplicationPolicyStoreImpl.removeMembersFromApplicationRole(JpsApplicationPolicyStoreImpl.java:617)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at oracle.as.jmx.framework.standardmbeans.spi.OracleStandardEmitterMBean.doInvoke(OracleStandardEmitterMBean.java:1012)
    at oracle.adf.mbean.share.AdfMBeanInterceptor.internalInvoke(AdfMBeanInterceptor.java:104)
    at oracle.as.jmx.framework.generic.spi.interceptors.AbstractMBeanInterceptor.doInvoke(AbstractMBeanInterceptor.java:252)
    at oracle.as.jmx.framework.generic.spi.security.AbstractMBeanSecurityInterceptor.internalInvoke(AbstractMBeanSecurityInterceptor.java:190)
    at oracle.as.jmx.framework.generic.spi.interceptors.AbstractMBeanInterceptor.doInvoke(AbstractMBeanInterceptor.java:252)
    at oracle.security.jps.ee.jmx.JpsJmxInterceptor$2.run(JpsJmxInterceptor.java:358)
    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.jmx.JpsJmxInterceptor.internalInvoke(JpsJmxInterceptor.java:374)
    at oracle.as.jmx.framework.generic.spi.interceptors.AbstractMBeanInterceptor.doInvoke(AbstractMBeanInterceptor.java:252)
    at oracle.as.jmx.framework.generic.spi.interceptors.ContextClassLoaderMBeanInterceptor.internalInvoke(ContextClassLoaderMBeanInterceptor.java:103)
    at oracle.as.jmx.framework.generic.spi.interceptors.AbstractMBeanInterceptor.doInvoke(AbstractMBeanInterceptor.java:252)
    at oracle.as.jmx.framework.generic.spi.interceptors.MBeanRestartInterceptor.internalInvoke(MBeanRestartInterceptor.java:116)
    at oracle.as.jmx.framework.generic.spi.interceptors.AbstractMBeanInterceptor.doInvoke(AbstractMBeanInterceptor.java:252)
    at oracle.as.jmx.framework.generic.spi.interceptors.LoggingMBeanInterceptor.internalInvoke(LoggingMBeanInterceptor.java:524)
    at oracle.as.jmx.framework.generic.spi.interceptors.AbstractMBeanInterceptor.doInvoke(AbstractMBeanInterceptor.java:252)
    at oracle.as.jmx.framework.standardmbeans.spi.OracleStandardEmitterMBean.invoke(OracleStandardEmitterMBean.java:924)
    at oracle.as.jmx.framework.standardmbeans.spi.OracleStandardEmitterConfigMBean.doInvoke(OracleStandardEmitterConfigMBean.java:398)
    at oracle.as.jmx.framework.standardmbeans.spi.OracleStandardEmitterConfigMBean.invoke(OracleStandardEmitterConfigMBean.java:359)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at weblogic.management.mbeanservers.domainruntime.internal.FederatedMBeanServerInterceptor.invoke(FederatedMBeanServerInterceptor.java:349)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$16.run(WLSMBeanServerInterceptorBase.java:449)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.invoke(WLSMBeanServerInterceptorBase.java:447)
    at weblogic.management.mbeanservers.internal.JMXContextInterceptor.invoke(JMXContextInterceptor.java:263)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$16.run(WLSMBeanServerInterceptorBase.java:449)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.invoke(WLSMBeanServerInterceptorBase.java:447)
    at weblogic.management.mbeanservers.internal.SecurityMBeanMgmtOpsInterceptor.invoke(SecurityMBeanMgmtOpsInterceptor.java:65)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$16.run(WLSMBeanServerInterceptorBase.java:449)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.invoke(WLSMBeanServerInterceptorBase.java:447)
    at weblogic.management.mbeanservers.internal.SecurityInterceptor.invoke(SecurityInterceptor.java:444)
    at weblogic.management.jmx.mbeanserver.WLSMBeanServer.invoke(WLSMBeanServer.java:323)
    at weblogic.management.mbeanservers.internal.JMXConnectorSubjectForwarder$11$1.run(JMXConnectorSubjectForwarder.java:663)
    at weblogic.management.mbeanservers.internal.JMXConnectorSubjectForwarder$11.run(JMXConnectorSubjectForwarder.java:661)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.management.mbeanservers.internal.JMXConnectorSubjectForwarder.invoke(JMXConnectorSubjectForwarder.java:654)
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1367)
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
    at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222)
    at javax.management.remote.rmi.RMIConnectionImpl_1035_WLStub.invoke(Unknown Source)
    at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:993)
    at weblogic.management.remote.wlx.ClientProvider$WLXMBeanServerConnectionWrapper.invoke(ClientProvider.java:291)
    at weblogic.management.remote.wlx.ClientProvider$WLXMBeanServerConnectionWrapper.invoke(ClientProvider.java:291)
    at oracle.sysman.emas.model.security.EditAppRolesAdminBean.updateAppRole(EditAppRolesAdminBean.java:287)
    at oracle.sysman.emas.model.security.EditAppRolesAdminBean.updateAppRole(EditAppRolesAdminBean.java:214)
    at oracle.sysman.emas.pagemodel.security.identity.EditAppRolePageModel.applyChanges(EditAppRolePageModel.java:344)
    at oracle.sysman.emas.view.security.identity.EditAppRoleViewBean.applyCommand_action(EditAppRoleViewBean.java:127)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(Unknown Source)
    at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
    at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:920)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:406)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:197)
    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.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101)
    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:128)
    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.help.web.rich.OHWFilter.doFilter(Unknown Source)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)
    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.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    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)
    Please let me know if any more information is required.
    Regards,
    MKMOHANTY

    I suffered a similar situation, the solution I found was edit the file named "system-jazn-data.xml" and remove the entries that correspond to the role (expected to be delete). Of course take the precautions before do this actions (backup the file and do it in an test scenario).
    Regards.

  • Looking for a recursive answer using a intersection table. Possible CTE? Other method?

    Hello all,
    This is my first time on the forums, so please bear with me.  Im also a somewhat novice SQL coder but I have a question that I feel might be best answered my the more advanced folks on this forum.
    I have 3 tables, a user table, a group table and a membership table.
    Say:
    user_table
    +-------------------+
    | user_PK |
    | Id |
    | Name |
    | Description |
    +-------------------+
    Group_table
    +-------------------+
    | group_PK |
    | Id |
    | Name |
    | Description |
    +-------------------+
    Group_members
    +----------------------+
    | group_members_PK |
    | Group_ID |
    | Member_ID |
    | Member_type |
    +----------------------+
    The group_ID is linked to the Group_table.ID and the Member_ID can be either linked back to the group_table or user_table depending on the value of member_type.  
    It is possible to have nested groups, and each level of nesting can have users as well not just nested groups.  Sort of how the windows group nesting model works.
    I would like to end up with being able to have output that lists only users, their descriptions and their nested group path if any.
    If you need more clarification please let me know.   I know this maybe a simple thing, but Im unsure how to do it.  Thanks in advance.

    >> This is my first time on the forums, so please bear with me.  I am also a somewhat novice SQL coder but I have a question that I feel might be best answered my the more advanced folks on this forum. <<
    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your data. You should follow ISO-11179 rules for naming data elements. There is no generic “id”, “name, etc. in RDBMS. Tables have to have a key,
    but we do not put “_pk” on the name. Read a copy of https://www.simple-talk.com/books/sql-books/119-sql-code-smells/ so you will stop tibbling and other bad practices.  
    You should follow ISO-8601 rules for displaying temporal data. We need to know the data types, keys and constraints on the table. 
    Avoid dialect in favor of ANSI/ISO Standard SQL. And do not draw ASCII pictures! They do not compile. 
    >>The group_id is linked [sic] to the group_table.id [sic] And the member_id can be either linked [sic] back to the group_table or user_table depending on the value of member_type.  <<
    RDBMS has no links; that was in network databases in the 1970's. No wonder you want to use recursive CTEs; they are cursors 
    >> It is possible to have nested groups, and each level of nesting can have users as well not just nested groups.  Sort Of how the windows group nesting model works. <<
    Then you should use a nested sets model.  Since you did not post sample data, DDL  or correct specs, Google it.
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • New field (Customer group 5) to be added to the Catalog for Pricing.

    Hello friends,
    For the creation of a new Condition table, I require the field, KNVV-KVGR5 i.e Customer group 5 field present in Sales area data ->Extras -> Additional data in Customer master to be added to the Catalog of allowed fields since this field does not exist anywhere.
    I have already gone thru the threads available on adding New field for Pricing which has an example/detailed explanation with the Item category (PSTYVV) field.
    But the field I want i.e KNVV-KVGR5, is a part of Master data, so please guide me with the steps to follow to add this field in the field catalog and hence use it for creation of a new condition table.
    1) Should i add this field in KOMP (i.e item) or KOMK ( i.e Header) or KOMG?
    2) Should i include it in KOMKAZ or KOMPAZ?
    3) Should i create this field as data element or structure and what should be the domain used?
    4) For the value flow, should i use the Item -level user-exits or Header level mentioned in other threads?
    Please guide for the same urgently.

    Dear Friends,
    I was finally able to create a new field for Cust.grp.5 i.e ZZKVGR5 and added to Catalog to be used for Pricing.
    Then i faced a peculiar issue as below:
    For the business requirement, we defined a new tax condition table for determination of tax rates. For this, we are using both standard and custom fields to derive the correct tax rates in sales/billing documents like below
    A859: Country/Distr. Chl/Cust.grp.5/Material (Here Customer.grp 5 was added following the SAP Note: 531835)
    The field was inserted in the communication structure KOMKAZ which is included in both KOMK and KOMP.
    During the document processing, the pricing analysis view shows no value in the customer grp 5 field, though it is maintained for the customer used in the sales order. The code has been written in MV45 and RV60 both as guided in SAP Note: 531835. But the values are not flowing.
    Solved the above problem as below:
    M posting the answer to help the community for similar issue.
    Also, the new field tat i had added was Customer Grp 5 field of Customer master ->Extras->Additional field and I wanted the value to flow in the ZZKVGR5 field before the Pricing for the sales order was called.
    After trying all, we have finally fetched the value from KNVV-KVGR5 and got it moved to ZZKVGR5 field through ABAP coding.
    After this when i select/click on Pricing for a particular item, it gets picked up correctly and properly.
    Thanks to everyone for their valuable guidance and help.
    Regards to all.

  • Problem in custom fields in mm02/mm03

    Hi folks,
    i want to add the custom fields in mm01.iam able to add and update database.but iam facing problem in when iam checking the particular material in mm02/mm03.the custom field data is not correctly.for every material the last custom field data is showing. in database it is updating correctly but in mm02/mm03 it is displaying incorrectly.
    By the following code i can able to display the data in mm02/mm03.but my problem is the last created custom field(model) data is showing for all the materials when iam checking in mm02/mm03.
    here my custom field is "MODEL"
    for eg matnr-10 model -xx.
    matnr-20 model-yy.
    if iam checking in mm02/mm03 for matnr-10 model-yy it is displaying.in database it is updating correctly.
    can u please tell me how can i write a code to select the custom data(model data) for that particular material.
    Module get_data.
    if sy-tcode = 'MM02'.
    select single model into mara-model from mara
    where matnr = mara-matnr.
    elseif sy-tcode = 'MM03'.
    select single model into mara-model from mara
    where matnr = mara-matnr.
    loop at screen.
    if screen-name = 'MARA-MODEL'.
    screen-input = 0.
    modify screen.
    ENDIF.
    endloop.
    endmodule.
    Thanks in advance,
    Neelu.

    Just read the OSS note mentioned earlier.
    Symptom
    You want to integrate customer-specific fields in material master maintenance.
    Other terms
    SAPLMGMM, RMDATIND, ALE, CI_MMH1, EXIT_SAPLMGMU_001
    Solution
    To add customer-specific fields to an existing material master table (such as MARA or MARC) , you can proceed as follows as of Release 3.0C:
          1. Use an append structure to add the fields to the required table in the Dictionary (this is not a modification; for details, see the SAP document "ABAP/4 Dictionary"). In Release 3.x, the length of the field names must be the same as  the standard five character fields. This is necessary because of dynamic assignments. As of Release 4.0A, the lengths of the field names can be longer than five characters. If the changes of the fields should be recorded in the change document and taken into account during ALE distribution, set the 'Change document-relevant' indicator for the corresponding data elements. For table MARA in Release 3.x, you must also enhance the database view MARU because the database changes are carried out using this view. This small modification is no longer necessary as of Release 4.0A because the database view MARU is enhanced automatically when you enhance table MARA or the include EMARA (which is the data part of table MARA).
          2. Enhancing online maintenance in customized material master maintenance:
          Define a subscreen with your customer-specific fields in a customer-specific function group created as a copy of the standard function group MGD1.
          In Customizing, assign this subscreen to a maintenance screen using the "Copy customized material master" function. For details, see the Implementation Guide (IMG). As of Release 4.0A, program COPYMGD1 is available. You can use this program to create customer-specific function groups as required. This program is also incorporated in the Customizing function 'Configure customized material master'. Ensure that each field of the subscreen has a field statement in the flow logic, otherwise the data is not transported correctly. You can use subscreen SAPLMGD1 2002 as an example.
          If you want these fields to be subject to standard field selection, you must add new entries for them to the central field table for material master maintenance (T130F):
          Application examples for standard field selection:
          The field is mandatory and is to be flagged with a "?".
          The field belongs exclusively to the purchasing user department. Purchasing data and MRP data are both contained on one screen. However, the MRP controller is not to see the purchasing data.
          The following data is required for each field:
                a) Field name        (T130F-FNAME)
                b) Field selection group (T130F-FGRUP)
                Here, you should use a standard field group if the customer field is subject to the same field selection as the standard fields of the standard field group. If it is not, use a customer-specific field group.
                You must then check and, if necessary, modify the attribute of the field group using the function "Maintain field selection for data screens" in Customizing under "Logistics Basic Data -> Material Master".
                Field groups 111 through 120 that are not used in the standard system are reserved as customer-specific field groups. As of Release 3.0F, additional customer field groups are available. (For details, see the IMG).
                c) Maintenance status (T130F-PSTAT)
                List of the user departments that may maintain the field. You can display possible values by using the input help for the maintenance status field in the Customizing activity "Configure Material Master" when maintaining logical screens.
                d) Reference        (T130F-KZREF)
                This indicator must be set if the field from the reference material should be proposed during creation with reference.
    Note: You cannot yet use Customizing to enhance table T130F; you can use only transaction SE16 (Data Browser) or transaction SM31. Future releases will include a separate Customizing function for maintaining customer-specific fields. See Note 306966. By implementing this note you can add entries to table T130F within Customizing. This type of maintenance is possible as of Release 4.5B.
    You may change the entries for standard fields only with regard to the reference data and field selection group. Changing other data for standard fields constitutes a modification. Therefore, you cannot use the Customizing function "Assign Fields to Field Groups" to change this data.
    In addition, you must not add new standard fields to table T130F.
          3. If you want to maintain customer-specific fields using data transfer by direct input or via ALE distribution, proceed as follows:
          Add the fields to central field table T130F (see above).
          Add the customer-specific fields to the data structures for the data transfer (for example, BMMH1 for the main data).
          Also, add the customer-specific fields to the tables in which the incorrect data is stored during direct input. These tables have the same name as the corresponding master data table and also have the suffix _TMP.
          For example: If you add customer-specific fields to table MARA, you should add the same fields to table MARA_TMP.
          If you use ALE, you must also add fields to the IDoc. To process enhanced IDocs, you can use enhancement MGV00001 with customer exit EXIT_SAPLMV01_002 for creating the IDocs and customer exit EXIT_SAPLMV02_002 for posting the IDocs.
          Prior to Release 3.0E, enhancing structure BMMH1 constitutes a modification. In this case, you must add the new fields tot the end of the structure before the last field (SENDE = record end indicator).
          As of Release 3.0F, structure BMMH1 contains the customer include CI_MMH1, which is part of the enhancement MGA0001. Here, you must proceed as follows:
                a) Add the customer-specific fields to include CI_MMH1.
                The names of the fields in CI_MMH1 must be identical to those of the corresponding fields in material master tables MARA, MARC and so on.
                Important: The fields must be CHAR type fields. Therefore, create CHAR type data elements whose lengths are identical to the output length of your fields in  table MARA and so on. Use these data elements in include CI_MMH1, but use the field names from table MARA and so on.
                b) Activate include CI_MMH1.
                c) If you have not used customer structure ZMMH1 before, create it as a copy of structure BMMH1 and delete the standard fields that you do not require. You are not permitted to delete field STYPE and include CI_MMH1 when doing this. If you have already used structure ZMMH1, add include CI_MMH1 to it.
                d) Activate structure ZMMH1. This also adds the customer-specific fields to ZMMH1.
    Run program RMDATING. This program generates routines which are supplied to your customer-specific fields from the input file. As of Release 4.5A, you also need to activate the routines/function modules generated by program RMDATING (especially, the MAT_MOVE_BMMH1_XXXX modules). Details about this subject (especially the procedure when using customer structure ZMMH1) are described in the IMG for transferring the material data under item 'Maintain Transfer Structure'. Also, check the declaration of structure WA in program RMMMBIMC to see whether it is declared with sufficient length. If necessary, enhance the declaration (for the time being, this still constitutes a minor modification).
    In addition, lengthen domain DI_DATA with CHAR 5000. As of Release 3.1H, this has already been done.
    Important: When using customer-specific fields, you can use only structure ZMMH1 to transfer the data. Otherwise, after the next SAP upgrade which contains new standard fields in structure BMMH1, the input files no longer match. If you want these new standard fields to be transferred, add them after your customer-specific fields (the order of the fields in structure ZMMH1 does not need to be the same as the order of the fields in BMMH1).
    If you want foreign key dependencies or fixed domain values to be checked, or another check for a customer field, this is possible up to and including Release 3.0D only by modifying the corresponding check function modules. As of Release 3.0E, you can use function exit EXIT_SAPLMGMU_001 (SAP enhancement MGA00001) for these purposes.
    If you want to use engineering change management to schedule future changes for your customer-specific fields or you want to use the 'Display at Key Date' function, execute program GENERATE in addition. This program generates the necessary assignments for interpreting the change documents. With regard to engineering change management, you must read Notes 60281, 60973, and 48962.
    To date, it is not possible to integrate customer-specific tables in material master maintenance without making a modification. However, you can create customer-specific development objects containing the essential additional logic. You can then integrate these development objects in your system as part of only a minor modification.
    Regards

  • Group Conditoin based on Customer Group

    Hi Experts,
    I have used a Group Condition feature of Pricing. (Group Condition tick mark in Transaction - V/06)
    Now actual use of this Group Condition is somewhat like mentioned below as per the F1 Help.
    "For a group condition to be effective, the items must belong to a group. You can freely define the group to meet the needs of your own organization. The items can, for example, all belong to the same material group."
    Now I want to know that what are the different groups which are considered for applying Group Condition concept.
    I want to apply this Group Condition concept for the line items with the same customer group. (material group can be different for them).
    Is it possible? If yes, how can I set / configure it? If not, is there any other alternative for that (like GrpCond.Routine)?
    Thanks in advance.
    Kind Regards,
    HP

    Hi Krishna,
    Thannks a lot for reply.
    Actually I am aware about VOFM and how to write Routines also. My problem here is that I dont know what Structure or Internal Table should I play with in the Routine.
    For Example if I write a routine for a normal pricing we use fields XKWERT, XKWART or Structure XKOMV with field KWERT, KWART etc.
    So in the same way what should I change or use or update to change the Group Condition Check base?
    Like as in F1 Help, it is mentioned...
    "For a group condition to be effective, the items must belong to a group. You can freely define the group to meet the needs of your own organization. The items can, for example, all belong to the same material group."
    Here if the material group (KONDM) is same, it the group condition will work. That means somewhere I need to replace KONDM by KDGRP in the Routine. Where do I find this and replace KONDM by KDGRP?
    Thanks in advance.
    Kind Regards,
    HP

Maybe you are looking for

  • Webutil upload file problem

    I use webutil_file_transfer.Client_To_AS_With_Progress( c:\temp\mytxt.txt, '\\192.234.43.233\d$\myFolder' ,'Upload to Application Server in progress' ,'Please wait' ,false ,null); but I can't upload the file it always returns boolean false

  • Encrypting and Decrypting Data(Its Very Urgent, Please Help.)

    Hi, Can anyone tell me some idea in the below mentioned details. Iam creating a Function for Encrypting and Decrypting Data Values using DBMS_OBFUSCATION_TOOLKIT with UTL_RAW.CAST_TO_RAW by using Key Value as normal. But the problem, is it possible t

  • TS1702 Trouble installing apps

    Hello, I recently bought an iPod touch 5 and have been downloading games and apps for about three days now, but i'm having a problem. When installing a few of my games, they either quit installing and slowly start all over, or I get an error message

  • Linking the  Custom infotype 9501(hrp infotype) to HRP1050

    Hi experts,                     specially for ABAP-hr guys.....Can u pls help me in providing me the correct solution for the below:                    The standard Job Evaluation Infotype 1050 should be automatically updated when creations, changes

  • Context Menu in WAD - disable the data entry active entries

    Hi, I have the following problem. We created an input ready query and brought this query via WAD into the portal. Inside the Web Template we have a SAVE Button and a Button activation the Data Entry possibility. Now when executing the Web Template, t