SharePoint 2013: Сделайте приложения для Office мощнее

OSzone.net » Microsoft » Разработка приложений » Sharepoint/Office » SharePoint 2013: Сделайте приложения для Office мощнее
Автор: В. Гнанасекаран
Иcточник: TechNetMagazine
Опубликована: 07.05.2013

Новые модели разработки для Office 2013 и SharePoint 2013 предоставляют кое-какие новые возможности интеграции приложений для Office с SharePoint. Эти модели разработки — приложения для SharePoint (apps for SharePoint) и приложения для Office (apps for Office) — помогают применить целый ряд технологий веб-разработки, в том числе HTML5, JavaScript, jQuery и CSS3 в дополнение к уже имеющимся возможностям языков разработки серверных приложений.

Эти новые парадигмы разработки расширяют функциональность на стороне клиента. Сегодня я покажу, как задействовать SharePoint в приложениях для Office, на примере, приближенном к практике.

Приложения для SharePoint

Модель приложений для SharePoint позволяет адаптировать SharePoint к своим требованиям, используя различные гибкие подходы. Кроме того, ее можно использовать для доступа к данным через различные модели прикладного программирования:

Следует выбирать объектные модели и методы доступа, исходя из контекста задачи. Например, при реализации операций, связанных с SharePoint, в среде Windows Phone следует использовать Mobile Object Model (входящую в Client Object Model).

Приложения для Office

Новая модель разработки приложения для Office позволяет обеспечить взаимодействие с продуктами Office через различные API, основанные на JavaScript. Кроме того, она позволяет задействовать другие стеки веб-разработки, такие как HTML5, CSS3 и jQuery. Модель приложений для Office основана на интернет-технологиях и обеспечивает гораздо большую гибкость, чем традиционные надстройки Office.

Давайте возьмем в качестве примера две типичных бизнес-операции — подготовку и контроль документов. Например, вы подготавливаете документы, направленные на реализацию определенных бизнес-возможностей: предложения, данные о продажах, рекламу. Или, может быть, вы создаете подробные отчеты, используемые в бизнес-процессах, протоколы или документы, устанавливающие бизнес-партнерство и юридические обязательства, такие как контрактные соглашения.

Контроль документов — неотъемлемая часть процесса. Этому этапу уделяют особое внимание при работе с юридическими документами. Проверяется, соответствуют ли документы нормативам для данной бизнес-области и гарантируется ли, что у предприятия не возникнут какие-либо юридические проблемы. Ошибка при контроле документа, содержащего юридические обязательства, может привести к финансовым потерям или более серьезным проблемам.

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

Бизнес-сценарий

В вымышленной компании Contoso имеется бизнес-процесс «участие в тендерах», частью которого является деятельность по контролю документов: все документы с предложениями по проектам проверяются с точки зрения подхода к решению, оценок, модели исполнения, факторов конкурентного преимущества и т.д. Документы анализируются по многим аспектам, зависящим от контекста. Например, если документ с предложением подготовлен для проекта с фиксированным бюджетом, то в нем будут проверять наличие «нежелательных» слов. Это один из процессов бизнес-проверки документа.

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

Contoso, в первую очередь, собирается автоматизировать часть контроля документов, связанную с поиском заранее определенных нежелательных слов, поскольку это повторяющаяся операция. Этот процесс контроля документов основан на заранее определенных правилах, настраиваемых централизованно. Компания желает сделать процесс доступным для сотрудников, имеющих соответствующие права в корпоративной сети, используя встроенную модель аутентификации Windows.

В примере реализации этого сценария и автоматизации процесса бизнес-проверки документа будут использоваться приложения и для SharePoint, и для Office. Вот список необходимых действий.

<DefaultSettings>
  <SourceLocation DefaultValue="~remoteAppUrl/Pages/Home.aspx"  />
</DefaultSettings>

Рис. 1. Сценарий, заполняющий список нежелательных слов

string arrayString = string.Empty;
    string PIN = string.Empty;

    // Starting with ClientContext, the constructor requires a URL to the
    // server running SharePoint.
    ClientContext context = new ClientContext("http://c4968397007/sites/First/");
    // Point this URL to the right URL in your environment

    // Assume the Web has a list named "ObjectionableWords."
    List objWrdsList = context.Web.Lists.GetByTitle("ObjectionableWords");

    // This creates a CamlQuery that has a RowLimit of 100,
    // and also specifies Scope="RecursiveAll" so that it grabs all list items
    CamlQuery query = CamlQuery.CreateAllItemsQuery(100);
    Microsoft.SharePoint.Client.ListItemCollection items = objWrdsList.GetItems(query);

    // Retrieve all items in the ListItemCollection from List.GetItems(Query).
    context.Load<List>(objWrdsList);
    context.Load<Microsoft.SharePoint.Client.ListItemCollection>(items);
    context.ExecuteQuery();

    foreach (Microsoft.SharePoint.Client.ListItem listItem in items)
      {

        if (arrayString.Length > 0)
          arrayString += ",";

        arrayString +=  "'" + listItem.FieldValues["Words"].ToString() + "'";

      }
    this.ClientScript.RegisterArrayDeclaration("myWords", arrayString);

Рис. 2. Добавьте функцию getDocument в JavaScript-файл OfficeApp1.js

function getDocument() {

    	  //var fileContent = '';
    	  var strContent = '';

    	  Office.context.document.getFileAsync("text", function (result) {

           var myFile = result.value;

           myFile.getSliceAsync(0, function (result) {

             if (result.status == "succeeded")
                 fileContent = result.value.data;

             checkString();
             checkPendingItem();
           });
         });


}

Рис. 3. Функция checkString, добавляемая в файл Office.js

function checkString() {

  // Check for the objectionable words.
  for (var i = 0; i < myWords.length; i++) {
    contains = fileContent.toLowerCase().trim().indexOf(myWords[i].toLowerCase().trim());
    if (contains >= 0) {
      break;
    }
  }
  // If the document contains "Objectionable" words, indicate it.
  if (contains < 0) {
    document.getElementById('imgSts').src = 'YES.PNG';
    document.getElementById('imgSts').height = '42';
    document.getElementById('imgSts').width = '42';
  }
  else {
    document.getElementById('imgSts').src = 'NO.PNG';
    document.getElementById('imgSts').height = '42';
    document.getElementById('imgSts').width = '42';
  }
}

Эта функция сравнивает извлеченное содержимое документа Word с массивом JavaScript, заполненным словами из списка SharePoint. Затем она показывает, содержит ли документ какие-либо слова из списка нежелательных слов.

После запуска это решение будет отмечать документы с недопустимыми словами. Например, когда пользователь наберет слово «лучший» (содержащееся в списке ObjectionableWords) и щелкнет Review, приложение покажет, что документ не соответствует требованию «отсутствие нежелательных слов».

Когда пользователь напишет «TODO» (список задач) для показа незавершенных элементов документа, приложение будет информировать, завершена ли работа над документом. Можно еще больше усовершенствовать этот процесс, показывая, на сколько процентов обработан документ. Это особенно полезно в ситуациях, когда документ собран из частей, полученных из разных мест, и требуется отслеживать общее состояние документа.

Выигрыш в продуктивности

Используя этот уровень автоматизации, основанной на SharePoint и ее приложениях для Office, Contoso обеспечивает себе следующие преимущества.

SharePoint Client Object Model позволяет использовать приложения для Office при интеграции с ресурсами SharePoint. Сочетание мощных возможностей продуктов SharePoint и Office в приложениях для Office позволяет добиться значительного выигрыша в продуктивности. SharePoint и Office превращаются в нечто большее, чем сумма двух решений.


Ссылка: http://www.oszone.net/20530/SharePoint_2013