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)
GetParameterPickList throwing soap server error.
walnash
<p>Hi,</p><p> </p><p>I am using IDAPI to get the parameter selection list of a parameter in a cascading parameter group. Below is my code:</p><div> ParameterValue[] l_paramValue = new ParameterValue[1];</div><div> l_paramValue[0] = new ParameterValue(); </div><div> string value = "7";</div><div> l_paramValue[0].Value = value;</div><div> ObjectIdentifier objId = new ObjectIdentifier( );</div><div> string fileName = "/Public/BIRT and BIRT Studio Examples/Application Compliance.rptdesign";</div><div> string fileType = "rptdesign";</div><div> objId.Name = fileName;</div><div> objId.Type = fileType;</div><div> GetParameterPickList l_paramSelList = new GetParameterPickList(); </div><div> l_paramSelList.Object = objId;</div><div> l_paramSelList.CascadingGroupName = "CascadeGp1";</div><div> l_paramSelList.ParameterName = "LocationID";</div><div> l_paramSelList.PrecedingParameterValues = l_paramValue;</div><div> GetParameterPickListResponse l_paramPkList = <strong>[color=#ff0000;]l_proxy.getParameterPickList(l_paramSelList);[/color]</strong></div><div> </div><div>My code is in C#.</div><div> </div><div>When i run this code i get a soap server error with below details:</div><div><div>System.Web.Services.Protocols.SoapException was unhandled by user code</div><div> Message=Soap Server error.</div><div> Source=System.Web.Services</div><div> Actor=""</div><div> Lang=""</div><div> Node=""</div><div> Role=""</div><div> StackTrace:</div><div> at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)</div><div> at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)</div><div> at WebApplication1.ind10150.ActuateAPI.getParameterPickList(GetParameterPickList GetParameterPickList1) in E:WORKTestAppBIRTBirtIntFcWebApplication1Web Referencesind10150Reference.cs:line 2157</div><div> at WebApplication1._Default.LinkButton1_Click1(Object sender, EventArgs e) in E:WORKTestAppBIRTBirtIntFcWebApplication1Default.aspx.cs:line 179</div><div> at System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e)</div><div> at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)</div><div> at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)</div><div> at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)</div><div> at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)</div><div> at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</div><div> InnerException: </div><div> </div><div> </div><div>A watch on the above highlighted code shows the below error:</div><div>Cannot call 'WebApplication1.ind10150.ActuateAPI.getParameterPickList(WebApplication1.ind10150.GetParameterPickList)' because it is a web method.</div><div> </div><div>Any idea on the cause and fix for this?</div><div> </div><div>Avinash</div></div><p> </p>
Find more posts tagged with
Comments
walnash
<p>does anyone has any idea about this issue?</p>
RSiegler
<p>Walnash,</p><p> </p><p>Can you capture the SOAP message that gets created and sent to the iServer?</p>
walnash
<p>here's the soap message that is being sent to iserver:</p><p> </p><div>POST <a data-ipb='nomediaparse' href='
http://127.0.0.1:8000/'>http://127.0.0.1:8000/</a>
; HTTP/1.1</div><div>User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.1008)</div><div>Content-Type: text/xml; charset=utf-8</div><div>SOAPAction: ""</div><div>Host: 127.0.0.1:8000</div><div>Content-Length: 979</div><div>Expect: 100-continue</div><div> </div><div><?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="<a data-ipb='nomediaparse' href='
http://schemas.xmlsoap.org/soap/envelope/'>http://schemas.xmlsoap.org/soap/envelope/</a>"
; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
; xmlns:xsd="
http://www.w3.org/2001/XMLSchema"></div><div>
; <soap:Header></div><div> <Header xmlns="<a data-ipb='nomediaparse' href='
http://schemas.actuate.com/actuate11'>http://schemas.actuate.com/actuate11</a>"></div><div>
; <AuthId>cfMOutp7qK8ngRUKzl0Dc4WqBXhL2ABhCnoWtzAETJetKIm/25PkEdcO/PIMp0tbaN9umyV16OsPkqcI+UR4d3AUyr9Z/GAwDXS6bL6eo0KuiTIueC4PErECrqwGkluEDplI40ryPr0bFg3kGt+/arhbPYimnYGkLzfvgvirFe8WpIzxMcIseQ==</AuthId></div><div> <TargetVolume>iHub_AW</TargetVolume></div><div> </Header></div><div> </soap:Header></div><div> <soap:Body></div><div> <GetParameterPickList xmlns="<a data-ipb='nomediaparse' href='
http://schemas.actuate.com/actuate11'>http://schemas.actuate.com/actuate11</a>"></div><div>
; <Object></div><div> <Name>/Public/BIRT and BIRT Studio Examples/Application Complicance.rptdesign</Name></div><div> <Type>rptdesign</Type></div><div> </Object></div><div> <CascadingGroupName>CascadeGp1</CascadingGroupName></div><div> <ParameterName>LocationID</ParameterName></div><div> <PrecedingParameterValues></div><div> <ParameterValue></div><div> <Value>7</Value></div><div> </ParameterValue></div><div> </PrecedingParameterValues></div><div> </GetParameterPickList></div><div> </soap:Body></div><div></soap:Envelope></div><div> </div><div> </div><div> </div><div>and below is the error message that i am getting:</div><div> </div><div><div>HTTP/1.1 200 OK</div><div>Content-Type: text/xml;charset="utf-8"</div><div>Content-Length: 528</div><div>HOST: IND10150</div><div>SOAPAction: ""</div><div> </div><div><SOAP-ENV:Envelope xmlns:SOAP-ENV="<a data-ipb='nomediaparse' href='
http://schemas.xmlsoap.org/soap/envelope/'>http://schemas.xmlsoap.org/soap/envelope/</a>"
; xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"></div><div>
; <SOAP-ENV:Body></div><div> <SOAP-ENV:Fault></div><div> <faultcode>Server</faultcode></div><div> <faultstring>Soap Server error.</faultstring></div><div> <detail></div><div> <RequestName>GetParameterPickList</RequestName></div><div> <ErrorCode>4014</ErrorCode></div><div> <Description></div><div> <Message>Cannot start a new server.</Message></div><div> </Description></div><div> </detail></div><div> </SOAP-ENV:Fault></div><div> </SOAP-ENV:Body></div><div></SOAP-ENV:Envelope></div><div> </div></div><div>PS: i am able to call other methods in the iserver like getFolderItems successfully.</div><div> </div><div>Avinash</div><div> </div><div> </div>
RSiegler
<p>Avinash,</p><p> </p><p>I want to try this out in house to see if I can duplicate the behavior.</p><p>What version are you using of the iServer, and is your report using an information object in order to populate the pick list?</p><p>Are you using the demo license, and if not what license options (just the options, not how many users) are licensed?</p><p>The "Cannot start a new server." error message may be related to starting a new factory.</p>
walnash
<p>Ryan,</p><p> </p><p>I am using Birt iHub version 2 build: 220A130129 with demo licence. </p><p> </p><p>My report is not using an information object. It is simply using a data source to populate the pick list.</p><p> </p><p>Avinash.</p>
RSiegler
<p>Avinash,</p><p> </p><p>Can you set the FileType property in the SOAP header?</p><p> </p><p>This should be similar to the following in your C# code:</p><p> </p><p>l_proxy.HeaderValue.FileType = "RPTDESIGN";</p><p> </p><p>Addition of the file type allows for the request to be processed as expected in my testing, and I am not seeing it in your SOAP request.</p>
walnash
<p>This did not work.
. i am still getting the same the error.</p>
RSiegler
<p>walnash,</p><p> </p><p>So the first run of the GetParameterPicklist operates as expected, and this second one is where it fails?</p><p>(This is an assumption since you are providing the value for the preceding parameter).</p>
walnash
<p>Hi,</p><p> </p><p>No, this is the first run of [color=rgb(0,0,0);font-family:helvetica, arial, sans-serif;]GetParameterPicklist. I am providing the preceding parameter value (value of the first parameter in the cascading group) which is obtained from the operation of [/color]getReportParameters. </p><p> </p><p>I am trying to get the selection list of the second parameter in the cascading group based on the values selected for the first parameter.</p><p> </p><p>Avinash</p>
RSiegler
<p>Avinash,</p><p> </p><p>I apologize for the delay on getting back to you, however I think I may have found the source of the issue.</p><p> </p><p>The system is expecting a ParameterValueArray object containing a Parameter[] object containing the parameters.</p><p> </p><p>From your code, it does not look like you are instantiating this object to pass into the GetParameterPicker call.</p><p>Your code should look similar to the following:</p><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> </div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> ParameterValue[] l_paramValue = new ParameterValue[1];</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> l_paramValue[0] = new ParameterValue(); </div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> string value = "7";</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> l_paramValue[0].Value = value;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> ParameterValueArray parmArray = new ParameterValueArray();</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> parmArray.ParameterValue = l_paramValue;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> ObjectIdentifier objId = new ObjectIdentifier( );</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> string fileName = "/Public/BIRT and BIRT Studio Examples/Application Compliance.rptdesign";</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> string fileType = "rptdesign";</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> objId.Name = fileName;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> objId.Type = fileType;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> GetParameterPickList l_paramSelList = new GetParameterPickList(); </div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> l_paramSelList.Object = objId;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> l_paramSelList.CascadingGroupName = "CascadeGp1";</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> l_paramSelList.ParameterName = "LocationID";</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> l_paramSelList.PrecedingParameterValues = parmArray;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> GetParameterPickListResponse l_paramPkList = <strong>[color=rgb(255,0,0);]l_proxy.getParameterPickList(l_paramSelList);[/color]</strong></div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> </div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">Please let me know if this change does not allow for the call to operate as expected.</div>
walnash
<p>This is not working either
. Its not even compiling. </p><p> </p><p>[color=rgb(40,40,40);font-family:helvetica, arial, sans-serif;]PrecedingParameterValues expects [/color][color=rgb(0,0,0);font-family:helvetica, arial, sans-serif;]ParameterValue[] not [/color][color=rgb(0,0,0);font-family:helvetica, arial, sans-serif;]ParameterValueArray. [/color]</p>
RSiegler
<p>Avinash,</p><p> </p><p>Is the value you are using, 7, the value of what is represented, or the value assigned to that choice as part of the named value pair?</p><p> </p><p>IE - Using a pick list of company names, "My Company 2" might have a name pair value returned of "160". To choose that as the previous value, I need to use "160" and not "My Company 2".</p>
walnash
<p>The value '7' is the value from the name value pair. It is not the name that is displayed on the picklist. The DB needs this value to query and return a next result.</p><p> </p><p>As in, from your example it is the value '160'.</p>
RSiegler
<p>Avinash,</p><p> </p><p>I am still trying to reproduce the error at this time.</p>
RSiegler
<p>Avinash,</p><p> </p><p>I have replicated the error by using C# with .Net 3.5 framework.</p><p>I cannot replicate the issue in java.</p><p> </p><p>Looking at the SOAP messages, there are some small differences that should not affect how the server handles them (since other messages operate normally).</p><p> </p><p>I am continuing to explore this to determine if there is a fix or work around for the issue.</p>
walnash
<p>Really appreciate your help Ryan.
</p>
RSiegler
<p>Avinash,</p><p> </p><p>I have filed TED# 64385 with regards to this issue.</p><p>I have been able to duplicate in C# but not in Java.</p><p> </p><p>If this is critical to your application and you do have a current support contract, please contact support@actuate.com for further assistance.</p>
walnash
<p>Hi Ryan,</p><p> </p><p>Sorry i got busy with a different work. We dont have a support contract. I was evaluating BIRT/Actuate for its suitability to our requirement.</p><p> </p><p>I believe the issue i have mentioned has been recognized as a bug. How can i know the progress/solution for TED# 64385?</p><p> </p><p>Avinash.</p>
RSiegler
<p>Avinash,</p><p> </p><p>At this time, the issue is still under review.</p>
RSiegler
<p>Avinash,</p><p> </p><p>Can you please perform the following modifications to your code and test again:</p><p> </p><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">ParameterValueArray parmArray = new ParameterValueArray();</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">parmArray.ParameterValue = l_paramValue;</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">parmArray.ParameterName = x; //x = preceeding parameter name</div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;"> </div><div style="margin:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;">Leave the rest of the code the same and it should function.</div>