About the MRP strategy

Dear guru
            In my scenario,the Finish Goods for customer A runs in the mode of BTO.
    But lately the customer wants we to pre-build the goods,and later we will get the PO from the
    customer.We will delivery the goods following the customer's PO.
           However,the material requirements have some probelm in our plant.
    For example,for customer's pre-requirement,we have pre-build goods by the production order.In the
   SAP,we have the FG stock.When the customer sends the PO,wo receive the sales order in SAP.
   After runing the MRP,the sales order brings the requirement (planning order-->production order)
   again.So the plant gets repetitious   requirement for us.
          For a part of FG will be manufactured like this,the other will keep on running in BTO.
          Is there some way to make these FG not bring requirement if having pre-build?
          Pls give some good advice.
          Thank you very much!

Hi Stephen
  I am just elaborating what Suresh is trying to IMPLY.
   You want to plan your finished goods (FERT -material type) in such a way that whenever a sales order is created  it should consume your pre-planned requiremnts,or,it should consume your planned independent requirements instead of creating further procuremnt proposals or production orders.
  For this you can maintain planning strategy as 40(planning with final assembly) for the finished goods(FERT) material.This is set in MRP2 view of material master (subscreen planning strategy group).Which means that although you are running in make-to -stock mode ,the MRP run will consider the sales orders and will not create extra proposals instead ,it will consume PIR(planned independent requiremnts).
  So initially you have to create PIR in T'code:MD61 as per your forecasted requirements over a period.And when u run MRP the system will create planned orders for it .You can convert these planned orders to production orders and keep the finished goods in stock.Once you receive sales oredr the system will consume the PIR instead of creating new planned orders.
I hope Suresh-GURU will agree,if not pls revert back.
Stephen ,pls update me on this
THNX
HKR

Similar Messages

  • About the MRP element.

    hi,
    My problem is as follows.
    I have to find out what is next MRP element for the material/production version pair.
    In  my case  to consider the production finish date for planned order  date & scheduled end date for production  order as next MRP element for the material.
    If i got more than one production version for the same material,
    what criteria should i apply for calculating next MRP element.

    Hi,
    Planned order:-A request created in the planning run for a plant to trigger the procurement of a plant material for a certain quantity for a specific date.
    Customer order:- is nothing but sales order, A customer request to the company for delivery of goods or services at a certain time.
    The request is received by a sales area that is then responsible for fulfilling the contract.
    MRP elements are
    OrdRes Order reservation (production order)
    PurRqs Purchase requisition
    SubReq Subcontracting requirement
    SchLne Schedule line
    BtchSt Batch stock
    PrdOrd Production order
    Order Customer stock for make-to-order
    CusReq Customer reqmt (Reqmt element from demand management)
    ShipNt Shipping notification (committed order quantity)
    StLcSt Storage location stock (Storage location MRP)
    BStLoc Batch storage location
    SchAgr Scheduling agreement
    Reser. Reservation created manually
    NtwOrd Network order
    PlOrd. Planned order
    PrjStk Project stock
    IndReq Planned independent requirements
    ForReq Forecast requirements (forecast-based planning)
    QM lot QM inspection lot
    ComCnf Production order confirmation
    SimReq Simulative requirements
    SomOrd Simulative order
    DepReq Dependent requirements
    RelOrd Release order (Multi-plant planning: stock transfer)
    TrRes. Release order requisition (Werksübergr. Planung: Umlagerung)
    UnplRq Unplanned requirements (additional reqmts from forecast)
    StTRes Stock transfer reservation
    Transf Transfer reservation
    Inqury RFQ
    Quote Quotation
    Order Sales order
    SchAgr Scheduling agreement
    Contr. Contract
    Fr.del FOC delivery
    Deliv. Delivery
    CusReq Customer requirement
    GIssue Goods issue
    Stock Plant stock
    GRecpt Goods receipt
    Replsh Replenishment horizon

  • What do people think about the different Generic Java approaches?

    I have seen a lot of different approaches for Generic Java, and when people find problems with each approach the normal response has been: the other approach is worse with such and such a problem, do you have a better way?
    The different approaches I have seen are: (in no particular order)
    Please correct me if I am wrong and add other approaches if they are worthy of mention.
    1) PolyJ - by MIT
    This is a completely different approach than the others, that introduces a new where clause for bounding the types, and involves changing java byte codes in order to meet it's goals.
    Main comments were not a java way of doing things and far too greater risk making such big changes.
    2) Pizza - by Odersky & Wadler
    This aims at extending java in more ways than just adding Generics. The generic part of this was replaced by GJ, but with Pizza's ability to use primitives as generic types removed, and much bigger changes allowing GJ to interface with java.
    Main comments were that Pizza doesn't work well with java, and many things in Pizza were done in parallel with java, hence were no longer applicable.
    3) GJ - by Bracha, Odersky, Stoutamire & Wadler
    This creates classes with erased types and bridging methods, and inserts casts when required when going back to normal java code.
    Main comments are that type dependent operations such as new, instanceof, casting etc can't be done with parametric types, also it is not a very intuitive approach and it is difficult to work out what code should do.
    4) Runtime Generic Information - by Natali & Viroli
    Each instance holds information about its Runtime Type.
    Main comments from people were that this consumes way too much memory as each instance holds extra information about its type, and the performance would be bad due to checking Type information at runtime that would have been known at compile.
    5) NextGen - by Cartwright & Steele
    For each parameterized class an abstract base class with types erased is made and then for each new type a lightweight wrapper class and interface are created re-using code from the base class to keep the code small.
    Main comments from people were that this approach isn't as backwards compatible as GJ due to replacing the legacy classes with abstract base classes which can't be instantiated.
    6) .NET common runtime - by Kennedy & Syme
    This was written for adding Generics to C#, however the spec is also targeted at other languages such as VB.
    Main comments from people were that this approach isn't java, hence it is not subject to the restrictions of changing the JVM like java is.
    7) Fully Generated Generic Classes - by Agesen, Freund & Mitchell
    For each new type a new class is generated by a custom class loader, with all the code duplicated for each different type.
    Main comments from people were that the generated code size gets too big, and that it is lacking a base class for integration with legacy code.
    8) JSR-14 - by Sun
    This is meant to come up with a solution Generic Solution to be used in java. Currently it is heavily based on GJ and suffering from all the same problems as GJ, along with the fact that it is constantly undergoing change and so no one knows what to expect.
    See this forum for comments about it.
    As if we didn't have enough approaches already, here is yet another one that hopefully has all of the benefits, and none of the problems of the other approaches. It uses information learnt while experimenting with the other approaches. Now when people ask me if I think I have a better approach, I will have somewhere to point them to.
    (I will be happy to answer questions concerning this approach).
    9) Approach #x - by Phillips
    At compile time 1 type is made per generic type with the same name.
    e.g.class HashSet<TypeA> extends AbstractSet<TypeA> implements Cloneable, Serializable will be translated to a type: class HashSet extends AbstractSet implements Cloneable, SerializableAn instance of the class using Object as TypeA can now be created in 2 different ways.
    e.g.Set a = new HashSet();
    Set<Object> b = new HashSet<Object>();
    //a.getClass().equals(b.getClass()) is trueThis means that legacy class files don't even need to be re-compiled in order to work with the new classes. This approach is completely backwards compatible.
    Inside each type that was created from a generic type there is also some synthetic information.
    Information about each of the bounding types is stored in a synthetic field.
    Note that each bounding type may be bounded by a class and any number of interfaces, hence a ';' is used to separate bounding types. If there is no class Object is implied.
    e.g.class MyClass<TypeA extends Button implements Comparable, Runnable; TypeB> will be translated to a type: class MyClass {
      public static final Class[][] $GENERIC_DESCRIPTOR = {{Button.class, Comparable.class, Runnable.class}, {Object.class}};This information is used by a Custom Class Loader before generating a new class in order to ensure that the generic types are bounded correctly. It also gets used to establish if this class can be returned instead of a generated class (occurs when the generic types are the same as the bounding types, like for new HashSet<Object> above).
    There is another synthetic field of type byte[] that stores bytes in order for the Custom Class Loader to generate the new Type.
    There are also static methods corresponding to each method that contain the implementation for each method. These methods take parameters as required to gain access to fields, contructors, other methods, the calling object, the calling object class etc. Fields are passed to get and set values in the calling object. Constructors are passed to create new instances of the calling object. Other methods are passed when super methods are called from within the class. The calling object is almost always passed for non static methods, in order to do things with it. The class is passed when things like instanceof the generated type need to be done.
    Also in this class are any non private methods that were there before, using the Base Bounded Types, in order that the class can be used exactly as it was before Generics.
    Notes: the time consuming reflection stuff is only done once per class (not per instance) and stored in static fields. The other reflection stuff getting done is very quick in JDK1.4.1 (some earlier JDKs the same can not be said).
    Also these static methods can call each other in many circumstances (for example when the method getting called is private, final or static).
    As well as the ClassLoader and other classes required by it there is a Reflection class. This class is used to do things that are known to be safe (assuming the compiler generated the classes correctly) without throwing any exceptions.
    Here is a cut down version of the Reflection class: public final class Reflection {
      public static final Field getDeclaredField(Class aClass, String aName) {
        try {
          Field field = aClass.getDeclaredField(aName);
          field.setAccessible(true);
          return field;
        catch (Exception ex) {
          throw new Error(ex);
      public static final Object get(Field aField, Object anObject) {
        try {
          return aField.get(anObject);
        catch (Exception ex) {
          throw new Error(ex);
      public static final void set(Field aField, Object anObject, Object aValue) {
        try {
          aField.set(anObject, aValue);
        catch (Exception ex) {
          throw new Error(ex);
      public static final int getInt(Field aField, Object anObject) {
        try {
          return aField.getInt(anObject);
        catch (Exception ex) {
          throw new Error(ex);
      public static final void setInt(Field aField, Object anObject, int aValue) {
        try {
          aField.setInt(anObject, aValue);
        catch (Exception ex) {
          throw new Error(ex);
    }Last but not least, at Runtime one very lightweight wrapper class per type is created as required by the custom class loader. Basically the class loader uses the Generic Bytes as the template replacing the erased types with the new types. This can be even faster than loading a normal class file from disk, and creating it.
    Each of these classes has any non private methods that were there before, making calls to the generating class to perform their work. The reason they don't have any real code themselves is because that would lead to code bloat, however for very small methods they can keep their code inside their wrapper without effecting functionality.
    My final example assumes the following class name mangling convention:
    * A<component type> - Array
    * b - byte
    * c - char
    * C<class name length><class name> - Class
    * d - double
    * f - float
    * i - int
    * l - long
    * z - boolean
    Final Example: (very cut down version of Vector)public class Vector<TypeA> extends AbstractList<TypeA> implements RandomAccess, Cloneable, Serializable {
      protected Object[] elementData;
      protected int elementCount;
      protected int capacityIncrement;
      public Vector<TypeA>(int anInitialCapacity, int aCapacityIncrement) {
        if (anInitialCapacity < 0) {
          throw new IllegalArgumentException("Illegal Capacity: " + anInitialCapacity);
        elementData = new Object[initialCapacity];
        capacityIncrement = capacityIncrement;
      public synchronized void setElementAt(TypeA anObject, int anIndex) {
        if (anIndex >= elementCount) {
          throw new ArrayIndexOutOfBoundsException(anIndex + " >= " + elementCount);
        elementData[anIndex] = anObject;
    }would get translated as:public class Vector extends AbstractList implements RandomAccess, Cloneable, Serializable {
      public static final Class[][] $GENERIC_DESCRIPTOR = {{Object.class}};
      public static final byte[] $GENERIC_BYTES = {/*Generic Bytes Go Here*/};
      protected Object[] elementData;
      protected int elementCount;
      protected int capacityIncrement;
      private static final Field $0 = Reflection.getDeclaredField(Vector.class, "elementData"),
                                 $1 = Reflection.getDeclaredField(Vector.class, "elementCount"),
                                 $2 = Reflection.getDeclaredField(Vector.class, "capacityIncrement");
      static void $3(int _0, Field _1, Object _2, Field _3, int _4) {
        if (_0 < 0) {
          throw new IllegalArgumentException("Illegal Capacity: " + _0);
        Reflection.set(_1, _2, new Object[_0]);
        Reflection.setInt(_3, _2, _4);
      static void $4(int _0, Field _1, Object _2, Field _3, Object _4) {
        if (_0 >= Reflection.getInt(_1, _2)) {
          throw new ArrayIndexOutOfBoundsException(_0 + " >= " + Reflection.getInt(_1, _2));
        ((Object[])Reflection.get(_3, _2))[_0] = _4;
      public Vector(int anInitialCapacity, int aCapacityIncrement) {
        $3(anInitialCapacity, $0, this, $2, aCapacityIncrement);
      public synchronized void setElementAt(Object anObject, int anIndex) {
        $4(anIndex, $1, this, $0, anObject);
    } and new Vector<String> would get generated as:public class Vector$$C16java_lang_String extends AbstractList$$C16java_lang_String implements RandomAccess, Cloneable, Serializable {
      protected Object[] elementData;
      protected int elementCount;
      protected int capacityIncrement;
      private static final Field $0 = Reflection.getDeclaredField(Vector$$C16java_lang_String.class, "elementData"),
                                 $1 = Reflection.getDeclaredField(Vector$$C16java_lang_String.class, "elementCount"),
                                 $2 = Reflection.getDeclaredField(Vector$$C16java_lang_String.class, "capacityIncrement");
      public Vector$$C16java_lang_String(int anInitialCapacity, int aCapacityIncrement) {
        Vector.$3(anInitialCapacity, $0, this, $2, aCapacityIncrement);
      public synchronized void setElementAt(String anObject, int anIndex) {
        Vector.$4(anIndex, $1, this, $0, anObject);
    }Comparisons with other approaches:
    Compared with PolyJ this is a very java way of doing things, and further more it requires no changes to the JVM or the byte codes.
    Compared with Pizza this works very well with java and has been designed using the latest java technologies.
    Compared with GJ all type dependent operations can be done, and it is very intuitive, code does exactly the same thing it would have done if it was written by hand.
    Compared with Runtime Generic Information no extra information is stored in each instance and hence no extra runtime checks need to get done.
    Compared with NextGen this approach is completely backwards compatible. NextGen looks like it was trying to achieve the same goals, but aside from non backwards compatibility also suffered from the fact that Vector<String> didn't extend AbstractList<String> causing other minor problems. Also this approach doesn't create 2 types per new types like NextGen does (although this wasn't a big deal anyway). All that said NextGen was in my opinion a much better approach than GJ and most of the others.
    Compared to .NET common runtime this is java and doesn't require changes to the JVM.
    Compared to Fully Generated Generic Classes the classes generated by this approach are very lightweight wrappers, not full blown classes and also it does have a base class making integration with legacy code simple. It should be noted that the functionality of the Fully Generated Generic Classes is the same as this approach, that can't be said for the other approaches.
    Compared with JSR-14, this approach doesn't suffer from GJ's problems, also it should be clear what to expect from this approach. Hopefully JSR-14 can be changed before it is too late.

    (a) How you intend generic methods to be translated.
    Given that Vector and Vector<Object> are unrelated types,
    what would that type be represented as in the byte code of
    the method? In my approach Vector and Vector<Object> are related types. In fact the byte code signature of the existing method is exactly the same as it was in the legacy code using Vector.
    To re-emphasize what I had said when explaining my approach:
    System.out.println(Vector.class == Vector<Object>.class);  // displays true
    System.out.println(Vector.class == Vector<String>.class);  // displays false
    Vector vector1 = new Vector<Object>(); // legal
    Vector<Object> vector2 = new Vector();  // legal
    // Vector vector3 = new Vector<String>(); // illegal
    // Vector<String> vector4 = new Vector();  // illegal
    Vector<String> vector5 = new Vector<String>();  // legal
    You must also handle the case where the type
    parameter is itself a parameterized type in which the type
    parameter is not statically bound to a ground instantiation.This is also very straightforward: (let me know if I have misunderstood you)
    (translation of Vector given in my initial description)
    public class SampleClass<TypeA> {
      public static void main(String[] args) {
        System.out.println(new Vector<Vector<TypeA>>(10, 10));
    }would get translated as:public class SampleClass {
      public static final Class[][] $GENERIC_DESCRIPTOR = {{Object.class}};
      public static final byte[] $GENERIC_BYTES = {/*Generic Bytes Go Here*/};
      private static final Constructor $0 = Reflection.getDeclaredConstructor(Vector$$C16java_util_Vector.class, new Class[] {int.class, int.class});
      static void $1(Constructor _0, int _1, int _2) {
        try {
          System.out.println(Reflection.newInstance(_0, new Object[] {new Integer(_1), new Integer(_2)}));
        catch (Exception ex) {
          throw (RuntimeException)ex;
      public static void main(String[] args) {
        $1($0, 10, 10);
    }and SampleClass<String> would get generated as:public class SampleClass$$C16java_lang_String {
      private static final Constructor $0 = Reflection.getConstructor(Vector$$C37java_util_Vector$$C16java_lang_String.class, new Class[] {int.class, int.class});
      public static void main(String[] args) {
        SampleClass.$1($0, 10, 10);
    Also describe the implementation strategy for when these
    methods are public or protected (i.e. virtual).As I said in my initial description that for non final, non static, non private method invocations a Method may be passed into the implementing synthetic method as a parameter.
    Note: the following main method will display 'in B'.
    class A {
      public void foo() {
        System.out.println("in A");
    class B extends A {
      public void foo() {
        System.out.println("in B");
    public class QuickTest {
      public static void main(String[] args) {
        try {
          A.class.getMethod("foo", null).invoke(new B(), null);
        catch (Exception ex) {}
    }This is very important as foo() may be overwritten by a subclass as it is here. By passing a Method to the synthetic implementation this guarantees that covariance, invariance and contra variance all work exactly the same way as in java. This is a fundamental problem with many other approaches.
    (b) The runtime overhead associated with your translationAs we don't have a working solution to compare this to, performance comments are hard to state, but I hope this helps anyway.
    The Class Load time is affected in 4 ways. i) All the Generic Bytes exist in the Base Class, hence they don't need to be read from storage. ii) The custom class loader, time to parse the name and failed finds before it finally gets to define the class. iii) The generation of the generic bytes to parametric bytes (basically involves changing bytes from the Constant Pool worked out from a new Parametric type, Utf8, Class and the new Parametric Constant types may all be effected) iv) time to do the static Reflection stuff (this is the main source of the overhead). Basically this 1 time per class overhead is nothing to be concerned with, and Sun could always optimize this part further.
    The normal Runtime overhead (once Classes have been loaded) is affected mainly by reflection: On older JDKs the reflection was a lot slower, and so might have made a noticeable impact. On newer JDKs (since 1.4 I think), the reflection performance has been significantly improved. All the time consuming reflection is done once per class (stored in static fields). The normal reflection is very quick (almost identical to what is getting done without reflection). As the wrappers simply include a single method call to another method, these can be in-lined and hence made irrelevant. Furthermore it is not too difficult to make a parameter that would include small methods in the wrapper classes, as this does not affect functionality in the slightest, however in my testing I have found this to be unnecessary.
    (c) The space overhead (per instantiation)There are very small wrapper classes (one per new Type) that simply contain all non private methods, with single method calls to the implementing synthetic method. They also include any fields that were in the original class along with other synthetic fields used to store reflected information, so that the slow reflection only gets done once per new Type.
    (d) The per-instance space overheadNone.
    (e) Evidence that the proposed translation is sound and well-defined for all relevant cases (see below)Hope this is enough, if not let me know what extra proof you need.
    (f) Evidence for backward compatibility
    (For example, how does an old class file that passes a Vector
    to some method handle the case when the method receives a Vector<T>
    where T is a type parameter? In your translation these types are unrelated.)As explained above, in my approach these are only unrelated for T != Object, in the legacy case T == Object, hence legacy code passing in Vector is exactly the same as passing in Vector<Object>.
    (g) Evidence for forward compatibility
    (How, exactly, do class files that are compiled with a generics compiler run on an old VM)They run exactly the same way, the byte codes from this approach are all legal java, and all legal java is also legal in this approach. In order to take advantage of the Generics the Custom Class Loader would need to be used or else one would get ClassNotFoundExceptons, the same way they would if they tried using Collections on an old VM without the Collections there. The Custom Class Loader even works on older VMs (note it may run somewhat slower on older VMs).
    (h) A viable implementation strategyType specific instantiations are at Class Load time, when the Custom Class Loader gets asked for a new Class, it then generates it.
    The type specific instantiations are never shipped as they never get persisted. If you really wanted to save them all you need to do is save them with the same name (with the $$ and _'s etc), then the class loader would find them instead of generating them. There is little to be gained by doing this and the only reason I can think of for doing such a thing would be if there was some reason why the target VM couldn't use the Custom Class Loader (the Reflection class would still need to be sent as well, but that is nothing special). Basically they are always generated at Runtime unless a Class with the same name already exists in which case it would be used.
    The $GENERIC_DESCRIPTOR and $GENERIC_BYTES from the base class along with the new Type name are all that is required to generate the classes at runtime. However many other approaches can achieve the same thing for the generation, and approaches such as NextGen's template approach may be better. As this generation is only done once per class I didn't put much research into this area. The way it currently works is that the $GENERIC_DESCRIPTOR are basically used to verify that a malicious class files is not trying to create a non Type Safe Type, ie new Sample<Object>() when the class definition said class Sample<TypeA extends Button>. The $GENERIC_BYTES basically correspond to the normal bytes of a wrapper class file, except that in the constant pool it has some constants of a new Parametric Constant type that get replaced at class load time. These parametric constants (along with possibly Utf8 and Class constants) are replaced by the Classes at the end of the new type name, a little more complex than that but you probably get the general idea.
    These fine implementation details don't affect the approach so much anyway, as they basically come down to class load time performance. Much of the information in the $GENERIC_BYTES could have been worked out by reflection on the base type, however at least for now simply storing the bytes is a lot easier.
    Note: I have made a small syntax change to the requested class:
    public T(X datum) --> public T<X>(X datum)
    class T<X> {
      private X datum;
      public T<X>(X datum) {
        this.datum = datum;
      public T<T<X>> box() {
        return new T<T<X>>(this);
      public String toString() {
        return datum.toString();
      public static void main(String[] args) {
        T<String> t = new T<String>("boo!");
        System.out.println(t.box().box());
    }would get translated as:
    class T {
      public static final Class[][] $GENERIC_DESCRIPTOR = {{Object.class}};
      public static final byte[] $GENERIC_BYTES = {/*Generic Bytes Go Here*/};
      private Object datum;
      private static final Field $0 = Reflection.getDeclaredField(T.class, "datum");
      private static final Constructor $1 = Reflection.getDeclaredConstructor(T$$C1T.class, new Class[] {T.class});
      static void $2(Field _0, Object _1, Object _2) {
        Reflection.set(_0, _1, _2);
      static Object $3(Constructor _0, Object _1) {
        try {
          return Reflection.newInstance(_0, new Object[] {_1});
        catch (Exception ex) {
          throw (RuntimeException)ex;
      static String $4(Field _0, Object _1) {
        return Reflection.get(_0, _1).toString();
      static void $5() {
        T$$C16java_lang_String t = new T$$C16java_lang_String("boo!");
        System.out.println(t.box().box());
      public T(Object datum) {
        $2($0, this, datum);
      public T$$C1T box() {
        return (T$$C1T)$3($1, this);
      public String toString() {
        return $4($0, this);
      public static void main(String[] args) {
        $5();
    }as the generic bytes aren't very meaningful and by no means a requirement to this approach (NextGen's template method for generation may work just as well), here are the generated classes with some unused code commented out instead:
    class T$$C28T$$C22T$$C16java_lang_String {
      private T$$C22T$$C16java_lang_String datum;
      private static final Field $0 = Reflection.getDeclaredField(T$$C28T$$C22T$$C16java_lang_String.class, "datum");
    //  private static final Constructor $1 = Reflection.getDeclaredConstructor(T$$C34T$$C28T$$C22T$$C16java_lang_String.class, new Class[] {T$$C28T$$C22T$$C16java_lang_String.class});
      public T$$C28T$$C22T$$C16java_lang_String(T$$C22T$$C16java_lang_String datum) {
        T.$2($0, this, datum);
    //  public T$$C34T$$C28T$$C22T$$C16java_lang_String box() {
    //    return (T$$C34T$$C28T$$C22T$$C16java_lang_String)T.$3($1, this);
      public String toString() {
        return T.$4($0, this);
      public static void main(String[] args) {
        T.$5();
    class T$$C22T$$C16java_lang_String {
      private T$$C16java_lang_String datum;
      private static final Field $0 = Reflection.getDeclaredField(T$$C22T$$C16java_lang_String.class, "datum");
      private static final Constructor $1 = Reflection.getDeclaredConstructor(T$$C28T$$C22T$$C16java_lang_String.class, new Class[] {T$$C22T$$C16java_lang_String.class});
      public T$$C22T$$C16java_lang_String(T$$C16java_lang_String datum) {
        T.$2($0, this, datum);
      public T$$C28T$$C22T$$C16java_lang_String box() {
        return (T$$C28T$$C22T$$C16java_lang_String)T.$3($1, this);
      public String toString() {
        return T.$4($0, this);
      public static void main(String[] args) {
        T.$5();
    class T$$C1T {
      private T datum;
      private static final Field $0 = Reflection.getDeclaredField(T$$C1T.class, "datum");
    //  private static final Constructor $1 = Reflection.getDeclaredConstructor(T$$C6T$$C1T.class, new Class[] {T$$C1T.class});
      public T$$C1T(T datum) {
        T.$2($0, this, datum);
    //  public T$$C6T$$C1T box() {
    //    return (T$$C6T$$C1T)T.$3($1, this);
      public String toString() {
        return T.$4($0, this);
      public static void main(String[] args) {
        T.$5();
    class T$$C16java_lang_String {
      private String datum;
      private static final Field $0 = Reflection.getDeclaredField(T$$C16java_lang_String.class, "datum");
      private static final Constructor $1 = Reflection.getDeclaredConstructor(T$$C22T$$C16java_lang_String.class, new Class[] {T$$C16java_lang_String.class});
      public T$$C16java_lang_String(String datum) {
        T.$2($0, this, datum);
      public T$$C22T$$C16java_lang_String box() {
        return (T$$C22T$$C16java_lang_String)T.$3($1, this);
      public String toString() {
        return T.$4($0, this);
      public static void main(String[] args) {
        T.$5();
    }the methods from the Reflection class used in these answers not given in my initial description are:
      public static final Object newInstance(Constructor aConstructor, Object[] anArgsArray) throws Exception {
        try {
          return aConstructor.newInstance(anArgsArray);
        catch (InvocationTargetException ex) {
          Throwable cause = ex.getCause();
          if (ex instanceof Exception) {
            throw (Exception)ex;
          throw new Error(ex.getCause());
        catch (Exception ex) {
          throw new Error(ex);
      public static final Constructor getDeclaredConstructor(Class aClass, Class[] aParameterTypesArray) {
        try {
          Constructor constructor = aClass.getDeclaredConstructor(aParameterTypesArray);
          constructor.setAccessible(true);
          return constructor;
        catch (Exception ex) {
          throw new Error(ex);
      }

  • Question about the rescheduling of a Sales Order and its Production Order

    Hello Everybody,
    I experience something strange with the rescheduling of a Sales Order and its corresponding Production Order.
    It will be easier to explain with an example...
    For a material, I have created a Sales Order.
    And from this Sales Order, I have now a Production Order converted from a Planned Order generated by the MRP Run.
    This is what I have in transaction MD04:
    SALES ORDER
    AV DATE: 20/02/2008
    GR DATE: 20/02/2008
    PRODUCTION ORDER
    AV DATE: 20/02/2008
    GR DATE: 18/02/2008    (GR process time is 2 days).
    ==> OK !
    Now, I have to reschedule the Sales Order one week sooner.
    SALES ORDER
    AV DATE: 13/02/2008
    GR DATE: 13/02/2008
    After transaction COHV to reschedule the Production Order, I have:
    PRODUCTION ORDER
    AV DATE: 15/02/2008
    GR DATE: 13/02/2008
    But I expected to have:
    PRODUCTION ORDER
    AV DATE: 13/02/2008
    GR DATE: 11/02/2008
    Do you have an idea about what is wrong?
    Thanks in advance for your help on this subject.
    Regards,
    Rudy

    Hello.
    Thank you for your reply.
    But in fact, I am doing some tests on a test platform, which is using an "old" copy of production database.
    So, there can't be data already scheduled for the dates I am using.
    Moreover, I just tried now to do the same with dates in November 2008, exactly with the same results.
    In production platform, they experience this problem too.
    Summary of my new test:
    Before rescheduling:
    SALES ORDER:
    AV. DATE = 20/11/2008
    GR. DATE = 20/11/2008
    PROD. ORDER:
    AV. DATE = 20/11/2008
    GR. DATE = 18/11/2008
    After rescheduling of one week sooner:
    SALES ORDER:
    AV. DATE = 13/11/2008
    GR. DATE = 13/11/2008
    PROD. ORDER:
    AV. DATE = 15/11/2008  (ipo  13/11/2008)
    GR. DATE = 13/11/2008  (ipo  11/11/2008)
    I really don't understand why I don't have the same kind of dates as the ones I get before the rescheduling...
    In my mind, I expect to have all these dates set back of one week...
    Regards
    Rudy
    Rudy

  • What is the best strategy to save a file in client computer

    I want to save some information in a file in client computer. What is the best strategy to do? There are some ways I can think about. But none of them is good enough for me.
    1. I gave all-permission. So, I can actually write what I want. But, in order to make the program runs on all platform/all client computers, I can't make any assumptions on file system of client computer. So, this is not good.
    2. I can write a file into .javaws directory. But, how can I get file path for this directory? JNLP API does not give this path to us. I can't think a way to get this path for all client computer (WIndown, Mac, Unix).
    3. To write as a muffin. Seems fine. But, I often change server and path. So, once I changed server, the client will loss the file saved since muffin is associated with server and path.
    4. I can just open one file with on path. I think J2SE will treat this file platform dependently. For example, for W2K this file will be put into Desktop. This is bad.
    Any better idea?

    In the past I have used the Properties class to do things like this. Using load and store, you can read and write key=value pairs.
    I store the file in the user.home directory. You can use System.getProperty("user.home") to get this location.
    No guarantees, but I thought that this user.home property was good for any OS with a home directory concept. If that turns out not to be true, maybe the System property java.io.tmpdir would be more consistent across platforms. This, of course, would be subject to delete by the OS/administrators.
    -Dave

  • Issue in getting score while executing the matching strategy

    Hi,
    On executing the matching strategy, even if there is a duplicate count of zero in the record pane, some score is calculated. I want to know how does the system get that score even if there is no potential duplicate in the matches pane. 
    Also we are facing an issue - whenever the matching strategy is executed, some score is calculated which does not match with any one of the individual score in the match pane.
    Can anyone guide me what might be the reason?
    Regards,
    Indraveer

    Hi Indraveer,
    On executing the matching strategy, even if there is a duplicate count of zero in the record pane,
    some score is calculated. I want to know how does the system get that score even if there is no
    potential duplicate in the matches pane.
    First i want to clarify how this score getting calculated.
    In the record pane the three extra coloumn tell about the result about matching strategy
    Count : this represent the no of record matches with the selected record based on the matching strategy executed
    Class : This defines
    Score : this contains the sum of score of all rules that contain in strategy i.e. You know in rules tab we define the value for
    SUCCESS
    FALIURE
    UNDEFINED
    So in  the score section it calcilates the score of each rules that you included in executed strategy.
    For Example
    Your 1st rules contain values like
    SUCCESS :2
    FALIURE  :1
    UNDEFINED:0
    Your 2nd rules contain values like
    SUCCESS :3
    FALIURE  :1
    UNDEFINED:0 (this score if contain NULL values and data manger unable to execute the matching)
    Now ypu included these two rules in strategy and define
    High threshhold : 5
    Low threshhold :4
    Now you execute the strategy
    I will consider yr case that no one record matches .In this case  score section will contain value 2 because it fails in matching
    any rules so it get  1 for rule1  and 1 from Rule2.
    Hope it clarifies yr doubt.
    Also we are facing an issue - whenever the matching strategy is executed, some score is calculated which does not match with any one of the individual score in the match pane.
    After Whatever i understand from yr statement,this will be the case when you have multiple rules  ans some record  succeed in all rules while some are succeed in one and fail in second rule.
    For example :
    we have 3 record in table in which first one matches with both record for all rules where as second  record matches with some record for first rule and some for second rule  so their total score  calaculate accordingly
    and third record matches with some reord  for second rule  and some record with first rule so their score will calculate automatical;ly.
    so in this case when u select  first record  in record pane and  open match pane you will see other two record with different score as this score shows there personal score after executing matching strategies.
    Hope this will help you to clarify yr doubt .
    For further reading please check the data manager reference guide  on page 500.
    Thanks,
    Sudhanshu

  • Requirement is getting generated multiple times on Running the MRP

    Dear All,
    I am attaching one Fert material to my project and generating reservation for this.while running the MRP through Tcode MD01,planned order is getting created and later on converted to production order.After confirmation of production order,the material comes to project stock from where it is getting dispatched against a sales order.Once the dispatch takes place,and when the MRP is run again,the system generates one more planned order.
    I am using the strategy 21 in the material master.
    One option I think is to check the final issue check box in the materials assigned to the activities but the no of materials are huge and the project guy is not knowing the status of dispatched materials.
    Please let me know what could be the possible reason for this and what is the possible solution for this.
    Regards,
    B P Singh

    Hi
    In our case we are doing delivery from sales only for a similar requirement and the only option was to set the FI indicator against the network reservation.
    Is there any other method that would stop new requirements generation in MRP for those items which are picked up from sales and delivered from project stock.
    Project based delivery offcourse answers it, but is there any other settings for deliveries from sales.
    PS: Status TECO can also be set to the Network reservation only if all the materials are delivered.
    regards
    Srikrishna

  • Impact of the MRP module on Financial data

    Hi,
    I wanted to play around with the MRP module that comes along with SBO - mainly to check out the features SBO offers and to find out the ease of use. I plan to test out on the TEST system and not PRODUCTION (LIVE). The question I have is, since I have financial data also in SBO, I do not want any type of impact on this financial data. So I want to hear if anyone has faced any type of issues in financial module while working with MRP module. Also is there anything that I should be aware about?
    Please help me understand the MRP better.
    Thanks a lot in advance.
    Manoj.

    Hi Manoj...........
                 After running MRP report it creates only recomendations which includes no. of production orders and no. of purchase orders as per need. Once you execute anyof the production order it will perform the accounting activity like how it gets done during normal production order.
    Regards,
    Rahul

  • What's the best strategy to implement ads?

    Hello Everyone,
    I’ve inherited a site as the content manager and the
    owners would like to start selling ad space on certain pages.
    Mostly the ad banners will be on the either side of the web pages.
    To see the site with out signing-up this page is public:
    http://www.kidstylesource.com/industry/index.php?option=com_content&task=blogcategory&id=2 7&Itemid=91
    The site is built with Joomla and Dreamweaver. The site is
    fairly removed from the Joomla structure that Dreamweaver will be
    playing a big part here setting up ad banner areas. Joomla has
    it’s own way of running ad banners but as mentioned
    it’s very removed from the Joomla way.
    I’m just wondering what is the best strategy to
    implement the ads with placement on the page, tables and/or div
    with out doing a whole rewrite of each page? The body of the pages
    are a mix of tables and div.
    Also I’d like to think about the future using an ad
    server as I’ve never used one before and don’t know
    what code/structure the ad server is expecting on the website. At
    this time the website is just getting off the ground so I feel an
    ad server is not necessary until traffic picks-up.
    Many Thanks,
    John V.

    Hi Helen,
    Are Form1, Form2 etc five different pages? Are they based on different tables?
    Typically, a tree would be a heirarchical structure (child, parent, grandparent etc) - your structure is more like a simple list.
    Also typically, a report is used as the front-end to a form. A link on the report would move the user to a form that allows them to insert/update/delete data. If the five "forms" are based on different data, I would have five tabs in your app - one for each - and have the front-end report as the main page for each tab.
    Or, perhaps, I'm reading your requirement wrong?
    Andy

  • How does the MRP Group determine the Requirement Type

    Hello,
    I find in help that the MRP Group or the Strategy Group in the MRP view of the material master record determines what Requirement Type is used.
    Could you please tell me in which table / transaction can I find the assignment of Requirement Type to MRP Group? I mean it in case when the Strategy Group has not been maintained.
    I will appreciate your help very much.
    Best regards,
    Robert

    Dear,
    System will pick the requirement type from strategy group maintained in MRP 3 view of material master, If the strategy group is not maintained, then only system will check the MRP group In MRP1 view and check the strategy group maintained in OPPR
    Based on strategy Group- you can find the requirement type In IMG>production> Production Planning >Demand management> Planned Independent requirement -->Planning strategy -->Define strategy , From here you can find the requirement type and requirement class
    and then go to OVZG
    if the requirement class have a setting for costing - order costing and costing details, while saving the sale order system will update the cost of goods sold in condition EK02

  • How to go about the assessment of an essbase implementation

    Hi ,
    Can anybody guide me as in what should be the process flow of assessing an essbase implementation ???
    I have done essbase implementations but never went about assessing an implementation.
    Kindly help .
    Regards,
    Saurav Sarkar

    I suppose it depends on what you mean by assessment, but I would be interested in things like:
    Are the numbers right (you would be unpleasantly surprised)?
    Does the organization buy into the database?
    Is the business owner satisfied with the application?
    Are the people who use the app satisfied?
    Is the application a black box, put in by a consultant, or are all processes documented and understood by all?
    What about the business processes that drive this?
    How does the application fit into the customer's overall BI strategy?
    Does the application meet its stated goals?  I've got that back to front because the very first thing I would want to know is:  what are the application's goals?
    Is the process efficient?  This is a multi part question as efficiency can mean:
    Speed (is it fast enough?  Calcs?  Data loads?  Dimension loads?  Retrieves?)
    Server resource consumption
    How many people does it take to support the application? (I have seen the gamut:  1 superstar supporting everything, The Three Stooges barely supporting one)
    Is the application flexible, data driven, and fully automated?  If it isn't, how much effort goes into keeping the thing running?
    Does it fit into the organization's future technological and organizational plans or is it a relic/band aid/unwanted step child?
    Does it conform to the organization's IT standards (as far as Essbase can conform)?
    Does it conform to the organization's audit team for security, access, etc.?  Yeah, I know, they should have told the business all of that but again you would be surprised how if it ain't SQL, some auditors can't wrap their heads round it.
    I guess that would be a start.
    Of course the biggest single thing, and sometimes a very hard thing to get out of a customer, is, "Why are you now asking for an assessment?"  Something is driving the expense (even if it's internally done, it isn't going to be without cost).  Is it risk management?  Dissatisfaction?  Politics?  Technology review?  Performance (so likely dissatisfaction)?  Once you know that, the rest of the questions will have the right perspective.
    Just my 2¢.
    Regards,
    Cameron Lackpour

  • Please suggest about the MM;functional module.

    Hi All,
    Myself Megha, i am new in the SAP world and would like all you gurus to guide me with right path.I am an Engineer in IT with 2 years of work x in Network Aminstraton, As per my qualifications i am eligble for SAP technical module(Basis), but my personal intrest is in retail sector. So i want to go for MM module(Procurrement).
    If you guys can suggest me about the technical difficulties and future prospectives, then it will be a great help.
    THANKS
    Megha Mittal

    Hi..
    to sum up MM .. and life cycle
    MM – Material Management
    MM module allows the company  to manage  on time the
    stocks, procurement, and purchase templates.
    - Purchasing,
    - Inventory Management
    -      Consumption Based Planning
    -      Logistics Invoice Verification
    -      External Services Management
    -      Evaluation
    -      Supplier Workspace
    -      Information systems
    comming to procurement ..
    Procurement starts with requirement which is triggered by MRP. Requirement can be Dependent Requirement (Sale Order, Production Order) or Independent Requirement (Stationery Requirement).
    Procurement: Procurement just not involves procuring of material. When a Requirement Triggers, right from creation of Requisition to sending the Purchase order to vendor is taken care by Procurement. This involves creation of Requisition, approval of Requisition, creation of RFQ if needed, converting of Requisition to Purchase order, identifying medium to send PO to vendor, and PO monitoring.
    1.  Initial Screen    Dead Line  Purch Org  Purch Grp
    2.Collective
    3.Item Detail   Material  Qty
    4.VendorDetails
    Few Transaction Code:
    ME51n: Create PR
    ME52n: Change PR
    ME53n: Display PR
    ME54n:  Release PR individually
    In a PO, materials or services can be procured for all the Plants attached to the Purch
       Org. for which PO is created
    Standard PO, Subcontracting PO, Consignment PO, STO and Third Party PO are
          different types of PO and they are differentiated with Document Type.
    Document Overview screen PO, displays different Purchasing documents like RFQ, PR,      other PO’s.
    with regards,
    hari kv

  • Documentation about the complete sap-proces-chain

    Hi,
    I'm a SAP-Beginner and I search a good Docu about the sap-business-process-chain. This means from the creation of a customer-order to the according
    creation of a produciton-order up to the creation of an invoice!
    Because I will be an abap-programmer, it will be the best, if the docu
    show the table/files witch are effected by the processes!
    Thanks a lot for your help!

    SD Configuration:
    Enterprise Structure:
    1. Maintaining Sales Organization
    Sales Organization is an organizational unit responsible for the sale of certain products or services.
    IMG -> Enterprise Structure -> Definition -> Sales and Distribution -> Define, copy, delete, check Sales organization
    2. Assigning Sales Organization to Company Code
    This assignment ensures all the sales made through this Sales Organization are accounted for in the assigned Company Code (Company Code is created by FI Consultant).
    IMG -> Enterprise Structure -> Assignment -> Sales and Distribution -> Assign Sales Organziation to Company Code
    3. Maintaining Distribution Channel
    Distribution Channel is the way, in which Products or Services reach Customers.
    IMG -> Enterprise Structure -> Definition -> Sales and Distribution -> Define, copy, delete, check distribution channel
    4. Assigning Distribution Channel to Sales Organization
    This assignment ensures, a Sales Organization can supply Materials to Customers through this Distribution Channel.
    IMG -> Enterprise Structure -> Assignment -> Sales and Distribution > Assign distribution channel to sales organization
    5. Maintaining Division
    Division is a way of grouping materials, products, or services.
    IMG -> Enterprise Structure -> Definition -> Logistics - General -> Define, copy, delete, check division
    6. Assigning Division to Sales Organization
    IMG -> Enterprise Structure -> Assignment -> Sales and Distribution -> Assign division to sales organization
    7. Setting up Sales Area
    All the sales are made from a particular sales Area. For creating a Sales Order Sales Area is compulsory.
    IMG ->Enterprise Structure -> Assignment -> Sales and Distribution -> Set up sales area
    8. Assigning Sales Organization- Distribution Channel- Plant
    Plant is created ny MM Consultant.
    IMG -> Enterprise Structure -> Assignment -> Sales and Distribution -> Assign sales organization - distribution channel - plant
    9. Define Shipping Points
    Shipping Point is the Organizational element, which is responsible for shipping the Materials to the Customers.
    IMG -> Enterprise Structure -> Definition -> Logistics Execution -> Define, copy, delete, check shipping point
    10 Assigning Shipping Point to Plant
    This assignment ensures that goods from different Plant can be dispatched from different Shipping Points.
    IMG -> Enterprise Structure -> Assignment -> Logistics Execution -> Assign shipping point to plant
    Note: Ensure to do the undermentioned configuration also though it is not in Customizing node of Enterprise Structure.
    11. Defining Common Distribution Channels for Master Data
    Use
    The purpose of this activity is to define distribution channels which have common master data..
    Procedure
    Access the activity using one of the following navigation options:
    IMG Menu -> Sales and Distribution -> Master Data -> Define Common Distribution Channels
    Transaction Code: VOR1
    12. Defining Common Divisions for Master DataUse
    The purpose of this activity is to define distribution channels which have common master data..
    Procedure
    Access the activity using one of the following navigation options:
    IMG Menu -> Sales and Distribution -> Master Data -> Define Common Division
    Transaction Code: VOR2
    Pricing Procedure
    In SD, Pricing Procedure is determined based on Sales Area (Sales Organization + Distribution Centre + Division) + Customer Pricing Procedure + Document Pricing Procedure. Sales Area is determined in Sales Order Header Level. Customer Pricing Procedure is determined from Customer Master. Document Pricing Procedure is determined from Sales Document Type / Billing Type (if configured). Once the pricing procedure is determined, Condition records are fetched. If appropriate condition records are found, the price is determined. If Mandatory pricing condition is missing, system will through an error message.
    In SD, the steps to configure Pricing procedure are as under:
    Step 1:
    Condition table: If existing condition table meets the requirement, we need not create a new condition table. Considering the requirement for new condition table, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Condition Table (select the required fields combination, which will store condition record).
    Step 2:
    Access Sequence: If existing access sequence meets the requirement, we need not create a new access sequence. Considering the requirement for new sequence, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Access Sequence (Access sequence is made up of Accesses (Tables) & the order of priority in which it is to be accessed. Here we assign the condition table to access sequence.
    Step 3:
    Condition Type: If existing condition type meets the requirement, we need not create a new condition type. Considering the requirement for new condition type, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Condition Type. It is always recommended to copy an existing similar condition type & make the neccessary changes. Here we assign Access sequence to Condition type.
    Step 4:
    a. Pricing Procedure: It is recommended to copy a similar pricing procedure & make the neccesary changes in new pricing procedure. Pricing Procedure is a set of condition type & arranged in the sequence in which it has to perform the calculation. Considering the requirement for new Pricing Procedure, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Pricing Procedure --> Maintain Pricing Procedure.
    b. Pricing Procedure: After maintaining the pricing procedure the next step will be determination of pricing procedure. Configuration for determining pricing procedure in SPRO is as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Pricing Procedure --> Determine Pricing Procedure.
    5. Condition record: Condition record is a master data, which is required to be maintained by Core team / person responsible from the client. During new implementation, the condition records can be uploaded using tools like SCAT, LSMW, etc.
    Normal Sales Order Cycle:-
    Step 1: Sales Document Type
    IMG > Sales and Distribution > Sales > Sales Documents >
    Sales Document Header:
    1. Sales Document Type:The sales document types represent the different business transactions, such as Inquiry, Quotation, Sales Order, etc. To create new sales order type, always copy as with reference to similar sales order. If possible use standard sales order.
    2. Define Number Ranges For Sales Documents: Maintain number range with discussion with core team.
    3. Assign Sales Area To Sales Document Types:
    A. Combine sales organizations / Combine distribution channels / Combine divisions: Ensure to maintain these, else Sales Order creation will give error.
    B. Assign sales order types permitted for sales areas: Assign only required Sales Order Types to required Sales Area. This will minimize selection of Sales Order Type as per sales area.
    Sales Document Item:
    1. Define Item Categories: If possible use Standard Item Category. Incase if required to create new, copy as from standard & maintain New.
    2. Assign Item Categories: If possible, use standard. Formula for deriving item category: Sales Document Type + Item Category Group + Usage + Higher Level Item Category = Item Category
    Schedule Line:
    1. Define Schedule Line Categories: If possible use Standard Schedule Lines. Incase if required to create new, copy as from standard & maintain New.
    2. Assign Schedule Line Categories: If possible, use standard. Formula for deriving Schedule Line: Item Category + MRP Type / No MRP Type.
    Step 2:
    IMG > Logistic Execution > Shipping > Deliveries >
    1. Define Delivery Types: If possible use Standard Delivery Type. Incase if required to create new, copy as from standard & maintain New.
    2. Define Item Categories for Deliveries: If possible use Standard Item Categories for Delivery Type. Incase if required to create new, copy as from standard & maintain New.
    3. Define Number Ranges for Deliveries: Ensure to maintain number range.
    Step 3:
    IMG > Sales and Distribution > Billing >
    1. Define Billing Types: If possible use Standard Billing Type. Incase if required to create new, copy as from standard & maintain New.
    2. Define Number Range For Billing Documents: Ensure to maintain number range.
    3. Maintain Copying Control For Billing Documents: Maintain relevant copy controls such as Sales Order to Billing, Deliver to Billing, etc.
    The configuration differs from scenario to scenario & requirement of the client.
    Regards,
    Rajesh Banka
    Reward point if useful.

  • THinking about the switch from PC to Mac Pro

    I'm looking at a configuration of two 2.8 quad-core with 2 gb ram from Apple, 6 gb ram from 3rd party, a single 750 SATA drive and Final Cut 2 Studio, and running VMWare Fusion for running Windows apps, and software development tools (Windows world). I have been doing a fair amount of video editing/processing, and see that growing - between this increase, and Windows Vista, I think the Mac world may be my best choice - I would run the Windows apps under Windows XP.
    The Apple Store recommended going with 2 x ATI Radeon HD 2600 XT 256MB cards - I will be running with dual monitors, and the biggest demand will come from Final Cut 2. Is there a better choice to be made for the money?
    Anybody see any flags raised by what I say I want to do, and the hardware I'm thinking about?
    I debated the value in the second Quad core - whether the Final Cut 2 Studio software was written to take adavantage of multiple cores. I'm leaning toward the second quad core since the studio is most likely separate apps, and there might be some benefit provided the second quad core via the OS. Any thoughts on this?
    The Ram and hard drives are too pricey from Apple - any suggestions on good third party supplier for the ram chips - I know they need to meet the Apple specs, but assume some mfgs have had a better production/quality history than others.
    Any input on this is appreaciated.
    Michael

    Hatter,
    The configuration is close - I like both of your suggestions on the graphics card and the boot drive - Apple won't add the Radeon 3870 card, nor the Velocity Raptor drive. So, if I buy the 3870 and Velocity Raptor from OWC, there is a decision I would have to make with regard to what I buy from Apple.
    I'd like to continue the process, listing my thoughts, hoping to get more good feedback.
    I'm leaning towards buying Apple's standard graphics card (Radeon 2600), and use it for lower demand activities - I figure I can always upgrade it at a later date if the performance is frustrating - I'll have a good comparison with the 3870, so the contrast should be apparent. I'm thinking about the standard 320 g drive, since the extra cost ($50 for 500g, or $150 for 750g) doesn't make sense with the Caviar Black priced at ~$150.
    So, I would be getting a machine with the OS sitting on the 320g drive. *Is there a good strategy for adding the Velocity Raptor, making it my boot drive?*
    I'm assuming I will get the OS on disc - is this true?
    Lastly, I'm looking at the timing of purchasing. I debated on waiting to buy until after MacWorld 2009, but plan on buying prior to the event. My thought was to avoid any issues that come with new releases - adding another layer of issues without knowing what is "normal behavior" isn't worth the increased functionality. In the PC world, sales abound at the end of quarter, and prior to new release. *Is it worth waiting a little while hoping Apple will discount the Mac Pro? Or is this unlikely??*
    Again, thanks for all of the great suggestions.
    Michael

  • Schedule line category CN is inconsistent with the MRP type

    Guys,
    I am running into an issue here..
    I have change the MRP type of articles from ND (no planning) to PD (MRP)
    Now when I try to change sales oders on this articles (VA02), I get error message saying that the Schedule line category CN is inconsistent with the MRP type
    Does that make sense to any of you and what is/are the remedies
    KR - Loï

    Dear
    When you have created SO at that time the MRP type was ND so based on that System has picked the Schedule line category CN which is No mat.planning. Create new SO this problem will not come. Based on Strategy & PD schedule line category will come as mat. planning.
    Regards
    ABhijit Gautam

Maybe you are looking for