1

Не могу поверить, что это так сложно!Pass Parameter Upload.aspx Sharepoint Online

Так что я просто пытаюсь загрузить документ в Sharepoint с некоторыми данными, передаваемыми по ссылке.

Немного больше: Я пытаюсь интегрировать Sharepoint с Salesforce. В Salesforce у меня есть ссылка для просмотра объектов документов, которые используют следующим для фильтрации Sharepoint: .../Shared% 20Documents/Форма/AllItems.aspx FilterField1 = SalesforceID & FilterValue1 = SALESFORCEID

Я тогда при условии еще одна ссылка, которая позволяет пользователю загружать документ, используя следующее: .../_ layouts/15/Upload.aspx? List = LISTGUID

Затем я сделал столбец SalesforceID обязательным, чтобы, когда пользователь заканчивает загрузку они представлены с помощью EditForm.aspx, где они могут вводить SalesforceID для связывания документа с объектом Salesforce. Это работает очень хорошо, но будет немного slicker, если SalesforceID может быть заполнен автоматически.

Я начал со следующим .../_ макеты/15/Upload.aspx? List = LISTGUID & SalesforceID = SALESFORCEID

После того, как вы выбрали файл для загрузки и нажмите кнопку ОК она принимает вас к после чего показывает переданное значение поля, но, к сожалению, не заполняет требуемое поле .../Shared% 20Documents/Forms/EditForm.aspx? Mode = Upload & CheckInComment = & ID = 9718 & RootFolder =% 2FROOTFOLDER% 2FShared% 20Documents & SalesforceID = SALESFORCID

Итак, я начал изучать редактирование Upload.aspx или EditForm.aspx для этого. Однако это не представляется возможным в Sharepoint онлайн.

Итак, я начал изучать создание пользовательской страницы. Поэтому я очень хорошо разбираюсь в C# и уже написал что-то, что может загружать и устанавливать метаданные в Sharepoint, но вы не можете запускать код на стороне сервера в Sharepoint онлайн.

Так что я теперь занимаюсь этим с помощью javascript (https://blogs.msdn.microsoft.com/uksharepoint/2013/04/20/uploading-files-using-the-rest-api-and-client-side-techniques/) и просто получаю «Доступ запрещен. У вас нет разрешения на выполнение этого действия или доступ к этому ресурсу».

Если у кого-то был какой-либо успех с любым из вышеперечисленных подходов, я хотел бы знать, как вам удалось заставить его работать. В течение времени, которое я трачу на попытку исправить это, и сколько времени он на самом деле собирается спасти наших пользователей, я готов отказаться.

ответ

1

Для справки и всех, кто борется с этим, мне удалось в конечном итоге найти решение.

Во-первых, в Интернете Sharepoint не похоже, что вы можете изменить Upload.apsx, но вы можете изменить EditForm.aspx. После того, как вы загрузите файл, вы будете направлены в эту форму, чтобы он работал.

Таким образом, вы хотите передать параметр Upload.aspx, после его публикации он будет передан EditForm.aspx (но пользовательский), и вы можете использовать этот параметр в форме.

Вот как это сделать:

  • Откройте ваш сайт в Sharepoint дизайнера
  • Перейти к спискам и библиотекам и нажмите на библиотеку документов
  • Вы должны получить вид страницы сводки с несколькими разделы один из которых Формы
  • в разделе Формы щелкните New
  • Дайте ему имя файла (customedit)
  • Выберите «Редактировать форму элемента (используется для редактирования существующих элементов списка)»
  • Выберите «Установить как форму по умолчанию для выбранного типа», так как это будет переопределить значение параметра EditForm.aspx после того, как пользователь нажмет на загрузить файл
  • Нажмите OK
  • Ваша новая форма появится в разделе формы
  • Нажмите на нее, чтобы отредактировать файл
  • Сначала мы должны определить параметр в виде
  • Нажмите в коде либо в WebPartPages : Тег DataFormWebPart (строка 24 на моем) или ниже чтобы получить местоположение конкретные параметры на верхней
  • В верхней ленты теперь вы должны увидеть в окне просмотра данных Инструменты
  • Нажмите на Опции и фильтра, сортировки & Group раздел нажмите Параметры
  • Нажмите на Новый параметр и введите переменная Query String (идентификатор поля, который вы передаете по адресу) и значение по умолчанию
  • Он будет называть его Param1, который вы можете изменить, но у меня нет для этого
  • Прокрутите вниз, пока не увидите (было линия 122 на шахте)
  • Под ним должна быть таблица c ontaining документов-полое
  • Удалить те, которые вы не хотите видеть, чтобы привести в порядок вашей формы редактирования
  • В рамках этого пункта вы хотите автоматическое заполнение вы должны увидеть SharePoint: вкладку поля формы, которая выглядит, как этот <SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Edit" FieldName="SalesforceID" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@SalesforceID')}"/>
  • Запишите числа FF (FF1 в выше)
  • вы хотите заменить это <asp:TextBox runat="server" id="ff1{$Pos}" value="{$Param1}" text="" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@SalesforceID')}"/>
  • заменить FF1 с номером вы сделали примечание о в предыдущем пункте
  • заменить SalesforceID с именем поля вашей колонки Sharepoint
  • Сохранить и тест

Теперь я понял это некоторое время назад, но хотел бы отправить это для справки, так что если он не работает, я, возможно, пропустил точку, но, надеюсь, вы получите суть.

Все, что осталось для меня, - это выяснить, как автоматически заполнять уникальное имя файла или прекращать переписывание файлов. И я терплю неудачу

+0

Спасибо @Graham, я попробовал ваше решение, и он отлично сработал для меня, но я хотел бы установить поле с автозаполнением как только для чтения, поэтому поле будет иметь свое оригинальное стоимость от Salesforce. Есть ли у вас какие-либо предположения? – ihssan

+0

Боюсь, я не уверен в этом. Чтобы автоматически создать уникальное имя файла, мне пришлось писать программу .ASP и размещать ее на сервере IIS, что дало бы вам полную гибкость, чтобы точно показать поля, которые вы хотите просмотреть/редактировать, и дает вам полный контроль над тем, как это сделать появляется в Sharepoint. Извините, я не мог больше помочь. – Graham

+0

Здравствуйте, @Graham, у меня есть новое требование для этого случая: Я хочу пропустить шаг, когда он показывает «Custom Edit Form» с автоматически заполненными полями (и вы должны нажать кнопку «Сохранить» для перенаправления на страницу библиотеки) и автоматически перенаправить в библиотеку, где должен быть загружен документ. Возможно ли это?. спасибо за помощь – ihssan