Make a immutable extension to a mutable object.

I have a mutable object that i would like to extend into a immutable version. The problem is in the mutable object's constructor, because it calls a method that mutates it's fields. What is everyone's thoughts on the following 'pattern'/solution below?. While this works perfectly fine for my tests and I'm pleased with the results I have an issue with calling it an immutable extension because i don't know if i can guarantee the immutability of it. Also please note that I do not want to change the mutable object's code as it is a java.util class and that the example below is only an example.
public class MyMutableObject
    private int number;
    public MyMutableObject(){
        incrementNumber();
     * Mutates the current state!
    public void incrementNumber(){
        number++;
    public int getNumber(){
        return this.number;
public final class MyImmutableObject extends MyMutableObject
     * synchronized should take care of the thread safty.
    public static synchronized MyImmutableObject newInstance(){
        return new MyImmutableObject();
     * when true the class is immutable.  we will take advantage of
     * the default value of a boolean(false) in order to determine
     * its state.
    private final boolean sealed;
    private MyImmutableObject(){
        super();
        sealed = true;
    @Override
    public void incrementNumber() {
        if (sealed)
            throw new UnsupportedOperationException("Object is Immutable!");
        super.incrementNumber();
}

How is this functionally different from
public final class MyImmutableObject extends MutableObject {
    public MyImmutableObject() {
        super();
    public void incrementNumber()
    throws UnsupportedOperationException {
        throw new UnsupportedOperationException("Object is immutable");
I see no value in either the sealed variable or the factory constructor.
The synchronization, in particular, is a waste of time. Immutable classes
are thread-safe by definition. As for the variable, since MyImmutableObject
is final, and the only constructor seals it, there's no point.
I'd say your class does enforce immutability as written. I'm not
particularly fond of throwing exceptions when the immutable contract
is violated, but you don't appear to have many other options.
Also, ==tschodt

Similar Messages

  • Immutable and mutable object

    Here I want to post some solutions to immutable and mutable objects. First I'll brifely discribe the case when only one type (immutable or mutable) is need accross the application. Then, I'll describe case when both types is using. And finally, the case when only some object can modify this object, while for others it is immutable one. That will be illusrated on the objects discribing current date as number milliseconds from Zero Epoch Era (January 1, 1970).
    Let's start from an exampe for Immutable Object.
    public final class ImmutableDate {
        private final long date;
        public ImmutableDate(long date){
             this.date= date;
        public long getDate(){
            return date;
    }The class is final, so it is imposible to extend it (if it is possible to extend it, it will be possible to add some mutable data-members to the class. Data-member is final to avoid changing (if it is Object it is just warning to programmer not to change it, compiler just can check that reference wasn't changed, but state of this data-member can be changed). There is no method that returns reference to the data-member outside the ImmutableDate. (if data-member was immutable object,it would be possible to return refference to it, if data-member was mutable object and it was possible to revieve reference to it, than it was possible to change the state of data-member through setter function).
    Now, lets consider that we need only MutableDate. The implementation is obvious:
    public  class MutableDate {
        private long date;
        public MutableDate (long date){
             this.date= date;
        public long getDate(){
            return date;
        public void setDate(long date){
          this.date=date;
    }This is regular class.
    The question is how what should I do in the case I need both[b ]Mutable and Immutable Object. It is possible to use the above way of implementation. But there are following problems wih this:
    * Code is not re-usable. For example, getDate() is implemented twice.
    * Implementation is closed to the interface.
    * There is no abstraction such a Date. Usable, when we doen't care whether object is mutable or immutable.
    It will be also nice to have a mechanism to recieve immutable copy from any object. It can be implemnted as getImmutableDate() function. This function is usable, when we have Date object (or MutableDate) at hand and want to store it in HashMap. So immutable copy is needed. It also usable as deffencive copy of MutableDate, if want one to transfer Date to simebody we don't want to change the state.
    Second and third points leads us to declare interfaces:
    public interface Date {
      public long getDate();
      public ImmutableDate getImmutableDate(); 
    public interface ImmutableDate extends Date  {
    public interface MutableDate extends Date {
      public void setDate(long date);
    public final class ImmutableDateImpl implements Date, ImmutableDate {
    public class MutableDateImpl  implements Date, MutableDate {
    }Lets talk more on the first point. In this short example it will look like it is not bug disadvantage. But think, that there are ten data members and setting other value isnot trivvial (for example, other private data members should be recalculated) and you'll realise that this is a problem. What solution OO proposed in such a cases? Right, inheritance. But there is one pitfalls here. Immutable object has to be final (see explanation above). So the only way to do this is to define some new class and inherit from him. It will be look like the following:
    abstract class AbstractDate implements Date  {
       protected long date;
       public AbstractDate(long date){
         this.date=date;
       public long getDate(){
         return date;
    public final class ImmutableDateImpl extends AbstractDate implements Date, ImmutableDate {
      public ImmutableDateImpl(long date){
        super(date);
      public final ImmutableDate getImmutableDate(){return this;}
    public class MutableDateImpl extends AbstractDate implements Date, MutableDate {
      public MutableDateImpl(long date){
        super(date);
      public void setDate(long date){
        this.date=date;
      public final ImmutableDate getImmutableDate(){
        return return new ImmutableDateImpl(date);
    }Note that AbstractDate is declare package-private. It is doing to avoid casting this type in the application. Note also that it is possible to cast immutable object to mutable (interface MutableDate doen't extends ImmutableDate, but Date). Note also that data memer is
    protected long date;That is not private, but protected and not final. It is a cost of getting re-usability. IMHO, It is not big price. Being protected is not a problem, IMHO. Final is more for programmer, rahter than to compiler (see explanation above). Only in the case of primitive data type compiler will inforce this. programmer can know, that in he shouldn't changed this value in AbstractDate, and ImmutableDate, and he can do it only in MutableDate.
    I want to write some words about getImmutableDate() function. This function is usable, when we have Date object (or MutableDate) at hand and want to store it in HashMap. So immutable copy is needed. It also usable as deffencive copy of MutableDate, if want one to transfer Date to somebody we don't want to change the state.
    Let consider the following scenarion. We are writting a game, say chess. There are two players, that plays, desk where they play, and environmemnt (arbiter) that enforces rules. One of the players is computer. From OO point of view the implementation has to the following. There is Desk that only Environment can modify it. ComputerPlayer has to be able only to view ("read") the Desk, but not to move figute ("write"). ComputerPlayer has to talk with Environment what he want to do, and Environmnet after confirmation should do it. Here desk is immutable object to everyone, but Environment.
    If we go back to our Date, the implementation of this scenario could be
    interface AlmostImmutableDate extends Date {
      public void setDate(long date);
    public class Class1 {
      public static ImmutableDate getImmutableDate(long date){return new AlmostImmutableDateImpl(date);}
      private static class AlmostImmutableDateImpl implements Date, ImmutableDate/*, AlmostImmutableDate*/ {
        private long date;
        public AlmostImmutableDate(long date){
          this.date=date;
        public long getDate(){
          return date;
        public void setDate(long date){
          this.date=date;
        public final ImmutableDate getImmutableDate(){
          return this;
    } Which such implementation only Class1 can modify AlmostImmutableDateImpl. Others even don't know about existance of this type (it is private static class).
    It is possible to extends somehow to the case, when not one object, but (a little) group of object can modify Date. See the code above with uncommented part. One way to this is to difine new interface, say AlmostImmutableDate, with package-private scope. AlmostImmutableDateImpl will implements this interface. So, all object that has the same package as AlmostImmutableDate will can to cast the object to this type and modify it.
    Note, that AlmostImmutableDate has to extend Date interface (or ImmutableDate), but not MutableDate! If it will extand MutableDate, than it wiil be possible to cast to MutableDate in any package.
    If there is no MutableDate object in the application, so AlmostImmutableDate is unique. If there is MutableDate object in the application and we want to construct such almost immutable object, so copy&paste is needed to declare AlmostImmutableDate interface.
    Summary.
    It is difficult to define really pair of immutable object and mutable object in Java. Implementation consuming time and not very clear. There are many points to remember about (for example, data-member is not final, or order of inheritance, immutable object has to be final, and so on).
    I want to ask. If these solutions are complete? That is, it is not possible to modify immutable object or almost immutable objects not in the package of AlmostImmutableInterface. Not using reflexion, of course.
    Is these solutions are not to complicated?
    What do you think about delcaration of the third class AbstractDate? Has it to implement date? Perhaps, it is possible to define Date as abstract class (as AbstractDate was)? What do you think about definning
    protected long date;in AbstractDate?
    What do you think about function getImmutableDate() defined in Date interface? Perhaps, it should be declared in other place (even other new interface) or shouldn't be delcare at all?

    It seems to me that you are over thinking the problem:
    Why not just:
    public interface Date {
        long getDate();
    public interface MutableDate extends Date {
        void setDate(long);
    public class ImmutableDate implements Date
        final long date;
        public ImmutableDate(long date){
             this.date= date;
        public ImmutableDate(Date date){
             this.date= date.getDate();
        public long getDate(){
            return date;
    public class ModifiableDate implements MutableDate
        final long date;
        public ModifiableDate(long date){
             this.date= date;
        public ModifiableDate(Date date){
             this.date = date.getDate();
        public long getDate(){
            return date;
        public void setDate(long date){
            this.date = date;
    }

  • What is the use of mutable Objects ?

    Hi all,
    I want to know the use of mutable objects?
    Could u please help me ?
    regards,
    Nalini

    public class Sum {
        double value;
        public void add(double d) {
            value += d;
    }The sum class is mutable, since you can change it's value. The Integer class is an example of a class that's immutable. You can't change the value of an Integer after you have constructed the object.
    /Kaj

  • Factory pattern returning shared mutable objects

    We have a non-EJB load-balanced environment of JSP/Business Objects
    with JMS synchronized caches. Here's an overview.
    Business objects stored in a custom in-process cache (one instance per JVM) and the caches are synchronized using JMS. The business objects are maintained through utility classes (not exactly factories) with the
    following pseudo -code logic
    public static Object getObject(Object id) {
    try {
    Get from cache...
    } catch(.. e) {
    load from database
    put it in cache.
    Currently we return the cached object "as-is" to the calling code. The objects being mutable this poses a risk of some JSP/bean inadvertently changing the cached copy. Although this is the fastest approach we have quickly realized that it is no longer safe.
    I am unable to find good patterns that address this common problem. Most patterns I have seen are very EJB centric and some of them boil down to the pseudo-code I have shown above. Which is not
    the solution but the problem itself!
    Is there anyway I can return an immutable instance of our objects in a generic way?. I know the alternatives..
    1) Clone. Create extra objects. It so happens the cached objects are actually shown in an end-user GUI tree on a web-page accessed by 200 concurrent users. cloning would create a copy per get call.
    2) Create an immutable and mutable version of the class and return only
    the immutable version. How do I ever get the mutable version with this approach
    This seems like a fairly common problem and I was wondering if anybody has solved this a little more elegantly then what I have presented above.

    2) Create an immutable and mutable version of the class and return onlythe immutable version. How do I ever get the mutable version with this approach
    The setter use no modifier or with protected modifier, the getter use public modifier.
    private String name;
    public String getName() {
       return name;
    String setName(String name) {
       this.name = name;
    }When the class is used outside the package, it is immutable, but it become mutable if accessed from class within the same package.
    This means, the cache manager class also need to be placed in the same package in order to gain mutable access.
    rgds,
    Alex

  • Make a file extension to open always with the same app

    Hello, do you know how can I make a file extension to open always with the same app. So far I have been doing it by double click > open with > other > and then mark open always with this app, BUT
    I do not want to do this very time with all the same file extension I have in my hard disk, is there any way, like in windows, to select and preset a determined app to always open all files with the same extensión in my hard disk??
    Actually what I´m experiencing and would like to change is to open always .pdf extensión with Acrobat and not with Preview
    Thanks very much in advance for your help!!

    OK!!!!
    Got it!!!
    Thanks anyway!!

  • How to make the Billing extension to override the defined rate schedules

    Hi,
    By using the billing extension, i am able to generate the events at top-task level and also generating the draft invoice/revenue amounts.
    But the problem is, if any bill rates are defined for the expenditure item means, draft invoice/revenue amount is duplicating.
    It is the sum of my calculations in my billing extension and the calculations of the (expenditure item * bill rate).
    My billing extension is not able to override the defined rate schedules.
    Please let me know, how should i make my billing extension to override the defined rate schedules.
    Thanks in advance,
    Janardhan
    Edited by: 901259 on Dec 11, 2011 11:11 PM

    Hi Dina,
    Thanks for your inputs.I have tried with the Event/Event as you specified. It is working. Now my i am able to disregard the expenditure items hours multiplied by bill rates and generate the events with my billing extension calculations only.
    But i need to handle one more thing as per my requirement.
    User to be restricted in such way that, draft revenue has to be generated before to the draft invoice(Same as Work/Work) through my billing extension.
    How can i achieve it.
    The revenue_distribution_flag is not updating from 'N' to 'Y' even after the generation of the draft revenue as you mentioned when i follow the Event/Event.
    Is there any way to the restrict the user in generating the draft revenue prior to the draft invoice by using EI's.
    Thanks & Regards,
    Janardhan.

  • Any chance someone could make a Safari Extension similar to Facebook Photo Zoom for eBay?

    Any chance someone could make a Safari Extension similar to Facebook Photo Zoom for eBay?
    >> It would be a great help while browsing, Thanks!

    It's not the router.
    I have several pre-Intel Macs with 10.4.11 and most were fairly fast machines in their day. We also have 50MBps cable internet. All our G-series Macs are "dial-up sluggish" with anything on the web regardless of browser, yet running a download speed test shows they a connecting at a fast rate.
    Watch the browser status bar during page loads--I think there is a clue there. All the bacjground ad sharing and tracking stuff---google analytics is a heavy hitter--are apparently not optimized for the G-series and much of what you are waiting on is that type of third-party dreck phoning home. You can't fix it--web developers embed this stuff. Money, ya know!
    The browser TenFour Fox tend to stall less than Safari or FireFox on the older Macs. It somehow tricks websites to seeing it as an Intel Mac version of FireFox. Still not blazing fast but a big improvment.
    http://www.floodgap.com/software/tenfourfox/

  • What Is Usually the Name or Extension Name of an Object Code File in Xcode 4.2?

    Hi. I'm relearning how to program and I'd like to know each term I encounter as much as possible. What's usually the name or extension name of an object source code file in the Navigator (the pane on the left) in XCode 4.2? Thank you in advance & advanced merry Christmas.
    Gbu.

    Xcode 4 User Guide ; Xcode Basics Help ; Xcode Release Notes
    Happy Holidays

  • Is it passable to make my own extension

    is it passable to make my own extension for exsimple  .txt .dll .app .html .css .cpp etc

    The extension tells your Mac which app is needed to open the file, if you make your own how will OSX know which one to use?

  • NPE Exception while getting mutable object

    I have an application (Model + ViewController). The ViewController is deployed as a jar file. The other application depends on the first project jar. The second application is a simple web application that responds to REST query. The first call is working fine. The second call throws an exception (NPE), and all following calls are working fine. I don't really understand the exception, what should I look for?
    SEVERE: Exception while getting mutable object
    java.lang.NullPointerException
            at oracle.mds.internal.persistence.NamespaceRulesImpl.<init>(NamespaceRulesImpl.java:123)
            at oracle.mds.internal.persistence.NamespaceRules.getNamespaceRulesObj(NamespaceRules.java:72)
            at oracle.mds.internal.util.ChangeUtil.convertToMOEvents(ChangeUtil.java:134)
            at oracle.mds.internal.notifications.EventNotificationManager.handleChanges(EventNotificationManager.java:354)
            at oracle.mds.internal.notifications.EventNotificationManager.handlePChanges(EventNotificationManager.java:251)
            at oracle.mds.core.MOState.signalStale(MOState.java:1185)
            at oracle.mds.core.MOState.signalStale(MOState.java:644)
            at oracle.mds.core.MOState.checkStalenessDocFromBuilder(MOState.java:739)
            at oracle.mds.core.MOState.getIsStaleLastModified(MOState.java:559)
            at oracle.mds.core.MOContent.getIsStaleLastModified(MOContent.java:277)
            at oracle.mds.core.ChainedMOContent.getIsStaleLastModified(ChainedMOContent.java:142)
            at oracle.mds.core.MetadataObject.isStale(MetadataObject.java:818)
            at oracle.adf.share.jndi.MDSBackingStore.obtainMetadataObject(MDSBackingStore.java:517)
            at oracle.adf.share.jndi.MDSBackingStore.getMOBean(MDSBackingStore.java:572)
            at oracle.bc4j.mbean.RuntimeMXBeanImpl.init(RuntimeMXBeanImpl.java:128)
            at oracle.bc4j.mbean.RuntimeMXBeanImpl.<init>(RuntimeMXBeanImpl.java:118)
            at oracle.bc4j.mbean.RuntimeMXBeanImpl.<init>(RuntimeMXBeanImpl.java:109)
            at oracle.bc4j.mbean.BC4JConfigLifeCycleCallBack.contextInitialized(BC4JConfigLifeCycleCallBack.java:160)
            at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
            at weblogic.servlet.internal.WebAppServletContext.reloadServletClassLoader(WebAppServletContext.java:3106)
            at weblogic.servlet.internal.FilterWrapper.reloadFilter(FilterWrapper.java:63)
            at weblogic.servlet.internal.FilterWrapper.checkForReload(FilterWrapper.java:104)
            at weblogic.servlet.internal.FilterWrapper.getFilter(FilterWrapper.java:41)
            at weblogic.servlet.internal.FilterChainImpl.add(FilterChainImpl.java:35)
            at weblogic.servlet.internal.FilterManager.getFilterChain(FilterManager.java:232)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3727)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
            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:2273)
            at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
            at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Nov 25, 2013 1:44:58 PM oracle.bc4j.mbean.BC4JConfigLifeCycleCallBack contextInitialized
    WARNING: com/example/model/module/common/bc4j.xcfg: java.lang.NullPointerException

    The applications already existed when I started working on them, but I don't think the model projects were renamed or moved. I changed the original warning message "com/example/model/module/common/bc4j.xcfg". The warning message points to the correct bc4j.xml files.

  • Mutable objects

    I am sorry if this isn't a right place for this question. I do not seam to find any information on how to make an object mutable.
    If anyone can point me in the right direction I appreciate it.
    Vitaly.

    An Immutable object would be just as easy. Just dont allow any way of changing the instance variables. The constructor would be the only way to set them, when it is first created. You can, for example, make your own String class that is mutable as opposed to the current immutable version. Same thing with Boolean, Integer, etc. You could use the static methods of String, Boolean, Integer, etc in your mutable version as well.

  • Reflecting updates to a ListCell that contains a mutable object

    Hi,
    I've seen many variants of this question, but unfortunately have not found the desired answer, so I thought to ask here. Apologies if missing something obvious!
    Objective:
    I start individual Tasks in batches. A ListCell reflects each Task, from initial request to eventual result. More batches can be submitted while one set is processing. When all processes of any batch is finished, they will eventually disappear from the ListView.
    As a result, I want a ListCell to reflect a Task, and reflect the transition from initial conception to eventual outcome.
    Predicament:
    I currently try this with an ObservableList of my own POJOs, each reflected using a custom ListCell extension.
    I have achieved this result, but it does not feel correct. First of all, I read that it is best practice not to change an ObservableList's objects under its feet. However, I have multiple threads working against the same list. With objects being added, removed and updated, it seemed safer to update the referenced object rather than try to manage synchronization to prevent concurrent modification issues. After all, I'm not really adding a new item, I'm wanting to update the representation of an item that is now in a finished state.
    Attempt details:
    I have achieved this by constructing an 'observableArrayList' with a Callback extractor. This Callback call method provides an Observable array containing an ObjectProperty, the property being a member variable of my POJO used in each ListCell. Each Task updates this object property with some result information at the end of its processing. This I believe ensure that change listeners are notified of updates to this POJO, via its ObjectProperty. (https://javafx-jira.kenai.com/browse/RT-15029)
    The ListCell constructed with this POJO is listening for updates, but I believe this is really to reflect additions and removals on the ObservableList that the ListView represents. However, in the case of updates, the private implementation of the ListCell updateItem method (javafx.scene.control.ListCell#updateItem) does not call the overridable updateItem method. This is because the object that caused the update is seen as equal to the object the ListCell currently holds (they're the same instance, so this is true). However, if the overridable updateItem method is never invoked, I can't get the custom ListCell to update its representation of the ListCell object that has changed since its last representation was rendered.
    If I make my custom POJO always return false in its overriden equals method, the overridable updateItem method is invoked and I get the opportunity to detect the change in the object and render a new representation. This works, but this feels wrong and like a hack.
    Can anyone help point me at the correct way of doing this please? Happy to provide more information if needed.
    Thanks,
    Louis

    If the changes in the ObservableList are to be reflected in the UI, you need to make these changes on the JavaFX Application Thread. Ensuring this happens (using Platform.runLater(...) if necessary) will also prevent any concurrent modification issues.
    I would approach this by binding the text property or graphic property (or both) of the custom ListCell to the appropriate properties of your POJO. Here's a simple example where I have a list view displaying a bunch of "counters" which count in a background thread. The cell display is updated when the state of the task changes. I introduced a counter property (which is a bit redundant; I could have used the progress property or message property) to demonstrate updating a property on the FX Application thread using Platform.runLater(...).
    Because ListCells can be reused, you need to account for the fact that the item (task) displayed may change during the lifecycle of the cell. You can do this using a listener to the itemProperty (which is what I did), or by overriding the updateItem(...) method.

  • How can I make a button that on press the object appears and on second press the object to disappear

    Hello,
    I'm quite new to flash programing, and I don't know how can I make a button that will make the object appear and disappear.Till now I have this code for the appear:
    on (press)
        _root.top1.gotoAndStop(2);
        _root.topp.gotoAndStop(2);
        _root.mm1.gotoAndStop(2);
              _root.m1.gotoAndStop(2);
    but from here I'm stuck.
    Thank you for your help

    What you can do is use the _visible property of the object to make it appear and disappear, or more correctly, use the opoosite of the _visible property.  You should not put code "on" objects, keep it in the timeline.
    If "object" is the instance name of the object you want to toggle, then in the timeline code you can use...
    object._visible = false;  // start with the object being invisible
    yourButtonName.onRelease = function(){
        object._visible = !object._visible;
    That one line in the function sets the object's _visible property to be the opposite of what it currently is.

  • Make a Hole Through a Bunch of Objects

    I have a number of objects stacked on top of each other and I want to make a hole through them all so that when I save the finished artwork as a web image the hole will be transparent.  A bit like a donut but it's not just a circle with a hole in it.  It's all these other shapes piled on top of each other.
    I've thought about the Eraser Tool but my hole needs to be quite precise (and there are to be four seperate holes).  I have looked at making a clipping mask but I can only really find tutorials that show me how to clip like making a photo vignette and I've thought about Pathfinder but that makes my head ache a little.
    Thanks
    Martin

    I have AI in CS5 and a PC running Windows 7 and am struggling to get this to work.
    I drew a line running across the artboard, then placed a large circle on top of the center part of it, and then a small circle on top of the large circle.  My goal is to make the small circle transparent so that when I import the image to a book cover I've created in InDesign, the background color on the cover will show through the hole AND show the line.
    I selected the smaller circle, then went to the Transparency palette and selected Knockout Group.  The line doesn't show through.  I then selected both circles and then clicked on Knockout Group.  Still no change.  Some kind of an instruction is missing.
    Is there something about the formatting of the circles that needs to be done?  (Like perhaps the smaller circle needs to be formatted with no color in it?)  Do all objects need to be on different layers?  (Mine are all in the same layer, because I'm warping them, too.  I don't know if that effect will work with several layers involved.)  Or something else?  There has to be an easy answer.
    I'm also not seeing two separate circle selections with the chain link between them in the correct answer above, but then again, that answer was given in 2008, and here we are in 2013.
    Thanks,

  • Make to order with Prod version with object depedency

    I m using 2 production version. In both case BOM & Routing having object dependency. Its make to order scenario. How can I select prod version in costing as well in configuration in sales order. Because by default its taking first version for both configuration & costing.How??
    And if I select second version in sales order, in prod order it should automatically take second version. How??
    Thanks
    varun

    Hello Varun,
    If you have two valid production versions for a part then by default system take the first available production version. You have give some selection criteria through quota arrangement.
    In ck11n you have the option for selecting the vesion in the quantity structure tab so i think there will be no problem for costing.
    For selection of production version in the production order you have work with planning strategy 82. Or incase of MTO (strategy 20) run MRP from MD50...your assigned production version in sales order will be planned.
    If helpful rewards your points
    Regards
    TAJUDDIN

Maybe you are looking for

  • Hissing on iPod after updaing 2006-06-28

    My iPod 5G 60GB has been working fine until I updated with the 2006-06-28, after which I began to hear a hiss. This is probably /the/ infamous hiss, but oddly it coincided with the software update. I am using Shure e5c headphones, so I doubt the prob

  • CO-PA assessment issue

    Hi, My user has done assessment in KEU5 in the previous period and he realized that wrong assess.cost element has been used. So he reversed the assessment in the current period and corrected the segments with the correct Assess.cost element. WHen the

  • OBIEE 11.1.1.6.3 Windows WLS install: UnsatisfiedLinkError jni_winx64

    For OBIEE 11.1.1.6.3, do we need to install wls first as a separate step before running the setup.exe from the extracted Zip files? I followed the instructions in the release notes: https://stbeehive.oracle.com/teamcollab/wiki/BI+Applications+Infrast

  • PHP5 and Bash combination

    Dear Archlinux users, I have set up LAMP and have used the package "youtube-dl" Now as simple as it is:# youtube-dl http://www.youtube.com/watch?v=1c0wS26uyWs Will let you download the video, but since my arch is on a vps, and i would like to give my

  • Display multi-line text

    I'm only using AWT. I need a component that's basically an uneditable Textarea (preferably no caret), where each line of text can be a different font and color. I was thinking to just extend a Canvas to draw the text on, and just add that component t