Добавить ссылку на службу в папке ServiceReferences, добавьте System.ServiceModel под справочном папку (это использовать класс EndpointAddress в сценарии)
в главном методе, используйте следующий сценарий (высокий уровень), чтобы начать с ...
var endPointAddress = new EndpointAddress('http://Server/ServiceName.svc');
//Put your end point address
var basicBinding = new BasicHttpBinding();
basicBinding.Name = "BasicHttpBinding_IService";
//this is the port name, you can find it in the WSDL
ClassServiceClient pay = new ClassServiceClient (basicBinding, endPointAddress);
//this is the class in which the method exists you want to make a service call
IService = pay.YourMethodName();
XMLDocument xmlOut = new XmlDocument();
//This is to store return value from your method
xmlOut.LoadXml(IService);
//Load the xmlOut with the return value
XmlNode xmlNode = xmlOut.SelectSingleNode("ParentElement/ChildElement");
//Search for your element name where you want to get the value
string strValue = xmlNode.InnerText;
//this gives the element value
Далее, используя DataTable класс, загрузить strValue путем создания новых строк
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr["ValueToInsertIntoDb"] = strValue;
dr.Rows.Add(dr);
После этого назначения ДТ к объектной переменной.
Dts.Variables["User::Values"].Value = dt;
Далее используйте другую задачу потока данных, в том, что использовать компонент сценария и выберите переменную в ReadOnlyVariables. Внутри компонента сценария вам необходимо прокрутить набор данных DataTable. Вот код, который должен выглядеть
DataTable dt = (DataTable)Variables.Values
foreach (DataRow dr in dt.Rows)
{
ScriptComponentOutputBuffer.AddRow()
ScriptComponentOutputBuffer.Column1 = dr["ValueToInsertIntoDb"].ToString();
}
//ScriptComponentOutputBuffer.Column1 --You need to manually add this column on output columns of your scriptcomponent
Далее подключите компонент сценария к пункту назначения OLEDB Command или OLE DB и вставить значения в базу данных.
Спасибо Мурти, я не понял (IService = cls.YourMethodName(); XMLDocument XMLout = новый XmlDocument(); // Это для хранения возвращаемого значения из метода) часть кода, пожалуйста, помогите мне понять –
Veeresh, только что исправил. Это должно быть pay.YourMethodName(). Этот шаг вызывает метод в вашей веб-службе, который возвращает XML, и с помощью XmlDocument вы загрузите полученный XML-результат метода в XmlDocument. – Murthy
Большое спасибо Murthy, он работает для меня, но на данный момент я могу только использовать http: // webservice (то есть без сертификата клиента), пожалуйста, назовите меня, как можно сделать то же самое с веб-службами, имеющими клиенту cetificate (https: //) –