cancel
Showing results for 
Search instead for 
Did you mean: 

How to reference variable values in a BW Web Template

Former Member
0 Kudos

Hi All,

I'm having a problem which I hope someone can help me with.

OVERVIEW

I've developed a BW Web template with (among other things) a TEXTELEMENTS Web Item and a TABLE Web Item. I've enhanced the context menu so that when a user selects a row within the TABLE, they can start a SEM-BPS Web interface (which displays a manual planning layout). I've used the 'How to call a BPS Web Interface with Predefined Selections' document to get the basic mechanism working. The JavaScript function I've written successfully passes the variable (DFCOST_PL) value to the planning layout.

THE PROBLEM

The problem is twofold....

1. I need to pass the value for a variable (FEPCVERS) to the layout. However I do not know how to make reference to the variable in JavaScript. The variable is available within the TEXTELEMENTS_1 object but how do I address it?

2. On a similar vein, I need to pass the value for a field within the table row to the planning layout. The TABLE_2 object contains the fields (DFCOST_PL and DFGROUPS). When the user selects a line the value for DFCOST_PL is available to the JavaScript function (ZAJT_JS_Maintain_Rules) in the 'parameter1' field. However, how do I make the DFGROUPS field available?

Below is the HTML code for my Web Template. Any help would be greatly appreciated.....

<!-- BW data source object tags -->

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="SET_DATA_PROVIDER">

<param name="NAME" value="DATAPROVIDER_2">

<param name="QUERY" value="ZAJT3_COST_BASE_BY_COST_POOL">

<param name="INFOCUBE" value="Z_FEPC_CB">

DATA_PROVIDER: DATAPROVIDER_2

</object>

<!--BW HTML data source object tags: -->

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="SET_PROPERTIES">

<param name="TEMPLATE_ID" value="ZAJT_RULES_ENTRY">

<param name="VARIABLE_SCREEN" value="X">

<param name="CMENU_LABEL_1" value="ZAJT Maintain Rules">

<param name="CMENU_FUNCTION_1" value="ZAJT_JS_Maintain_Rules">

<param name="CMENU_PARAMETER_1" value="1">

<param name="CMENU_CELL_TYPE_1" value="CHARACTERISTIC_VALUE">

<param name="CMENU_FILTER_1" value="DFCOST_PL">

<param name="CMENU_VISIBILITY_1" value="X">

<param name="CMENU_POSITION_1" value="TOP">

TEMPLATE PROPERTIES

</object>

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="SET_DATA_PROVIDER">

<param name="NAME" value="DATAPROVIDER_1">

<param name="QUERY" value="ZAJT3_COST_BASE_BY_PC_NODE">

<param name="INFOCUBE" value="Z_FEPC_CB">

DATA_PROVIDER: DATAPROVIDER_1

</object>

<html>

<head>

<title>BW Web Application</title>

<link href= "/sap/bw/mime/BEx/StyleSheets/BWReports.css" type=text/css rel=stylesheet>

</head>

<!--ZAJT Test code start -->

<SCRIPT language="JavaScript">

function ZAJT_JS_Maintain_Rules(parameter,cell_type,filter,parameter1,parameter2,item,dataprovider,x,y)

{

var url;

var cpool=parameter1;

switch (parameter)

{

case "1":

url="http://dknborisdev.dcb.defence.gov.au:3280/sap/bc/bsp/sap/zbps_var_set/zbps_var_set.htm?area=ZFERULES&bps-appl=ZAJT_RULES3&var1=ZWEBCP&value1_1=" + cpool;

SAPBWOpenWindow(url ,"MaintainRules" ,600,400);

break;

}

}

</SCRIPT>

<!--ZAJT Test code end -->

<body>

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="TEXTELEMENTS_1">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_TEXT_ELEMENTS">

<param name="DATA_PROVIDER" value="DATAPROVIDER_1">

<param name="CLOSED" value="X">

<param name="SHOW_COMMON_ELEMENTS" value="">

<param name="SHOW_FILTERS" value="">

<param name="ELEMENT_TYPE_1" value="VARIABLE_K">

<param name="ELEMENT_NAME_1" value="FEPCVERS">

<param name="ELEMENT_TYPE_2" value="VARIABLE_K">

<param name="ELEMENT_NAME_2" value="DF_GRP">

<param name="ELEMENT_TYPE_3" value="VARIABLE_K">

<param name="ELEMENT_NAME_3" value="ZCSTCNTR">

ITEM: TEXTELEMENTS_1

</object>

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="NAVIGATIONBLOCK_2">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_NAV_BLOCK">

<param name="DATA_PROVIDER" value="DATAPROVIDER_2">

<param name="CLOSED" value="X">

<param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_1">

<param name="TARGET_DATA_PROVIDER_2" value="DATAPROVIDER_2">

ITEM: NAVIGATIONBLOCK_2

</object>

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="PC_HIERARCHY">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_FILTER_HIERDD">

<param name="DATA_PROVIDER" value="DATAPROVIDER_1">

<param name="CLOSED" value="X">

<param name="CAPTION" value="Profit Centre Hierarchy">

<param name="BORDER_STYLE" value="BORDER">

<param name="IOBJNM" value="0PROFIT_CTR">

<param name="HIERARCHY_NAME" value="PROFIT_CTR_ZFEPCBP05">

<param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_2">

<param name="TARGET_DATA_PROVIDER_2" value="DATAPROVIDER_1">

ITEM: PC_HIERARCHY

</object>

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="TABLE_1">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID">

<param name="DATA_PROVIDER" value="DATAPROVIDER_1">

<param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_1">

<param name="TARGET_DATA_PROVIDER_2" value="DATAPROVIDER_2">

ITEM: TABLE_1

</object>

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="TABLE_2">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID">

<param name="DATA_PROVIDER" value="DATAPROVIDER_2">

ITEM: TABLE_2

</object>

</body>

</html>

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

answer to first question:

change the HTML for textelements to

<span style="display:none;visibility:hidden" id="FEPCVERS_value">

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="TEXTELEMENTS_1">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_TEXT_ELEMENTS">

<param name="DATA_PROVIDER" value="DATAPROVIDER_1">

<param name="GENERATE_CAPTIONS" value=""/>

<param name="ONLY_VALUE" value="X"/>

<param name="SHOW_COMMON_ELEMENTS" value="">

<param name="SHOW_FILTERS" value="">

<param name="ELEMENT_TYPE_1" value="VARIABLE_K">

<param name="ELEMENT_NAME_1" value="FEPCVERS">

ITEM: TEXTELEMENTS_1

</object>

</span>

Now you can use document.getElementById('FEPCVERS_value').innerHTML .

For the second problem this is not quite so easy. Here (when using < BW 3.5) you need to use the table interface to solve this problem.

Heike

Former Member
0 Kudos

Hi Heike,

Thanks for your response. The example you gave me works nicely. I've tried to use the same concept on a FILTER object, but it does not seem to work. I declared the object as below:

</span>

<span style="display:none;visibility:hidden" id="0PROFIT_CTR_value">

<object>

<param name="OWNER" value="SAP_BW">

<param name="CMD" value="GET_ITEM">

<param name="NAME" value="FILTER_1">

<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_FILTER">

<param name="DATA_PROVIDER" value="DATAPROVIDER_1">

<param name="HIDDEN" value="X">

<param name="GENERATE_CAPTION" value="">

<param name="PRESENTATION" value="KEY">

<param name="ITEM_FILTER_IOBJNM_1" value="0PROFIT_CTR">

<param name="PRESENTATION_1" value="KEY">

<param name="ONLY_VALUES" value="X">

ITEM: FILTER_1

</object>

</span>

and then use

document.getElementById('0PROFIT_CTR_value').innerHTML.

However, the value returned is blank. Is there a different method required for filters?

Also, you mentioned that to access the second variable I will need to use the table interface. Is this difficult to do? I'm booked on the NET050 (Developing Web Applications) course, but it's not until late November. Do you think that this course would cover this kind of processing?

Former Member
0 Kudos

Hi Adrian,

question 1): You are not allowed to set the hidden=X flag, as hidden means the web item will not be processed

remove the hidden parameter or set it to blank

2) NET050 will not cover BW specific issues, as NET050 deals general with Web concepts (BSP,...)

As for using the Table Interface there are some HowTos in SAPNet

Heike

Former Member
0 Kudos

Hi Heike,

Again, thank you for your response. The filter object is now working.

I've reviewed the online documentation on the Table Interface and also found a how-to ("how to hide a column in your web query with the table interface")document, but do not understand how I would approach my problem (being able to access the values for all columns when the user selects a row). Are there any SAP courses available that would specifically address this kind of functionality? If not, is there any documentation you would recommend?

Thanks in advance,

Adrian

Former Member
0 Kudos

Hi,

I don't know of a specific course which will cover this topic in detail.

When you can program in ABAP-OO I would recommend to study the online documentation carefully.

http://help.sap.com/saphelp_nw04/helpdata/en/a2/06a83a4bd5a27ae10000000a11402f/frameset.htm

For your specific problem, I would recommend the service-Method GET_CELL_INFO

http://help.sap.com/saphelp_nw04/helpdata/en/96/42393c3eb3036be10000000a11402f/frameset.htm

The table e_t_cell_restrictions should have all relevant data.

Call this method within the method characteristic_cells.

Heike

athavanraja
Active Contributor
0 Kudos

Hi,

Recently found that for getting variable values

in version BW3.5 u need

<param name="ELEMENT_TYPE_1" value="<b>VARIABLE_KEY</b>">

in versions less than BW3.5

<param name="ELEMENT_TYPE_1" value="<b>VARIABLE_K</b>">

Please note the bold area.

Regards

Raja

Former Member
0 Kudos

Hi Gents,

Thanks for your responses to my emails. Heike, your input has been very helpful. I'll try and get my head around ABAP-OO and progress from there.

Regards,

Adrian