Как добавить новую строку в список sharepoint в objective c?

#objective-c #web-services #sharepoint #nsurlconnection

#objective-c #веб-службы #sharepoint #nsurlconnection

Вопрос:

Я попытался использовать веб-службу updatelistitems sharepoint. но не смог найти, как предоставить входные данные в формате xml вместе с запросом soap.

Заранее спасибо

Ответ №1:

Поскольку вы выполняете интеграцию, я бы рекомендовал использовать ADO.NET адаптер для SharePoint и подключение через службу WCF (soap / wsdl). Это сэкономит вам много времени, и если все сделано правильно, ваша интеграция не будет частной.

Проверьте эту готовую службу wcf,http://www.bendsoft.com/downloads/camelot-wcf-service /, инструкции по установке здесь http://blog.bendsoft.com/category/integrations/wcf-services /.

Это открытый исходный код, но поставляется с поддержкой формата Camelot XML, который объединяет схему вместе с содержимым, если вы запрашиваете данные, ознакомьтесь с примером схемы здесьhttp://www.bendsoft.com/downloads/sharepoint-web-parts/xml-pusher /.

Чтобы вставить данные в SharePoint с помощью службы WCF, вы можете просто сделать что-то вроде этого

 $SharePointNonQuery = new SharePointNonQuery(array(
    'sql' => "INSERT INTO contactform (title,email,company,message) VALUES ('John Doe','john.doe@example.com','Johns Company','A test message!')",
    'method' => 'ExecuteNonQuery',
    'connString' => 'sharepoint_connection',
    'sharedKey' => constant("WSDL_SHARED_KEY")
));
  

Пример, очевидно, выполнен на PHP ( http://blog.bendsoft.com/2011/04/camelot-php-tools-1-1-for-sharepoint-released / ) но не менее просто создать класс в Objective-C и отправить свою команду как SQL через SOAP и выполнить команду SQL в службе WCF.

Надеюсь, это поможет!

———— Изменения под этой строкой ————

Запрос предлагаемой службы WCF из Objective-C приведет к чему-то вроде этого

 WSMethodInvocationRef soapReq = createSOAPRequest(url, method, namespace, params, paramOrder, reqHeaders);
  

URL-это местоположение службы wcf, т.Е. http://yourserver.com/wcf/camelot.wcf

Этот метод — это метод В службе wcf, который вы хотите использовать. У службы Camelot WCF есть несколько методов по умолчанию. Подходящим в этом сценарии был бы метод ExecuteNonQuery, который принимает следующие аргументы; sql, connString и SharedKey.

 bool ExecuteNonQuery(string sql, string connString, string sharedKey);
  

Параметры — это аргументы, перечисленные выше, они должны быть отправлены в виде ассоциативного массива (я полагаю, NSDictionary).

 NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
    @"INSERT INTO YourList (title,email,company,message) VALUES ('John Doe','john.doe@example.com','Johns Company','A test message!')", @"sql", 
    @"connString", @"SharePointConnectionString", 
    @"sharedKey", @"YourPreferredKey", 
    nil];
  

ExecuteNonQuery — это метод bool, он вернет true или false методу soapReq в приложении Objective-C.

Комментарии:

1. Дело в том, что я хочу, чтобы это было полностью в objective-c. формат запроса soap для загрузки данных в список sharepoint. Как вставить этот sql-запрос в запрос soap в objective c??

2. Немного обновил мой ответ пояснением, как использовать службу WCF с Objective-C. Вы можете общаться с веб-службами SharePoint напрямую, не используя прокси, такой как служба Camelot WCF, но в конечном итоге вам придется писать собственные интеграции, которые потребляют огромное количество времени, не говоря уже о поддержке кода, если что-то изменится в установке SharePoint. С помощью предложенного выше решения вам просто нужно изменить SQL-запрос, если что-то изменится. В любом случае, проверьте этот URL для получения дополнительной информации об Objective-C и Soap bit.ly/lZOjzG