Help needed on Many to Many Parent Child Relationship (PL/SQL)
Friends,
Please help me.
I have table where in two columns are having many to many parent child relation ship. It means child can have multiple parents.
Table strucuture and sample records given below. Here 334059 is GRAND PARENT of all child records.
PARENT CHILD LEVEL Usage
334059 380499 1 This Level has 2 childs
334059 334730 1
334730 335629 2 This level too has 2 childs where in 380499 is child of 334730 & 334059 also.
334730 380499 2
380499 380497 2 This level has 3 childs and 88888 is having further child.
380499 334730 2
380499 88888 2
88888 99999 3 It has one child 99999 and has further child 10101.
99999 10101 4 It has one child 10101 and has further child 11111.
10101 11111 5 It has one child 11111 and has no further child. I.e leaf node.
11111 0 6 leaf node
What I want is records in same level above. I am using below code but its implementing only UPTO 2nd LEVEL given above.
Further its not going i.e 3,4,5,6 level. Could you please help me?
DECLARE
CURSOR main_pc(p_child pc.child%type) IS
SELECT CHILD
FROM pc where parent = p_child;
CURSOR main_dw(p_child dw_exrdbo.exr_parent_child.child_fund%type,
p_level NUMBER) IS
SELECT DISTINCT CHILD_FUND,LEVEL_NUMBER FROM dw_exrdbo.exr_parent_child
where parent_fund = p_child
and parent_fund <> child_fund
and level_number = p_level;
v_next_parent pc.child%type;
v_level NUMBER := 1;
v_grand_parent dw_exrdbo.exr_parent_child.parent_fund%type := 334059;
v_parent dw_exrdbo.exr_parent_child.parent_fund%type;
vDone BOOLEAN;
v_xyz dw_exrdbo.exr_parent_child.parent_fund%type;
v_cnt NUMBER := 0;
BEGIN
DELETE FROM dw_exrdbo.exr_parent_child;
COMMIT;
INSERT INTO dw_exrdbo.exr_parent_child
SELECT PARENT, CHILD, 'INVONE', 12345, 'P',0,1
FROM pc where parent = v_grand_parent
AND NOT EXISTS (select 'x' from dw_exrdbo.exr_parent_child where parent_fund = v_grand_parent);
COMMIT;
FOR i IN (select distinct child FROM pc WHERE parent = v_grand_parent) --334059
LOOP
DBMS_OUTPUT.PUT_LINE('Next Parent is '||v_parent);
FOR x IN main_pc(i.child)
LOOP
INSERT INTO dw_exrdbo.exr_parent_child
(parent_fund, child_fund, source_application, valuation_date_sid, parent_child_flag, child_count, level_number)
VALUES(i.child, X.CHILD, 'INVONE', 12345, 'C',0,1+1);
COMMIT;
END LOOP;
END LOOP;
END;
Thanks in advance!!!
Regards,
Jigger
Hi, Jigger,
Sorry, I can't tell what you want.
Whenever you have a question, please post CREATE TABLE and INSERT statements for your sample data, and the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using.
Similar Messages
-
Help needed in retrieving parent child relationship values
Hi,
I have a requirement to get parent child relationship values as below.
Ex: Address table
cont cont_code state state_code
C1 10 S1 1
C1 10 S2 2
C1 10 S3 3
C2 20 S4 4
C2 20 S5 5
C3 30 S6 6
C3 30 S7 7
C3 30 S8 8
I want a result of country/state and corresponding code like below.
corresponding states should be displayed under each country with some space appended to it.
Geography code
C1 10
S1 1
S2 2
S3 3
C2 20
S4 4
S5 5
C3 30
S6 6
S7 7
S8 8
I am using oracle 10g version.
Thanks in advance.Hi,
When you post formatted text (like your output) on this site, type these 6 characters:
\(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
I think you're saying that you want this output:GEOGRAPHY CODE
C1 10
S1 1
S2 2
S3 3
C2 20
S4 4
S5 5
C3 30
S6 6
S7 7
S8 8
If so, UNION, as Hoek suggested, is a good way.
GROUP BY ROLLUP is more efficient, but harder to understand:SELECT CASE
WHEN GROUPING (state) = 1
THEN cont
ELSE ' ' || state
END AS geography
, CASE
WHEN GROUPING (state) = 1
THEN MAX (cont_code)
ELSE MAX (state_code)
END AS code
FROM t
GROUP BY cont
, ROLLUP (state)
ORDER BY cont
, state NULLS FIRST
By the way, this looks like a bad table design.
In a relational database, the fact that the name 'C1' belongs to cont_code 10 should only be stored in one place. You have the same information on 3 separate rows.
Also, if 'C1' and 'S1' are both names, they should probably be in the same column, so that (to give just one example) you can find the information about 'x1' without knowing if it is a cont or a state.
A better design would be.NAME CODE PARENT DSCR
==== ==== ====== ====
C1 10 CONT
S1 1 10 STATE
S2 2 10 STATE
S3 3 10 STATE
C2 20 CONT
S4 4 20 STATE
S5 5 20 STATE
C3 30 CONT
S6 6 30 STATE
S7 7 30 STATE
S8 8 30 STATE
If the data is this simple, then the dscr column isn't needed. Whether parent is NULL or not tells whether the rows represents a cont or a state.
To get the results you want from a table like this, you could use CONNECT BY. Using either UNION or ROLLUP, you have to know, at the time you write the query, how many levels there will be in the parent-child tree, and the length of the code is proportional to that depth, and the table has to be changed if you ever need to add another level. CONNECT BY can handle any number of levels, and the length and complexity of the code is the same whether you have just 2 levels (countries and strates), or 7 levels (continents, regions, countiries, states, districts, cities and neighborhoods) or 72 levels. The table doesn't need any more columns, no matter how deep the tree gets.
Edited by: Frank Kulash on Sep 16, 2010 11:54 AM -
Function to get the path using a parent-child relationship
Hello,
I have a table which uses parent-child relationship to store the options available. I need a function to give me the full path given the id of a particular option.
I have two different functions. One of them uses the Oracle built in function and the other uses simple queries with a loop.The code of the functions are given below.
Now, the problem is with their "performance". The difference in their performance is significant. The function using the Oracle function takes more than 2 hours to run a query whereas the other function takes less than 2 minutes.
I am having trouble trusting the other function. No matter how many tests I perform on the output of both the functions, it always comes out to be the same.
Any thoughts to help me understand this ??
Function 1
=====================
FUNCTION Gettree (opt_id IN NUMBER,i_app_id IN NUMBER)
RETURN VARCHAR2
IS
path VARCHAR2(32767);
application_no NUMBER;
BEGIN
SELECT ABC.APP_OPT_ID INTO application_no FROM ABC
WHERE ABC.APP_ID = i_app_id AND ABC.PARENT_ID IS NULL;
SELECT LPAD(' ', 2*LEVEL-1)||SYS_CONNECT_BY_PATH(app_opt_name, '=>') "Path" INTO path
FROM ABC
WHERE app_opt_id = opt_id
START WITH parent_id =application_no
CONNECT BY PRIOR app_opt_id =parent_id;
path := SUBSTR(path,INSTR(path,'>')+1,LENGTH(path));
RETURN path;
END Gettree ;
Function 2
======================
FUNCTION GetOptPath(opt_id NUMBER,app_id NUMBER)
RETURN VARCHAR2
IS
string VARCHAR2(900);
opt VARCHAR2(100);
pid NUMBER(38);
BEGIN
SELECT ABC.parent_id,ABC.app_opt_name INTO pid,string FROM ABC WHERE ABC.app_opt_id = opt_id;
IF pid IS NULL
THEN
RETURN 'root';
ELSIF pid IS NOT NULL
THEN
LOOP
SELECT ABC.app_opt_name,ABC.parent_id INTO opt, pid FROM ABC WHERE ABC.app_opt_id = pid;
EXIT WHEN pid IS NULL;
string := opt || '=>'|| string;
END LOOP;
RETURN string;
END IF;
END;Hi,
user8653480 wrote:
Hello Frank,
The parameters taken by gettree & getoptpath are app_opt_id and app_id and both the functions return only one string i.e. the path of that particular option (app_opt_id) starting from its root and not all the descendants of that option/root node of that option.
So, does that mean that gettree first fetches all the descendants of the root node of the given option and then returns the required one ??Yes. It's a little like the situation where you need to meet with your co-worker Amy, so you send an e-mail to everyone in the department telling them to come to your office, and then, when they arrive, tell everyone except Amy that they can leave.
>
And if that is the case, then won't it be better to use the bottom-up approach to fetch the required path just for that particular option ?? 'coz my requirement is that only.. given an option_id get the full path starting from the root.Exactly!
I have used explain plan also for both the functions.. but since I did not know how to anlayze the output from plan_table so I just compared the value in the fields and they were exactly the same for both the queries.If you'd like help analyzing the plans, post them, as Centinul said.
I am attaching a sample data with the outputs of both the functions for the reference.
(tried attaching the file but could not find the option, so pasting the data here)
App_opt_ID App_ID Parent_ID App_opt_name "gettree(app_opt_id,app_id)" "getoptpath(app_opt_id,app_id)"
1 1 NULL application NULL root
2 1 1 module1 module1 module1
3 1 1 module2 module2 module2
4 1 2 submod1 module1=>submod1 module1=>submod1
5 1 3 submod1 module2=>submod1 module2=>submod1
6 1 5 opt1 module2=>submod1=>opt1 module2=>submod1=>opt1
7 2 NULL app2 NULL root
8 2 7 scr1 scr1 scr1
9 2 8 opt1 scr1=>opt1 scr1=>opt1
10 2 7 scr2 scr2 scr2Please help.The best solution is to do a bottom-up query, and write a function like reverse_path (described in my first message) to manipulate the string returned by SYS_CONNECT_BY_PATH. You seem to have all the PL/SQL skills needed for this.
Another approach is a revised form of gettree, like I posted earlier. Does it do what you want or not?
If you'd help, then post a little sample data in a form people can actually use, such as CREATE TABLE and INSERT statements. Post a few sets of parameters, and the results you need from each set, given the sample data posted. -
Re: Circular Parent-Child relationship amongwidgets.
Alaiah,
Setting the parent to NIL is the proper thing to do to remove
a widget from a panel. Why don't you try just setting it
to NIL and not adding the new chart to the window to make
sure that it gets removed. If that doesn't work, maybe
Window.UpdateDisplay, but you shouldn't have to do that.
As far as the parent-child relationship issue, when you set
the widget's Parent to NIL, that is actually invoking a virtual
attribute that does more than just NIL out the reference. One
of the things that happens is that the child is removed from
the parent's Children array. Do a task.lgr.putline(<parent>.Children.Items)
to see how many items are in the array, then do the NIL, then
do a second putline and you'll see the array has one less item.
Bobby
At 06:10 PM 12/19/96 PST, Chandrashekar, Alaiah wrote:
>
I am trying to draw a Bar Graph on a panel which in turn sits on the main
window. The height policy of the panel widget is set to SP_TO_PARENT so that
when the window is resized the panel is also resized according to the parent
window. I have a situation that every time the panel is resized I need to
scale the Bar Graph in accordance with the new panel size and draw it. But
before drawing the newly scaled Bar Graph I am clearing out all the children
of the panel ( I am doing this just to refresh the panel) and then drawing
the newly scaled Bar Graph. But this does not work!!! I still find some
left over from the previous Bar Graph!!! Any help in this matter is greatly
appreciated.
Also I don't understand this circular parent-child relationship. If I assign
a NIL to Parent attribute of all the children of the panel, what will happen
to the Children attribute of the panel? Won't there be any memory leak by
adopting the above procedure of disconnecting a child from its parent? If
so, how do we take care of it?
Thanks in advance!
Alaiah Chandrashekar
The following is the segment of the code which could be useful for clarity:
// Draws the Bar Graph for the first time.
self.ShowChart(TestData);
self.Open();
event loop
when task.Shutdown do
exit;
// When the window is resized
// I am scaling the Bar Graph for the new
// panel size.
when self.window.AfterReSize do
self.ClearChartPanel();
// self.window.UpdateDisplay();
self.ShowChart(TestData);
end event;
self.Close();
Method ClearChartPanel is as follows:
for child in self.<ChartPanel>.Children do
child.Parent = NIL;
end for;Alaiah,
Setting the parent to NIL is the proper thing to do to remove
a widget from a panel. Why don't you try just setting it
to NIL and not adding the new chart to the window to make
sure that it gets removed. If that doesn't work, maybe
Window.UpdateDisplay, but you shouldn't have to do that.
As far as the parent-child relationship issue, when you set
the widget's Parent to NIL, that is actually invoking a virtual
attribute that does more than just NIL out the reference. One
of the things that happens is that the child is removed from
the parent's Children array. Do a task.lgr.putline(<parent>.Children.Items)
to see how many items are in the array, then do the NIL, then
do a second putline and you'll see the array has one less item.
Bobby
At 06:10 PM 12/19/96 PST, Chandrashekar, Alaiah wrote:
>
I am trying to draw a Bar Graph on a panel which in turn sits on the main
window. The height policy of the panel widget is set to SP_TO_PARENT so that
when the window is resized the panel is also resized according to the parent
window. I have a situation that every time the panel is resized I need to
scale the Bar Graph in accordance with the new panel size and draw it. But
before drawing the newly scaled Bar Graph I am clearing out all the children
of the panel ( I am doing this just to refresh the panel) and then drawing
the newly scaled Bar Graph. But this does not work!!! I still find some
left over from the previous Bar Graph!!! Any help in this matter is greatly
appreciated.
Also I don't understand this circular parent-child relationship. If I assign
a NIL to Parent attribute of all the children of the panel, what will happen
to the Children attribute of the panel? Won't there be any memory leak by
adopting the above procedure of disconnecting a child from its parent? If
so, how do we take care of it?
Thanks in advance!
Alaiah Chandrashekar
The following is the segment of the code which could be useful for clarity:
// Draws the Bar Graph for the first time.
self.ShowChart(TestData);
self.Open();
event loop
when task.Shutdown do
exit;
// When the window is resized
// I am scaling the Bar Graph for the new
// panel size.
when self.window.AfterReSize do
self.ClearChartPanel();
// self.window.UpdateDisplay();
self.ShowChart(TestData);
end event;
self.Close();
Method ClearChartPanel is as follows:
for child in self.<ChartPanel>.Children do
child.Parent = NIL;
end for; -
Parent child relationship is not displaying for IDOC_OUTPUT_ORDERS (PO)
Hi,
Can somebody help me the reason why parent child relationship not displaying properly for ORDER05 basic type?
If we go in details about the problem, a purchase order is creating in R/3 through EBP. To modify my requirement I am using userexit EXIT_SAPLEINM_002. Here I am appending the records in the segment for E1EDKT1 and E1EDKT2. IDOC is creating with an error of status record 26.
When I check in the transaction WE19 for the respective IDOC the data is showing correctly for all the segments including e1edkt1 and e1edkt2 segments and also I check in the table EDID4 segment number is showing correctly and the for the segment E1EDKT2 PGNUM also showing correctly, but when I see the IDOC in the transactions WE02 unable to see parent child relationship between E1EDKT1 and E1EDKT2 segment. Simply the data is displaying one below other like other segment.
I don't know the reason why it is displaying like that?
If anybody is having the solution is highly appreciable.
Regards,
Noorulhi hassan,
When you are appendng the REcods which belong to the purticular segment..
all the segment needs to be appended in in the proper order as in the WE30..
I<b> think you are appending the segment E1EDKT2 at the end of the EDIDD.. or IDOC_DATA in the user exit..</b> .. eventho no eerror will be displayed but idoc will generted with sataus 26 .. if check the <b>STATUIs Recored u ewill find the SYNTaX ERROR.</b>
<b>Sollution for ur probelm is</b>... don append the E1EDKT2 at the lastr instead <b>you ahve to insert the segment E1EDKT2. only afer E1EDKT1..</b>..
Tehn you r problem will be solved.. I had faced the Same proble when i worked on material maser idoc..
<b>Close this thread if when u r problem ise solved</b>
Reward if helpful
Regards
Naresh Reddy K -
Custom IDoc Type missing segment parent/child relationships
Hi.
I copied the standard ORDERS05 IDoc type to a custom type and cut out quite a few segments. My new IDoc type is setup with parent/child segment relationships, similar to many of the original relationships in ORDERS05.
When I use the standard FM IDOC_OUTPUT_ORDRSP to generate an IDoc, it's not creating with parent/child segment relationships. It's placing the children at the same level as the parent.
Anyone know what I'm doing wrong?
Thanks!
Calfigured out the problem. was missing a required segment used to establish the parent/child relationship.
-
Find parent/child relationships At More Than 2 Levels
Hello,
Does anyone have a solution to find parent/child relationship for data more than 2 levels deep?
I have a solution when there's a simple parent-child relationship but not when there's a grandparent-parent-child relationship or deeper.
Ex. I have a table company_parent_child that stores the relationship betwen a company and it's direct parent.
create table TEMP_COMPANY_PARENT_CHILD
PARENT_ID NUMBER(10),
COMPANY_ID NUMBER(10)
insert into TEMP_COMPANY_PARENT_CHILD values (1, 10);
insert into TEMP_COMPANY_PARENT_CHILD values (1, 11);
insert into TEMP_COMPANY_PARENT_CHILD values (1, 12);
insert into TEMP_COMPANY_PARENT_CHILD values (2, 13);
insert into TEMP_COMPANY_PARENT_CHILD values (10, 100);
insert into TEMP_COMPANY_PARENT_CHILD values (10, 101);
insert into TEMP_COMPANY_PARENT_CHILD values (10, 102);
insert into TEMP_COMPANY_PARENT_CHILD values (11, 103);
1->
___10->
______100,101,102,
___11->103
Companies 100, 101 and 102 are under parent 10 and grandparent 1.
I need to create such a view or another temp table so that when I pass the parent ID, I will pull all the children on all levels. In addition, and this is the tricky part, when I join this new temp table or view to another data table without any parameters, the data should not be duplicate, ie. each company ID should appear only once.
create table TEMP_JOIN
company_id number(10),
order_id varchar2(10)
insert into TEMP_JOIN values (100, 'a');
insert into TEMP_JOIN values (101, 'b');
insert into TEMP_JOIN values (102, 'c');
insert into TEMP_JOIN values (103, 'd');
insert into TEMP_JOIN values (10, 'e');
insert into TEMP_JOIN values (11, 'f');
insert into TEMP_JOIN values (12, 'e');
insert into TEMP_JOIN values (13, 'f');
Thanks.start by learning CONNECT BY/START WITH. once you've
written a query to read the grandparent-parent-child
relationship, then come back with more questionsYes. we did look heavily into connect by/start with, in fact along with "connect_by_iscycle","connect_by_isleaf","connect_by_root" as well.
Our dilemma is that when a joint is made between those two tables mentioned above TEMP_COMPANY_PARENT_CHILD and TEMP_JOIN, we are not able to create a view that would contain distinct company_ids, each mapped to a unique order id.
The problem is we cannot have this type of joint when there are "n" level relationship between companies (or company_id). Basically, I think we should have our unique order id mapped to a unique key. This unique key should be a specialized key that we can know at anytime the entire path of the ancestry which we can know by sys_connect_by_path(company_id,'/') path.
How do we know which path to take. The best bet is to "connect_by_isleaf" and just have the distinct "deep" path which form the specialized unique key. If you need help on this let me know. (A hint, sort by LEVEL and then do a rank after partitioning by company id and then filter the records by rank = 1, try this one!!!)
So, we will eventually have a joint (say Table X) like
PATH ORDER_ID
/1/10/100 a
/1/10/101 b
/1/10/102 c
/1/10 e
/1
/1/11/103 d
/1/11 f
I think this is the best view we can have to maintain a joint with no repetition along PATH as well as ORDER_ID. If you have any other thoughts, let me know.
Then you query by path using INSTR to pull records by company_id.
for example, if you want to get all the children for company_id "10" you would just say
select * from X where INSTR(PATH,10,1,1) <> 0
or if you want to get all the children for company_id "11" you would just say
select * from X where INSTR(PATH,11,1,1) <> 0
What do you think? Has anyone used the path information for traversing the tree? Or is there any article that tells us how to make effective use of sys_connect_by_path(company_id,'/') path.
Thank you. Hope it made sense! -
Circular Parent-Child relationship among widgets.
I am trying to draw a Bar Graph on a panel which in turn sits on the main
window. The height policy of the panel widget is set to SP_TO_PARENT so that
when the window is resized the panel is also resized according to the parent
window. I have a situation that every time the panel is resized I need to
scale the Bar Graph in accordance with the new panel size and draw it. But
before drawing the newly scaled Bar Graph I am clearing out all the children
of the panel ( I am doing this just to refresh the panel) and then drawing
the newly scaled Bar Graph. But this does not work!!! I still find some
left over from the previous Bar Graph!!! Any help in this matter is greatly
appreciated.
Also I don't understand this circular parent-child relationship. If I assign
a NIL to Parent attribute of all the children of the panel, what will happen
to the Children attribute of the panel? Won't there be any memory leak by
adopting the above procedure of disconnecting a child from its parent? If
so, how do we take care of it?
Thanks in advance!
Alaiah Chandrashekar
The following is the segment of the code which could be useful for clarity:
// Draws the Bar Graph for the first time.
self.ShowChart(TestData);
self.Open();
event loop
when task.Shutdown do
exit;
// When the window is resized
// I am scaling the Bar Graph for the new
// panel size.
when self.window.AfterReSize do
self.ClearChartPanel();
// self.window.UpdateDisplay();
self.ShowChart(TestData);
end event;
self.Close();
Method ClearChartPanel is as follows:
for child in self.<ChartPanel>.Children do
child.Parent = NIL;
end for;Hello Evandro,
I am listing the steps to create a relationship manually.
1. Create 2 records in the relationship table in console, one for "Married to" and the other one for "Owner". In order to do that the repository needs to be unloaded.
2. Once you create these 2 records in the table through console, load the repository.
3. Log on to the Data Manager.
4. Now as per your example, there are 3 records in the main table, namely
JOHN
MARY
ACME
5. Select only one record in the record list area e.g. JOHN (where you see the list of records)
6. Then, in the record edit area, double click on the relationship tab,
7. New Window opens up.
8. HERE ALL THE OPTIONS ARE GRAYED OUT. But Select the relationship which you want to create, in our case married to.
9. Now select the record MARY in the record list area. (NOT in the pop window, but main window).
10. Then on the top bar menu, select Relationships --> Adds to Group.
11. Now close the Pop window and observe that the relationship has been created between JOHN and MARY.
Let me know if it worked for you. if not, post some more information about your problem such as where you tried to configure and what options were grayed out.
Please update.
Thanks
Shai
I need to do a relationship among the BP where each record in Main Table correspond a BP (Person or Organization).
The relationship should link the BPs as shown below:
Records
1; John
2; Mary
3; ACME
In record 1, I need to say that John is married with Mary, where Married is a type of the relationship and that Mary is Owner of the ACME, where u201COwneru201D is other relationship type.
I have tried to configure a Relationship (where the parent and child tables were the Main Table) in MDM, but I couldnu2019t to do it because the screen for this feature was locked. I need to be certified that the child link exist in the repository.
Thank you.
Evandro. -
Material with Parent Child Relationship
Hi,
Need some advise.
We have this scenario, use purchased materials (.e.g Computer bundle with mouse, monitor and keyboard). We need to track these components separetely at different cost and update inventory with serial no.
Upon creating Sales Order for the above materials, how to we ensure that the full set of materials is picked and delivered. As each components has it own material code.
Is there possible to link up these materials with some sort of parent child relationship? And how to handle it in SAP MM and SD moduld.
Thank you.Peck,
Unless I am missing something, this is not a Materials Management issue, it is a Sales/Distribution issue.
I think the easiest way is to check the 'complete dlv.' (Complete Delivery) checkbox on the Sales order (VA02>Sales Tab).
When this flag is set, none of the items in the sales order can be confirmed unless all of them are confirmed. All confirmations must be for the same day. No delivery can be created unless all items are deliverable.
http://help.sap.com/saphelp_erp60_sp/helpdata/en/dd/560602545a11d1a7020000e829fd11/frameset.htm
Rgds,
DB49 -
Reverse Engineering fails to "identify" parent - child relationship
Using Reverse Engineering I obtained two classes - visual compapesence clearly shows that one is inherited from another.
I wish I could copy and paste individual "class Diagrams' for each of those two to demonstrate my point ...
How I could merge those two class diagrams together and "force"
to recognize "parent" <-> child relationship /On possible solution is to create a diagram in each pacakge that was reverse engineered.
I agree with peter, that a single diagram would not be useful when revese engineering a large project. When diagram get that large, it is hard to see more than a couple of model elements at one time. While we do have the Navigate Link tool, it is still painful to navigate around the diagram. If you printed a diagram that big, it would take up an entire wall.
It is hard to determine what diagrams are needed to explain a software project. For this reason, we have tried to make it easy to build diagrams. Peter, mentioned the first mechanism. Create Diagram From Selected (CDFS) was designed to allow the user to select the model elements that need to populate a diagram. When performing CDFS the diagram will be populated, Relationship Discovery will be executed, and the diagram will be layed out.
Another approach is to create a dependency diagram. You can select a model element, and create a dependency diagram. The contents of a dependency diagram will be the model elements that the selected model element uses. For example, if the model element generalizes from another model element, the super class will be present on the diagram. If another model elements extends the selected model element, the subclass will not be represented on the dependency diagram.
Another diagram creation tool that might be needed is a inheritance diagram creator. An inheritance diagram creator, would make it very easy to see model element super classes, implemented interfaces, and the subclasses.
I hope this helps. -
Customer Master -- Parent + Child Relationship
Hi
I have an requirement from user asking me to set Parent -Child relationship for a customer.
Correct me if i am wrong.
I have customer numbers 1000 and 2000.
In "payment transactions" tab , i have included 2000 in "Alternat. Payer" field. So now 2000 will be the alternative payer for 1000 customer.
I want to see this relationship in FBL5N. In what way should i ensure that the functionality is maintained.
Please let me know
Thanks
Rajanikanth.Please note I do not respond direct through e mail, only on this forum.
If the customer has not been set up correctly there will not be any entries in the branch field.
As mentioned you need to have the parent customer number set as the "payer " partner function in the child's customer account number.
This will mean you are selling to the chil, but the parent is paying, and this is where the invoice will go to.
If you have not set the master data up like this, then there will not be any values there for you.
Please award points if this is helpful and has been helpful so far. -
Determining Parent/Child Relationships of Sets
Is there an SAP function module or set of tables that will provide parent/child relationships of a set? For example lets say I have a set that looks like:
TOPNODE
...SUBNODE1
......SUBNODE1A
...SUBNODE2
I need something that shows me
PARENT CHILD
TOPNODE SUBNODE1
SUBNODE1 SUBNODE1A
TOPNODE SUBNODE2
I found a FM called G_SET_TREE_IMPORT but I don't see any parent/child relationships there.Hi Wardell,
Use Class : <b>cl_gui_column_tree</b>
data : column_tree TYPE REF TO cl_gui_column_tree,
CREATE OBJECT column_tree
EXPORTING
parent =
split_container->top_left_container
node_selection_mode =
cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
hierarchy_column_name = 'COLUMN1'
hierarchy_header = hhdr
EXCEPTIONS
lifetime_error = 1
cntl_system_error = 2
create_error = 3
illegal_node_selection_mode = 4
failed = 5
illegal_column_name = 6
OTHERS = 7
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Reward points if helpful. -
Does table STPOX contain parent-child relationship between components
Hello
I need to get a list of components of SO BOM.
FM CS_BOM_EXPL_KND_V1 exports an output table STPOX.
Does this table contain parent-child relationship between components? If yes , can somebody tell me which fields contain parent child id.
thanksHi,
STPOX is not a table, it is a structure & hence there is no storing of data in a structure. The table which stores this info is STPO.
To get the link you can refer to STPO-STLNR & pass this value to MAST-STLNR, this way you can link the child with its parent.
Regards,
Vivek -
How to use GL Parent Child relationships in Discoverer?
Subject: How to used GL Parent Child relationships in Discoverer?
How to use GL Parent Child relationships in Discoverer?
Please let me know how to incorporate the parent -child relation ships exsiting in GL Accouting flexfield Segments in Discoverer for drill downs? we have GL - BIS views installed.
How to create the specific Parent -child relationship hierarchies in Discoverer from the FND_* tables?
Please help.
Thanks.
KS.Hi,
I'm also trying to implement this. If you have come any further in solving this any hints would be much appreciated...
regards,
AJ -
Implement Parent child Relationship using SSIS
Could you please suggest the best way which should not impact the performance of data loading, to implement parent child relationship using SSIS.
We have a flat file RECON80.dat which need to be loaded into the database into 2 tables.
Parent Table JobMaster and Child Table RECON80 .
In the flat file we have a fields Jobphase which will get inserted in JobMaster table and the remaning details like EIN, DATE etc will get inserted in RECON80 table.
The Parent table JobMaster has JobId as an identity column which is the Pk of the table and it will get inserted into the child table i.e RECON80 JobId as FK of the child tale.
Please suggest the best possible way to achieve it.Hi SubhadipRoy, I think you might need to create a procedure for this task.
Because in SSIS, we cannot directly get the Identity ID.
As my experience, there were serveral ways to do. But all are workaround.
So, My suggestion is.
In SSIS:
1. Create a DataFlow
2. Drag a flat source and load the data from dat file
3. Create a procedure which receive the parameter from your data of each row.
4. Drag a OLEDBCommand to the Panel and Invoke the Procedure also don't forget to pass all your rows to the Procedure in OLEDBCommand control.
5. In Procedure, after insert 1 row you could get the Identity ID throuth SCOPE_IDENTITY()
That's it, hope it works for you even this may not the efficency way.
Althrough, I expect someone can give the best way if there is.
Maybe you are looking for
-
After many months or enduring OD issues, I finally decided to bit the bullet and do a fresh install of both Mavericks and Server. After the fresh install, I attempted to re-establish the Open Directory Master from an archived version of OD and it fa
-
Macbook Pro Problems with D-Link Router
My router D-link (Dl-624+A, model available in Asia) 802.11g/2.4 Ghz wireless router serves a G5 iMac, a G4 Aluminum Powerbook plus a Windows laptop and desktop. We have never experienced any problems with the network. I have recently bought a 17" Ma
-
Windows XP SP3, flash player 10.2, Shockwave 11.5.9.240 , when I open a SWF file with firefox 3.6.15, it shows some options to choose action and I made a wrong click. The firefox nightmare is a "open recursive windows" until the system hang. When I u
-
The up down arrow box on side has gone into lala land!
<blockquote>Locking duplicate thread.<br> Please continue here: [[/questions/881881]]</blockquote> the up down arrow box on side of e-mail has disappeared making it time consuming and difficult to scroll through mail
-
I cannot get Firefox as my homepage, it's covered by Xfinity. Please help.
''duplicate - locking - https://support.mozilla.com/en-US/questions/835447'' When Adobe updated it shut my computer down. When it restarted Firefox was not available. I uninstalled Firefox and reinstalled it but still cannot get Firefox, still nothin