Копировать документ Word между библиотеками документов в разных дочерних сайтах (SharePoint)

0

Каков наилучший способ (субъективный метод.. Я знаю. Извините!), Чтобы побудить пользователя скопировать экземпляр документа в мою библиотеку в библиотеку на его собственном сайте (в том же семействе сайтов, если это имеет значение)? Я администратор с несколькими текстовыми документами, которые я создаю слишком часто для установки определенных типов контента. Поэтому я создал библиотеку, содержащую несколько шаблонов слов для их копирования (что наиболее важно: метаданные включены, кроме измененных/созданных полей).

Я попробовал несколько javascript/jquery-методов, которые я бы разместил в форме дисплея с текстовым полем, позволяющим им вводить свой URL-адрес библиотеки и сколько копий они хотели бы сделать, но это, похоже, не работает, поскольку я Мне нравится. Каким будет самый эффективный способ этого? Использование обработчика событий? Если да, есть ли способ связать одну из них с пользовательской кнопкой на ленте (я только ассоциировал эти кнопки для js-функций)?

Пример функции javascript, которую я пытался использовать:

function copyItem() {
    var itemurl = $("#copyFrom").val();
    var dst = $("#copyTo").val();

    $().SPServices({
        operation: "GetItem",
        Url: itemurl,
        async: false,
        completefunc: function (xData, Status) {
            itemstream = $(xData.responseXML).find("Stream").text();
            itemfields = "";
            $(xData.responseXML).find("FieldInformation").each(function(){
                itemfields+=$(this).get(0).xml;
            });;

        }
    });

    $().SPServices({
        operation: "CopyIntoItems",
        SourceUrl: itemurl,
        async: false,
        DestinationUrls: [dst],
        Stream: itemstream,
        Fields:itemfields,
        completefunc: function (xData, Status) {
            var error = $(xData.responseXML).find("CopyResult").first().attr("ErrorCode");
        }
    }
}

вызванный:

  <label>from:</label><input type="text" value="" id="copyFrom" maxlength="255">
    <label>to:</label><input type="text" value="" id="copyTo" maxlength="255">
    <input type="button" onclick="copyItem();" value="Copy">

note: Я не вводил никаких значений в эти текстовые поля прямо сейчас, так как я вручную вводил их в itemurl и dst. Но консоль говорит:

Значение свойства 'copyItem' имеет значение null или undefined, а не объект Function.

Теги:
sharepoint
sharepoint-2010
wsp

1 ответ

0

Не рекомендуется использовать "async: false". Лучше делать асинхронный вызов и вставлять свои второй SPServices в первый.

Кроме того, для ваших вторых SPServices отсутствует закрывающая скобка.

И, наконец, "Поля" должны быть массивом (http://msdn.microsoft.com/en-us/library/copy.copy.copyintoitems.aspx).

Я попробовал код ниже, и это сработало для меня:

var srcurl="http://my.sharepoint.com/aymeric_lab/Shared%20Documents/879258.jpeg";
var desturl="http://my.sharepoint.com/aymeric_lab/Shared%20Documents/879258_copy.jpeg";
$().SPServices({
  operation: "GetItem",
  Url: srcurl,
  completefunc: function (xData, Status) {
    var itemstream = $(xData.responseXML).find("Stream").text();
    var itemfields = [];
    $(xData.responseXML).find("FieldInformation").each(function(){
      itemfields.push($(this).get(0).xml);
    });

    $().SPServices({
      operation: "CopyIntoItems",
      SourceUrl: srcurl,
      DestinationUrls: [ desturl ],
      Stream: itemstream,
      Fields:itemfields,
      completefunc: function (xData, Status) {

      }
    })
  }
});
  • 0
    Привет. Спасибо за разъяснения и нахождение недостающих скобок. После замены этой функции консоль все еще говорит, что «copyItem» является нулевым или неопределенным независимо от типа файла, который я указываю. Я отредактировал свой исходный вопрос, включив в него кнопку, которую я использую для вызова, если это поможет.
  • 0
    Вы не правильно прочитали мой ответ. Основная проблема с потоком: это должен быть массив. Посмотрите на мой ответ и повторите код :-)
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню