Jump to content
We've recently updated our Privacy Statement, available here ×

jzhou_1

Members
  • Posts

    65
  • Joined

  • Last visited

jzhou_1's Achievements

Enthusiast

Enthusiast (6/14)

  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter Rare

Recent Badges

0

Reputation

  1. Problem:We have created a simple report in Studio and deployed to JasperServer. The report has a single drilldown field to a details view. When viewing the report on JasperServer, the drilldown link on the field displays correctly. However, when we display this report in our application, using REST_v2, the report does not include the hyperlink to the drilldown report. Workaround:Yes, unfortunately, hyperlinkType="ReportExecution" does not work currently in our product. There is a workaround which you can simulate the functionality inside your application using a reference Hyperlink. You can create a wrapper in your application that can handle this type of requests and calls the specific report, for example: Let's say your wrapper lives at http://myapp.com/jrs-call and receives a parameter with the report URI and a set of key/value pairs for the report parameters needed. Set the links in your repoorts as "reference" and point them to your wrapper with all the parameters needed like http://myapp.com/jrs-call?report=/public/AllAccounts&param1=value1&param... , etc. Then that wrapper can do the proper REST calls to execute the report needed.
  2. Requirement:The customer would like to know how to export specif number of pages via REST API. It can be embedded in the client application to retrieve the specific report pages according to the user seclection. Solution:Here are the steps you should follow to export specif number of pages. I'm using sample AllAccounts report logged in as superuser. Generate report in HTML and find out how many pages does it consist of: POST http://localhost:8080/jasperserver-pro-51/rest_v2/reportExecutions<reportExecutionRequest> <reportUnitUri>/organizations/organization_1/reports/samples/AllAccounts</reportUnitUri> <async>false</async> <interactive>true</interactive> <outputFormat>html</outputFormat> <ignorePagination>false</ignorePagination> </reportExecutionRequest>Download first ten pages of the report: GET http://localhost:8080/jasperserver-pro-51/rest_v2/reportExecutions/674823446_1378715298797_2/exports/html;pages=1-10/outputResource If you want to export another pages in next request just change URL accordingly (e.g. page 20): GET http://localhost:8080/jasperserver-pro-51/rest_v2/reportExecutions/674823446_1378715298797_2/exports/html;pages=20/outputResource
  3. Requirement:The customer would like to assign the newly created role to all the users under the same organization. However, due to the huge amount of users under the same organization, the manual work would be too much trouble. The customer would like to know if there is any workaround to achieve the same. Solution:Unfortunately, there is no existing feature in our product to automatically assign the role to all the users under the organization. The role is created under the organization level need to be assigned to each user manually from web UI. However, there is a workaround which you can try to update the repository user role mapping table "jiuserrole" to speed up the process. Please follow the steps as following: Find the organization id from table "jitenant". Use the following query as example: select id from jitenant where tenantid = 'organization_x'; Find the role id you just created under the organization from table "jirole" with the following query: select id from jirole where tenantid = xxxx and rolename = 'ROLE_XXXX'; Find all the user id under this organization from table "jiuser". Use the following query as example: select id from jiuser where tenantid = xxxx; Insert the user role mapping records into table "jiuserrole". Use the following query as example: insert into jiuserrole values (role_id,user_id1); insert into jiuserrole values (role_id,user_id2); insert into jiuserrole values (role_id,user_id3); insert into jiuserrole values (role_id,user_id4);
  4. Question:The customer is trying to add the plotline in HTML5 bubble chart as following: <hc:chartProperty name="xAxis.plotLines.dashStyle" value="Solid"/> <hc:chartProperty name="xAxis.plotLines.value" value="2000"/>However, it raised exception "org.mozilla.javascript.EcmaError:Type Error: Cannot find function concat in object [object Object]......" Solution:The property xAxis.plotLines is an array of objects, and setting such values as properties is not currently supported. There is a workaround for the plotLines properties for this situation. Please try the following expression which have been tested in my testing environment. <hc:chartProperty name="xAxis.plotLines"> <hc:propertyExpression> <![CDATA["(function(){return [{value: 31000,width: 1,color: 'green',dashStyle: 'dash',label: {text: 'Latest value',align: 'right',y: 12,x: 0}},{value: 31000,width: 1,color:'red',dashStyle: 'dash',label: {text: 'New value',align: 'right',y: 12,x: 0}}]})()"]]> </hc:propertyExpression> </hc:chartProperty> Note, please make sure the property com.jaspersoft.jasperreports.highcharts.function.properties.allowed is set as true in your Studio or JasperReports Server.
  5. Requirement:The customer wish to batch update the scheduled job details from the backend repository database. There are large number of jobs need to be updated which is why they want to use the batch script instead of manually update from UI. They are asking to provide some guide on the table structure for the scheduled jobs. Solution:You should be able to find all the scheduled jobs from your repository database table: jireportjob. To identify the jobs you want to change, run the query below: select * from jireportjob; In inside the table jireportjob, each job is linked to the owner which is is user id whoever scheduled that job. To find the user id, you can query the table jiuser with the following query: select * from jiuser; Update the table jireportjob for those jobs which you want to change. Use the query as below: update jireportjob set owner = xxxx where id = xxxx; If you need to update the mail notification details, you can find there is a mail_notification id from table jireportjob which linked to the other two tables: jireportjobmail and jireportjobmailrecipient. Update the email notification details for the report job you need to modify. Use the query as following: select * from jireportjobmail; select * from jireportjobmailrecipient;
  6. Problem:A customer has raised a question about the limitation of the collection passed in parameter. He did a simple testing by passing more than 18k+ items from the multiple selection input control to the report which has a query using $X{IN} with a collection parameter. However, the report only display up to 9992 records instead of all the passed in items. Testing as following steps:Run the report by select all 18k+ from the multiple-selection input control. http://community-static.jaspersoft.com/sites/default/files/wiki_attachments/pic1.png Click OK to run. Only 9992 records displayed. See attached picture 2. http://community-static.jaspersoft.com/sites/default/files/wiki_attachments/pic2.png Solution:It's a limitation of JRS input controls, derived from a Tomcat configuration. If you display the number of parameter values in the report, you will see "9992 parameters". Which means that JR gets a list of 9992 values for the report parameter. Tomcat's log file has the following message: 18-Nov-2016 09:38:05.574 INFO [http-nio-8080-exec-8] org.apache.tomcat.util.http.Parameters.processParameters More than the maximum number of request parameters (GET plus POST) for a single request ([10,000]) were detected. Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector. If you set maxParameterCount to 20000 for the HTTP connector in conf/server.xml, JR will get the full list of values from the JRS input control. Here is the configuration sample: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="20000"/>
  7. Problem:The customer is not able to set properties on a simple HTML5 pie chart or bar chart. For example, he don't want a legend. There is a false flag that can be set, but it does not work. Solution:To disable the legend for the HTML5 pie chart, please add the following property into the report jrxml: <hc:chartProperty name="legend.enabled"> <hc:propertyExpression> <![CDATA[Boolean.FALSE]]> </hc:propertyExpression> </hc:chartProperty>
  8. Requirement:Our customer want to monitor both scheduled reports and executed reports with scheduler. I checked the ready-made audit report (/public/audit/reports/Audit_Report) but I think it includes only executed reports with scheduler. The customer want to include the current scheduled report into the audit report. Solution:The auditing report only records the reports which have already been executed. For those reports which are still in schedule, but not executed, they will NOT be included in the auditing report. You will have to create your own report by yourself to show those reports which have been scheduled, but not executed. If you connect to our repository database, you can find all scheduled report jobs from table jireportjob. SELECT * FROM jireportjob; You should be able to find the report uri which have been scheduled, but not executed. For details about the schedule, you can refer to other tables: jireportjobsimpletrigger and jireportjobcalendartrigger.
  9. Requirement:We require that, for any user role, click Create > Ad Hoc View, click cancel when the "Select Data" windows pops up, the user will be redirected to a home page that is "/flow.html?_flowId=homeFlow". How can we update the configuration file, so it will redirect to the Repository page, that is "/flow.html?_flowId=searchFlow"? Solution:The possible way to achieve your requirement is to modify the javascript file: <JS-INSTALL>webappsjasperserver-proscriptsadhocdatachooserviewDatachooserDialogView.js and edit the following function: _onSelectDataDialogCancelButtonClick: function () { this.close(); if (this.isEmbeddedDesigner && document.referrer.indexOf("login.html") === -1) { jQuery(document).trigger("adhocDesigner:cancel"); } else { if (alreadyEditing && document.referrer.indexOf("login.html") === -1) { window.history.back(); } else { document.location = 'flow.html?_flowId=homeFlow'; } }}[/code]Since TIBCO JasperReports® Server v.5.6, JasperSoft used the require.js library to optimize javascript performance by merging and compressing javascript files. You will need to re-build optimized scripts atfer the changes. Here are the details on how to optimize scripts. There is a way to test the solution before rebuiidling the javascripts - just the add _opt=false parameter to the URL and clear browser cache: http://localhost:8080/jasperserver-pro/flow.html?_flowId=adhocFlow&_opt=false In this case, JasperReports Server reads non-optimized scripts from apache-tomcatwebappsjasperserver-proscripts folder.
  10. Problem:A customer has reported that when they use TIBCO JasperReports® Server v6.3.0 to run reports, it occasionally “Failed to authenticate” and error code is "authentication.error". Their code is here: [toc]function execVisualize(config) { if (window.visualize) { if (config && config.auth) { log('Detecting the local time zone ...'); var timezone = jstz.determine().name(); if (timezone) { config.auth.timezone = timezone; log('Set the timezone as [' + config.auth.timezone + '] to JasperServer'); } else { log('Fail to detect the local timezone, skip setting'); } window.visualize.config(config); Session.set({visualizeConfig:config}); } window.visualize(authSuccess, authError); } } The first time it is run everything is ok, but occasionally, on subsequent runs, it returns the error, "authentication.error". The xmlHttpRequest message is "SyntaxError: Unexpected token < in JSON at position 0(…)". Solution:The customer is using the token as the authentication method to execute the visualize.js for the report execution. However, this method of authentication has the cache/session cookie embedded and will raise an authentication exception if you try to re-authenticate within the same session. This is why the first time they ran the report with the authentication, which is successful, while the next run will occasionally raise authentication exception. There are some solutions that implements some special programming logic to force clean up of the existing cookie and terminate the session before trying to authenticate again. Some of our customers have also tried to implement logic to check if the current session has already authenticated or not. If already authenticated, it would not send the authentication request. However, the customer has found one minor problem with the visualize.js function, "var visualize = function (param, param2, param3, param4)" . In this function , they found that every time they call this , they have an authenticate. Jaspersoft code is here: var auth = visualizeData.auths.find( properties.server, properties.auth ), factory = visualizeData.facts[ properties.server ]; if (!auth) { auth = new Authentication(_.extend({url: properties.server}, properties.auth)); visualizeData.auths.push(auth); } if (!factory) { factory = new BiComponentFactory({server: properties.server}); visualizeData.facts[properties.server] = factory; } auth._result || (auth._result = auth.run()); auth._result .fail(errback) .always(function(result) { if (auth._result.state() === "resolved") { var v = createV(factory, auth); callback && callback(v); always && always(null, v); } else { always && always(result); } }; Finally, they found a solution . They add one token-timeout configuration to jboss which is "analytics.js.timeout".And the value is "3600".So this issue has gone. Hope this will help for others.
  11. [toc on_off::hide=1] Recently, there have been a few questions, related to third party notices, which have been discussed across our team. Here we provide some answers if you have similar questions about it. Questions:A previous version (4.0 - 5.5) of TIBCO JasperReports® Server included Third-Party-Notices.pdf. But the most recent version doesn't include it. Why is proguard, which is under GPL, in our product? This has not been specified in our license agreement documentation. Answers:All license information including the third party agreement have been included in the documentation: Jaspersoft 6.x License Agreement Addendum which you can find from our support portal. There will be no third party notice any more. As for the proguard library, it is used only when the source code is built. As confirmed from our internal team, this library should be removed from our build source to avoid future confusion. We have raised an internal ticket to remove it.
  12. Problem:Steps to reproduce(**describe the steps you followed**) Create a new ad hoc view with two Row items using sample data. Expand the first row all values, we get the list of values correctly for the first "Site" row values which is "AE" Switch to full data "AE" values disappeared (see the attached screenshot) Expected result(**describe the expected result/output of the steps you followed**) We should keep values for "AE" as fulldata should have more values than sample data, but there seems to be a problem Actual result(**describe the actual outcome/problem behavior**) AE values disappear when using Full Data Solution:We did some additional tests on our data, and we found that the problem occurs when we reach the 100k row limit. Looking at the configuration files, I found this property in the applicationContext-datarator.xml file: <!-- absolute limit on how many nodes can be in any axis --> <property name="axisNodeLimit" value="100000"/>[/code]This property does not exist in the 6.1.1 version of this file. I did increase the axisNodeLimit parameter to 2000000 and now the crosstab works without issue.
  13. [toc on_off::hide=1]Problem:Users could configure the PL/SQL query executor in previous versions of TIBCO JasperReports® Server. See the Wiki page: http://community.jaspersoft.com/wiki/no-query-executer-factory-registered-plsql-language-jasperserver-51 However, this will NOT work in TIBCO JasperReports® Serverr v6.3.0. Solution:From TIBCO JasperReports® Serverr v6.3.0 on, you won't need to configure the PL/SQL query executer in any way, it is there by default.
  14. [toc on_off::hide=1]Requirement:The customer wishes to disable the Cancel button when trying to Create an Adhoc View in TIBCO JasperReports® Server. Solution:In TIBCO JasperReports® Server. v.6.1.1, the ad-hoc designer was modified. The easiest way to achieve the requirement is to modify the javascript file: jasperreports-server-6.1.1apache-tomcatwebappsjasperserver-proscriptsadhocdatachooserviewDatachooserDialogView.js and remove line: { label: i18n["ADH_010_BUTTON_CANCEL"], action: "cancel", primary: false } Since TIBCO JasperReports® Server v.5.6, JasperSoft used the require.js library to optimize javascript performance by merging and compressing javascript files. You will need to re-build optimized scripts atfer the changes. Here are the details on how to optimize scripts: https://community.jaspersoft.com/documentation/jasperreports-server-ultimate-guide/v561/customizing-javascript-files There is a way to test the solution before rebuiidling the javascripts - just the add _opt=false parameter to the URL and clear browser cache: http://localhost:8090/jasperserver-pro/flow.html?_flowId=homeFlow&_opt=false In this case JaspreReports Server reads non-optimized scripts from apache-tomcatwebappsjasperserver-proscripts folder. If you are doing this on a test or staging server, you might just want to temporarily disable optimization optimization by setting javascript.optimize=false in the <js-webapp>/WEB-INF/js.config.properties file and then reloading or restarting the server. You only have to do this once.
  15. QuestionThe customer would like some hardware recommendation for the following configuration: Parameters for estimating exact hardware requirements are: Report concurrency (number of reports run at the same time), intensity of user activity (e.g. think-time). It will be max 300 concurrent reports execution in a worst case scenario. Report complexity and result sizes. Max 4,50,000 transactions per day and 22 days in a month. Existing RAM, Allocated Heap memory size, CPU Cores and other hardware specifications. Usage Physical/Virtual OS Software Hostname CPU (Core) Mem (GB) Disk – IBM SAN SVC Jboss1 Virtual RHEL 6.6 JBOSS EAP 6.2.4 ldctvljboa01 4 8 20G (OS) +80G (Data) jboss2 Virtual RHEL 6.6 JBOSS EAP 6.2.4 ldctvljboa02 4 8 20G (OS) +80G (Data) Marklogic1 Virtual RHEL 6.6 ML 8.0-4 ldctvlmara01 8 128 20G (OS) +200G (Data) Marklogic2 Virtual RHEL 6.6 ML 8.0-4 ldctvlmara02 8 128 20G (OS) +200G (Data) marklogic3 Virtual RHEL 6.6 ML 8.0-4 ldctvlmara03 8 128 20G (OS) +200G (Data) Web Virtual RHEL 6.6 Apache ldctvlwebd01 2 4 20G (OS)+ 100G(Data) Jasper soft Virtual RHEL 6.6 TBD ldctvlappd01 4 32 20G (OS) + 50G(Data) Active users: Active users will be max 300 . Concurrent report executions: the subset of active users that are simultaneously demanding system resources like Jasper reports execution at any given time. SuggestionThis would be question for service team (PS/SE) to provide individual guidance on sizing. The customer's answers indicate they do not have a well defined usage plan at this time. let me read between the lines here .... 300 concurrent users running reports all the time (worst case). this is unlikely for an interactive system - would only happen for production reportingNo ad hoc (domains) or dashboards 4 core, 32GB RHEL for Jaspersoft - could dedicate up to 30GB for Tomcat + Jaspersoft - reports only do not need a large amount of memory IF - and this is really important - only IF: the individual reports perform in a reasonable amount of time - under 5 secs, say the 300 users are submitting 1 report every 30 seconds - which would be typical for interactive reports => You would need 6-8 cores. There are many variables that come into play when estimating size. Our services team can help you evaluate this. Whether they can get that performance depend on their environment and use cases (what is being run, what is the speed of the data sources ... ). They need to test the reports to determine base line performance and then extrapolate what their capacity will be.
×
×
  • Create New...