Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Injecting user name in to Data Set sql.
Valdek
<p>Hi,</p>
<p> </p>
<p>Using:</p>
<p>Actuate BIRT Designer Professional<br>
Version: 4.4.0<br>
Build id: v20150710</p>
<p> </p>
<p>Based on user name, I am trying to show only a subset of records from database.</p>
<p>Report is preview from BIRT/Acuate designer.</p>
<p> </p>
<p>My Data Set sql is:</p>
<p> </p>
<p><span style="color:#008000;">select *<br>
from CMO_BAL<br>
INNER JOIN ACCOUNT_ACCESS<br>
ON CMO_BAL.AC_NO=ACCOUNT_ACCESS.ACCOUNT_NUMBER<br>
WHERE ACCOUNT_ACCESS.USER_NAME= "id787"</span></p>
<p> </p>
<p>I placed my javascript in events, beforOpen, afterOpen but it is not working.</p>
<p>My Javascript code here:</p>
<p> </p>
<p><span style="color:#008000;">var userID = actuate.getUserId();<br>
if (userID == "anonymous"){<br>
userID = "Treasurer"; }<br>
this.queryText=this.queryText.replace("id787", userID);</span><br>
</p>
<p>Please help.</p>
<p>and tell me what I am doing wrong.</p>
<p> </p>
<p>Thank you.</p>
<p> </p>
Find more posts tagged with
Comments
micajblock
<p>First, in your SQL you need to use single quotes like this:</p>
<pre class="_prettyXprint">
select *
from CMO_BAL
INNER JOIN ACCOUNT_ACCESS
ON CMO_BAL.AC_NO=ACCOUNT_ACCESS.ACCOUNT_NUMBER
WHERE ACCOUNT_ACCESS.USER_NAME= 'id787'</pre>
<p>The your code should look like this:</p>
<pre class="_prettyXprint">
var userID = reportContext.getAppContext().get("ServerUserName");
if (userID == "anonymous"){
userID = "Treasurer"; }
this.queryText=this.queryText.replace("id787", userID);</pre>
Valdek
<p>Hi Mica,</p>
<p> </p>
<p>Thank you for prompt reply.</p>
<p>Your code works perfectly.</p>
<p> </p>
<p>V.</p>
micajblock
<p>You're welcome.</p>