Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> nuSOAP + SharePoint, происходит дублирование записей 
:(
    Опции темы
Kyrt_God
Дата 2.11.2011, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



Здравствуйте. 

Приступлю сразу к обьяснению проблемы, есть Sharepoint сервер с ntlm авторизацией, есть php скрипт на другом сервере в локалке, с помощью nuSOAP библиотеки добавляю данные в Lists на Sharepoint'е.

Собственно код скрипта:
Код

<?php
require_once('lib/nusoap.php');

$username = 'username';
$password = 'password';

$listName = "name";

$wsdl = "http://url/_vti_bin/Lists.asmx?WSDL";


$client = new nusoap_client($wsdl, true);

$client->setCredentials($username,$password, "ntlm");
$client->useHTTPPersistentConnection();
$client->soap_defencoding='UTF-8';

$arrData = array(
                "Title"=>"Это тест",
            "Priority"=>"(2) Обычная",
            "Status"=>"Не начата",
            "PercentComplete"=>"0",
            "Body"=>"тесттесттесттест",
            );
$items = '';
 foreach($arrData AS $itm => $val){
       $items .= "<Field Name='{$itm}'>{$val}</Field>\n";
}


$CAML ="<UpdateListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
                         <listName>{$listName}</listName>
                         <updates>
                                 <Batch ListVersion='1' OnError='Continue'>
                                         <Method Cmd='New' ID='1'>
                                                {$items}
                                         </Method>
                                 </Batch>
                         </updates>
               </UpdateListItems>";

$result = $client->call('UpdateListItems', $CAML,"","http://schemas.microsoft.com/sharepoint/soap/UpdateListItems");


if(isset($fault)) {
  echo("<h2>Error</h2>". $fault);
}

$responseContent = htmlspecialchars(substr($client->response,strpos($client->response, "<"),strlen($client->response)-1));

echo "<h2>Request</h2><pre>" . $client->request . "</pre><br>";
echo "<h2>Response header</h2><pre>" . $client->response . "</pre><br>";
echo "<h2>Response content</h2><pre>".$responseContent."</pre><br>";

unset($client);


Авторизация и запись проходит успешно, если бы не одно НО =) В Лист пишется не одна строка а три. Три абсолютно одинаковых записи.

Не могу понять где проблема.
PM MAIL   Вверх
Kyrt_God
Дата 7.11.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



Проблему решил.

после:
Код

...
unset($client);

ставим хидер с переадресацией:
Код

...
header("Location: $url");

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0913 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.