Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > SDK
SDK Forum d'entraide pour la programmation des outils BO par des API (VBA, ASP, Java)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 16h25   #1
Invité de passage
 
Inscription : février 2012
Messages : 1
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 1
Points : 0
Points : 0
Par défaut URL reporting avec Open document : comment cacher des paramètres

Bonjour,


Actuellement dans mon entreprise, utilisant BO 4, pour accéder aux rapports, les utilisateurs disposent d'une URL de type :
Code :
http://MonCMS:8080/BOE/CrystalReports/viewrpt.cwr?id=XXXX&apsuser=Monlogin&apspassword=Monpass&apsauthtype=secEnterprise&cmd=EXPORT&EXPORT_FMT=U2FPDF:0
.
Ils modifient l'id du rapport (id=XXXX ) manuellement pour accéder à leur rapport.

Pour des raisons de sécurité, je souhaiterais que l'utilisateur n'ait plus a rentrer le nom d'utilisateur , le password et si possible le type d'authentification.

J'ai téléchargé et installé le SDK. Aprés m'être documenté j'ai trouvé une procédure qui consiste à créer une Webapp qui utilise une page JSP pour transmettre les informations de connexion.
Dans la documentation du SDK on évoque la possibilité de créer une serialized session que l'on peux passer dans l'url opendocument.

Ma procédure :
1 ) Création d'un dossier "Test" dans tomcat6\webapps
2 ) Création d'un dossier "WEB-INF" dans tomcat6\webapps\Test
3 ) Copie du fichier "basic web.xml" depuis le developper guide du SDK et modification du paramètre WEB_APPLICATION_NAME = Test.
Ce qui donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Test</display-name>
        <context-param>
       	        <param-name>crystal_servlet_uri</param-name>
        	        <param-value>/CrystalReportViewerHandler</param-value>
        </context-param> 
        <servlet>
      		        <servlet-name>CrystalReportViewerServlet</servlet-name>
        	       <servlet-class>com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet</servlet-class>
        </servlet>
        <servlet-mapping>
       	        <servlet-name>CrystalReportViewerServlet</servlet-name>
               	<url-pattern>/CrystalReportViewerHandler</url-pattern>
        </servlet-mapping>
</web-app>

4 ) Création d'un dossier "lib" dans tomcat6\webapps\Test\WEB-INF et copie des .jar requis ( ceux indiqués dans le SDK developper guide pour BI Platform Application )
5 ) Création d'une page test.jsp placée dans tomcat6\webapps\Test contenant :
Code :
1
2
3
4
5
6
<%@ page import="com.crystaldecisions.sdk.framwork.*" %>
 <%
 IEnterpriseSession es = CrystalEnterprise.getSessionMgr().logon("Monlogin","Monpass","<MonCMS>","<secEnterprise>");
 String serses = es.getSerializedSession();
 response.sendRedirect("http://MonCMS:8080/BOE/OpenDocument/opendoc/openDocument.jsp?serSes=" + java.net.URLEncoder.encode(serses) + "&cmd=EXPORT&EXPORT_FMT=U2FPDF:0");
 %>
J'utilise une licence de type nul donc j'ai choisi serialized session.

6) Je test en lancant http://localhost:8080/test/test.jsp

C'est ici que ca bloque j'obtiens l'erreur suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
 
exception 
 
org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP: 
 
Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /test.jsp
IEnterpriseSession cannot be resolved TO a type
1: <%@ page import="com.crystaldecisions.sdk.framwork.*" %>
2: <%
3: IEnterpriseSession es = CrystalEnterprise.getSessionMgr().logon("Monlogin","Monpass","MonCMS","secEnterprise");
4: String serses = es.getSerializedSession();
5: response.sendRedirect("http://MonCMS:8080/BOE/OpenDocument/opendoc/1111021846/openDocument.jsp?serSes=" + java.net.URLEncoder.encode(serses)+ "&cmd=EXPORT&EXPORT_FMT=U2FPDF:0");
6: %>
 
 
Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /test.jsp
CrystalEnterprise cannot be resolved
1: <%@ page import="com.crystaldecisions.sdk.framwork.*" %>
2: <%
3: IEnterpriseSession es = CrystalEnterprise.getSessionMgr().logon("Monlogin","Monpass","MonCMS","BOSUITE","secEnterprise");
4: String serses = es.getSerializedSession();
5: response.sendRedirect("http://MonCMS:8080/BOE/OpenDocument/opendoc/1111021846/openDocument.jsp?serSes=" + java.net.URLEncoder.encode(serses)+ "&cmd=EXPORT&EXPORT_FMT=U2FPDF:0");
6: %>
 
 
Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Mon probléme : mon objectif étant de supprimer l'insertion par l'utilisateur de son login/password/typedesecurité l'objectif n'est pas atteint : par ailleurs je ne vois pas comment faire pour insérer le numéro de rapport ( viewrpt.cwr?id=XXXX dans la précédente url ) et donner la possibilité d'exporter le document dans un autre type que le pdf ( car actuellement ce parametre est défini dans le JSP : &cmd=EXPORT&EXPORT_FMT=U2FPDF:0 ).

Mes questions :
1 ) Par rapport au log de l'erreur que j'obtiens j'ai l'impression que l'import de com.crystaldecisions.sdk.framwork.* est sujet à erreur : une recherche ne trouve aucun élément sur mon disque dur et ne connaissant pas le jsp j'ai des doutes quand à ma syntaxe et si l'import se réalise vraiment.

2 ) Au niveau de l'url de response.sendRedirect comment puis supprimer cmd=EXPORT&EXPORT_FMT=U2FPDF:0 pour pouvoir le définir dans l'url accédant au jsp et si possible insérer le numéro de rapport ? la syntaxe de l'URL est-elle correcte ?

3 ) Est-il possible de d'avoir un invite demandant le numéro de rapport désiré et le type d'export a renseigner par l'utilisateur, le minimum serait la suppression des informations d'authentification en clair dans l'addresse avec l'insertion manuelle du numéro de rapport et du type d'export ? Car je ne vois pas ou insérer ce numéro de rapport pourtant essentiel.

Merci d'avance !
Gbla1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h33.


 
 
 
 
Partenaires

Hébergement Web