I am working on a unique solution and have been running into an anomaly for most of the day.
Being required to call our to a WCF web service via an SSRS report, I picked the best example based on the current service configuration. The solution works for the most part, however, I think I may be mangling the parameter payload. There is no wsdl generator built into ssrs so I am doing this step by step :( Does anything in my parameter configuration below seem out of the ordinary?
When the variables are all one character in length the payload is sent successfully, however, when I use normal parameter names, the variables come across as default values except for the first one. Any help?
[MessageContract(IsWrapped = true)]
public class ServiceResponse
{
[MessageBodyMember]
public string Result;
}
[MessageContract(IsWrapped = true)]
public class ServiceRequest
{
[MessageBodyMember]
public int A { get; set; }
[MessageBodyMember]
public int B { get; set; }
[MessageBodyMember]
public int C { get; set; }
[MessageBodyMember]
public string D { get; set; }
[MessageBodyMember]
public string E { get; set; }
[MessageBodyMember]
public string F { get; set; }
[MessageBodyMember]
public string G { get; set; }
[MessageBodyMember]
public string H { get; set; }
[MessageBodyMember]
public int I { get; set; }
}
[ServiceContract]
public interface IService
{
[OperationContract]
ServiceResponse Process(ServiceRequest request);
}
public class Service : IService
{
public ServiceResponse Process(ServiceRequest request)
{
return new ServiceResponse { Result = "OK" };
}
}
<Query>
<Method Name="ServiceRequest" Namespace="http://tempuri.org/">
<Parameters >
<Parameter Name="A"><DefaultValue>1</DefaultValue></Parameter>
<Parameter Name="B"><DefaultValue>2</DefaultValue></Parameter>
<Parameter Name="C"><DefaultValue>3</DefaultValue></Parameter>
<Parameter Name="D"><DefaultValue>4</DefaultValue></Parameter>
<Parameter Name="E"><DefaultValue>5</DefaultValue></Parameter>
<Parameter Name="F"><DefaultValue>6</DefaultValue></Parameter>
<Parameter Name="G"><DefaultValue>7</DefaultValue></Parameter>
<Parameter Name="H"><DefaultValue>8</DefaultValue></Parameter>
<Parameter Name="I"><DefaultValue>9</DefaultValue></Parameter>
<Parameter Name="J"><DefaultValue>10</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IService/Process
</SoapAction>
</Query>
<Query>
<Method Name="ServiceRequest" Namespace="http://tempuri.org/">
<Parameters >
<Parameter Name="SomeId1"><DefaultValue>1</DefaultValue></Parameter>
<Parameter Name="SomeId2"><DefaultValue>2</DefaultValue></Parameter>
<Parameter Name="SomeId3"><DefaultValue>3</DefaultValue></Parameter>
<Parameter Name="SomeId4"><DefaultValue>4</DefaultValue></Parameter>
<Parameter Name="SomeId5"><DefaultValue>5</DefaultValue></Parameter>
<Parameter Name="SomeId6"><DefaultValue>6</DefaultValue></Parameter>
<Parameter Name="SomeId7"><DefaultValue>7</DefaultValue></Parameter>
<Parameter Name="SomeId8"><DefaultValue>8</DefaultValue></Parameter>
<Parameter Name="SomeId9"><DefaultValue>9</DefaultValue></Parameter>
<Parameter Name="SomeId10"><DefaultValue>10</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IService/Process
</SoapAction>
</Query>
<Query>
<Method Name="ServiceRequest" Namespace="http://tempuri.org/">
<Parameters >
<Parameter Name="ZUserId"><DefaultValue>1</DefaultValue></Parameter>
<Parameter Name="YHisId"><DefaultValue>2</DefaultValue></Parameter>
<Parameter Name="XHerId"><DefaultValue>3</DefaultValue></Parameter>
<Parameter Name="AYourId"><DefaultValue>4/DefaultValue></Parameter>
<Parameter Name="BStrippedZebraId"><DefaultValue>5</DefaultValue></Parameter>
<Parameter Name="MyId1"><DefaultValue>6</DefaultValue></Parameter>
<Parameter Name="MyId10"><DefaultValue>7</DefaultValue></Parameter>
<Parameter Name="MyId01"><DefaultValue>8</DefaultValue></Parameter>
<Parameter Name="FooBarId"><DefaultValue>9</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IService/Process
</SoapAction>
</Query>
Answering my own question in case it helps anyone out in the future.
Once I ordered the parameters alphabetically in the XML it all came together. There may be another way to specify parameter order, however, placing them alphabetically worked for me.