CS11 and Recursive

Hi
Due to BOM strucutre change, the BOM was maintain with ECN and now BOM was recursive, due to SAP recursiveness check did not consider BOM effectivity date (note 42891), and now CS11 will stop at the recursive BOM and will not exploide down further.
Anyone have face this before? How you get the full BOM report in this case if not via CS11?

Hi Danny,
Did your issue ever get resolved?  We are experiencing the same issue where CS11/12/13 stop at the recursive BOM and will not explode further.
Thanks.

Similar Messages

  • Approximate operator and recursive call function in abap

    Dear expert,
    Please give me an example about Approximate operator and recursive call function in abap
    thanks so much

    Hi
    About Approximate operator, you can go to tcode 'ABAPDOCU', searching CO,CN,CA etc...each of them have example there.
    And recursive function,
    Say here is a FM,
    FUNCTION recursive_get_number.
    *import im_num type i.
    *export ex_num type i.
    ex_num = im_num + 1.
    IF ex_num GE 100.
       EXIT.
    ELSE.
       CALL FUNCTION recursive_get_number
            EXPORTING
               im_num = ex_num
            IMPORTING
               ex_num = ex_num.
    ENDIF.
    ENDFUNCTION.
    When you call this function from outside with importing parameter '1',  then will return you 100.
    regards,
    Archer.

  • Difference between cs11 and cs12

    Hi all,
    What is the difference between the t codes cs11 and cs12.. can any one give the exact description for these t codes
    Regards,
    Joseph.

    Joseph:
    CS12 : Mulitlevel BOm View:
    Example: it  explaodes and displayes all subassembly BOM directly as shown below: Level2 appers below Level1 immeidately and so on..
    .1     0010           100-100     Casings          1     PC     L     
    ..2     0010                          100-110     Slug for spiral casing          1     PC     L     
    ..2     0020          100-120     Flat gasket          1     PC     L     
    ..2     0030          100-130     Hexagon head screw M10          8     PC     L     
    .1     0020                          100-200     Actuation          1     PC     L     
    ..2     0010          100-210     Slug for fly wheel          1     PC     L     
    CS11: BOM are displayed level by level. First all single levels are displayed and then each level is explaoded  further as shown below.
    1     0010     100-100     Casings          1
    1     0020     100-200     Actuation          1
    1     0030     100-300     Hollow shaft          1
    1     0040     100-400     Electronic          1
    1     0050     100-500     Bearing case          4
    1     0060     100-600     Support base          2
    1     0070     100-700     Sheet metal ST37          6.40
    1     0080     100-130     Hexagon head screw M10          8
    1     0090     P-100 DRW 000 00     Assembly drawing for pump          1
    1          100-100     Casings          
    2     0010     100-110     Slug for spiral casing          1
    2     0020     100-120     Flat gasket          1
    2     0030     100-130     Hexagon head screw M10          8
    1          100-200     Actuation          
    2     0010     100-210     Slug for fly wheel          1
    1          100-300     Hollow shaft          
    2     0010     100-310     Slug for Shaft          1
    1          100-400     Electronic     
    The o/p shown is same in both the case only formatting change is there.
    Regards,
    Santosh Sarda

  • Required to create PI category CS11 and how make it working in co60.

    There is a requirement to proess instruction category "CS11". That is PI category to display BOM level by level.
    What kind of setting need to be done.
    I could see from the existing PI category, within PI category there are list of several characteristics available.
    My query is how to create PI CHARACTERISTIC
    and how to assign these characteristics in the PI category while we create PI CATEGORY.
    and also how to assign the characteristics value.
    Someone, please tell me the entire procedure
    to create the CS11 PI category and make it working by assigning this control recipe destination, and finally make it working in
    CO60 to display and process cs11 transaction.

    Hi,
    To debug it on production, can you check on the hot-deployment area of Spaces apps to validate the shared library reference is updated in weblogic.xml is picked up:
    WebCenter_Domain_Home/servers/WC_Spaces/tmp/_WL_user/webcenter_11.1.1.4.0/<depl_prefix>/war/WEB-INF/weblogic.xml
    - Substitute respective depl_prefix with latest hot deployment folder created inside WebCenter_Domain_Home/servers/WC_Spaces/tmp/_WL_user/webcenter_11.1.1.4.0 directory for your instance.
    Cross verify the shared library reference for the ADF taskflow is reflected in the weblogic.xml for the Spaces server to reflect it.
    I hope it helps
    Thanks,
    Pramod

  • Iterative and Recursive algorithms

    I am fairly new to Java and am currently looking into Data structures, algorithms etc...
    I have designed a very basic ADT (Abstract Data Type) class called Loan which contains the following private instance variables 'loanNo, copyNo, membershipNo, dateDueBack, totalFines'.
    Basically I am trying to devise an iterative and also a recursive algorithm for calculating fines for loans not returned over a given duration. For instance if I was to assume a fixed rate of say 1% for every day the book is overdue how would I go about writing the 2 algorithms.
    Both the algorithm and elements of the java code would be appreciated or any useful articles or websites that can help me to further my limited understanding of this topic.
    All help is greatly appreciated.

    I am very far from being an expert here, but:
    Two important things come to mind;
    1. Try to keep your calculations in one file/class it is tempting to have something like the following:
    class BookTypeA
      float calculateFine()
         loanRate = 2%;
         // stuff
    // and then in another file...
    class BookTypeB
      float calculateFine()
         loanRate = 0.5%;
         // stuff
    }Every time you update the algorithm for calculating the fines, you have to change both files, trust me, someone will notice if your calculations bend a penny one way or another.
    You solve this problem by having a Visitor, there is lots of stuff on the web about the Visitor pattern. Basically:
    class Calculator implements Visitor
       public int calculate( Book book  )
          //stuff here
    class BookTypeA extends Book
       void calculateFine(  Visitor v )
          v.visit( this );
    //main{}
    for(  Book bk : myBooks  )
        bk.calculateFine( calculator );
    // etc.2. Separate your calculations into discreet functions, notice the difference in the following two "calculators"...
    class Calculator
       float getFine( int daysoverdue )
          if(  !senior )
              float result = daysoverdue * 0.01f;
              result += ( int tax = result * 0.08f );
              result += ( previousFines );
              result -= ( float seniorsdiscount = result * 0.10f );
           //etc, etc.
    // The WAY BETTER version
    class Calculator
       float getFine( int daysoverdue )
          if(  !senior )
              float baseAmount = calculateBaseFines( daysoverdue );
              float taxAmount = calculateTax( baseAmount );
              float previousFines = addPreviousFines(  );
               float subTotal = baseAmount + taxAmount + previousFines;
              float seniorsDiscount = applySeniorsDiscount(  subTotal );
           //etc, etc.
          // one calculation per function
          float calculateTax(  float baseamount )
              taxRate = 0.08;
              return baseAmount * taxRate;
          // rest of the functions
    } In short be really explicit. Really clear. Chasing tax rates through program headers, global definitions, main classes is really rough. Put the tax rate right next to the calculation. Perform one calculation per function, stuff like this; int rate += ( amount * tax ) + zot; is impossible to debug.
    Hope that helps some.
    Andrew

  • Mixing traditional and recursive queries

    Hello,
    I'm trying to solve this problem on a single SQL statement but I haven't been able to do it. Let me explain.
    I've a plain table where I'm doing a single select without problems.
    There is another recursive table that is used to retrieve the hierarchical structure for a selected key item that is used as a START WITH clause.
    The problem appears when, for each record selected on first query, I would like to retrieve the leaf records for it's structure.
    I assume that if I can use the key value obtained from the first query as a START WITH clause on the recursive on I'll get the required information.
    But I don't know how to do it.
    Are there anyone that can help me?
    Thanks.

    Hi,
    Thanks for posting the sample data; that's exatly what poeple need to help you.
    user12132557 wrote:
    If I launch SELECT ID,DESCRIP FROM ITEMS WHERE YEAR >= 2005
    I'll get last 3 records.
    For each one I would launch a select like
    SELECT ITEM,DESCRIP FROM TREE
    START WITH ITEM=+column_id_last_query+
    CONNECT BY PRIOR ITEM = PARENTIt's fine to describe the results you want, but there's no substitute for actually posting the results you want.
    Is this what you're trying to produce, given the data you posted and the input parameter 2005?
    `   PARENT       ITEM DESCRIP
             5         50 Item 50
            51         53 Item 53
            51         54 Item 54
            51         55 Item 55Whenever you post formatted text (such as query results) on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
    One way to get the results above in Oracle 9 is:SELECT     *
    FROM     tree
    WHERE     item     NOT IN     (
                   SELECT parent
                   FROM tree
    START WITH     parent IN (
                   SELECT id
                   FROM items
                   WHERE year     >= 2005
    CONNECT BY     parent     = PRIOR item
    Unfortunately, I don't have an Oracle 9 database, so I have to test it on a higher version.  I don't believe it uses any features that aren't available in Oracle 9.  In particular, it uses a clumsy and inneficient sub-query in the main WHERE clause instead of CONNECT_BY_ISLEAF, since that pseudo-column was only introduced in Oracle 10.
    Finally, I would like to know if this could be done in a single SQL query.Do you mean can it be done without sub-queries?  No, I don't think so.
    By the way, I'm using Oracle9i. I tagged my first post with this label. On next posts I'll write it in the text.Good move; there's an excellent chance that people won't notice the tags.  Post the full versions, e.g. Oracle 9.2.0.2.0.  Sometimes the finer divisions are significant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Costing - Multiple Production Versions and Recursive BoMs

    Hi All,
    We have a production and product costing scenario as follows:
    Production versions 10, 20 and 30. It takes all three versions to manufacture the finished material and there are no intermediate products in this scenario. 10 and 30 are to be costed and 30 is a recursive BoM with the input from version 10 also being the output. 10 is the main production step with components but 30 is a recursive BoM sometimes only with the output material as the input and sometimes with a more complete BoM but which includes the output material as an input component.
    The quantity input appears to be the same as quantity output for the recursive element.
    If anyone has come across this scenario and you can let me know what design principles you followed I would appreciate it.
    We are getting iteration error messages when costing production version 30 and even reducing the input quantity below 95% of the input as per the SAP documentation does not fix the error message.
    Any help you can give will be greatefully received.
    Thanks.
    Regards,
    Tim

    Murali - Its possible to use multiple PV in sub contracting.
    Settings in ERP :
    1. In CFC9 activate the - Transfer multiple selection of PDS indicator. When you select this indicator, the system allows you to select several productions versions in the integration model; it also creates a Production Process Model (PPM) or Production Data Structure (PDS) for each production version in SAP SCM
    2. Assign the PV's to the subcontracting info record through -  Logistics  - Central Functions  - Supply Chain Planning Interface - Core Interface - Advanced Planner and Optimizer - Environment  - Data Transfer  -Assign Multiple Production Versions
    3. When you select the integration model parameters for PDS, you have selected PP/DS Subcontracting as the PDS Type value. Similarly, for PPM, you have selected Subcontracting PPM as the Type of PPM value.
    Subcontracting with multiple production versions is supported. However, the integration with an SAP ERP system requires at least SAP ERP 2005 with Enhancement Pack 03.
    Rgds
    Valavan

  • Help - problems with mixin class and recursion

    I'm trying to set up functionality which will allow me to track gui node nesting.
    Basically, I'd like to have an optional name for each node and be able to generate a string which uses these to track descent. So, e.g., if I have "panel1" as my top scene, "control1" as a node within that scene and "image1" as a node within control1, I'd like to be able to produce the string "panel1.control1.image1" with a call to the image1 node.
    I am attempting to do this with a mixin class, as it seems precisely the sort of situation suited to mixins. So I have:
    import java.lang*;
    public mixin class Descent {
        public-init var objName:String = getClass().toString();
        public function getObjDescent():String;
    }When an object is created, it can be assigned a name - or, if there's no assignment, it gets given its class name. When I want the full "descent name" of the object, I'll call getObjDescent(). So far so good.
    But now it gets trickier. The idea is to track descent within javafx nodes. If I don't want to assume everything is set up properly, I've got to cover a few cases:
    (a) the class into which this object is mixed - the mixee - is not a javafx node
    (b) the mixee is a javafx node, but its parent is not
    (c) the mixee is a javafx node and descends from a javafx node
    Thus:
        public function getObjDescent():String
            var build:String="";
            // get parent's name, if it has it
            try {
                var nodeClass:Class[] = [javafx.scene.Node.class];
                var checkIsNode = this.getClass().getMethod("getNodeMaxHeight",nodeClass);
                if ((this as Node).parent != null) {
                    var parentDescentFn = (this as Node).parent.getClass().getMethod("getObjDescent",(null as Class[])) ;
                    build = ((this as Node).parent as Descent).getObjDescent();
                    build = build.concat(".");
            catch (e:NoSuchMethodException)
                build = "";
            build.concat(this.objName);
        };First I have to check if the mixee is a javafx Node. I can't do this by member checking because javafx doesn't support that. So I have to check by methods. I use one of the Node methods - getNodeMaxHeight - if it is defined for the mixee, the mixee is a node. If not, I'll get an error and can abort down to the catch section.
    If this mixee is a node, then it will have a parent node. If that parent also has descent info, I have to prefix that parent's descent name. So now I need to figure out if I can recursively call getObjDescent() on the parent.
    So I do the same getMethod() approach on the parent (if any) to see if it has a name I have to prefix. If not then, again, we abort out to the NoSuchMethodException error catch.
    Now I should be sure that this is a node and its parent has the Descent fields. So I should be safe to call the parent for its info.
    Here I've done this as
    ((this as Node).parent as Descent).getObjDescent().Though that gives me no errors, I'm not sure if that's the right way to cast things - will it look at the wrong portion of the object to find the method call? Better would be to call the function using the parentDescentFn variable, which I've gotten in checking to see if the parent has the Descent class mixed in, but I can't figure out how to go from a java.lang.reflect.Method variable to generating an actual call of that method. So there's a first question.
    However I get to that recursive call, I will get back the parent's descent name. I add my descent separator, '.', and then append the objName of this particular class. Voila - the full descent name.
    Though the above throws no warnings in the editor, it generates two compile errors.
    First, it tells me it cannot find the symbol:
    symbol  : method get$class()
    location: class javafx.scene.Node
                var nodeClass:Class[] = [javafx.scene.Node.class];I need to construct a Class[] containing Node for my call to getMethod in the next line. Is this not the right way to specify the Node class?
    The next error is:
    non-static variable this cannot be referenced from a static context
                var checkIsNode = this.getClass().getMethod("getNodeMaxHeight",nodeClass);I still find what javafx treats as "static" and what non-static to be mystifying. I'm fairly sure I've seen mixin classes which use "this" to grab the mixee object, and I certainly need to do so in this case to check if the mixee is a javafx Node and, subsequently, to get its parent Node.
    So... three problems:
    - Using "this" in a mixin class ... what's messing that up?
    - constructing the Class[] sequence for the first call to getMethod
    - (possibly) properly generating a call to the parent mixee's getObjDescent() method.
    urg.

    RE static vs non-static of this:
    I'm not sure, but I think it's a little less straightforward:
    e.g. if I type:
    var dummy = this; no problem. (This is analogous to what you did.)
    But if I type:
    var dummy = this.getClass();I get the static/non-static error. I take this to reflect the fact that getClass() is not defined by the mixin class, even if it is defined for any object which might use that class. (Perhaps, down deep in the code, "this" has been redirected to point just to that block of memory which gives the implementation of the mixin information?)
    Yet if I type
    var dummy = getClass();it works fine, and returns the class which is implementing the mixin.
    My guess is that "this" is being treated specially with a mixin class - I think, at compile time, if it just says "this" it is ignored by the "mixin" handling and passed along to the regular class compiling to process, but if it is this.method() or this.member, then the mixin class handles it and will throw that error if it gets any methods or members which it did not itself define.
    I haven't had any trouble using the Class objects in javafx, though I don't think I can easily make them do what I, here, specificly want to do. But getClass() seems to work just fine (as long as I don't say this.getClass() !!), as do calls to get or invoke members - I got that one of the 3 problems solved.
    I discovered that javafx seems to flatten its classes out to the single implementation of FXObject - when I attempted to parse the interfaces of the mixee class to see if "Node" was a member (which it should be, conceptually), I only got 2 interfaces: FXObject and my mixin class. So I can't use the Class commands to find out of the mixee class object implements Node or not.
    I also discovered that, given how javafx seems to compile itself into java, I could actually check for members as well as methods: getMethod("loc$parent") would actually return the parent member, if present. So getMethod can be used to check for the presence of both members and methods in javafx classes. I could not figure out, however, how to get from that reference to the value of the object itself - while invoke() works properly for methods, I couldn't get it to work for the members it retrieved. Though I didn't try too terribly hard.
    The getMethod() Class function did allow me to check if a class had my mixin class present - or, at least, if it contained a method with the same name as one defined in that class.
    Ultimately, though, I'm still stuck with trying to answer the questions, given a generic javafx class (implicit in this, which I could get by getClass()):
    - does this mixee class implement Node?
    - if so, what is the value of its "parent" member ((this as Node).parent didn't seem to work within the mixin class' code. Or so it seemed.)
    I've gotten around that problem by adding a Node member to the class, so that, rather than trying to deduce it from "this" or the Class functions, it simply uses its variable. Less elegant and more memory-using, but quicker and, actually, more flexible. That approach solves my immediate problem, though it does leave unanswered the more basic questions raised by the exercise.
    thanks for the feedback!

  • Deadline monitoring and recursive mails

    Hi experts,
    I have a user decision sent to users in workflow. If no action is taken after 3 days of workitem creation, an email has to be sent. Also after 3 days a mail has to be sent daily once until the decision is taken.
    I am able to send mail once 3 days is completed after workitem creation by doing the set up in 'Latest end' tab of user decision.
    But how do I send recursive mails daily once..?
    Please suggest.
    Regards,
    Karthik

    Hello,
    Using Extended Notifications is the right decision. I haven't used the Reminder option myself so maybe someone else can advise on that - if you don't find it by searching first.
    Found this by searching this forum:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/be/849840888a2f54e10000000a1550b0/frameset.htm
    regards
    Rick Bakker
    hanabi technology
    Edited by: Rick Bakker on Feb 20, 2012 3:35 PM

  • Abstract classes and recursive data

    I am trying to create my own mini "RPG" game and right now I'm starting off with the basics; potions for players. However, when I attempt to define my classes I get the following error when compiling compound.java
    *\compound.java:8: cannot find symbol*
    symbol  : constructor mixture()
    location: class mixture
    *^*
    *1 error*
    Basically a MIXTURE can be one of three things:
    Water
    A Potion
    Compound (two mixtures)
    Here are my two classes:
    abstract class mixture
         private water h2O = null;
         private potion potn = null;
         private compound cmpnd = null;
         mixture(water w)
              this.h2O = w;
         mixture(potion p)
              this.potn = p;
         mixture(mixture m1, mixture m2)
              this.cmpnd = new compound(m1, m2);
         public void getContents()
              if(this.h2O != null) { getWater(); }
              if(this.potn != null) { getPotion(); }
              if(this.cmpnd != null) { getCompound(); }     
         public water getWater() { return this.h2O; }
         public potion getPotion() { return this.potn; }
         public compound getCompound() { return this.cmpnd; }
    public class compound extends mixture
         // A compound consists of two mixtures
         private mixture mix1;
         private mixture mix2;
         compound(mixture m1, mixture m2)
              this.mix1 = m1;
              this.mix2 = m2;
         public mixture getMix1() { return this.mix1; }
         public mixture getMix2() { return this.mix2; }
    }Thank you for any help you can provide!
    Edited by: blacksaibot on Nov 16, 2008 10:03 AM

    The error message is telling you exactly what's wrong. As per the rules below, you're trying to call a constructor on you mixture class (should be Mixture, by the way--classes start with uppercase by convention) which doesn't exist.
    Also, I strongly recommend you get a firm grounding in the basics before attempting anything with even a fraction of the complexity of an RPG. You're just setting yourself up for frustration otherwise.
    Constructor rules:
    1) Every class has at least one ctor.
    1.1) If you do not define an explicit constructor for your class, the compiler provides a implicit constructor that takes no args and simply calls super().
    1.2) If you do define one or more explicit constructors, regardless of whether they take args, then the compiler no longer provides the implicit no-arg ctor. In this case, you must explicitly define a public MyClass() {...} if you want one.
    1.3) Constructors are not inherited.
    2) The first statement in the body of any ctor is either a call to a superclass ctor super(...) or a call to another ctor of this class this(...) 2.1) If you do not explicitly put a call to super(...) or this(...) as the first statement in a ctor that you define, then the compiler implicitly inserts a call to super's no-arg ctor super() as the first call. The implicitly called ctor is always super's no-arg ctor, regardless of whether the currently running ctor takes args.
    2.2) There is always exactly one call to either super(...) or this(...) in each constructor, and it is always the first call. You can't put in more than one, and if you put one in, the compiler's implicitly provided one is removed.
    Edited by: jverd on Nov 16, 2008 10:25 AM

  • Mutating table and recursive triggers

    Hello every one,
    I seem to be having a problem with a statement level update trigger. I want to use a trigger on a table then update the same table. Initially when I coded it as a row trigger but I received a ORA 04091 mutating error message.
    I refered a Oracle PL/SQL book and it suggested a work around. I recoded the trigger but it is not working. Oracle does not want to let me update the table I am running my statement level trigger(accompanied with a package and row level trigger) on. Please see code below. CREATE OR REPLACE PACKAGE service_guarantee_cap_data AS
    TYPE t_userid is table of bizguaranteereq.userid%type
    index by BINARY_INTEGER;
    TYPE t_recordid is table of bizguaranteereq.recordid%type
    index by BINARY_INTEGER;
    v_userid t_userid;
    v_recordid t_recordid;
    v_NumEntries BINARY_INTEGER :=0;
    end service_guarantee_cap_data;
    CREATE OR REPLACE TRIGGER service_guar_cap_row_update
    BEFORE UPDATE of statuscd ON bizguaranteereq
    FOR EACH ROW
    BEGIN
    service_guarantee_cap_data.v_NumEntries := service_guarantee_cap_data.v_NumEntries + 1;
    service_guarantee_cap_data.v_userid(service_guarantee_cap_data.v_NumEntries ):= :new.userid;
    service_guarantee_cap_data.v_recordid(service_guarantee_cap_data.v_NumEntries ) := :new.recordid;
    END service_guar_cap_row_update;
    CREATE OR REPLACE TRIGGER service_guar_cap_stat_update
    after UPDATE of statuscd ON bizguaranteereq
    DECLARE
    v_rowid_2 number;
    v_userid_2 number;
    v_recordid_2 number;
    v_overcap_99 number;
    BEGIN
    v_0 := 0;
    v_overcap_99 := 99;
    FOR v_loopindex in 1..service_guarantee_cap_data.v_NumEntries LOOP
    v_userid_2 := service_guarantee_cap_data.v_userid(v_loopindex);
    v_recordid_2 := service_guarantee_cap_data.v_recordid(v_loopindex);
    select count(*)
    into v_statuscd_count
    from bizguaranteereq
    where userid=v_userid_2
    and statuscd=99;
    IF v_statuscd_count > 0
    THEN
    update bizguaranteereq
    set statuscd=v_overcap_99
    where userid = v_userid_2
    and recordid=v_recordid_2;
    END IF;
    END LOOP;
    service_guarantee_cap_data.v_NumEntries := v_0;
    END service_guar_cap_stat_update;

    I did not receive a mutating error with my work around code. I think the problem lies with the update DML. I will try your suggestion of an external proceedure that takes the parameter given from the statment level trigger and then updates the table using the proceedure.
    Thanks
    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by wasim hamwi ([email protected]):
    I am not sure this code will work, you will get mutating table because you are selecting the count(*) from the sam table you are tying to update....use Autonomous_transaction if your Db iv V8.1.5 or higher.
    Wasim<HR></BLOCKQUOTE>
    null

  • Difference between value node,model node and recursion node?.

    Hi all,
    this is to ask you the difference between modal node, value node and recurrsion node?
    please explain
    Anhitya Kashyap

    hi Anhit,
    node can be classified as a value node or model node. The difference between value nodes and model nodes is that a value node can store the data itself, whereas the model node only references an external model object that stores the data.
    more on nodes check this
    http://help.sap.com/saphelp_webas630/helpdata/en/b8/cd96edb9c8794aa362e6e8b4236a1f/frameset.htm
    thanks,
    Saloni

  • DB Adapter and recursive objecttype

    Hi!
    I have a database type, an object, which has a reference to a table of itself. Like this:
    create or replace type aa
    create or replace type aa_tbl is table of ref aa
    create or replace type aa is object (
    cc number,
    dd number,
    ee aa_tbl
    As you see, the aa object type has a reference (ee) of type table of its own type. So far so good. Now, I have created a procedure that take type aa as an argument. Then I have tried to create a database adapter to call this procedure. However, it fails due to the circularity; it tries to expand the object model forever.... But in the real world, the ee variable in aa will be null sometimes, and the tree will be "terminated", so it is a "legal" data structure, I think.
    Any idea how to get this working with the db adapter? Can I modify the data structure to fit the db adapter?
    Thanks in advice!

    This is a most common situation for any fnancial application; your sample is greatly simplified. Most of the adapters are dum; what I'd try first is generate it without the reference and then patch the generated SQL manually afterwards - the adapters generate buggy code anyway so for anything that returns tables or nested tables you'll end up patching it anways.
    I'm stumped by it really in terms of an architechtural problem on the SOA side; see for the whole xml - web services/bpel - soa story to work it needs to obtain an atomic set of data, that is pre-resolve everything so it can serialize it, send it over the network, and finally deserialize it; you can not deserialize a reference to something within this atomic data packet; unless you design it differently, e.g. instead of returning a product as a whole return it in sets then have your proc figure it out - there's nothing wrong with returning one type aa at a time; but then loop in the bpel or whatever for nested type aa to that root type aa.
    From these two I think the latter option is most propably the safe one; I did read somewhere that soap supports references to stuff but it may cause all sots of unstable behavior based on your tool sets for both client and server; change the way your proc works and accomodate for the nesting in the consumer e.g. a bpel that returns a product will contain a loop to append all the nested products to the requested product.

  • [Tree] item and node order ! (Recursive Node)

    I made a wd4a has organizatonal structure tree. but I have some problem with the org tree.
    I want to have a tree(org structure) in item(person) and node(organization) order.
    Root                                            Root
      |- Person 1                                    |- Head Dept
      |- Person 2                                    |        |-Person 3
      |-Head Dept                        ->        |        |-Person 4
      |       |- Person 3                             |-Sales
      |       |- Person 4                             |- Person 1
      |-Sales                                          |- Person 2
    ( to be displayed)                                 (current displayed)
    Whiat's the problem?
    Although the both of them have a same contents, I really want to display in person and org order .
    Plz. help.

    I solved this problem myself and it makes me very so tired.
    I guess that Recursive node tree have some bugs.
    If a node have one recursive node and one sub-node and some kinds of attributes,
    we have to make a decision on how to display and sort them(sub-node and attributes)
    There is a example below as I really want to sort them.
      C_Drive Folder
    - file 1
    - file 2
    - Folder 1
    - file3
    - Folder 1-1
    - Folder 2
    Context
        |-Folder Node
        |      |-File Node
        |      |       |-File Name attribute
        |      |-Folder Name attribute
        |      |-Folder_Content             -> Recursive Node
    When you meet this situation,you must implement the context nodes and
    the names of context node and recursive node must be in alphabet order you want to display.
    I am sorry for my crumsy writting English.

  • Object Serialization(Materialization and Dematerialization)

    I've encountered some issues with mapping my objects to an RDBMS and am hoping for some advice.
    I've tried various O/R mapping frameworks like Castor(too complex and too slow for my liking), JRF(nice but very repetitive and difficult to extend) and then some, but have yet to find one which I'm comfortable with building an application on.
    Instead, I've chosen to do it the low-tech way, with each domain class, say Book for instance, having a Broker class which knows how to communicate with the chosen form of persistence. So, since I chose an RDBMS, Book class has a BookRelationalBroker class which knows how to materialize and dematerialize Book objects to and from a RDBMS. If so required, I can plug in a BookXMLBroker which knows how to serialize the object in the form of an xml data file.
    I've also implemented a primitive object caching system which (when enabled), caches objects requested so we only have to materialize it from the db once.
    Here are 2 issues I have with my system:
    It is amazingly tedious (not to mention inefficient) to recreate the entire object from the database. This is even more so because I've implemented the Event Notification pattern, such that when say a book is deleted, the members who have reserved it are notified. The whole point of the Event Notification mechanism is so that the object being watched does not need to know of the objects which need to be notified on a state change. However, I've found it necessary to re-attach all the listeners on an object when it is materialized from the DB, defeating the purpose of the pattern.
    Complex object relationships are mapped poorly and recursive materialization leads to slow response times. If a Group object has a Vector of Members and other Groups, then whenever a Group object is materialized, all its constituent Members and Group objects also need to be materialized. (I understand O/R frameworks solve this through lazy instantiation)
    I studied the Jive2 architecture and found that they approached this problem by accessing the DB directly for any complex object relationships. In other words, the Group object does not actually contain a Vector of Members and Groups. Instead, it has a method called say getMembers() which proceeds to retrieve the necessary data from the DB and then materialize these objects.
    I'm not too excited about this approach for 2 reasons:
    How object-oriented is this approach? Seems more like database-oriented programming to me.
    Every call to retrieve Members necessitates a call to the DB. The data isn't cached with the Group object because the Group object does not actually contain the necessary reference to the Members and Groups.
    Can anyone shed some light on this topic?

    How object-oriented is this approach? Seems more like database-oriented programming to me. There is a reason people still use Relational databases rather than OO DBs. First, is that the vast majority of data in the real world maps easily to a relational model, consequently there is no advantage to a OO model. Second, either because of this or simply because OO models are not computationally simple, OO databases tend to be slower than relational DBs.
    It sounds like you are trying to implement a OO DB model using a relational database. So you basically end up with two problems. The DB is not optimized for OO models, and you have to find a way to map it in the OO model itself. And this is slow and messy.
    To solve the slowness problem you could, just like EJB servers, cache the data in memory. Lot of work but if you want to do it then have fun.
    The second way is to give up. Realize that your data model is not inherently OO'd and just implement it efficiently as a relational model. Then provide an interface that loads it into the OO model. And where needed add pass through logic to allow the database itself to do things it is really good at - like queries.

Maybe you are looking for

  • Firefox won't start, no error message, firefox.exe showing in Task Manager Processes

    Firefox (v3.6.6 on Windows Vista) will not open. When the icon is clicked, the hourglass shows for a few seconds, goes away, and nothing else happens. There are no error messages. 'firefox.exe' shows on the Task Managers Processes tab. I also cannot

  • Funky artwork glitch

    I don't know what's going on, and it's not a huge deal, but here goes: When i play tunes in itunes, i use grid mode and have the artwork in the lower left corner set to "Selected Item". The difficulty is that the artwork displayed is the artwork that

  • Why does InDesign / CS3 do this?

    When exporting an InDesign file to pdf, we frequently end up with the pdf having a different name than the original ID file. We thought that maybe the ID file is retaining an old pdf name because we may have opened an old file, done a save as and mad

  • I can't re-install iTunes 6.0 - Please help!

    I un-installed (successfully) the horrible iTunes 7. I'm tryingto re-stall iTunes 6.0 from the link. I get an error message "A Later Version of iTunes is already installed." Cannot continue. I restarted my PC. No Luck. Any Suggestions PLEASE!!!

  • Error same login (novell client and VO)

    We have some problem about as below: We use Windows XP SP2 and install the Novell Client on them. Log on to the Novell NetWare 6.5 SP6 server already and we would like to use Virtual Office (1.6.2) by using browser (IE6, IE7, Firefox). We can authent