none
Execution report par ligne de commande RS RRS feed

  • Question

  • Bonjour à tous,

    suite à l’exécution d'un rapport par ligne de commande via un script rss, je rencontre l'erreur suivante :

    C:\>rs -i RunReportAPO.rss -s http://172.30.110.110/reportserver -v p_fileName="
    C:\temp\testAPO.xls" -v p_format="xls" -v p_reportPath="/MhnReport/HOM/P_REPORT_
    MHN_QUA_GPT_001" -v p_paramsReport="P_WHSE=XX;P_DS=YY;A_DAT_DEB=01/01/2016;A_DAT
    _FIN=01/01/2016" -l 1800 -e Exec2005 2>&1

    dans cette ligne de commande, le paramètres P_DS=YY correspond à la chaîne de connexion passée au rapport.

    Exception non gérée :
    Une ou plusieurs informations d'identification de la source de données requises
    pour exécuter ce rapport n'ont pas été spécifiées. ---> Microsoft.ReportingServi
    ces.ReportProcessing.ReportProcessingException: Une ou plusieurs informations d'
    identification de la source de données requises pour exécuter ce rapport n'ont p
    as été spécifiées.

    Le contexte projet est le suivant :

    Le rapport possède un paramètre spécifique dans lequel est passé la chaîne de connexion, cela de manière dynamique.

    Le processus est pleinement opérationnel lorsque celui-ci est appelé en visualisation par l'intermédiaire d'une application
    web développée en interne.

    Le code utilisé dans l'application web est le suivant :

    //if report use MHN, we set the P_DS parameter which is the embeded Datasource
    if (v_mhnds == "Y")
    {    
    String ds = UserContext.CurrentUser.UserConnexions.WmosConnexionString;
            if (rv.ServerReport.GetParameters()["P_LANG_ID"] != null) rv.ServerReport.SetParameters(new ReportParameter("P_LANG_ID", UserContext.CurrentUser.UserConnexions.Language));

             rv.ServerReport.SetParameters(new ReportParameter("P_DS", ds));

             //We set the datasource credentials which are on the ht variable
             DataSourceCredentials cred = new DataSourceCredentials();
             cred.Name = "DSLocal";
             String UsrPwd = ToolBox.getUserPwd(UserContext.CurrentUser.UserConnexions.WmosConnexionString);
             cred.UserId = UsrPwd.Split(';')[0]; ;
             cred.Password = UsrPwd.Split(';')[1]; ;
             rv.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] { cred });
    }

    if(!UserLang.Equals("0"))
    if (rv.ServerReport.GetParameters()["P_LANG_ID"] != null) rv.ServerReport.SetParameters(new ReportParameter("P_LANG_ID", UserLang));



    Visiblement, la problématique porte sur la méthode SetDataSourceCredentials qui semble ne pas être disponible avec le ReportExecution2005.

    Est ce que l'un d'entre vous a déjà rencontré cette problématique ?

    Merci pour voter aide.

    lundi 20 juin 2016 06:36