Можно ли зациклить список в SharePoint с помощью Visual Studio? - PullRequest
1 голос
/ 15 марта 2011

(с использованием SharePoint 2010)

Привет, ребята, я постараюсь дать достаточно фона, чтобы это имело смысл.

В основном у нас есть список клиентов с их номерами телефонов и другой информацией. Этот список отсортирован по просроченной дате. У нас есть сотрудники телемаркетинга, которые звонят клиентам в этом списке. До сих пор у нас был только один телемаркетер, звонящий клиентам в списке, что не представляет никаких проблем. Теперь, однако, мы хотим, чтобы в списке было два звонящих клиента ТМ, а возможно, и больше в будущем. Конечно, проблема в том, что мы не хотим, чтобы они звонили одним и тем же клиентам одновременно.

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

Предположим, у нас 3 звонка ТМ. Список в идеале должен выглядеть следующим образом (ТМ1, 2 и 3 - это ТМ, которые будут назначены этому клиенту):

  • Cust # 1 - TM1
  • Cust # 2 - TM2
  • Cust # 3 - TM3
  • Cust # 4 - TM1
  • Cust # 5 - TM2
  • Cust # 6 - TM3
  • Cust # 7 - TM1
  • Cust # 8 - TM2 ... и т. д.

Теперь дело в том, что в некоторые дни у нас может быть 1 час звонка или 3 часа звонка. Таким образом, каждое утро, прежде чем они начнут, администратору ТМ придется назначать звонки различным ТМ. Это сложно, если в списке более 1000 клиентов. Конечно, мы могли бы переключить список на просмотр данных, а также скопировать и вставить значения из листа Excel, чтобы выполнить назначения. Или мы можем открыть его в Access и запустить скрипт против него. Но есть ли способ, которым я мог бы запрограммировать рабочий процесс (или что-то) в Visual Studio, чтобы пройтись по списку для меня и сделать это? Мне нужно было бы предоставить ему число, представляющее, сколько будет звонить ТМ, и тогда он будет циклически перебирать список клиентов и назначать ТМ способом, обозначенным выше.

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

1 Ответ

1 голос
/ 15 марта 2011

Вы можете абсолютно циклически просматривать элементы в списке. Вот пример того, как вы можете это сделать:

string[] tms = new string[] { "TM1", "TM2", "TM3" };

SPList list = SPContext.Current.Web.Lists["My List"];
SPListItemCollection items = list.Items;

for (int i = 0; i < items.Count; i++)
{
    SPListItem item = items[i];
    item["AssignedTM"] = tms[i % tms.Length];

    item.Update();
} 

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

...