Hierarchy (In the attributes of a characteristic)
Hi all,
Plz tell me about the creation of hierarchies using 3rd type as 'In the attributes of a characteristic' . Is anybody having detailed example of such type of hierarchy ........
Plz let me know .
Thanks .....
Simple example.
Country has many states.
Every state has many districts.
Every district has many cities.
To maintain this hierarchy, you can create a hierarchy on city configuring district, state and country as text nodes.
Or in the master data of city, you can add district, state, and country as the attributes.
In the report, if you keep country, state, district and city in rows, it will be equivalent to having a hierarchy display.
Thanks,
Krishnan
Similar Messages
-
Changing the attributes of a characteristic
Hi
I need to change the name and length of a characteristic in DP that is used currently. How can do this change without losing the data or reinitializing the planning area?
Thanks a lot.Hi Rico,
In the company I'm working the Production Client is closed to any configuration so I need to change the characteristic in the Development Client and then transport the change to the Production Client. I want to be sure that this change it will not delete data.
Thank you -
View dimension hierarchy using the filter property of data form
Hi,
I created a data form where I want to show the dimension hierarchy. But when I am filtering the form using attribute dimension then the hierarchy is not being shown in the form.Is their any way so that I can use the filter property also and make the dimension hierarchy visible in the data form?
Thanks.847833 wrote:
Hi Endy,
Thanks for your reply. I have used the "equal" function as to set that specific attribute as I am choosing the descendants function against the attribute dimension,it's showing error.Hi,
What's the error ? You have to use a function, otherwise it will only display the member you picked.
Actually in our dimension structure we have a 3 generation hierarchy and the attribute is only associated with the 3rd generation member. So we want to display the 3rd generation having the specific attribute "xx" wit the entire hierarchical structure in our data form.
Can you please tell me if I have missed anything?
Thanks.If you want to display the attribute value in the form, edit the form, go to the "Layout" tab, and click on your row. On the right side of the screen, you have a section called Display Properties. Check the box called Enable custom attributes, then check your attribute name. Save the form and you will have the attribute value displayed at the right of the member name. -
Removing attributes of a characteristic in the Universe designer
We are using a SAP delivered characteristic (e.g., 0CUSTOMER), it has a lot of attributes associated with it and when we use that characetistic in the Bex query (into the Free characteristics section). We built a universe on top of this Bex query and we could see all the attributes of that particular characteristic in the Designer as well. Is there any way to remove the ones which we are not using for BO reports.
if it is not possible to remove those objects from the universe designer, will it impact the performance of the Webi reports (or any other BO reports)??Delete them from the universe - click on it, press the Delete key.
You may be better off hiding them first though - right-click, choose Hide, just in case they are used and you aren't aware that they are.
Regards,
Mark -
Hierarchy in BEx using a virtual characteristic
Hello BW Experts,
I encountered a problem with the display of a virtual characteristic in context with a hierarchy.
The goal is to display a weighted rating (the virtual characteristic) for each hierarchy level individually.
What I get:
IAS Category Weighted Rating Ratio Weighted MV / MV
Level 1 A 5
AAA 2
Level 2a A 5
AAA 1
Stock 1 A 5
Stock 2 AAA 1
Level 2b AAA 1
Stock 3 AAA 1
What I'd like to get:
IAS Category Weighted Rating Ratio Weighted MV / MV
Level 1 AA 3
Level 2a A 2
Stock 1 A 5
Stock 2 AAA 1
Level 2b AAA 1
Stock 3 AAA 1
Level 2 is the lowest level in the hierarchy and Level 1 a text node. The weighted rating is determined in a SAP Exit (include ZXRSRZZZ) in a mapping ODS whereas the ratio Weighted Market Value / Market Value (a virtual key figure) is the lookup key. The solution might be something like the declaration of the aggregation level for the virtual characteristic in the SAP Exit.
Any suggestions would by highly appreciated.
Thanks in advance.
Cheers,
ManuelHello,
why do you not using an Hierarchy with Characteristics and Attributes? This should be much easier.(use a balanced hierarchy)
I do not believe, that you have a chance to do the rating for the levels with a virtual characteristic.
Another possibility is to use an virtual InfoPovider with Services and do the data collection by your own.
Kind reg.
Michael -
Stored Procedure- Multil level employee hierarchy in the same row
I have an employee table where I have employee details which includes the following properties:
EmployeeID, EmployeeName, ManagerID, DesignationCode.
ManagerID maps to EmployeeID in the Emp table. DesignationCode is to identify the employee designation.
The topmost person of the organization could be identified by : whose DesignationCode is 'XX' and ManagerID=EmplyeeID.
Here, 'XX' is fixed and will not change.
Also, we know there could be a maximum of 10 level for each hierarchy.
Example: Employee1 reports to Manager1 who reports to Manager2 who reports to Manager 3 ..... who reports to ManagerN.
I need to pull a hierarchy in the below format:
EmpName MgrName0 MagrName1 MgrName2 ..........MgrName7 MgrName8
MgrName9
SAMRAT
XXX XXX
SUDHAKAR
XXX XXX XXX
SATESWAR
XXX XXX
SRINI XXX XXX
XXX XXX XXX
IMPORTANT POINT: We need to identify the reporting hierarchy level for each employee's manager and then place the manager names accordingly based on the columns.
Example:
If an employee's manager has only 1 reporting manager(who is at top level), then he would be placed at the column "ManagerName8" and ManageName9 would be the topmost employee of the organization
In short, we need to identify the reporting level at which the employees manager belongs and then start filling the columns values for that row ( employee details)
I am stuck and unable to do the same. Please help.
Thank you.Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. Temporal data should
use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect.
This is minimal polite behavior on SQL forums.
>> I have an employee table where I have employee details <<
An SQL programmer would have a Personnel table instead. What you have said is that you have only one employee!
>> which includes the following properties:
emp_id, emp_name, manager_emp_id, designation_code.<<
Why do you think that a manager is an attribute of an employee? This is absurd! They have a relationship; where is the table that models that relationship? It is missing from this non-normalized, improperly designed table.
There are many ways to represent a tree or hierarchy in SQL. YOU are trying to use an adjacency list model. This approach will wind up with really ugly code -- CTEs hiding recursive procedures, horrible cycle prevention code, etc.
Another way of representing trees is to show them as nested sets.
Since SQL is a set oriented language, this is a better model than the usual adjacency list approach you see in most text books. Let us define a simple OrgChart table like this.
CREATE TABLE OrgChart
(emp_name CHAR(10) NOT NULL PRIMARY KEY,
lft INTEGER NOT NULL UNIQUE CHECK (lft > 0),
rgt INTEGER NOT NULL UNIQUE CHECK (rgt > 1),
CONSTRAINT order_okay CHECK (lft < rgt));
OrgChart
emp_name lft rgt
======================
'Albert' 1 12
'Bert' 2 3
'Chuck' 4 11
'Donna' 5 6
'Eddie' 7 8
'Fred' 9 10
The (lft, rgt) pairs are like tags in a mark-up language, or parens in algebra, BEGIN-END blocks in Algol-family programming languages, etc. -- they bracket a sub-set. This is a set-oriented approach to trees in a set-oriented language.
The organizational chart would look like this as a directed graph:
Albert (1, 12)
Bert (2, 3) Chuck (4, 11)
/ | \
/ | \
/ | \
/ | \
Donna (5, 6) Eddie (7, 8) Fred (9, 10)
The adjacency list table is denormalized in several ways. We are modeling both the Personnel and the Organizational chart in one table. But for the sake of saving space, pretend that the names are job titles and that we have another table which describes the
Personnel that hold those positions.
Another problem with the adjacency list model is that the boss_emp_name and employee columns are the same kind of thing (i.e. identifiers of personnel), and therefore should be shown in only one column in a normalized table. To prove that this is not
normalized, assume that "Chuck" changes his name to "Charles"; you have to change his name in both columns and several places. The defining characteristic of a normalized table is that you have one fact, one place, one time.
The final problem is that the adjacency list model does not model subordination. Authority flows downhill in a hierarchy, but If I fire Chuck, I disconnect all of his subordinates from Albert. There are situations (i.e. water pipes) where this is true, but
that is not the expected situation in this case.
To show a tree as nested sets, replace the nodes with ovals, and then nest subordinate ovals inside each other. The root will be the largest oval and will contain every other node. The leaf nodes will be the innermost ovals with nothing else inside them
and the nesting will show the hierarchical relationship. The (lft, rgt) columns (I cannot use the reserved words LEFT and RIGHT in SQL) are what show the nesting. This is like XML, HTML or parentheses.
At this point, the boss_emp_name column is both redundant and denormalized, so it can be dropped. Also, note that the tree structure can be kept in one table and all the information about a node can be put in a second table and they can be joined on employee
number for queries.
To convert the graph into a nested sets model think of a little worm crawling along the tree. The worm starts at the top, the root, makes a complete trip around the tree. When he comes to a node, he puts a number in the cell on the side that he is visiting
and increments his counter. Each node will get two numbers, one of the right side and one for the left. Computer Science majors will recognize this as a modified preorder tree traversal algorithm. Finally, drop the unneeded OrgChart.boss_emp_name column
which used to represent the edges of a graph.
This has some predictable results that we can use for building queries. The root is always (left = 1, right = 2 * (SELECT COUNT(*) FROM TreeTable)); leaf nodes always have (left + 1 = right); subtrees are defined by the BETWEEN predicate; etc. Here are
two common queries which can be used to build others:
1. An employee and all their Supervisors, no matter how deep the tree.
SELECT O2.*
FROM OrgChart AS O1, OrgChart AS O2
WHERE O1.lft BETWEEN O2.lft AND O2.rgt
AND O1.emp_name = :in_emp_name;
2. The employee and all their subordinates. There is a nice symmetry here.
SELECT O1.*
FROM OrgChart AS O1, OrgChart AS O2
WHERE O1.lft BETWEEN O2.lft AND O2.rgt
AND O2.emp_name = :in_emp_name;
3. Add a GROUP BY and aggregate functions to these basic queries and you have hierarchical reports. For example, the total salaries which each employee controls:
SELECT O2.emp_name, SUM(S1.salary_amt)
FROM OrgChart AS O1, OrgChart AS O2,
Salaries AS S1
WHERE O1.lft BETWEEN O2.lft AND O2.rgt
AND S1.emp_name = O2.emp_name
GROUP BY O2.emp_name;
4. To find the level and the size of the subtree rooted at each emp_name, so you can print the tree as an indented listing.
SELECT O1.emp_name,
SUM(CASE WHEN O2.lft BETWEEN O1.lft AND O1.rgt
THEN O2.sale_amt ELSE 0.00 END) AS sale_amt_tot,
SUM(CASE WHEN O2.lft BETWEEN O1.lft AND O1.rgt
THEN 1 ELSE 0 END) AS subtree_size,
SUM(CASE WHEN O1.lft BETWEEN O2.lft AND O2.rgt
THEN 1 ELSE 0 END) AS lvl
FROM OrgChart AS O1, OrgChart AS O2
GROUP BY O1.emp_name;
5. The nested set model has an implied ordering of siblings which the adjacency list model does not. To insert a new node, G1, under part G. We can insert one node at a time like this:
BEGIN ATOMIC
DECLARE rightmost_spread INTEGER;
SET rightmost_spread
= (SELECT rgt
FROM Frammis
WHERE part = 'G');
UPDATE Frammis
SET lft = CASE WHEN lft > rightmost_spread
THEN lft + 2
ELSE lft END,
rgt = CASE WHEN rgt >= rightmost_spread
THEN rgt + 2
ELSE rgt END
WHERE rgt >= rightmost_spread;
INSERT INTO Frammis (part, lft, rgt)
VALUES ('G1', rightmost_spread, (rightmost_spread + 1));
COMMIT WORK;
END;
The idea is to spread the (lft, rgt) numbers after the youngest child of the parent, G in this case, over by two to make room for the new addition, G1. This procedure will add the new node to the rightmost child position, which helps to preserve the idea
of an age order among the siblings.
6. To convert a nested sets model into an adjacency list model:
SELECT B.emp_name AS boss_emp_name, E.emp_name
FROM OrgChart AS E
LEFT OUTER JOIN
OrgChart AS B
ON B.lft
= (SELECT MAX(lft)
FROM OrgChart AS S
WHERE E.lft > S.lft
AND E.lft < S.rgt);
7. To find the immediate parent of a node:
SELECT MAX(P2.lft), MIN(P2.rgt)
FROM Personnel AS P1, Personnel AS P2
WHERE P1.lft BETWEEN P2.lft AND P2.rgt
AND P1.emp_name = @my_emp_name;
I have a book on TREES & HIERARCHIES IN SQL which you can get at Amazon.com right now. It has a lot of other programming idioms for nested sets, like levels, structural comparisons, re-arrangement procedures, etc.
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL -
Displaying the Attribute of a Char
Hi All,
I have to display a CHAR in the report. But that CHAR is an attribute of another CHAR. I am unable to display the attribute with out displaying the main CHAR means I have to display only the attribute and not the main CHAR i.e
for ex: If I have to display the prod. hierarchy code which is an attribute of the CHAR Material, I have to display the Product Hierarchy with out displaying the Material.
Any Ideas please???
Best Regards,
James.Hi All,
I solved my problem with ur suggestions...
Thanks a lot...
Points Assigned...
Best Regards,
James. -
How to put the product hierarchy in the bw?
I want to have the product hierarchy in the reporting, in a way, that the users can open and shut the elements of the tree.
So i added the foreign hierarchy criteria 0PRODH1, 2, 3 to the InfoObject 0MATERIAL.
Then I used InfoSource 0MATERIAL_LPRH_HIER to put data in 0MATERIAL.
In the result 0MATERIAL HAS the hierarchy, but without any materials added to the leafs.
What did i do wrong?
TobiasHi ,
Have a look on note: 407033
It says 2 main points with regarding to your problem.
1) Material master records with shared master data in the sales area cannot be assigned to a product hierarchy in BW.
This solution generates the thinnest possible hierarchy, but leads to some restrictions in the navigation options in the BW queries because you can no longer expand the hierarchy to the material numbers.
2) The 0PROD_HIER attribute of 0-MATERIAL must be active as a navigation attribute in the cube.When you expand the hierarchies by product hierarchy in the query, you can display this hierarchy.
With rgds,
Anil Kuma Sharma .P
Kindly assign points , if it really helps you. -
Display a particular node of Hierarchy in the Report.
Hi , all
I have an urgent requirement that i have to display only a particular node(5) of Hierarchy in the Bw Report , I have tried different options available in the Hierarchy tab (That is Expand to level 5 , Position of lower node - Above , Value of posted node - Hide ) . But stil it is displaying 5 and then 4 node , but i don't want that 4 node .
Can anybody gine me some useful suggestion .
Thanks in advance..Hi Akash,
- To show only particular nodes of a hierarchy in the Excel sheet:
Step 1: include the base characteristic
Step 2: select the hierarchy (properties of the characteristic) - (display key only)
Step 3: user restrict (from context menu of the characteristic) on the nodes that you want to display.
Step 4: expand to level: 1 (properites of the characteristics)
This should serve the purpose. I know it is a little late, but it might be helpful in the future -
Using Key figure attribute of a characteristic in a query
Hi All,
I have the following scenario. I have defined a key figure attribute for a characteristic Infoobject. I have included this characteristic infoobject in an Infocube. I now want to use the key figure attribute as a regular key figure when I create a report based on the Infocube. Is it possible and if so how is it possible?
Thanks
SundarHi Saundar,
There's another way.Set the characteristic with key figure attributes as a data target under your info area. Create a MultiProvider and include your Cube and this characteristic. Here you can set the key figure as your MultiProvider key figure.
Don't forget to take care of the identification of MultiProvider.
Hope this helps.
Regards,
Aaron -
Downloaded my hierarchy using the program z_sap_hierarchy_download
hi
I want download downloaded my hierarchy using the program z_sap_hierarchy_download but I have any problem when I using idoc method, I have this message:
Node [00001350, 00001580]: Leaf 'E010000000' already exists as child of node 00001501
Best regard
Francoisehi
The problem is that 2 id differents has the same description.
my program is:
begin
SAP Consulting BW Tools:
Download hierarchy into a flat file. The file has the correct format
Text elements:
P_DATES Include from/to dates
P_DATETO Valid-to date
P_FNAME File name
P_HIENM Hierarchy name
P_INTER Include from/to leaves
P_IOBJNM InfoObject
P_LANGU Language
P_VERS Hierarchy version
REPORT z_sap_hierarchy_download.
TYPE-POOLS: rs, rsdm, rrh1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS:
p_iobjnm TYPE rsdiobjnm MEMORY ID rsc.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS:
p_hienm TYPE rshiedir-hienm,
p_vers TYPE rshiedir-version,
p_dateto TYPE rshiedir-dateto,
p_langu TYPE rshiedirt-langu.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.
PARAMETERS:
p_fname LIKE rlgrap-filename,
p_dates AS CHECKBOX DEFAULT 'X',
p_inter AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK b3.
File structure
TYPES:
No dates/intervals
BEGIN OF y_s_hierfile_1,
nodeid TYPE rshienodid,
iobjnm TYPE rsiobjnm,
nodename TYPE rsnodename,
tlevel TYPE rstlevel,
link TYPE rslink,
parentid TYPE rsparent,
childid TYPE rschild,
nextid TYPE rsnext,
langu TYPE langu,
txtsh TYPE rstxtsh,
txtmd TYPE rstxtmd,
txtlg TYPE rstxtlg,
END OF y_s_hierfile_1,
y_t_hierfile_1 TYPE STANDARD TABLE OF y_s_hierfile_1,
With dates
BEGIN OF y_s_hierfile_2,
nodeid TYPE rshienodid,
iobjnm TYPE rsiobjnm,
nodename TYPE rsnodename,
tlevel TYPE rstlevel,
link TYPE rslink,
parentid TYPE rsparent,
childid TYPE rschild,
nextid TYPE rsnext,
dateto TYPE rsdateto,
datefrom TYPE rsdatefrom,
langu TYPE langu,
txtsh TYPE rstxtsh,
txtmd TYPE rstxtmd,
txtlg TYPE rstxtlg,
END OF y_s_hierfile_2,
y_t_hierfile_2 TYPE STANDARD TABLE OF y_s_hierfile_2,
With intervals
BEGIN OF y_s_hierfile_3,
nodeid TYPE rshienodid,
iobjnm TYPE rsiobjnm,
nodename TYPE rsnodename,
tlevel TYPE rstlevel,
link TYPE rslink,
parentid TYPE rsparent,
childid TYPE rschild,
nextid TYPE rsnext,
leafto TYPE rsleafto,
leaffrom TYPE rsleaffrom,
langu TYPE langu,
txtsh TYPE rstxtsh,
txtmd TYPE rstxtmd,
txtlg TYPE rstxtlg,
END OF y_s_hierfile_3,
y_t_hierfile_3 TYPE STANDARD TABLE OF y_s_hierfile_3,
With dates/intervals
BEGIN OF y_s_hierfile_4,
nodeid TYPE rshienodid,
iobjnm TYPE rsiobjnm,
nodename TYPE rsnodename,
tlevel TYPE rstlevel,
link TYPE rslink,
parentid TYPE rsparent,
childid TYPE rschild,
nextid TYPE rsnext,
dateto TYPE rsdateto,
datefrom TYPE rsdatefrom,
leafto TYPE rsleafto,
leaffrom TYPE rsleaffrom,
langu TYPE langu,
txtsh TYPE rstxtsh,
txtmd TYPE rstxtmd,
txtlg TYPE rstxtlg,END OF y_s_hierfile_4,
y_t_hierfile_4 TYPE STANDARD TABLE OF y_s_hierfile_4.
Hierarchy definition
DATA:
g_s_hiesel TYPE rsndi_s_hiesel,
g_s_hiedir TYPE rsndi_s_hiedir,
g_subrc TYPE sy-subrc,
g_t_hiedirt TYPE TABLE OF rshiedirt,
g_s_hierstruc TYPE rssh_s_htab,
g_t_hierstruc TYPE TABLE OF rssh_s_htab,
g_s_thiernode TYPE rsthiernode,
g_t_thiernode TYPE TABLE OF rsthiernode WITH KEY langu hieid objvers
nodename,
g_s_hierintvl TYPE rssh_s_jtab,
g_t_hierintvl TYPE TABLE OF rssh_s_jtab WITH KEY hieid objvers nodeid,
g_s_message TYPE rsndi_s_message,
g_t_message TYPE TABLE OF rsndi_s_message,
g_s_chavlinfo TYPE rsdm_s_chavlinfo,
g_t_chavlinfo TYPE rsdm_t_chavlinfo.
File
DATA:
g_fname TYPE string,
g_struct_s TYPE string,
g_struct_t TYPE string,
gr_s_file TYPE REF TO data,
gr_t_file TYPE REF TO data.
FIELD-SYMBOLS:
<g_langu> TYPE ANY,
<g_s_file> TYPE ANY,
<g_t_file> TYPE STANDARD TABLE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_iobjnm.
CALL FUNCTION 'RSD_IOBJ_F4'
EXPORTING
i_show_cha = rs_c_true
i_objvers = rs_c_objvers-active
i_hietabfl = rs_c_true
CHANGING
c_iobjnm = p_iobjnm
EXCEPTIONS
illegal_input = 1.
CHECK sy-subrc = 0.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_hienm.
DATA:
l_s_hiertxt TYPE rrh1_s_hiertxt,
l_t_hiertxt TYPE rrh1_t_hiertxt.
CALL FUNCTION 'RRH1_HIERARCHY_HELP_VALUES_GET'
EXPORTING
i_iobjnm = p_iobjnm
i_dateto = p_dateto
i_hienm = p_hienm
i_version = p_vers
IMPORTING
e_t_hiertxt = l_t_hiertxt
EXCEPTIONS
no_f4_available = 1
dialogue_canceled = 2
OTHERS = 3.
CHECK sy-subrc = 0.
READ TABLE l_t_hiertxt INTO l_s_hiertxt INDEX 1.
CHECK NOT l_s_hiertxt IS INITIAL.
p_hienm = l_s_hiertxt-hienm.
DATA:
l_s_dynpfields TYPE dynpread,
l_t_dynpfields TYPE STANDARD TABLE OF dynpread.
CLEAR: l_t_dynpfields, l_s_dynpfields.
l_s_dynpfields-fieldname = 'P_VERS'.
WRITE l_s_hiertxt-version TO l_s_dynpfields-fieldvalue.
APPEND l_s_dynpfields TO l_t_dynpfields.
l_s_dynpfields-fieldname = 'P_DATETO'.
WRITE l_s_hiertxt-dateto TO l_s_dynpfields-fieldvalue.
APPEND l_s_dynpfields TO l_t_dynpfields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = l_t_dynpfields.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
DATA:
l_filename1 TYPE string,
l_filename2 TYPE string,
l_path TYPE string,
l_fullpath TYPE string,
l_action TYPE i.
l_filename1 = p_fname.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = 'Select Download File'
default_extension = 'txt'
default_file_name = l_filename1
file_filter = 'All Files (.)|.|Text files (.txt)|.txt'
CHANGING
filename = l_filename2
path = l_path
fullpath = l_fullpath
user_action = l_action
EXCEPTIONS
cntl_error = 1
OTHERS = 2. "#EC NOTEXT
CHECK sy-subrc = 0.
CALL METHOD cl_gui_cfw=>flush.
IF l_action = 0.
p_fname = l_fullpath.
ENDIF.
INITIALIZATION.
GET PARAMETER ID 'RSC' FIELD p_iobjnm.
START-OF-SELECTION.
Check input
CHECK NOT p_fname IS INITIAL.
IF p_langu IS INITIAL.
p_langu = sy-langu.
ENDIF.
IF p_dateto IS INITIAL.
p_dateto = '99991231'.
ENDIF.
Read hierarchy
CLEAR g_s_hiesel.
g_s_hiesel-objvers = rs_c_objvers-active.
g_s_hiesel-hienm = p_hienm.
g_s_hiesel-version = p_vers.
g_s_hiesel-iobjnm = p_iobjnm.
g_s_hiesel-dateto = p_dateto.
CALL FUNCTION 'RSNDI_SHIE_STRUCTURE_GET'
EXPORTING
i_s_hiesel = g_s_hiesel
i_no_nodenm_table = rs_c_true
IMPORTING
e_s_hiedir = g_s_hiedir
e_subrc = g_subrc
TABLES
e_t_hiedirt = g_t_hiedirt
e_t_hierstruc = g_t_hierstruc
e_t_thiernode = g_t_thiernode
e_t_hierintvl = g_t_hierintvl
e_t_message = g_t_message.
IF g_subrc <> 0.
READ TABLE g_t_message INTO g_s_message INDEX 1.
IF sy-subrc = 0.
MESSAGE ID g_s_message-msgid TYPE 'I' NUMBER g_s_message-msgno
WITH g_s_message-msgv1 g_s_message-msgv2
g_s_message-msgv3 g_s_message-msgv4.
ELSE.
MESSAGE ID 'RSBO' TYPE 'I' NUMBER 899
WITH 'Hierarchy read error'.
ENDIF.
EXIT.
ENDIF.
Defined output structures
IF p_dates IS INITIAL AND p_inter IS INITIAL.
g_struct_s = 'Y_S_HIERFILE_1'.
g_struct_t = 'Y_T_HIERFILE_1'.
ELSEIF p_dates = 'X' AND p_inter IS INITIAL.
g_struct_s = 'Y_S_HIERFILE_2'.
g_struct_t = 'Y_T_HIERFILE_2'.
ELSEIF p_dates IS INITIAL AND p_inter = 'X'.
g_struct_s = 'Y_S_HIERFILE_3'.
g_struct_t = 'Y_T_HIERFILE_3'.
ELSE.
g_struct_s = 'Y_S_HIERFILE_4'.
g_struct_t = 'Y_T_HIERFILE_4'.
ENDIF.
CREATE DATA gr_s_file TYPE (g_struct_s).
ASSIGN gr_s_file->* TO <g_s_file>.
CREATE DATA gr_t_file TYPE (g_struct_t).
ASSIGN gr_t_file->* TO <g_t_file>.
Nodes
REFRESH <g_t_file>.
LOOP AT g_t_hierstruc INTO g_s_hierstruc.
CLEAR <g_s_file>.
MOVE-CORRESPONDING g_s_hierstruc TO <g_s_file>.
Texts for nodes
READ TABLE g_t_thiernode INTO g_s_thiernode WITH TABLE KEY
langu = p_langu
hieid = g_s_hierstruc-hieid
objvers = rs_c_objvers-active
nodename = g_s_hierstruc-nodename.
IF sy-subrc = 0.
MOVE-CORRESPONDING g_s_thiernode TO <g_s_file>.
ELSE.
Texts for characteristic values
REFRESH g_t_chavlinfo.
CLEAR g_s_chavlinfo.
g_s_chavlinfo-c_chavl = g_s_hierstruc-nodename.
APPEND g_s_chavlinfo TO g_t_chavlinfo.
CALL FUNCTION 'RSD_CHAVL_READ_ALL'
EXPORTING
i_iobjnm = g_s_hierstruc-iobjnm
i_langu = p_langu
i_dateto = p_dateto
i_check_value = space
i_sid_in = space
i_hieid = g_s_hiedir-hieid
i_objvers = g_s_hiedir-objvers
CHANGING
c_t_chavlinfo = g_t_chavlinfo
EXCEPTIONS
info_object_not_found = 1
routines_generation_error = 2
check_table_not_existing = 3
text_table_not_existing = 4
OTHERS = 5.
IF sy-subrc = 0.
READ TABLE g_t_chavlinfo INTO g_s_chavlinfo INDEX 1.
IF sy-subrc = 0.
MOVE-CORRESPONDING g_s_chavlinfo-e_chatexts TO <g_s_file>.
ASSIGN COMPONENT 'LANGU' OF STRUCTURE <g_s_file> TO <g_langu>.
IF sy-subrc = 0.
<g_langu> = p_langu.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
Intervals
IF g_s_hierstruc-intervl = 'X' AND p_inter = 'X'.
READ TABLE g_t_hierintvl INTO g_s_hierintvl WITH TABLE KEY
hieid = g_s_hierstruc-hieid
objvers = rs_c_objvers-active
nodeid = g_s_hierstruc-nodeid.
IF sy-subrc = 0.
MOVE-CORRESPONDING g_s_hierintvl TO <g_s_file>.
ENDIF.
ENDIF.
APPEND <g_s_file> TO <g_t_file>.
ENDLOOP.
Download output table
g_fname = p_fname.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = g_fname
write_field_separator = space
TABLES
data_tab = <g_t_file>
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc = 0.
MESSAGE ID 'RSBO' TYPE 'I' NUMBER 899
WITH 'Hierarchy download successful!'.
ELSE.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
end -
FOX: Read Attribute of time characteristic
Hey Gurus,
within my current planning application I maintained an Attribute for 0FISCPER3. Now I want to do some calculations where it is necessary to read this attribute but with standard function ATRV it is not possible.
The execution of the Planningsequence always fails. In ST22 Methode IF_RSMD_RS_ACCESS~GET_ATTRIBUTES is called (* This method is not supported for these info objects).
Does anyone know if it is not possible to read attributes of standard time characteristics ? If it's not I think the best alternative is to create a function module that reads my attribute.
Cheers,
MoritzHi Moritz,
can you please post your fox coding for this one? If it is a attribute of a characteristic you have to include the corresponding characteristic of the attribute (the attribute is mentioned as xxx within the coding):
local_variable = artv(xxx, 0fiscper3).
Did you try this?
Brgds,
Marcel -
Hi,
When I check the query, there is an error message.
Node 0HIER_NODE isnot in the hierarchy for the infoobject 0account.
No changes were done in the hierarchy. But, I reactivated the hierarchy. Still, the issue exists.
What could be the reason?
Thanks.Could happen when you have hard coded some nodes of hierarchy which no longer exist. Try following
Remove the characteristic completely from the query and try adding it back in. Activate the hierarchy an see what happens.
Adding right variables would be another thing I would check for.
Edited by: Abhijit N on Apr 13, 2011 11:08 PM -
How to delete an Hierarchy in the Infoobject
Hi Guys,
i made an Hierarchy manually in the Infoobject "X" for example,
when i made the hierarchy with the values that i needed, the system create another node to the values not selected in my Hierarchy, in the query i selected the Infoobject X with the hierarchy that i made, the problem is when i want to navigate and click the Infoobject to drilldown, appears like Option the Hierarchy that i made and the NODE of the values out of my hierarchy, here the client doesnt want to see that NODE when he is navigating, just the hierarchy that i made because it´s confused for the client,
i want to delete this Node, but doesnt appear in the infoobject, its like something internal of the infoobject that it create
how can i delete it or do something that hide it when is navigating in the report??Hi Jorge,
one option is avaialable in BW Administrator workbench, (RSA1).
select your hierarchy from infoobjects or directly from RSA1 Screen, by clicking on Hierarchy button,
in hierachy screen, if in display mode, chnage to Change mode and click on hierarchy Attributes button and and enable check box 'Suppress "unassigned node'. this is stop displaying Not assigned values in report.
hope this helps
Regards,
Daya Sagar -
Attribute sort of characteristic
Is it possible to create a sort, or custom sort, of a characteristic's attributes within Analysis? We are seeing that the sequence between BEx and Analysis characteristics is very different. We have a requirement that these be the same for a few reports.
Can characteristic sorting be forced from BEx into Analysis? Note: in BW we are getting the correct sequencing/sorting of attributes.I think the description is clear; but I don't think this is possible with Analysis Office
If you want this functionality, I recommend turning the attribute characteristic into a navigation one on the backend of BW - of course this would require some BW development
Maybe you are looking for
-
Problem with PCH LDB in HR.
Hi Friends, I am working on a HR report using PCH LDB. Peculiarly its not returning objects (Positions/Jobs) maintained in other Languages when we select "All" as reporting period. It is returning all objects regardless of language when we select an
-
How to assign another application to *.pdf file?
Hi, unfortunately, after upgrading firmware in my e72 I lost adobe reader 2,5 (now I have obsolete adobe reader 1.5). I found much better application designed for reading *.pdf file. Under x-plore I have changed assignment to this app, but I have no
-
How do you create groups in contacts by using the iPhone and not pc
-
I am getting this when I am upgrading from 10.6.8 to OS X Yosemite I am receiving the NS Internal Inconsistency Exception Error. Screen shot below.. What do I have to do.. I have checked all the requirements before upgrading.. How can this be fixed?
-
Why does my iphone6 freeze each time I access my mail accounts and reverts to homepage
Why does my iphone 6 freeze each time I access my mail accounts? This new phone is hopeless