View link between 2 public view object(PVO)
Hi,
Can we create a view link between 2 Public View Object(PVOs)? Is as same as creating view link b/w normal VOs.
Regards,
Suresh
Hi,
whats mean Public View Object? do you use BI?
Similar Messages
-
Creating a shortcut link to a public folder object. Is it possible?
I have never done this before and never had a reason to until now. I am wondering if there is a way to have a link to a Public Folder object such as an email with attachments sent to users that have Outlook 2010. The reason I am doing this is because we
send out daily emails with attachments to all users and since Exchange 2010 no longer supports single instance storage, these emails are consuming too much database space. I want the department sending these emails to just send a single copy to a public folder
and then send a link to that email to all users. Is this even possible?Hi,
From my research, from Exchange 2007 and later version, the url to access public folder is no longer simple and clear as it in Exchange 2003. The hyperlink is long and complicated with a series of number and letter in the end.
http://technet.microsoft.com/en-us/library/bb397221(v=exchg.141).aspx#Access
I’d recommend you put files on a shared platform for long-term.
Regards,
Rebecca Tu
TechNet Community Support -
How to get the link between mara, ausp, cawn and cawnt tables
hello ABAPERS
i have got a requiremet in that i have to get the relation .
how to get the link between mara, ausp, cawn and cawnt tables and also type how can we get link between char value and char description in cawn and cawnt tables through ausp and mara tables.
I would be very thankful for ur help in advance.
Thanks & Regards.
soniHi,
Sample report using the linkage between tables;
report batch_char no standard page heading
line-size 132
line-count 58(1)
message-id mm.
Report by Batch Characteristic *
Description : Report by Batch Characteristic *
Declaration for Tables
tables: mara, " Material Master
mard, " Storage Location Data for Material
t001w, " Plants/Branches
t001l, " Storage Locations
cabn, " Characteristics
inob. " Link between Internal Number and Object
Declaration for Constants
constants : c_klart like ausp-klart value '023', " Class Type
c_obtab like inob-obtab value 'MCH1', " Database Table
c_flag type c value 'X', " Flag
c_c23 type i value '23', " Ratio
Constants for Ratio Categories
c_13 type p decimals 2 value '13.00', " For Ratio 13
c_1499 type p decimals 2 value '14.99', " For Ratio 14.99
c_15 type p decimals 2 value '15.00', " For Ratio 15
c_1699 type p decimals 2 value '16.99', " For Ratio 16.99
c_17 type p decimals 2 value '17.00', " For Ratio 17
c_1899 type p decimals 2 value '18.99', " For Ratio 18.99
c_19 type p decimals 2 value '19.00', " For Ratio 19
c_2099 type p decimals 2 value '20.99', " For Ratio 20.99
c_21 type p decimals 2 value '21.00', " For Ratio 21
c_2299 type p decimals 2 value '22.99', " For Ratio 22.99
c_23 type p decimals 2 value '23.00', " For Ratio 23
c_g23(4) type c value '>=23', " For Ratio >=23
c_ratio(5) value 'RATIO', " For Ratio
Constants for Storing Selected item field information
c_cursor1(15) value 'I_OUTPUT1-MEINS', " For Selected Base
" Unit of Measure
c_cursor2(15) value 'I_OUTPUT1-MATNR', " For Selected Base
" Material Number
c_cursor3(15) value 'I_OUTPUT1-MAKTX', " For Selected Base
" Material Des.
c_cursor4(15) value 'I_OUTPUT1-CLABS', "For Selected Base
" Stock Value
c_cursor5(15) value 'I_OUTPUT1-ATFLV', " For Selected Base
" Char.Value (Ratio)
c_cursor6(5) value 'C_G23'.
Declaration for Global Variables
data : g_exit type c, " Flag
g_clabs1(16) type c, " Quantity
g_clabs(18) type c, " Quantity
g_cursor(15) type c, " Cursor field name
g_matnr type mara-matnr, " Material Number
g_werks type mchb-werks, " Plant
g_atinn(30) type c. " Character.
Declaration for Internal tables
Internal table to hold Batch Stock data
data : begin of i_mchb occurs 0,
matnr like mchb-matnr, " Material Number
werks like mchb-werks, " Plant
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Unit of measure
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb.
Internal table to hold Secondary List data
data : begin of i_mchb1 occurs 0,
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
atinn like ausp-atinn, " Char.Value
clabs like mchb-clabs, " Stock Value
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb1.
Internal table to get the Plant Name
data : begin of i_plant occurs 0,
werks like t001w-werks, " Plant
name1 like t001w-name1, " Name
end of i_plant.
Internal table to get the Material Description
data : begin of i_makt occurs 0,
matnr like makt-matnr, " Material
maktx like makt-maktx, " Description
end of i_makt.
Internal table to hold AUSP data
data : begin of i_ausp occurs 0,
objek like ausp-objek, " Object No
atinn like cabn-atinn, " Characteric value
atflv like ausp-atflv, " Characteristic Value
end of i_ausp.
Internal table to hold output data
data : begin of i_output occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv like ausp-atflv, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output.
Internal table to hold final Output data
data : begin of i_output1 occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv(32) type c, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output1.
Selection screen
selection-screen begin of block b1 with frame title text-001.
select-options: s_werks for t001w-werks obligatory, " Plant
s_lgort for t001l-lgort, " Stor.Location
s_matnr for mara-matnr obligatory, " Material No
s_atinn for cabn-atinn. " Character.
selection-screen end of block b1.
At selection screen
at selection-screen.
Validation of Selection Screen Fields
perform validate_screen.
Start of selection
start-of-selection.
Get the Material and Batch Stock data from MARA and MCHB Tables
perform get_mat_stock_data.
Get the Material Group Text and Plant Name from T023T and T001W Tables
perform get_plant_grp_data.
Append the data into final Output Internal Table after getting the
Characteristic Values data from INOB and AUSP Tables
perform append_final_data.
Processing if the Characteristics contain 'RATIO'
perform collect_ratio.
End-of-Page
end-of-page.
write /1(125) sy-uline.
End of selection
end-of-selection.
if g_exit <> c_flag.
Display the Report Output data
perform display_report.
endif.
Top-of-Page
top-of-page.
Write the Report and Column Headings
perform get_headings.
at line-selection
at line-selection.
if sy-lsind = 1.
perform display_batch.
endif.
Top of page during line-selection
top-of-page during line-selection.
perform heading_seclist.
Form validate_screen
Validation of Selection Screen fields
form validate_screen.
Validation of Plant
clear t001w.
if not s_werks[] is initial.
select werks
into t001w-werks
from t001w
up to 1 rows
where werks in s_werks.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Plant'(002).
endif.
endif.
Validation of Material Number
clear mara.
if not s_matnr[] is initial.
select matnr
into mara-matnr
from mara
up to 1 rows
where matnr in s_matnr.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Material'(003).
endif.
endif.
Validation of Storage Location
clear t001l.
if not s_lgort[] is initial.
select lgort
into t001l-lgort
from t001l
up to 1 rows
where lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Storage Location'(004).
endif.
endif.
Validation of Characteristic Value
clear cabn.
if not s_atinn[] is initial.
select atinn
into cabn-atinn
from cabn
up to 1 rows
where atinn in s_atinn.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Characteristic Value'(005).
endif.
endif.
Validation of Plant, Material and Storage Location
clear mard.
select matnr werks lgort
into (mard-matnr, mard-werks, mard-lgort)
from mard
up to 1 rows
where matnr in s_matnr and
werks in s_werks and
lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'No Data found for the Selection Criteria'(006).
endif.
endform. "validate_screen
*& Form get_headings
Write the Report and Column Headings
form get_headings.
data: l_repid type sy-repid.
l_repid = sy-repid.
call function 'Y_STANDARD_HEADING'
exporting
repid = l_repid
heading1 = sy-title.
write:/1(125) sy-uline.
format color col_heading on.
write : /1 sy-vline, 2(18) 'Material Number'(008) centered,
20 sy-vline, 21(40) 'Material Description'(011) centered,
61 sy-vline, 62(22) 'Ratio'(009) centered,
84 sy-vline, 85(18) 'Quantity'(010) centered,
103 sy-vline, 104(20) 'Base Unit of Measure'(015) centered,
125 sy-vline.
write:/1(125) sy-uline.
format color off.
endform. "get_headings
*& Form get_mat_stock_data
Get the Material and Batch Stock data from MARA and MCHB Tables
form get_mat_stock_data.
clear: i_mchb,i_output, i_output1.
refresh: i_mchb,i_output, i_output1.
select a~matnr " Material Number
b~werks " Plant
b~lgort " Storage Location
b~charg " Batch Number
b~clabs " Stock Value
a~meins " Base Unit of Measure
into table i_mchb
from mara as a inner join mchb as b
on amatnr eq bmatnr
where b~matnr in s_matnr and
b~werks in s_werks and
b~lgort in s_lgort.
if sy-subrc <> 0.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
stop.
endif.
sort i_mchb by matnr werks lgort charg.
endform. " get_mat_stock_data
*& Form get_plant_grp_data
Get the Material Group Text and Plant Name from T023T and T001W
form get_plant_grp_data.
if not i_mchb[] is initial.
Get the Plant Description from t001w Table
clear i_plant.
refresh i_plant.
select werks " Plant
name1 " Name
into table i_plant
from t001w
for all entries in i_mchb
where werks = i_mchb-werks.
Get the Material Description from MAKT Table
clear i_makt.
refresh i_makt.
select matnr " Material number
maktx " Material Description
into table i_makt
from makt
for all entries in i_mchb
where matnr = i_mchb-matnr and
spras = sy-langu.
sort i_plant by werks.
delete adjacent duplicates from i_plant comparing werks.
sort i_makt by matnr.
delete adjacent duplicates from i_makt comparing matnr.
endif.
endform. "form get_plant_grp_data.
*& Form append_final_data
Append the data into final Internal Table
form append_final_data.
data : l_matbatch(28),
l_tabix like sy-tabix.
if not i_mchb[] is initial.
loop at i_mchb.
l_tabix = sy-tabix.
clear l_matbatch.
concatenate i_mchb-matnr i_mchb-charg into l_matbatch.
move-corresponding i_mchb to i_output.
Get the Plant Description from i_plant Table
read table i_plant with key werks = i_mchb-werks binary search.
if sy-subrc = 0.
i_output-name1 = i_plant-name1.
endif.
Get the Material Description from i_makt Table
read table i_makt with key matnr = i_mchb-matnr binary search.
if sy-subrc = 0.
i_output-maktx = i_makt-maktx.
endif.
Get the Characteristic Values data from INOB and AUSP Tables
clear inob.
select single cuobj from inob
into inob-cuobj
where klart = c_klart and
obtab = c_obtab and
objek = l_matbatch.
if sy-subrc = 0.
select objek
atinn
atflv
from ausp
into table i_ausp
where objek = inob-cuobj and
atinn in s_atinn and
klart = c_klart.
sort i_ausp by objek atinn.
loop at i_ausp.
clear cabn.
select single atinn atnam from cabn
into (cabn-atinn,cabn-atnam)
where atinn = i_ausp-atinn.
if sy-subrc = 0.
If the ratio value is between 13-14.99, display 13
if cabn-atnam cs c_ratio.
if i_ausp-atflv between c_13 and c_1499.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_ausp-atflv between c_15 and c_1699.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_ausp-atflv between c_17 and c_1899.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_ausp-atflv between c_19 and c_2099.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_ausp-atflv between c_21 and c_2299.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_ausp-atflv >= c_23.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_23.
endif. " Condition for RATIO values
else. " If characteristic does contain RATIO
i_mchb-atflv = i_ausp-atflv.
endif.
i_output-atinn = cabn-atinn.
i_output-atnam = cabn-atnam.
i_output-atflv = i_ausp-atflv.
i_mchb1-matnr = i_mchb-matnr.
i_mchb1-werks = i_mchb-werks.
i_mchb1-lgort = i_mchb-lgort.
i_mchb1-charg = i_mchb-charg.
i_mchb1-clabs = i_mchb-clabs.
i_mchb1-atinn = i_ausp-atinn.
i_mchb1-atflo = i_mchb-atflv.
i_mchb1-atflv = i_ausp-atflv.
append : i_output, i_mchb1.
clear i_mchb1.
modify i_mchb index l_tabix transporting atflo atflv .
endif.
endloop.
endif.
endloop.
endif.
Checking whether the table is filled or not
if not i_output[] is initial.
sort i_output by atinn werks matnr atflv.
else.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
endif.
Delete the records where RATIO is less than 13.
delete i_output where atnam cs c_ratio and atflv lt c_13.
endform. "append_final_data
*& Form display_report
Display the Report Output data
form display_report.
data: l_tabix like sy-tabix.
loop at i_output1.
l_tabix = sy-tabix.
At new Characteristic
at new atinn.
read table i_output1 index l_tabix.
format color 1 intensified on.
write: /1 sy-vline, 2(20) 'Characteristic Name:'(007),
23(40) i_output1-atnam,
125 sy-vline.
format color off.
format color 4 intensified on.
write: /1 sy-vline, 2(20) 'Plant Name :'(022),
23(4) i_output1-werks, 29(30) i_output1-name1,
125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
clear: g_clabs, g_clabs1.
format color col_normal.
write :/1 sy-vline, 2(18) i_output1-matnr,
20 sy-vline, 21(40) i_output1-maktx,
61 sy-vline.
if i_output1-atflv = c_c23.
write: 62(22) c_g23 centered.
else.
shift i_output1-atflv left deleting leading space.
write: 62(22) i_output1-atflv centered.
endif.
write: 84 sy-vline,
103 sy-vline,
110(5) i_output1-meins.
If the quantity value is negative
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
hide : i_output1.
new-line.
At end of material
at end of matnr.
sum.
move : i_output1-matnr to g_matnr.
format color 3 intensified on.
write /1(125) sy-uline.
write :/1 sy-vline, 2(25) 'Total for Material :'(012),
28(18) g_matnr.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
write: 125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
At end of plant
at end of werks.
sum.
move : i_output1-werks to g_werks.
format color 3 intensified off.
write :/1 sy-vline, 2(25) 'Total for Plant :'(013),
28(4) g_werks.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
At end of characteristic
at end of atinn.
read table i_output1 index l_tabix.
sum.
format color 3 intensified on.
write :/1 sy-vline, 2(25) 'Total for Characteristic:'(014),
28(25) i_output1-atnam.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
endloop.
endform. " display_report
*& Form DISPLAY_BATCH
Display the batch details for the seclected material *
form display_batch.
Get the batch details for the selected material
get cursor field g_cursor.
if g_cursor = c_cursor1 or
g_cursor = c_cursor2 or
g_cursor = c_cursor3 or
g_cursor = c_cursor4 or
g_cursor = c_cursor5 or
g_cursor = c_cursor6.
format color 3.
write: /1 sy-vline,
2(17) 'Material Number :'(020),
20(17) i_output1-matnr,
94 sy-vline.
format color off.
write /1(94) sy-uline.
loop at i_mchb1 where matnr = i_output1-matnr and
atinn = i_output1-atinn and
atflo = i_output1-atflv.
format color col_normal.
shift i_mchb1-charg left deleting leading '0'.
write :/1 sy-vline, 2(16) i_mchb1-lgort centered,
18 sy-vline, 19(17) i_mchb1-charg centered,
36 sy-vline.
if i_output1-atnam cs c_ratio.
write: 37(29) i_mchb1-atflv
exponent 0 decimals 2 centered.
else.
write : 37(29) i_mchb1-atflv
exponent 0 decimals 0 centered.
endif.
write : 66 sy-vline, 67(27) i_mchb1-clabs unit i_mchb-meins,
94 sy-vline.
format color off.
endloop.
write /1(94) sy-uline.
else.
message s899 with 'Invalid cursor position'(016).
exit.
endif.
endform. " DISPLAY_BATCH
*& Form HEADING_SECLIST
Write the Column Headings for Interactive Report
form heading_seclist.
write /1(94) sy-uline.
format color col_heading on.
write :/1 sy-vline, 2(16) 'Storage Location'(021),
18 sy-vline, 19(17) 'Batch Number'(017) centered,
36 sy-vline, 37(29) 'Characteristic Value'(018) centered,
66 sy-vline, 67(27) 'Quantity'(019) centered,
94 sy-vline.
write /1(94) sy-uline.
format color off.
endform. " HEADING_SECLIST
*& Form COLLECT_RATIO
Display the Characteristic ratio data
form collect_ratio.
loop at i_output.
clear g_atinn.
i_output1-atinn = i_output-atinn.
i_output1-atnam = i_output-atnam .
i_output1-werks = i_output-werks.
i_output1-name1 = i_output-name1.
i_output1-matnr = i_output-matnr.
i_output1-maktx = i_output-maktx.
i_output1-clabs = i_output-clabs.
i_output1-meins = i_output-meins.
call function 'CONVERSION_EXIT_ATINN_OUTPUT'
exporting
input = i_output-atinn
importing
output = g_atinn.
if g_atinn cs c_ratio.
If the ratio value is between 13-14.99, display 13
if i_output-atflv between c_13 and c_1499.
i_output1-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_output-atflv between c_15 and c_1699.
i_output1-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_output-atflv between c_17 and c_1899.
i_output1-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_output-atflv between c_19 and c_2099.
i_output1-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_output-atflv between c_21 and c_2299.
i_output1-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_output-atflv >= c_23.
i_output1-atflv = c_23.
endif.
write i_output1-atflv to i_output1-atflv .
else.
write i_output-atflv to i_output1-atflv exponent 0 decimals 0.
endif.
collect i_output1.
clear i_output1.
endloop.
sort i_output1 by atinn werks matnr atflv.
endform. " COLLECT_RATIO
Reward if useful..
Regards,
Anji -
Link users - positions - roles - authorization objects
Hi guys,
I want to write a report that would link USERS to POSITIONS to ROLES and finally to AUTHORIZATION OBJECTS. The user would enter the SAP username in the selection screen and the report should extract all the information listed above.
I am able to link the following:
+ Users to positions via function module RH_BRANCH_GET
+ Users to roles via table AGR_USERS
+ Roles to authorization objects via function module PRGN_1251_READ_FIELD_VALUES
Unfortunately, I dont know how to link positions to roles
Does anyone know how to do that?
Also, is there a more efficient way, than the approach highlighted above, to complete this requirement
Thanks for your time
-TRHi,
you can find a link between role and HR object in table HRP1001. The field SOBID contains name of the role. You need to find way how to convert object ID into position role. Be careful about additional fields from that table.
Cheers -
Linking PM Notification to SAP Objects from different SAP Modules
Hi All,
I have a requirement to link notification to three follow on actions namely:
1. Work order creation (IW31?)
2. PPM to create project
3. Change request to review document (CC31?)
These activities are actions required from Root Cause Analysis. RCA is being done by an external system. An interface is to be used to create a notification in SAP PM. The notification is to be configured with an Action Box containing these three activities as follow on actions.
Is this possible to achieve? And if so, what FM can be used for each of the three SAP Objects?
Will there be a link between the three created objects and the Notification?
Will it be possible to update the Notification with the statuses of any one of these three objects automatically?
Your response would be very much appreciated.
KashHi Maheswaran,
Thank for your response.
I am looking beyond work order. I know this is standard from PM Notification screen. However, any possible linkage with other objects like Change Request, Project etc.
Regards.
Kash -
Can Data Links be established between Data sets based on View Objects?
Hi all,
In the BI Publisher Documentation it's given that Datasets based on view object queries do not support Data Links / Group Links. We found out that only way to establish relationship between view object Datasets is to create a view link and then upload it to create a Dataset.
1. Is there any other way to establish relationship between view objects Datasets in DataModel editor itself just as in the case of data sets based on (SQL queries e.t.c.)?
2. If so can View object Datasets be linked to Datasets based on other Datasources?
3. Will the Datalinks for View object Datasets be supported in any of the upcoming releases. Is there any ER logged for this case?
Any insight on the above issues will be really helpful.
ThanksEnhance the data source with date and time and populate these fields in the user exit using the function module IB_CONVERT_FROM_TIMESTAMP .
OR
You can create Z function module IB_CONVERT_FROM_TIMESTAMP in BW side and write a routine in update rules/transfer rules to populate date and time.
hope this helps ...
Ravi -
Create view link between two view objects (from programmatic data source)
Hi Experts,
Can we create a link between two view objects (they are created from programmatic datasource ; not from either entity or sql query). If yes how to create the link; ( i mean the like attributes?)
I would also like to drag and drop that in my page so that i can see as top master form and the below child table. Assume in my program i will be only have one master object and many child objects.
Any hits or idea pls.
-tEasiest way to do this is to add additional transient attributes to your master view object, and then include those additional transient attributes in the list of source attributes for your view link. This way, you can get BC4J to automatically refer to their values with no additional code on your part.
-
View Links for Programmatic View Objects
Hi All,
I created a read only VO called MyVO based on a sql query.
I created 2 programmatic view objects, MasterView and ChildView.
In a custom method in AMImpl class ,I iterate through this MyVO resultset and get the rows in a Row object.
Based on some attributes values of the Row, I populate both master and child View Objects.
I have created a view link between Master and Child Programmatic View Objects and have exposed them in AM.
Now I run the AM, and run the method exposed in client interface.
Now I click on my master and child programmatic views.
I see that the rows are populated in both of these programmatic VOs.
But when I click on viewlink which I have exposed under master, it doesnt show me any
record for child.
This is my method of AMImpl which is exposed in AM client interface.
public void constructLines(){
ViewObject vo= this.getMyVO1();
ViewObject master=this.getTransientVO1();
ViewObject child=this.getTransientLineVO1();
Row r,masterRow,childRow;
int count=0;
while(vo.hasNext()){
++count;
r=vo.next();
masterRow = master.createRow();
if(r.getAttribute("QuoteHeaderId")!=null)
masterRow.setAttribute("QuoteHeaderId",
r.getAttribute("QuoteHeaderId").toString());
if(r.getAttribute("QuoteLineId")!=null)
masterRow.setAttribute("QuoteLineId",
r.getAttribute("QuoteLineId").toString());
if(r.getAttribute("LineNumber")!=null)
masterRow.setAttribute("LineNumber",
r.getAttribute("LineNumber").toString());
master.insertRow(masterRow);
childRow= child.createRow();
if(r.getAttribute("RefLineId")!=null)
childRow.setAttribute("RefLineId",
r.getAttribute("QuoteLineId").toString());
if(r.getAttribute("QuoteHeaderId")!=null)
childRow.setAttribute("QuoteHeaderId",
r.getAttribute("QuoteHeaderId").toString());
child.insertRow(childRow);
This is stopping me from my development progress.
Any suggestion to solve this will be of great help.
Thanks,
PrabhanjanHi..
have you define relationship correctly between masterVO and childVO.sometime there may be the problem. -
Questions on ADF View Objects, Links and Iterators
I have a number of questions regarding using ViewObjects in applications where there are alot of relationships between tables.
First, lets say that I have ViewObject SomeView that was added to the App Module (AM) as VO1. And because it has a number of "detail" records that have to be iterated through in a "report like" view it has those other VO's added under it as "children" in the AM.
So I have
VO1 (an instance of SomeView)
--> VO2 (an instance of some other view)
--> VO3 (an instance of some other view)
that is used on pages where only a single VO1 is shown at a time.
Now because I had another page I wanted to make that had a listing of all SomeView objects. Some of the fields in SomeView are foreign keys to records in VO2 and VO3 and while I don't want to show all the fields from VO2 and VO3, I do want to show a name field from each rather than just the foreign key.
My experience (though I've never read this anywhere) tells me that when doing a "table" that is a list of rows from a VO, you can't display info from the child VO's because the child VO's are on whatever record corresponds to the "currentRow" in the parent VO and just displaying the rows in a rangeSet doesn't make each the "currentRow" so even we display 10 records in a for loop, the "currentRow" is just one, and the child VO's iterators aren't moved as we go through the for loop. (Can someone confirm if I am correct on this conclusion????)
So the only way I know of to show some field from a related table in each row is to make the VO have the entity objects from the related tables be part of the view as references. Is this the only way?
If I do that on a view that didn't have other views as children defined in the AM I don't have any problem and it works like I want.
But if I do it on a view that did have other views as children defined in the AM it makes the page(s) using that view with the children iterators behave badly. Half the information quits showing up, etc.
For example, ... if I go to the "SomeView" which was defined with only one entity object association, and I add the entity objects (that are the basis of instances of VO2 and VO3 ) as referenceable only, it totally breaks the page where I display a single VO1 and use it's VO2 and VO3 children. IS THIS NORMAL OR AM I MISSING SOMETHING?
So, is the solution that I have to have more view objects defined for different purposes ?
Can anyone give any general guidelines for when/where to use different view objects vs. when to use different iterators. I'm not having much luck with using secondary RSI's and haven't found much info on them.
Also, how about issues of naming iterators that are in various binding containers (ie. UI Model for a page). If I do and LOV it creates an iterator and gives it a default name like ViewNameIterator1. If I already have a different page that uses a regular (non LOV) iterator with that name, and the user goes back and forth between those pages, is that a clash?
Finally, I've read a couple of Steve Muench's blogs on View Link consistency but I'm not sure what the rules are on when it applies and doesn't. How you turn it on or off, etc. One of his examples in http://radio.weblogs.com/0118231/2004/02/27.html talks about it in the context of two view objects that are NOT typically "linked" in a master/detail kind of way. Like an AllDepartments and a DepartmentsLessThan view. Do you have to create a View Link between them to have results of one be reflected in the other if they aren't used in the same page in a web app? Or does it happen automatically (with the caveat that you have to do the rowQualifies method). Just feels like I'm missing some pieces.
Thanks in advance,
LynnHi,
I am also interested in a best-practice note from oracle.
Currently we store history in seperate history tables for columns that changed. All this implemented in our BaseEoImpl overriding the EntityImpl.prepareForDML().
Thanks -
View Link between two query views
Hi is it possible to create a view link between two views having the where clause bind variables.
How you set the bind variables at the run time for the View objects. It is giving hard time for me to use the Master view in the XmlData bean to generate the Xml document.
I am able to set the Master views bind variables, but for view link destination view
where clause bind variables are not able to set ( link object link condition bind variables are binded run time but the views where chause bind variables of destination view are unable to setand bind)
Thanks
nullEasiest way to do this is to add additional transient attributes to your master view object, and then include those additional transient attributes in the list of source attributes for your view link. This way, you can get BC4J to automatically refer to their values with no additional code on your part.
-
[SOLVED] Multiple Dynamic View Objects and View Links - ADF Tree Table
Hi all,
I've got a method that creates 3 dynamic viewobjects using this:
ViewDefImpl Level1ViewDef = new ViewDefImpl("Level1View");
Level1ViewDef.addViewAttribute("LevelDescription","LEVEL1_DESCRIPTION",String.class);
Level1ViewDef.addViewAttribute("SetOfBooksId","SET_OF_BOOKS_ID",Number.class);
Level1ViewDef.addViewAttribute("CodeCombinationId","CODE_COMBINATION_ID",Number.class);
Level1ViewDef.addViewAttribute("Level1","LEVEL1",String.class);
Level1ViewDef.addViewAttribute("AccountType","ACCOUNT_TYPE",String.class);
Level1ViewDef.addViewAttribute("PeriodYear","PERIOD_YEAR",Number.class);
Level1ViewDef.addViewAttribute("PeriodNum","PERIOD_NUM",Number.class);
Level1ViewDef.addViewAttribute("PeriodName","PERIOD_NAME",String.class);
Level1ViewDef.addViewAttribute("PtdActual","PTD_ACTUAL",Number.class);
Level1ViewDef.addViewAttribute("YtdActual","YTD_ACTUAL",Number.class);
Level1ViewDef.addViewAttribute("LtdActual","LTD_ACTUAL",Number.class);
Level1ViewDef.addViewAttribute("BudgetName","BUDGET_NAME",String.class);
Level1ViewDef.addViewAttribute("BudgetVersionId","BUDGET_VERSION_ID",Number.class);
Level1ViewDef.addViewAttribute("PtdBudget","PTD_BUDGET",Number.class);
Level1ViewDef.addViewAttribute("YtdBudget","YTD_BUDGET",Number.class);
Level1ViewDef.addViewAttribute("LtdBudget","LTD_BUDGET",Number.class);
Level1ViewDef.addViewAttribute("EncumbranceType","ENCUMBRANCE_TYPE",String.class);
Level1ViewDef.addViewAttribute("EncumbranceTypeId","ENCUMBRANCE_TYPE_ID",Number.class);
Level1ViewDef.addViewAttribute("PtdCommitment","PTD_COMMITMENT",Number.class);
Level1ViewDef.addViewAttribute("YtdCommitment","YTD_COMMITMENT",Number.class);
Level1ViewDef.addViewAttribute("LtdCommitment","LTD_COMMITMENT",Number.class);
Level1ViewDef.setQuery(sql_level1);
Level1ViewDef.setFullSql(true);
Level1ViewDef.setBindingStyle(SQLBuilder.BINDING_STYLE_ORACLE_NAME);
Level1ViewDef.resolveDefObject();
Level1ViewDef.registerDefObject();
ViewObject vo1 = createViewObject("Level1View",Level1ViewDef);I can create the view objects fine and create a single viewlink between two of them, however i'm getting problems with 2 view links.
This is how I'm creating a view link:
ViewLink Level2Level1FKLink = createViewLinkBetweenViewObjects("Level2Level1FKLink1",
"Level2View",
vo1,
new AttributeDef[]{
vo1.findAttributeDef("Level1")
vo2,
new AttributeDef[]{
vo2.findAttributeDef("Level1")
"LEVEL1 = :Bind_Level1");
ViewLink Level3Level2FKLink = createViewLinkBetweenViewObjects("Level3Level2FKLink1",
"Level3View",
vo2,
new AttributeDef[]{
vo2.findAttributeDef("Level2")
vo3,
new AttributeDef[]{
vo3.findAttributeDef("Level2")
"LEVEL2 = :Bind_Level2");I can get the data to display on an adf tree table if i'm only using a single view link, but when i try and implement 2 view link (for 3 levels on the adf tree table) i'm getting problems displaying the data.
I'm getting the following error:
Aug 10, 2007 2:44:39 PM oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer encodeAll
SEVERE: Error during partial-page rendering
oracle.jbo.NoDefException: JBO-25058: Definition Level3View of type Attribute not found in Level2View_Level2Level1FKLink1_Level2ViewThe thing is, Level3View isn't in the Level2Level1FKLink viewlink.
I've been reading about something similar here
BC4J Master-Detail-Detail
but I am still unsure of what the problem is.
Thanks in advance.I found the answer here:
http://radio.weblogs.com/0118231/stories/2004/06/10/correctlyImplementingMultilevelDynamicMasterDetail.html -
View Link on two programmatic view objects
Hello,
I use Build JDEVADF_11.1.1.1.0_GENERIC_090615.0017.5407
I have two programmatic View Objects with data from other sources (an ArrayList in my example).
Now I would like to create a View Link on it. How can I do this?
I'm quite new on Java and ADF...
I know it is possible because I already found Steve's example 132 here [http://blogs.oracle.com/smuenchadf/examples/|http://blogs.oracle.com/smuenchadf/examples/]
But could somebody create a simple example based on my example classes below (which is understandable for a newbie like me ;-) ?
Has been asked already here, but I did not found a solution as yet.
Error with view link and ADF table Tree
This is my example code for the view objects:
Employee.java:
private Number empno;
private String ename;
private Number dept;
with getters and setters...
Department.java
private Number deptno;
private String dname;
with getters and setters...
public class StaticDataDepartmentsImpl extends ViewObjectImpl {
int rows = -1;
private List<Department> departments = new ArrayList<Department>();
protected void executeQueryForCollection(Object rowset, Object[] params,
int noUserParams) {
// Initialize our fetch position for the query collection
setFetchPos(rowset, 0);
super.executeQueryForCollection(rowset, params, noUserParams);
// Help the hasNext() method know if there are more rows to fetch or not
protected boolean hasNextForCollection(Object rowset) {
return getFetchPos(rowset) < rows;
// Create and populate the "next" row in the rowset when needed
protected ViewRowImpl createRowFromResultSet(Object rowset,ResultSet rs) {
ViewRowImpl r = createNewRowForCollection(rowset);
int pos = getFetchPos(rowset);
populateAttributeForRow(r, 0, departments.get(pos).getDeptno());
populateAttributeForRow(r, 1, departments.get(pos).getDname());
setFetchPos(rowset, pos + 1);
return r;
// When created, initialize static data and remove trace of any SQL query
protected void create() {
super.create();
// Setup string arrays of codes and values from VO custom properties
initializeStaticData();
rows = (departments != null) ? departments.size() : 0;
// Wipe out all traces of a query for this VO
getViewDef().setQuery(null);
getViewDef().setSelectClause(null);
setQuery(null);
// Return the estimatedRowCount of the collection
public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
return rows;
// Subclasses override this to initialize their static data
protected void initializeStaticData() {
Department d1 = new Department();
d1.setDeptno(new Number(10));
d1.setDname("IT");
Department d2 = new Department();
d2.setDeptno(new Number(20));
d2.setDname("HR");
departments.add(d1);
departments.add(d2);
// Store the current fetch position in the user data context
private void setFetchPos(Object rowset, int pos) {
if (pos == rows) {
setFetchCompleteForCollection(rowset, true);
setUserDataForCollection(rowset, new Integer(pos));
// Get the current fetch position from the user data context
private int getFetchPos(Object rowset) {
return ((Integer)getUserDataForCollection(rowset)).intValue();
public class StaticDataEmployeesImpl extends ViewObjectImpl {
int rows = -1;
private List<Employee> employees = new ArrayList<Employee>();
protected void executeQueryForCollection(Object rowset, Object[] params,
int noUserParams) {
// Initialize our fetch position for the query collection
setFetchPos(rowset, 0);
System.out.println("in executeQueryForCollection");
super.executeQueryForCollection(rowset, params, noUserParams);
// Help the hasNext() method know if there are more rows to fetch or not
protected boolean hasNextForCollection(Object rowset) {
System.out.println("in hasNextForCollection. Rows:" + rows);
return getFetchPos(rowset) < rows;
// Create and populate the "next" row in the rowset when needed
protected ViewRowImpl createRowFromResultSet(Object rowset,ResultSet rs) {
ViewRowImpl r = createNewRowForCollection(rowset);
int pos = getFetchPos(rowset);
System.out.println("in createRowFromResultSet. Pos=" + pos);
populateAttributeForRow(r, 0, employees.get(pos).getEmpno());
populateAttributeForRow(r, 1, employees.get(pos).getEname());
populateAttributeForRow(r, 2, employees.get(pos).getDept());
setFetchPos(rowset, pos + 1);
return r;
// When created, initialize static data and remove trace of any SQL query
protected void create() {
super.create();
// Setup string arrays of codes and values from VO custom properties
initializeStaticData();
rows = (employees != null) ? employees.size() : 0;
System.out.println("in create(). Rows=" + rows);
// Wipe out all traces of a query for this VO
getViewDef().setQuery(null);
getViewDef().setSelectClause(null);
setQuery(null);
// Return the estimatedRowCount of the collection
public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
return rows;
// Subclasses override this to initialize their static data
protected void initializeStaticData() {
Employee e1 = new Employee();
e1.setEmpno(new Number(2333));
e1.setEname("Emp1");
e1.setDept(new Number(10));
Employee e2 = new Employee();
e2.setEmpno(new Number(1199));
e2.setEname("Emp2");
e2.setDept(new Number(20));
Employee e3 = new Employee();
e3.setEmpno(new Number(3433));
e3.setEname("Emp3");
e3.setDept(new Number(10));
Employee e4 = new Employee();
e4.setEmpno(new Number(5599));
e4.setEname("Emp4");
e4.setDept(new Number(20));
Employee e5 = new Employee();
e5.setEmpno(new Number(5676));
e5.setEname("Emp5");
e5.setDept(new Number(10));
Employee e6 = new Employee();
e6.setEmpno(new Number(7867));
e6.setEname("Emp6");
e6.setDept(new Number(20));
employees.add(e1);
employees.add(e2);
employees.add(e3);
employees.add(e4);
employees.add(e5);
employees.add(e6);
// Store the current fetch position in the user data context
private void setFetchPos(Object rowset, int pos) {
if (pos == rows) {
setFetchCompleteForCollection(rowset, true);
setUserDataForCollection(rowset, new Integer(pos));
// Get the current fetch position from the user data context
private int getFetchPos(Object rowset) {
return ((Integer)getUserDataForCollection(rowset)).intValue();
Who can help?
Thnx in advance!
RolfRolf,
I guess when we try to do it for you, we end up with almost the sample code provided by Steve Muench.
So there from my point of view it doesn't make sense to do it all over.
Take some time and study the sample code, run it without changes and after that try some changes which suits your use case better.
If you don't understand what's going on in the sample post the question here and we try to help you.
Timo -
View Link w/ Transient View Objects
I'm trying to create 2 view objects that contain only transient attributes and create a view link between them. I have a key defined in the parent and 2 keys in the child. When I create the view link I'm unable to generate the accessor in the source because the boxes are all grey'd out. The destination side works correctly.
Is there any reason this shouldn't be possibly in BC4J? I've been scouring the documentation and so far I haven't found any mention that a view link will not work in this situation.
This is in JDev. 9.0.4.
Thank youA view link builds its corresponding where clause based on the selected attributes. On the source side, the attributes are used as parameters to the query, so transient attributes are fine. Attributes on the dest side get built into a where clause which would not work with transient attributes, so they are disabled.
for example:
select * from blah where (%1 == destVo.attr1) would not work if destVo.attr1 is transient. -
ViewLink between DB and Programmatic View Objects
Im using programmatic view objects as described in #132 of http://blogs.oracle.com/smuenchadf/resource/examples
I can create view links between these programmatic view objects, but when I create a ViewLink from a DB ViewObject to a programmatic view object, the programmatic one fails to see the view link when invoked, and therefore doesnt return the correct detail objects.
Has anyone created a view link like this before? If so, can I see the code or an example?If you look at example #132 above, you'll see a ListOfMapsDataProviderViewObjectImpl - which is a custom ViewObject that delivers data programmatically. There's a method in this object "getFilterCriteria(..)" that looks at the parameters delivered to the ViewObject, and any ViewLinks, to produce a map of parameters that the underlying DataProvider can use to filter its data. When you setup a ViewLink between two of these ViewObjects you may see a filter on a foreign key, since the master view object is retrieving its detail objects. However, when the master object is a standard database view object, the view link doesnt work, i.e. the getFilterCriteria method does not see the view link when it calls ViewObjectImpl.getViewLinks().
-
View Object in the link - CREATION
Below is the table schema. master1, slave2, cat3 are in the LINK.
Master1 -----> Slave2 ------> Cat3.
(id) (id, masterId) (id, slaveId)
We are having the UIX pages to traverse starting for Master1 and down to Cat3.
We need to have a url that takes us directly to the Cat3 UIX page.
ex : www.something.com/catsBrowse.do?catdId=xxx&slaveId=yyy&masterId=zzzz.
I am trying to initialize the view object. But on executeQuery(). It gives an exception.
How do I initialize it. Is there any samples available???
- Thanks.Hi,
using ADF:
1. Create a page that shows data for cat3
2. Using the ADF binding (e.f. accessing it from a Struts Action) obtain teh iterator for master1 and set it to a specific row.
3. Do the same for Detail 2
4. Navigate to page cat3
Note that you don't need to access teh VO drectly but can handle this all through the binding framework
Frank
Maybe you are looking for
-
I purchased a Apple Mini DVI to VGA Adapter for my MacBook (early 2008). When I plug the cable into my MacBook it works fine, I have to drag the browser from my macBook onto my LCD using the curser. But when I do this with iTunes and I want to watch
-
[Solved][Hal and Partitions] Newbie problem with hal policy
Hello everybody, As a new user of archlinux for less than a week I have experienced a great distribution after having been for 1 year on Linux. After installation I was able to solve most of my problems with the wiki and the forums but there is one p
-
Does photoshop have this function? I need to know before I buy since this is a primary feature I am looking for
-
I have a form that allows a supervisor to do an automatic query in a form by selecting a "job number". Once the supervisor selects that number, the fields of the form are populated with the existing data in the database. I currently have a trigger th
-
SOA Database Adapter error in 11g
Hi All, Created BPEL process in 11g that invokes a UPDATE functionality on Database Adapter in Jdeveloper 11g. Using XA database ...... Getting following error. *<fault>* *<bpelFault>* *<faultType>* *<message>0</message>* *</faultType>* *<bindingFaul