Restrictions in Redefine Classes

In the site:
http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#RedefineClasses
we can read that the redefinition must not add, remove or rename fields or methods, change the signatures of methods, change modifiers, or change inheritance and that these restrictions may be lifted in future versions.
is it foreseen for a near future?

Hi,
If it is a sorted table and if the record already exists with key then you cannot add that record using APPEND statement.
if you want a record then you should add that record using INSERT statement.
And in Hashed table you cannot have duplicate records..
as there is a Hashed algorithm which manages the hashed table records...
There is also a difference in accessing the records of these tables...
The key of sorted can be Unique/ Non-unique...
whereas HASED is always Unique....
The records in sorted table are sorted by default with the key fields... where as hashed table records are stored upon its alogrithm...
You cannot sort a sorted table...
ie. .. You cannot use SORT keyword for table sort...
                         __Sorted Table         Hash Table__
Index Access             Yes                      No
Key Access               Yes                     Yes
Key Values              Unique                 Unique  
                            or not unique      
Preferred  Access     Mainly Key           Only Key
There is also difference in Runtime Environment... ie.. Access time of the records...
Hope this would be helpful
Regards
Narin Nandivada

Similar Messages

  • Redefining classes

    Hi,
    I would like to redefine classes during debugging in Developer, I think it's possible.
    But every time I get the same 'answer' :
    Debugger attempting to connect to remote process at localhost 4000.
    Debugger connected to remote process at localhost 4000.
    Debuggee process virtual machine is OJVM Client VM.
    Debuggee process is application server OC4J.
    To test JSPs or servlets, you must start a browser.
    Redefining classes is not supported by the debuggee virtual machine.
    OC4J is standalone and debugging classes are session and entity beans.
    I start OC4J with: -ojvm -XXdebug,port4000,detached,quiet -Xmx390M -jar -Djdbc.connection.debug=true oc4j.jar
    How can I change debuggee virtual machine to support Redefining classes ?

    try this:
    -select project
    -right click and select "properties".
    -go to "runner" tab/window.
    -select another "virtual machine" to run oc4j.
    bye.
    Davide

  • Classloader redefining classes

    Within my classloader, I'd like to define a class, examine its annotations, and then possibly redefine it with modified bytecode. I am running into trouble with linkage errors due to "attempted duplicate class definition". My theorized solution has been to have a "Temporary Class Loader" inside my classloader that defines classes, but should count as a different class loader context than the real class loader. This is not working, however, as this temporary class loader needs class-finding logic from my real class loader, and as such must have my real classloader as its parent.
    I'd really like to avoid using ASM to dig annotations out of bytecode. Is there a standard way (or perhaps some literature) on redefining classes in java? Perhaps there is a better way of doing what I'm attempting? Thanks for any insight.

    georgemc wrote:
    Why won't some of these classes be on the classpath? No amount of bytecode trickery is going to solve that. Is this because of the nested jar problem? If so, get that problem out of the way first, then start your instrumentation.I think we're saying the same thing. Yes, some classes will not be in the classpath, but inside nested jars instead. This has nothing to do with bytecode transformation.
    georgemc wrote:
    If so, get that problem out of the way first, then start your instrumentation.I'd like to do that, but I'm not sure specifically of the correct way to do it.
    Here's some pseudocode to illustrate what I have so far:
    class myClassLoader {
         loadClass(className) {
              if ( iAlreadyHave( className ))
                   return it;
              Class untransformedClass;
              byte[] untransformedClassBytes;
              if ( isOnTheClassPath( className )) {
                   untransformedClass = super.loadClass(className);
                   untransformedClassBytes = getResource(className);
              else {
                   untransformedClassBytes = goDigOutOfSomewhere(className);
                   //This is what doesn't work. What should I do instead of this?
                   untransformedClass = defineClass(untransformedClassBytes);
              Class toReturn;
              if ( untransformedClass.isAnnotationPresent(ClientClassThatNeedsAoP.class) ) {
                    byte[] transformedClassBytes = transform(untransformedClassBytes);
                    toReturn = defineClass(transformedClassBytes);
              else
                    toReturn = untransformedClass;
              store(toReturn);
              return toReturn;       
    }

  • Subclassing nested (private ns) classes at runtime

    A question for the AVM2 engineers here.
    I am the author of
    asmock, a dynamic object
    mocking framework, and am looking at a few features to add before
    1.0. One of the biggest features I'd like to support is the ability
    to mock a "nested" (private namespace) class.
    I know that subclassing a nested class outside the "code
    file" is illegal, but I have assumed that the AVM will let me do it
    as long as I setup the DoABC tag correctly.
    Based on dumps of valid SWFs that do this, there does not
    seem to be anything special about the classes. Both the child and
    the parent are declared with a private ns multiname (0x05) and the
    members are declared as public traits of the class. The ns used is
    copied directly from the parent (for nested classes), and is always
    "Filename.as$number". However, during loadBytes, I get a
    ValidateError: "Class
    MockRepositoryNestedClassIntegrationFixture.as$452::NestedClass
    could not be found".
    Is there anything I might have missed? Or, alternatively, is
    there an explicit AVM restriction that nested classes can only be
    subclassed within the SWF they were loaded from?
    Many thanks,
    Richard

    "richard.szalay" <[email protected]> wrote
    in message
    news:gm3rfo$f0h$[email protected]..
    >A question for the AVM2 engineers here.
    >
    > I am the author of
    http://asmock.sourceforge.net/,
    a dynamic object
    > mocking
    > framework, and am looking at a few features to add
    before 1.0. One of the
    > biggest features I'd like to support is the ability to
    mock a "nested"
    > (private
    > namespace) class.
    >
    > I know that subclassing a nested class outside the "code
    file" is illegal,
    > but
    > I have assumed that the AVM will let me do it as long as
    I setup the DoABC
    > tag
    > correctly.
    >
    > Based on dumps of valid SWFs that do this, there does
    not seem to be
    > anything
    > special about the classes. Both the child and the parent
    are declared with
    > a
    > private ns multiname (0x05) and the members are declared
    as public traits
    > of
    > the class. The ns used is copied directly from the
    parent (for nested
    > classes),
    > and is always "Filename.as$number". However, during
    loadBytes, I get a
    > ValidateError: "Class
    >
    MockRepositoryNestedClassIntegrationFixture.as$452::NestedClass
    could not
    > be
    > found".
    >
    > Is there anything I might have missed? Or,
    alternatively, is there an
    > explicit
    > AVM restriction that nested classes can only be
    subclassed within the SWF
    > they
    > were loaded from?
    I think you're more likely to find someone who knows the
    framework and the
    player in this kind of detail on the flexcoders yahoo group.

  • Search help for Asset Class in LDB ADA

    Hi,
    I have a requirement to restrict values in certain search help.
    It is Z transaction for Z SAP Query which has logical database ADA under itself.
    The field which search help I should restrict is Asset Class.
    As I found in LDB ADA, it is select option SO_ANLKL with type ANLAV-ANLKL. It leads me to search help SH_ANLKA which is defined for domain ANLKL.
    But actually, another search help is called. It looks like SH_ANKA, but I don't know if it is right one.
    I have two problems:
    1. How to identify what search help is called?
    2. How to restrict values in search help or maybe how to attach Z search help in this case (should I attach in query or is there a way to enhance LDB)?
    As I am new both to SAP Query and LDB's I am not sure where to start.
    Tnx in advance,
    Natasa

    Solved.
    For those who face the same problem, here is the solution.
    LDB ADA creates basic search help for select options Asset Class by reading ANKA-ANLKL and ANKT-TXK20.
    Output list can be restricted by adding an enhancement at the end of FM DD_SHLP_GET_HELPVALUES and changing the internal table OUTPUT_VALUES.
    If necessary, it can be conditioned by TCODE and for this purpose parameter can be set in the enhancement of FM DD_SHLP_CALL_FROM_DYNP by reading content of the field HELP_INFOS-TCODE.
    Regards,
    Natasa

  • Thoughts: Versioning, Class Reloading, ClassLoaders

    Recently on Ted Neward's weblog there was a discussion about the limitations of the ClassLoader architecture: http://neward.net/ted/weblog/index.jsp?date=20030215 Ted offers some suggestion for improving the architecture, and it got me to thinking about a few related changes that I think might make the classloading more powerful and allow for quicker, cleaner updates of Java while giving you more control over how the updates affect your existing code. Now bear with me on this, it's not too well thought out, but I figured I'd start it and see what you guys all think.
    (There are Three Changes)
    The first change would be to build version-checking/loading directly into the classloader architecture. With version-checked loading, Sun (and developers) can deploy incremental updates without the need for delivery of an entirely new jdk/jre (e.g. rt.jar).
    The second change is what could come out of using a version-checked loading method: You could set your code to use specific versions.
    Example:
    In the new Isolate API, it will be necessary to update java.lang.System to work differently than the current version. Let's say I want to run old apps as I always did, and some new apps using the new version of System. Simply start the JVM with -Djava.runtime.version=1.3 (or whatever) for runtime packages and -Djava.version.package=com.mycompany.data[1.3+] for third party packages. With this information the classloader automatically loads the proper version.
    The third change (again drawing from the previous two):
    Allow the System ClassLoader to redefine classes (not just arbitrarily, bear with me here). To fully realize the power of byte-code engineering, and dynamic runtime classes/decisions, I believe classes need to be able to be redefined. HOWEVER, I think this would HAVE to be coordinated with the versioning system. Let me explain:
    When a class is defined it would automatically be given a version (whether or not you specify one) within the VM - maybe considered a "Runtime version number." When you redefine a class, you would have to specify a new version (there would be a required syntax for this that Java "forces" you to follow so we all would do it the same). CodeSources would then (in the jar?) specify whether they can use that new version, maybe like this:
    compatibility:
          package com.me.data.* + //ANY VERSION
          package com.me.io.* 1.2+ //1.2 OR LATER As well, it would be done on a major/minor version system, so any minor versions would be assumed to be compatible with anything taking the major version of that (So if I can use 1.3, then any 1.3.1 has to be compatible with my code) Otherwise, these classes continue to use the earlier version.
    One thing that might also be added (not sure if nec), is some extra methods (similar to Serialization methods?) to facilitate the reloading. So if my class uses a package that can be updated, then I have the ability to implement the method public void packageReloaded(String packageName, String version)? (Not sure this would be needed) but even if I do not implement that method, the JVM could still update the class, in a default manner. This is not well thought out and would need more time, but I think this could make Java VERY powerful in terms of ability to handle dynamic systems and architectures. (What issues are raised by something like this?)
    As well, it would need security to be better thought out. I'm thinking that CodeSource-based permissioning is a poor concept when you're dealing with dynamically created classes that have no file (they're generated at runtime). So there would need to be an update of the security architecture for this - and a maybe way to ensure that only Sun/and/or the owner of this particular JVM installation updates the package java.* for example.

    I don't know enough about class loading and such to really critique your suggestions, but I know the ability to upgrade only certain packages would definitely be nice. The only non-technical drawback that comes to mind is vendor support. Right now, an application server has a set of Java versions that it supports. With this change now maybe it supports Java 1.5 plus the NIO package version 1.6 plus javax.servlet 1.7, etc you get the idea. But that's just an inconvenience, not a roadblock.

  • Javaagent and class data sharing with Java 6.0

    Hi,
    I'm trying to use instrumentation (using the -javaagent) but
    I noticed that when I run the my application with JDK 1.6 it loads all system
    classes from the "shared objects file" and the transformer has no chance to run.
    With JDK 1.5 it works fine, as well as in debug mode of JDK 1.6.
    Is this normal or it is a bug? If it is normal, how should I instrument the system classes?
    Thanks in advance,
    Genady

    I just found that the reason it was working for me with JDK 1.5 is that my classes.jsa file was corrupted for some reason.
    So the behavior is consistent for both JDK 1.5 and 1.6.
    I also found that if I add
    Can-Redefine-Classes: true to the manifest (even if I don't do any class redefinitions) it causes the class data sharing to be disabled.
    This workaround is good enough for me.
    Genady

  • LRT224 OpenVPN Server Security Subnet Mask restriction

    I would like to use a Security Subnet Mask of 255.255.252.0 with OpenVPN Server, but the LRT224 limits my choices to the masks shown in the snippet below. I don't understand this restriction. If Class B, 255.255.0.0, is allowed, why not allow sub Class B like 255.255.252.0, 255.255.248.0, etc? I know I could switch to 10.x.0.0/255.255.0.0, but I don't want to re-address my existing network. 

    This is a good thought. Now, this got me wondering as well. I would like to believe this is as designed. Maybe some sort of  product limitation.

  • Varinat configuration

    Variant Configuration
    Variant configuration is for manufacturing complex products in which customer determines the features of the product. Objective of variant configuration is to react quickly to customers' requirements.
         Here it needs not to create separate material for each variant of a product. When companies introduce variant configuration this often goes beyond a business process re-engineering project. Variant configuration offers an opportunity to restructure product structures for which then processes are defined. This has a direct impact to the core areas such as marketing and product data management.
    2     Advantages of VC
    &#61623; No need to Create separate material master for each variant combination.
    &#61623; Super BOM and Super Routing is enough for representing all possible Variants and Operations.
    &#61623; Able to react more flexible to customer demands.
    &#61623; Increase Information exchange between sales, engineering and production.
    3     What is Configurable Material?
    &#61623; A material with different features or characteristics and options is known as configurable material. Example: PC, Car.
    &#61623; Configurable materials are either created in a material type that allows the configuration (n the standard system, the material type KMAT) or they are given the indicator Configurable in the material master record.
    4     Master Data used for VC
    Following Objects are used as Master data for Variant configuration.
    1. Super BOM
    2. Super Routing
    3. Characteristic
    4. Class
    5. Object Dependencies
    6. Configuration Profile
    7. SD Condition records
    4.1 Super BOM
    Super BOM Contains all the components for producing configurable product. It contains both variant as well as non-variant parts required for producing configurable product.
    4.1.1 Super BOM configuration
    Super BOM can be created either one of the following methods.
    &#61623; Create BOM with class Item of 200-class type that contains all characteristic of a configurable material.
    &#61623; Create BOM with all possible materials as its components. Then assign /define dependencies to each component.
    The different between this two method is
    &#61623; BOM with class item, no need to assign or define object dependencies. Instead of that each material is classified in material master itself using class 200.
    &#61623; For both cases all characteristics are assigned to class 300 which is again assigned to KMAT material in order to trigger configuration in configuration profile.
    4.1.2 Super BOM with Class Item
         Class items used to control the selection of variant parts in a BOM. Variant parts are classified in a class, and the class is entered in the BOM as a class item. When you configure the material, the class is replaced by a suitable variant part.
    4.1.3 Advantages of using Class Item in BOM
    &#61623; Only one item for the class is enough, instead of several items for the individual variant parts.
    &#61623; No need to create and assign selection conditions.
    &#61623; Able to classify additional objects in the class at any time, without having to change the BOM.
    4.1.4 Steps involved in super BOM with Class
    – Define all Characteristics and its Values assign it to Class with type 200.
    – Assign characteristic Values to materials by Classification  material
    – Assign class 200 with material instead of assigning all BOM items.
    – Create and Assign class 300 (with same characteristics) with configurable product using configuration profile.
    4.1.5 Super BOM with Material Components
    This bill of material (BOM) of a configurable material contains all the components that are required to manufacture the material. The BOM contains components that are only used in specific variants (variant parts), as well as components that are used in all variants (non-variable parts).
    4.1.6 Steps involved in super BOM with Material Components
    – Define all Characteristics and its values assign it to Class with type 300.
    – Assign Class with configurable material in Configuration profile.
    – BOM is created with all variant and non-variant items.
    – Define interdependency between objects (Characteristic, BOM item, Routing Operation etc…) by using Object Dependencies.
    – Assign class 300 with configurable product using configuration profile.
    4.2   Super Routing
         A configurable routing describes the production process for all variants of a product. Instead of creating a routing for each variant of a product, you can create operations for one routing, or a "super" routing.
    It is possible to maintain Object dependencies for following in super routing:
    &#61623; Sequences
    &#61623; Operations/sub-operations
    &#61623; Production resource/tool assignments
    The routing is configured by system, when order is created for KMAT material.
    4.3   Characteristic
    Characteristic is used to define the features of a configurable material. To enable to use characteristics to configure a material, assign the material to a class of class type 300. The customer can choose from among different options for each characteristic.
    &#61623; Characteristics describe the properties of objects. The values of a characteristic specify these properties.
    &#61623; Value assignment to characteristic may be single value or multiple value with required entry or restrict able entry.
    &#61623; In characteristic it is also possible to use table name and its field name in order to change the Object quantity or values. I.e. BOM item quantity or Operation time, which is known as ‘reference characteristic’.
    &#61623; In Restriction screen allowed Class types are entered i.e. for what are the class this characteristic may used. In general for Variant configuration class 200 and 300 are used.
    &#61623; It is also possible to assign Dependency to characteristic values maintained in Characteristic.
    4.4 Variant Class
    &#61623; In Variant configuration, Class is used to hold the characteristics that describe about configurable material. Class type to determine which object types can be classified.
    &#61623; Class is used in variant configuration if the class has a class type that supports variant configuration. In Customizing for Classification, the Variant class type indicator must be set for the class type. In the standard system, this is class type 300.
    4.5   Dependencies
    &#61623; Dependencies restricts the combinations of options i.e. characteristic that are not allowed. It also select exactly the right BOM components and operations to produce a variant.
    &#61623; It also describe the interdependencies between characteristics and characteristic values
    &#61623; It control which components are selected from a bill of material (BOM) and which operations are selected from a task list
    &#61623; It also changes the values of fields in BOM items and operations during configuration.
    4.5.1 Global and Local Dependencies
    Global dependencies have the following properties:
    &#61623; They are independent of any object.
    &#61623; They are identified by a name that you assign, and are maintained and managed centrally.
    &#61623; If you change a global dependency, the change affects all the objects where the dependency is used
    Local dependencies have the following properties:
    &#61623; They are only available to the object for which you create them
    &#61623; You cannot use the central maintenance functions on these dependencies, and you cannot allocate them to other objects
    &#61623; They are identified by a number assigned by the system, not an external name
    Local dependencies are only used where certain dependency will not be needed elsewhere
    The differences between global and local dependencies are as follows:
    &#61623; Global dependencies are created centrally and can be assigned to several objects.
    &#61623; Local dependencies are created for one object and can only be used with this object
    4.5.2 Declarative and Procedural Dependency
    &#61623; In Declarative dependencies the result are explained logically
    &#61623; Declarative dependencies are easier to trace than procedural dependencies, because the point in time when the dependency is processed and the sequence in which the dependencies are processed are not relevant.
    &#61623; Example for Declarative dependency:
    - Constraint
    - Actions
    - Preconditions (provided that they contain no non-declarative expressions)
    - Selection conditions (provided that they contain no non-declarative expressions)
    &#61623; In Procedural Dependency result depends on the processing sequence and the point in time when the dependency is processed.
    - Procedures
    - Preconditions (only if they contain non-declarative expressions)
    - Selection conditions (only if they contain non-declarative expressions)
    4.5.3 Dependencies Types
    The SAP System supports the following types of dependencies:
    &#61623; Preconditions
    &#61623; Selection conditions
    &#61623; Procedures
    &#61623; Actions (obsolete)
    &#61623; Constraints
    4.5.4 Preconditions
    Preconditions can be allocated to the following objects:
    &#61623; A characteristic that you want to hide
    &#61623; A characteristic value that you want to hide
    Preconditions are used to hide characteristics and characteristic values that are not allowed and thereby ensure that the configuration of an object is consistent. In the precondition, it is also possible define the circumstances under which a characteristic or value is hidden.
    A precondition is fulfilled if the condition you enter is either true or not violated.
    4.5.5 Selection Conditions 
    Selection conditions used to ensure that all the objects relevant to a variant are selected:
    &#61623; Selection conditions determine which variants require a specific component or operation
    &#61623; Selection conditions determine when it is mandatory to assign a value to a characteristic
    Selection conditions may allocate to the following objects:
    &#61623; Characteristics
    &#61623; BOM items
    &#61623; Operations in task lists
    &#61623; Sub-operations
    &#61623; Sequences of operations
    &#61623; Production resources/tools (PRTs)
    A selection condition is fulfilled if the condition in it is unambiguously true.
    4.5.6 Procedure
    Procedures can be assigned to the following objects:
    &#61623; The characteristic value that triggers the procedure
    &#61623; The characteristic that triggers the procedure
    &#61623; The configuration profile of the configurable object
    Procedure is used for following purposes.
    &#61623; A procedure is used to infer a value for a characteristic, you enter the variable $SELF before the characteristic.
    &#61623; Procedures can overwrite values that are set by other procedures.
    &#61623; Procedures are always used for pricing (see Variant Conditions).
    Processing Sequences of Procedure
    If an object has more than one procedure, a processing sequence is used to define the point when the procedure is processed.
    4.5.7 Action
    Actions are used to infer characteristic values. An action is processed as soon as the characteristic to which it is assigned has a value. It is not possible to overwrite the characteristic values that are set by an action.
    The following Objects can assign to action:
    &#61623; The characteristic value that triggers the action
    &#61623; The characteristic that triggers the action
    &#61623; The configuration profile of the configurable object
    &#61623; Configuration profile
    &#61623; BOM items – to change the quantity
    &#61623; Operations in task lists – to change the standard values
    Since Action is lead to serious system performance problems, it is replaced by Procedure and Constraint.
    4.5.8 Constraint
    This dependency type is mainly for intensively interactive configuration tasks and for configuration tasks in which you need to take into account the dependencies between the characteristics of several objects. The main purpose of a constraint is to monitor the consistency of a configuration.
    Constraints have the following distinguishing features:
    &#61623; Constraints are used to describe the dependencies between completely different objects and their characteristics.
    &#61623; Constraints are used to store information on which conditions must be fulfilled if the configuration is to be consistent.
    &#61623; Constraints are not directly allocated to individual objects. They are grouped together to form dependency nets and allocated to a configurable material in the configuration profile.
    &#61623; In constraints, you enter objects in their general form of expression, without using $SELF, $ROOT, or $PARENT to identify objects. As a rule, you refer to objects in constraints by entering the class to which the objects are allocated.
    &#61623; Constraints are declarative dependencies. The processing sequence of constraints and the point in time when constraints are processed is not relevant.
    &#61623; Constraints are not processed in a specific order. You cannot determine when a specific constraint is used.
    In any processing situation, a constraint is only processed once. If a value that is relevant to the constraint is changed, the constraint is triggered again.
    4.5.8.1 Structure of Constraints
    There are four sections in a constraint. Each part is identified by a keyword. A colon follows the keyword. Each section ends with a period.
    OBJECTS:
    In this section, you enter the objects that are relevant to the constraint. You must enter the relevant objects in all constraints. You can also define variables for objects or characteristics.
    CONDITION:
    The condition entered here must be fulfilled in order for the constraint to be used. You do not need to enter a condition in a constraint. You can leave out the keyword CONDITION: if required. However, if you enter the keyword you must enter a condition.
    RESTRICTIONS:
    In this section, you enter the relation that must exist between the objects and characteristics if the configuration is to be consistent. You must enter a restriction in a constraint.
    INFERENCES:
    In this section, you enter the characteristics for which characteristic values are to be inferred. The main purpose of constraints is to check the consistency of a configuration. Usually, values are only inferred if you make an entry in this section.
    For reasons of performance, only use constraints to infer values if it is really necessary. Constraints are grouped together to form dependency nets. The dependency net is allocated to a configurable material in the configuration profile.
    4.5.9 Dependency Net:
    Constraints are grouped together in dependency nets. For this reason, the variant configuration menu does not support a function for creating constraints directly. So that only constraints are defined within a dependency net.
    5     Configuration Profile
    The configuration profile for a material controls the configuration process in sales order. Configurable profile also used to define central settings for configuring the object. Using this profile it is possible to hide some of the characteristic value defined during characteristic creation. We can assign any number profile for a configurable material in which selection is based on either priority or manual selection during configuration.
    By defining a filter in the configuration profile, possible to determine the scope of the BOM items to improve system performance when exploding the BOM. The filter is active in high-level configuration, in result-oriented BOMs, and in SET processing.
    5.1     Filters in Configurable Profile
    Following objects can be used as filter:
    &#61623; Object type
    Class, material, document, text
    In the standard system, all object types are selected and therefore exploded in the configuration. Deselect the object types that you do not want to be displayed.
    &#61623; Item category, for example, stock or non-stock item
    All item categories in the configuration are exploded in the standard system. Remove the selection for the item categories you do not want to be displayed.
    &#61623; Item status
    You maintain the status of a BOM item in maintain BOM dependent on its usage.
    All items are displayed regardless of their item status in the standard system. However, only the items with this status are displayed when you select specific item statuses. Items are not displayed that do not have the selected status.
    &#61623; Sort string
    You can assign sort strings for BOM items in maintain BOM. You can restrict the display of the BOM items by using these sort strings.
    Only items that carry sort strings are checked and only those that match are displayed. Items that have no sort string are always displayed.
    5.2     Component availability in the configuration profile
    The availability check is just a snapshot, telling that whether the materials required are in stock at this moment. Several users can access the same material at once. This means that supply problems can sometimes be overlooked.
    Example: Only 2 pieces of a material are in stock, but the material is used in 3 BOMs. The availability check does not detect a supply problem. The availability check for all 3 BOMs shows 2 pieces in stock.
    5.3      Process Overview
    There are different processes for configurable materials in sales documents. These processes can be defined on the Configuration initial screen tab in the configuration profile, by choosing the Configuration parameter tab.
    The Process are described in the following scenarios:
    Planned/Production orders
    This processing type is used to describe variant products whose configurable materials are assembled using planned and production orders. The bill of material (BOM) can have single-level, multi-level, or no explosion.
         Sales Order (SET)
    This processing type is used to describe variant products that comprise salable configurable materials. These products are supplied together, but are not assembled in a production order. Only sales-relevant BOM items are exploded in the sales order.
    Order BOM.
    You use this processing type if you want to make customer-specific changes to the BOM of a material that you configure in the sales order. In the sales order, you assign values to the characteristics of the header material, but the BOM is not exploded in the sales order.
    6     Material Variant and Planning Material
    6.1     Material Variant
    &#61623; Material Variant is an material that can arises from individual Configuration of a configurable product and can be kept in stock
    &#61623; For variants that are required frequently, we can create material variants, which can be produced without a sales order and kept in stock. When a sales order is received, it is possible to check whether the variant required is in stock, so that it can deliver immediately.
    &#61623; For material variants, a separate material master record is created with a material type that is kept in stock.
    &#61623; Separate BOM and routing for a material variant, or you can link the material variant to the BOM and routing of the configurable material. The correct BOM items and operations are determined from the characteristic values assigned to the variant.
    6.2     Planning Material
    &#61623; Planning Material is a material, which contains all the non-variant parts.
    &#61623; By using planning material all non-variants are procured / produced before sales order.
    &#61623; It is also possible for Planing the Planning Materials without reference to any sales requirement.
    &#61623; Planning material is planned separately using strategy 65 and produced before sales order creation.
    7 Planing in VC
    The following strategies are used for planning configurable materials and its variant parts.
    Make to Order production of Variants
    – Make to Order for Material Variant. - 26
    – Planning Variants without final Assembly- 55
    – Planning Variants with planning Material - 65     
    – Make to order with configurable material.-  25
    – Characteristic Planning with dependent requirement - 56  and
    – Assembly Processing with Characteristic  Planning - 89
    8 Variant Configuration: (Object Diagram)
    9 Variant Pricing and  Surcharges
    9.1     Sales BOM
    A bill of material (BOM) describes the different components that together create a product. A BOM for a bicycle, for example, consists of all the parts that make up the bicycle: the frame, the saddle, wheels, and so on.
    When you enter the material number of a bill of materials that is relevant for sales order processing, the system displays the material that describes the whole bill of materials as a main item. The individual components are displayed as lower-level items.
    There are two ways to process a bill of materials in Sales. Once you have entered a bill of material in a sales order, the system runs pricing, inventory control, and delivery processing at: Main item level if the material is assembled, or - Component level if the material is not assembled.
    9.2     Processing at Main Item Level (ERLA)
    If you want the system to carry out pricing, inventory control, and delivery processing at main item level, enter ERLA in the Item category group field of the Sales: sales org. 2 screen in the material master record of the finished product. This means that the components only function as text items and are not relevant for delivery.
    9.3     Processing at Component Level (LUMF)
               If you want the system to carry out pricing, inventory control, and delivery processing at the component level, enter LUMF in the Item category group field of the Sales: sales org. 2 screen in the material master record of the finished product. In this case, only the components are relevant for delivery. During processing the system automatically creates a delivery group. The latest delivery date among all the components becomes the delivery date for the entire delivery group.
    10   Configuration of VC
    10.1 Production Planning and Control
    10.1.1 Creating Material
    Use
    The purpose of this activity is to create the material masters for the materials required in this scenario.
    Procedure
    Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Materials Management &#61614; Material Master &#61614; Material &#61614; Create (General) &#61614; Immediately
    Transaction Code     MM01
    In Material Master of KMAT material following settings are maintained:
    &#61623; Configurable material indicator in Basic Data must set.
    &#61623; MRP type is PD.
    &#61623; Lot size – EX ( Lot for lot size)
    &#61623; Availability check – 02
    &#61623; Planning Strategy 25 is entered in MRP 3 screen view.
    &#61623; Item category group 0002 or 0004 is to be given in sales view.
    10.1.2 Creating Bill of Material
    Purpose:
    &#61623; The purpose of this activity is to create bills of material (BOMs) for the configurable material which is known as ‘super BOM’
    &#61623; Super BOM comprise all the variant as well as non-variant parts required for producing configurable material.
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Production &#61614; Master Data &#61614; Bills of Material &#61614; Bill of Material &#61614; Material BOM &#61614; Create
    Transaction Code     CS01
    &#61623; The Create Material BOM: initial screen appears. On this screen, data that identifies the bill of material are maintained as well effectivity data.
    &#61623; In the Material field, the configurable material for which super BOM need to create is entered.
    &#61623; Plant and BOM usage is entered. In general BOM usage 1 for production and 3 is for Universal.
    &#61623; In Component screen list of variant and non-variant parts are entered along with that quantity is entered based on Base qty. of the configurable material.
    &#61623; It is also possible to enter a class as a BOM component with item category ‘class Item’. This class must hold all characteristics and also classified with each material.
    &#61623; Class type 200 and 300 can be used as a class item.
    Following Procedure is followed for assigning class with BOM as a class Item.
    &#61623; Enter the item category for class items in BOM.
    &#61623; Make entries in the fields that identify the class
    – Class types
    – Class
    &#61623; Enter the quantity.
    - Enter a unit of measure if appropriate.
    - The system determines the unit of measure from the additional data of the class.
    -  If a unit of measure without a dimension is maintained in the additional data of the class, you cannot change this unit.
    10.1.3 Creating Characteristic
    Purpose:
    &#61623; Characteristic is created with possible values.
    &#61623; It is also possible to use table name and its field name in order to change the Object quantity or values. Ie BOM item quantity or Operation time. This is known as ‘Reference characteristic’.
    &#61623; For changing BOM quantity Characteristic is created with table name STOP-MENGE is used.
    &#61623; For Variant pricing purpose SDCOM-VKOND is used.
    &#61623; Characteristics allow describing and distinguishing between objects, such as length, color, or weight within the classification system.
    Procedure
    SAP Menu     Logistic->Centralfunction->Environment->classification->Chracteristics
    Transaction Code     CT04
    &#61623; From the classification menu, choose Characteristics.
    &#61623; Enter data on the initial screen.
    &#61623; In the Characteristic field, enter a name for new characteristic
    &#61623; Enter a change number if you want to create the characteristic using engineering change management.
    &#61623; To do this, choose processing type Create characteristic.
    &#61623; You can also copy the data of an existing characteristic. Use the pushbutton Create by copying. Enter the name of a characteristic you want to copy.
    &#61623; Confirm the entries.
    &#61623; On the Basic data tab page enter the most important control data for the characteristic.
    &#61623; You must maintain the basic data for all characteristics. All other screens are optional.
    &#61623; In the formatting data for value assignment, whether a characteristic is single-value, multiple-value, or retractable is defined. It is not possible change the value assignment indicator once it has set. It applies wherever the characteristic is used.
    &#61623; The data type of the characteristic determines which values can be entered for the characteristic. I can any one of the following
    - Characters
    - Numeric
    - Time format/Date format
    - Currency format and
    - User defined data type.
    &#61623; For numeric characteristic it need to maintain that whether interval values to a numeric characteristic, or only individual values need to be maintain in Basic Data screen itself.
    &#61623; Languages in which characteristic want to describe are entered.
    &#61623; Choose the tab page Values.
    &#61623; Enter values in the entry fields. Enter each value in a separate field.
    &#61623; The values must match the format that you defined on the Basic Data screen. You can enter up to the number of characters that you defined in the format.
    &#61623; If your characteristic is an alphanumeric characteristic, enter a language-dependent value description. You can enter up to 30 characters.
    &#61623; It is not possible to  enter a language-dependent description for numeric values
    &#61623; It is also possible to define one value as a default value. This value then appears as a default in characteristic value assignment functions
    &#61623; Additional value indicator determines that whether values that are not defined as allowed values can be assigned to a characteristic
    &#61623; The following value check strategies are available in value maintenance screen.
    - Allowed Values:
    - Check Tables
    - Function module
    - Catalog character
    &#61623; Allowed values permits only values defined in characteristics maintenance are used to check a characteristic value
    &#61623; Check table permits only values entered in characteristics maintenance is used to check a value
    &#61623; Function module entered is used to check characteristic values.
    &#61623; Value catalog entered is used to check characteristic values
    &#61623; Documents, such as drawings or photographs, with characteristics can be linked in additional data screen. Before link a document to a characteristic, it must create a document info record in the document management system.
    &#61623; In this screen it also possible to restrict or hidden or displaying only allowed values to characteristic.
    &#61623; It is possible to that characteristic can be only assigned to particular class type by assigning type in restriction screen.
    &#61623; To change a characteristic selects the pushbutton Change in characteristics after entering the characteristic. To display the characteristic chooses the pushbutton Display.
    10.1.4 Creating Class:
    Purpose:
    &#61623; A class is used to hold the characteristics that describe a configurable material. By linking the class to the configurable material, you allow the material to be configured using the characteristics of the class.
    Procedure
    SAP  Menu     Logistic->Central function->Environment->classification->Class
    Transaction Code     CL01
    &#61623; Class holds all characteristics describe configurable material.
    &#61623; Class with class type 300 is used in configuration profile.
    &#61623; On basic Data screen class description, its status is entered. Status determines:
    &#61623; whether a class can be maintained
    &#61623; whether objects can be allocated to a class
    &#61623; whether the class can be used for selecting objects
    &#61623; Class group is used to group together related classes and also for finding classes quickly via a matchcode.
    &#61623; ‘Same Classification ‘indicator determines whether system check for identical characteristic values. In this case, where several objects are assigned that have the same values for all characteristics to the same class. Depends upon indicator system give warning or error message or no message.
    &#61623; Keyword string is used for finding a class via matchcode.The description entered on the basic data screen serves as the first keyword
    &#61623; On characteristic screen list characteristic which has to attach with configurable material is entered.
    &#61623; Using document tab screen it is possible to assign documents related to configurable object.
    &#61623; On additional data screen whether or not this class can be used as a class component in bills of material. If it is yes then Unit of measure in which stocks of the material are managed. The system converts all the quantities you enter in other units of measure (alternative units of measure) to the base unit of measure and resulting item category which will replace this class item in BOM (i.e. Stock, Non-stock item etc…).
    10.1.5 Creating Dependency
    Purpose
         Dependency describes the interdependencies between characteristics and characteristic values and it controls which components to be selected from a bill of material (BOM) and which operations to be selected from a task list. It also changes the field values in BOM items and operations during configuration.
    Procedure
    SAP  Menu     Logistic->Central function->Variant Configuration->dependency->Single Dependency->Create Dependency
    Transaction Code     CU01
    &#61623; From the variant configuration menu, choose Dependency -> Single dependency-> Create
    &#61623; In initial screen name of the dependency is entered. If dependency need to create for a specific date, enter a change number. It is also possible to create dependency by copying from existing dependency.
    &#61623; On basic data screen the following data are required to enter
    - A language-dependent description for the dependency
    - Also possible to enter descriptions in different languages by choosing Descriptions.
    - Long texts for the dependency, choose Extras -> Documentation.
    - In the standard R/3 System, the status ‘In preparation’ when a dependency is created first time. The status is set to ‘Released’ when the source code is syntactically correct.
    - Finally suitable dependency type is selected.
    &#61623; In Dependency editor the source code for the dependency is entered. Once the source code is syntactically correct, the source code is saved.
    &#61623; Now the status of the dependency is turns to ‘Released’. Save the Dependency and exit.
    10.1.6 Changing Bill of Material (Assign Dependencies)
    Purpose:
    By assigning dependencies to BOM components, it is possible to restrict the selection of irrelevant variant parts.i.e correct BOM components are get selected at result of configuration. It is also possible to change the component quantity depends upon characteristic value changed.
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Production &#61614; Master Data &#61614; Bills of Material &#61614; Bill of Material &#61614; Material BOM &#61614; Change
    Transaction Code     CS02
    &#61623; Dependencies are assigned with respect to characteristic for each variant part.
    &#61623; Dependencies are created either locally within object or globally which can be assigned to any objects.
    &#61623; In BOM General Item overview screen choose the component in which dependency need to assign and choose menu path Extras -> Dependency -> assignment of dependency for assignment.
    &#61623; It also possible to enter dependency directly in BOM itself by choosing Extras -> Dependency -> dependency editor.
    10.1.7 Creating Configuration Profile
    Purpose
    &#61623; Configuration profile used for assigning configurable material with variant class (300) and also used to maintain some central settings.
    &#61623; It is possible to assign more than one configurable profile for one KMAT material.
    &#61623; The selection of profile depends upon either by priority or by manual selection.
    &#61623; It is also possible to assign dependencies to configurable profile.
    &#61623; Class with type 300, which hold the entire characteristics of KMAT material, are assigned to each profile
    Procedure:
    Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Production &#61614; Master Data &#61614; Material Master &#61614; Environment &#61614; Configuration Profile &#61614; Create
    Transaction Code     CU41
    &#61623; From the Variant Configuration menu, choose Configuration profile->Create.
    &#61623; A dialog box will be displayed. The object name is entered. Confirm your entries.
    &#61623; On profile overview screen the following data need to be entered.
    &#61623; Profile name and the class type of classes used for configuration. In Customizing for the Classification System, the class type must be defined as a variant class type.
    &#61623; Choose Goto -> Class assignments or the ‘Class assignment ’ pushbutton to assign the object to a class.
    &#61623; In the classification screen, names of the classes are entered.
    &#61623; It is possible to restrict allowed characteristic  values for the configurable object if required.
    &#61623; Release of profile is possible only if configurable object is assigned to a class. To go to the detail screen, where you define further settings, choose the Profile detail pushbutton or double-click on the profile.
    10.1.7.1 Optional Settings on the Profile Overview
    &#61623; Organizational Areas
    You can specify organizational areas for configuration. If you restrict a profile to specific organizational areas, you only see the characteristics that are relevant to your area when you configure the object.
    You can change how characteristics are displayed according to organizational area for your user on the value assignment screen.
    &#61623; Priority of Configuration Profiles
    You can create several configuration profiles for a configurable material. The profile with the lowest number has the highest priority.
    If you define several profiles for an object, you see a dialog box for selecting a profile when you start configuration. The profile with the highest priority is at the top of the list.
    The priority is also relevant if you use Application Link Enabling (ALE) or intermediate documents (IDocs) to run configuration, rather than dialog mode. In this case, the profile with the highest priority is selected for the object. Profiles that have no priority are at the top of the list, because they automatically have priority 0.
    10.1.7.2 Profile Detail
    &#61623; Configuration Profiles for Materials
    The configuration profile has several screens. Depending on what you enter for the BOM explosion and configuration process, fields are shown or hidden.
    The parameters you maintain for a material apply to the material as a header material in a BOM structure. You cannot define separate settings for use of a configurable material as an assembly in a BOM.
    - By choosing the Assignments pushbutton, you can assign dependencies to the configuration profile. You also see this pushbutton on the basic data tab, once at least one dependency is assigned.
    &#61623; Basic Data Tab
    - In the basic data, click on the profile overview data.
    - If configuration process need to starts with a Start logo, documents are assigned such, as a graphic showing the product you want to configure, to the variant class.
    - Configuration Initial Screen Tab
    &#61623; Configuration parameters
    - The parameters for BOM explosion and the configuration process in the sales order are specified here.
    - BOM application must be entered, if BOM explosion ‘None’ is selected rather than single and multi level explosion is selected.
    - By entering a level of detail for a multi-level configuration, system performance will be improved.
    - It is also possible to define a filter and set the indicator for an availability check on assemblies.
    10.1.8 Changing Configuration Profile: Add User Interface Settings
    Purpose
    Settings for the configuration editor in user interface.
    - An interface design is used to group characteristics together on the value assignment screen.
    - Here it also possible to define object-specific settings for functions in the configuration editor. These settings are defaults for configuration, and can be overwritten for your user in the configuration editor.
    - For all configuration parameters except BOM explosion ‘None’, manually select the screens for the configuration editor and define which screen configuration starts with. The start screen must be one of the allowed screens.
    - The indicator for the configuration browser independently of the other start screens can be selected, because the browser is an additional screen section.
    Configuration Profiles for Objects Other than Materials
    - Object-specific settings for displaying characteristics and characteristic values in the configuration editor can be defined. These settings are defaults for configuration, and can be overwritten for your user in the configuration editor.
    Procedure
    Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Production &#61614; Master Data &#61614; Material Master &#61614; Environment &#61614; Configuration Profile &#61614; Change
    Transaction Code     CU42
    10.1.9 Configuration Simulation
    Purpose:
    &#61623; Configuration simulation is used to check the configuration model. In the configuration simulation, the whether or not Object structure is created correctly and dependencies are working fine is checked.
    &#61623; Simulation of Sales/Engineering
    - The configuration parameters in the configuration profile apply. Whether the configuration is simulated from the sales point of view or the engineering point of view is defined.
    - If select Sales & distribution is selected the configuration in a sales document will be simulated (sales order or quotation), so the BOM explosion depends on the settings in the configuration profile.
    - If Engineering is selected, the configuration in order BOM processing will be simulated. The configuration and BOM explosion depend on the configuration parameters in the same way as when maintaining an order BOM. For example, we cannot configure the header material, because the configuration is copied from the sales order.
    &#61623; Simulation of a Planned Order
    - On the characteristic value assignment screen, we can choose Planned order to display the components that are determined in material requirements planning (MRP) according to the characteristic values assigned. This is especially relevant to assemblies whose BOMs are exploded in MRP, not in Sales & distribution (for example, assemblies with the BOM explosion setting None in their configuration profile).
    Procedure:
    SAP R/3 menu     Logistics &#61614; Production &#61614; Master Data &#61614; Bills of Material &#61614; Environment &#61614; Variant Configuration &#61614; Environment &#61614; Configuration Simulation
    Transaction Code     CU50
    &#61623; On the initial screen of the configuration simulation, select BOM to display the entire structure on the result screen.
    &#61623; If you have created more than one configuration profile for a material, you see a dialog box. Select a profile and choose Continue. If you want to call detailed information on the profile, choose Profile Detail or double-click on the profile.
    &#61623; To display the task list of an assembly on the result screen, select the assembly and choose View &#61614; Objects &#61614; Task list.
    &#61623; You see the operations or activities in the task list that was selected for the assembly during configuration.
    &#61623; Operations that have been changed by dependencies have an information icon next to them. You can display changes by choosing Information.
    &#61623; To return to the BOM explosion, choose View &#61614; Objects &#61614; BOM
    10.2 Sales and Distribution
    10.2.1 Creating Condition Records - VA00
    Purpose:
    The purpose of this activity is to create condition records for VA00.
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Sales and Distribution &#61614; Master Data &#61614; Conditions &#61614; Select Using Condition Type &#61614; Create
    Transaction Code     VK11
    &#61623; Create price for each value of the characteristics by select using condition type VA00.
    &#61623;  Create the Price for the condition type that represents these types of the standard-delivered condition type for this functionality is “VA00.” 
    &#61623; Condition type VA00 requires as key fields the sales Organization, distribution channel, and material number of the configurable.
    &#61623; Condition type PR00 used to maintain base price of the configurable material.
    &#61623; Using VA01it is also possible to maintain Surcharges and discounts.
    10.2.2 Condition records for Variant Price and Surcharges
    Purpose
    Condition records allow you to store and retrieve pricing data in the system. All the pricing elements of your daily business - the prices, discounts, and surcharges for freight and taxes - that you want to use for automatic pricing must be stored in the system as condition records. You can define as many condition records as you want for the different pricing elements for any validity period.
    You create condition records for all the pricing elements that the system takes into account during automatic pricing. During document processing, the system transfers data from the condition records and determines the amounts for individual pricing elements (prices, discounts and surcharges) and the final amount for the sales document
    Procedure
    10.2.2.1 Create a characteristic for the Pricing
    - Create Pricing characteristic like CAR_Pricing and go to additional data tab give SDCOM table name VKOND field name.
    SAP Menu     Logistic->Centralfunction->Environment->classification->Chracteristics
    Transaction Code     CT04
    10.2.2.2   Assign  the characteristic to the class
    Assign given characteristics to class, In variant configuration, a class is used to hold the characteristics that describe a configurable material. By linking the class to the configurable material, it allows the material to be configured using the characteristics of the class. In the standard R/3 System, the class type for configurable material is 300.
    SAP  Menu     Logistic->Central function->Environment->classification->Class
    Transaction Code     CL01
    10.2.2.3 Create a dependency that triggers the price
    A Dependency is a rule that defines how the different options and option values, represented by characteristics and characteristic values, relate to one another.  To create a dependency, follow the menu path
    SAP  Menu     Logistic->Central_function->VariantConfiguration->dependency->Single Dependency->Create Dependency
    Transaction Code     CU01
    10.2.2.4   Assign the dependency to the characteristic value that triggers the price
    For example eCar2002, the value “V8” refers to the engine selected by the customer.  Therefore, the dependency must be linked to the value “V8” of the characteristic that represents the engine type.  To do this, go to the master data record of the characteristic CAR_ENGINE
    SAP Menu     Logistic->Centralfunction->Environment->classification->Chracteristics
    Transaction Code     CT04
    Go to the “Values” tab.  From there, select the“V8” entry and use the menu path Extras Object dependencies Assignments, which brings you to the screenshot to the right; if you have created a global dependency, you can link it to the characteristic value.2 Once the dependency has been assigned, the information on this screen, such as the description (“Engine price”), will default to the information entered when you created the characteristic.
    10.2.2.5    Create variant price
      Create price for each value of the characteristics using condition type (or transaction VK11).  Create the Price for the condition type that represents these types of the standard-delivered condition type for this functionality is “VA00.”  Condition type VA00 requires as key fields the sales Organization, distribution channel, and material number of the configurable.
    In the same way using condition type VA01 is also used to maintain prices for surcharges and discounts.
    10.2.2.6   Creating the output condition records for sales
    Output types are used to represent various forms of output in the SAP system. Examples of output types in Sales and Distribution processing are order confirmations, freight lists, and invoices. You use the output type to control how the output should be transmitted, for example whether an order confirmation should be sent via EDI, or be printed
    10.2.3 Creating Output Condition Records: Sales
    Purpose:
    Output types are used to represent various forms of output in the SAP system. Examples of output types in Sales and Distribution processing are order confirmations, freight lists, and invoices. You use the output type to control how the output should be transmitted, for example whether an order confirmation should be sent via EDI, or be printed
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Sales and Distribution &#61614; Master Data &#61614; Output &#61614; Sales Document &#61614; Create
    Transaction Code     VV11
    &#61623; Choose Edit >Key combination
    &#61623; Select the key combination for which condition records are to be created.
    &#61623; Choose Enter.
    &#61623; Enter the appropriate key for each condition record, according to the key combination you selected.
    &#61623; For transmission medium 1 (Print output) or 7, you can maintain the communication data. To do this, choose Communication.
    &#61623; Save the condition records.
    10.2.3.1 Creating Output Condition Records: Billing
    Purpose
    The purpose of this activity is to create output condition records for billing. Output types are used to represent various forms of output in the SAP system. Examples of output types in Sales and Distribution processing are order confirmations, freight lists, and invoices. You use the output type to control how the output should be transmitted, for example whether an order confirmation should be sent via EDI, or be printed
    Procedure
    1. Access the activity using one of the following navigation options:
    SAP Menu     Logistics &#61614; Sales and Distribution &#61614; Master Data &#61614; Output &#61614; Billing Document &#61614; Create
    Transaction Code     VV31
    Enter an output type.
    &#61623; Choose Edit >Key combination
    &#61623; Select the key combination for which condition records are to be created.
    &#61623; Choose Enter.
    &#61623; Enter the appropriate key for each condition record, according to the key combination you selected.
    &#61623; For transmission medium 1 (Print output) or 7, you can maintain the communication data. To do this, choose Communication.
    &#61623; Save the condition records.
    10.2.4 Order BOM
    Purpose:
    Products that are made to order in plant engineering and construction and mechanical engineering are generally very complex and are specific to one customer. For this reason, you cannot define a BOM entirely in advance. Once you have created your sales order, you need to make manual changes to the BOM by creating an order BOM especially for the sales order, without changing the original BOM.
    The sales order, sales order item, and material number identify an order BOM. In variant configuration, you can work with 2 types of order BOM. The difference is in the way they are saved.
    Knowledge based order BOM
    The order BOM is saved as a copy of the super BOM with manual changes and dependencies.
    Result Oriented BOM
    The configuration result is saved as an order BOM, with manual changes but without dependencies.
    Procedure (For knowledge based BOM)
    SAP Menu     Logistics &#61614; Production Planning &#61614; Master Data &#61614; Bills of Material -> Order BOM  Maintain (Multi-Level)
    Transaction Code     CU51
    &#61623; The Create Order BOM: initial screen appears.
    &#61623; Enter the sales order number, the order item, the material number and the BOM usage
    &#61623; If you want to use material BOM, or an existing order BOM to copy from, go to step 4. If you want to create an order BOM without a reference, click and go to step 7
    &#61623; You cannot use a configurable BOM as a reference
    &#61623; Click on copy order BOM or Click on copy material BOM
    &#61623; The Copy material BOM or Copy order BOM dialog box appears
    &#61623; Enter the data required and click . The item overview appears, for the bill of material you are using as a reference.
    &#61623; Enter new items and alter items if necessary. Entering items in order BOMs is similar to entering items in material BOMs. However, you

    <u><i><b>Steps for SD Variant Configuration</b></i></u>
    Some light on Variant Configuration in Detail.
    The procedure is as follows:
    1. Create a Material - KMAT type with Item category (002)
    2. Create Charateristics in CT04 - Zbike, where in values mention the Color of the bile like Red, Blue etc
    3. Create another characteristics in CT04 - ZPrice, where directly go the additional data tab and maintain the table SDCOM and field VKOND (ABAP Dictionary it will ask for)
    4. Assign these two characteristics to a Class in CL01 - ZBikeclass ( Type 300) in characteristics tab page.
    5. Then go to CU41 Configuration profile select the material and enter the description click on the class assignment ie assign Zbikclass.
    Now go back to CT04 - enter Zbike -go to values- select Red- go to extras - Other Dependencies - Select Procedure enter in front 10 write - $self.ZPrice='Red' and save
    6. Now go back go to extras - Other Dependencies - assignments and assign relationship ( by default it will come just save)
    7. Now select Blue- go to extras - Other Dependencies - Editor - Select Procedure enter in front of 10 write - $self.ZPrice='Blue' and save
    8. Now go back go to extras - Other Dependencies - assignments and assign relationship ( by default it will come just save)
    9. Now go to VK11 - Enter VA00 (Condition)(For Std RVA001 Pricing Procedure) - enter variant Red and Blue give the rates accordingly and create the sales order.
    Reward if it helps
    Regards,
    Anbu

  • How to extract data from cluster table

    Hi, experts,
    Here I want to extract change documents, which is from tables CDHDR(header) and CDPOS(line items). The problem is that CDPOS is a cluster table so that I can't create a view to develop a generic data source.
    I have search on the forum and some one said generic data source based on function module was a choice, but I think coding FM is so complex, especially including delta implementation.
    Could any one give me some advice? or give me some coding samples?
    Thanks a lot!

    Dear Sam,
    I would suggest you to have a look at the function module CHANGEDOCUMENT_READ u2013 you can use this function module as a core in the developed function module for generic extractor. Unfortunately, the suggested function module can not handle import parameters for field names, so the strategy which can be applied here is to use this function module to fill the internal table based on restrictions on object class and table name and then go through filled internal table and delete records which are not relevant for fields KOFIZ or ABRSPERR.
    As for delta implementation, would you please advise if delta relevant field based on timestamp generated on date and time of the change document is sufficient for your needs? If so then you can use fields UDATE and UTIME to generate timestamp on them including the field containing generated timestamp to the extract table. Next step here is to choose this field as delta relevant field in the Generic DataSource maintenance (TCode RSO2).
    Please inform me if this solution suits you or if you have any questions or concerns regarding it.
    My best regards,
    Vadim

  • NullPointerException in JDWP during HotSwap

    I'm developing an application that needs to redefine classes at runtime, for which I'm using the HotSwap feature of the Sun JVM. I've written a HotSwap class that conects the application to itself via the SharedMemoryTransportService, obtains the VirtualMachine instance for the JVM and contains this method for swapping a single class:
         public void swap(String className, byte[] classBytes) throws IOException {
                   Map<ReferenceType, byte[]> classDefinitions = new HashMap<ReferenceType, byte[]>();
                   classDefinitions.put(getReferenceType(className, vm), classBytes);
                   vm.redefineClasses(classDefinitions);
    I then wrote a load of tests that take various classes and insert lines of code at the top of their methods. Most of these seemed to pass fine, with the inserted code executing successfully, but some caused the following NullPointerException to occur:
    java.lang.NullPointerException
         at com.sun.tools.jdi.JDWP$VirtualMachine$RedefineClasses$ClassDef.write(JDWP.java:1473)
         at com.sun.tools.jdi.JDWP$VirtualMachine$RedefineClasses$ClassDef.access$300(JDWP.java:1452)
         at com.sun.tools.jdi.JDWP$VirtualMachine$RedefineClasses.enqueueCommand(JDWP.java:1508)
         at com.sun.tools.jdi.JDWP$VirtualMachine$RedefineClasses.process(JDWP.java:1490)
         at com.sun.tools.jdi.VirtualMachineImpl.redefineClasses(VirtualMachineImpl.java:289)
         at com.sun.tools.jdi.HotSwap.swap(HotSwap.java:71)
         at uk.ac.ic.doc.cuXca.persistence.core.persistencehandlers.ObjectClassEnhancer.enhance(ObjectClassEnhancer.java:92)
    ... my classes
    For ages I thought that I was generating incorrect bytecode, but then I noticed that the majority of these exceptions disappeared if I made sure an instance of the swapped class existed before the swap (by adding a call to Class.newInstance()). However, some of my tests still throw the above exception and I'm confused as to why. To make matters worse, it seems to be caused by some kind of race condition, because different tests fail each time. My test code is not multithreaded, and I'm certain that the code I'm generating is valid. The whole newInstance thing makes me think that sometimes the classes have not been resolved prior to the swap. Has anyone who has used hotswapping before had any experience of this exception and been able to fix it?

    The following tests produce some interesting results (each block is a separate run and enhance(..) is my method for altering the given class and swapping it):
    enhance(A.class); // fails with NullPointerException
    A a = new A();
    enhance(A.class); // succeeds
    A a = new A();
    enhance(A.class); // succeeds
    enhance(B.class); // fails
    A a = new A();
    enhance(A.class); // succeeds
    B b = new B();
    enhance(B.class); // fails with NullPointerException
    A a = new A();
    B b = new B();
    enhance(A.class); // succeeds
    enhance(B.class); // succeeds
    From these, it seems to be that all classes to be swapped must be loaded before the first swap occurs, however then I found the following:
    A a = new A();
    enhance(A.class); // succeeds
    B b = new B();
    enhance(B.class); // fails with NullPointerException
    C c = new C();
    enhance(C.class); // fails with NullPointerException
    A a = new A();
    enhance(A.class); // succeeds
    B b = new B();
    C c = new C();
    enhance(B.class); // fails with NullPointerException
    enhance(C.class); // succeeds
    Here swapping C succeeds if it was loaded before the swap of B failed! I'm guessing the state of whether classes have been loaded or not is being cached and only being refreshed on the first swap (when the connection to the JVM is first made) and when the exception occurs. Unfortunately I can't rely on loading all my classes before the first swap since I'm swapping user classes that I have no control over.
    Any help greatly appreciated!

  • Problem in transporting contents of a table

    Hi All,
    I want to transport the contents of a table from development server to quality server.
    I used transaction SE16 and clicked on display entries. It gave a menu called transport entries where it gave a prompt for a workbench request. I created the workbench request for the table entries.
    When I was transporting the request, I checked the task under the request.  The request was in the modifiable task. It contained the entry for table contents namely R3TR TABU TABLENAME . After I released the task, I found that this entry for table contents namely R3TR TABU TABLENAME disappeared. Please could someone tell me why this is happening.
    Please could someone tell me if we should create a workbench request or a customizing request for  transporting the contents of a table.
    Apart fom SE16, which other method can we use to transport contents of a table ?
    Regards,
    Sushanth H.S.

    Hello Sushant
    >But even after doing so, when I clicked on SE16 and clicked on transport entries in the display menu of the >table, it was asking me for a workbench request and not a customizing request. Please could you tell me >the reason for the same.
    Based on this description your scenario looks like this:
    You have a z-table (now client-dependent) and maintain this table using a maintenance or table view.
    The only explanation I have for the behaviour of the system is that your client-dependent z-table has NOT delivery class = 'C' (Customizing) but probably 'A' (Application table instead).
    That's ok because I usually do define z-tables having delivery class = 'A' even if the table contents is used for some kind of customizing.
    Reason: I do no want to encounter all the restrictions for C-class tables in productive system.
    However, if your z-table contains very sensitive data you may explicitly choose delivery class = 'C'.
    Regards
       Uwe

  • How to change varient values dynamically in APD

    Hi Friends,
    I have created an APD ,to this APD i am feeding 4 query out puts.For this 4 querys i am using the varients, i wante to change the varient values i.e date field/date ranges fields dynamically.pl.let me know if any b'dy worked such scnarios.
    Thanks in advance.
    Sirisha.

    sk_java wrote:
    Hi,
    I need to know how we can change the values of annotation dynamically.Annotations in source code must be compile-time constants. The annotation objects returned by the runtime are immutable.
    That said, there are a few ways to get the effect of changing annotation values. First, you can use the redefine classes API and then getting a new annotation object will have the updated values. Also, an annotation type is just a specialized kind of interface and that interface can be implemented by your own classes too.

  • After deleting enhanced view still the bsp application is showing in se80

    Hi,
    I enhanced one component then after some reason i deleted the enhanced view at that time it's asked do you want to delete bsp application i click on yes then after also still i showing in se 80 under my package it's showing.
    after deleting enhancement view and deleted enhancement component.
    after deleting these total still all the z classes are showing in sm24. if i enhance from starting on wards from enhancing component and enhancing view i need to new bsp application name because previous bsp application is still showing and some of the context class. after transporting in to quality server this component is showing there is context class which i redefine in the development and view is not defined in the run time repository. why it's showing these errors in quality server.
    my guess is in dev i deleted which are deleted still the classes and bsp application are there older one if provide new bsp classes also.
    what are important things we need to follow if delete the view enhancement and deleting the component enhancement. because if i transport after deleting with new bsp application name and with a previous existing class with a new request also it's not working quality server. because lot of classes are generating automatically in when we redefine the context class in development so these classes are not there in quality server.
    please guide me if delete any enhanced view and component why still bsp application and redefine z classes are showing in se80 and se24. because if enhance newly also and redefine also it's considering previous bsp application and previous redefine classes.
    what are precautions i need to take if i delete enhanced view and enhance component.please guide me.
    jemmi.

    Jemmi,
    You should follow the following SAP Note in deleting enhancements. There are a few steps to be done in SM34. If we just delete through the wizard we are bound to have these issues.
    SAP Note 1122248 - Consultation:Procedure when dealing w/framework enhancements
    Briefly, these are the steps to delete the enhancemnet-
    1) In SM34, view BSPWDVC_CMP_EXT. Select enhancement set and then select enhancement definition. You will see your component there.
    2) Select your component and in left side navigation click Controller Substitutes.
    3) A list of the enhanced views are displayed.
    4) Select the views and delete it. Before you delete make a note of the BSP application these views are attached to. Hopefully, you attached them in a Z BSP application
    5) Go to SE80. Select the Z BSP application and delete it.
    Go through the SAP Note to understand the process in more detail.

  • Vendor classification based on its activity

    Hi..
    I have a requirement where i want to sort all the vendors based on its nature of activity. for e.g i have 10 vendors who provide only services and 15 vendor which supply office consumable, and 15 vendor which supply hig value material,
    NOW if i need to have a list of vendors which provides only service how do i achive it.
    is there any field in vendor master where i can specify the nature of activity.
    Suggestion will be worth appreciation

    go to ct04 and create a characteristic for lets say ur service vendor.dont use any table field.give the initial inputs in basic data tab.
    in the value tab give all the vendor codes and description.in restriction tab give class type as 010.
    now create a class thru cl02 for the characteristic with class type 010 and assign the vendor characteristic here.
    now thru cl20n and class type 010 assign each vendors seperately with the created class and assign the objects here.
    now whenever u use any vendor related reports or transaction use selection criteria as vendor by class,give the class name,class type and proceed.
    regrards,
    indranil

Maybe you are looking for

  • Wifi is not auto connect after resume from sleep

    I keep my Mac Book Pro up-to-date with software updates. I recently update to OS X 10.8.3 (12D78). Since then when I open my laptop after closing it and put it to sleep the wifi connection does not re-connect automatically. I have to click on the wif

  • BCS Program Termination - Database Inconsistency

    We are using SEM-BW 4.0, SAP-BW 3.5, running BCS. We are trying to change the Breakdown Category of an FS Item going forward. The system allows to change and save the Breakdown Category as needed, but when we attempt to post a manual entry or run the

  • How to submit the parent window from child window

    Hi, I am looking out for a solution. I have a main JSP page and on clicking a button in the page a pop up window will be displayed, which is too a JSP page. Finally i should submit both Popup window JSP page and the parent window JSP page, when click

  • Help with Gimpshop crashing please

    I need help getting Gimpshop to work on my macbook pro. Please see this archived topic, which completely describes what is happening for me: http://www.google.com/url?sa=t&source=web&cd=2&ved=0CB0QFjAB&url=http%3A%2F%2Fdi scussions.apple.com%2Fmessag

  • Nokia ovi suite 3.0.0.290 bluetooth

    i have a big problem " i have a windows 7 64 bit when i install my ovi suite i found  (use bluetooth instead) disable what can i do to connect my phone via bluetooth Attachments: Doc2.doc ‏131 KB