Рабочие процессы - это не путь к этому. Вы должны создать приемник событий элемента. Причина, по которой я говорю это, состоит в том, что кажется, что вам нужно, чтобы какой-то код запускался только после добавления элемента. Поскольку вам не нужно поддерживать состояние, тогда рабочие процессы не являются надлежащим решением этой проблемы. Вот что вы делаете: создайте новый класс в Visual Studio и наследуйте его от SPItemEventReceiver
. Переопределите метод ItemAdded()
и поместите туда свою логику. Пример:
public class MyItemEventReceiver : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
// do your stuff
}
}
Этот код будет вызываться после добавления элемента. Если вам нужно запустить код до добавления элемента, вы будете переопределять метод ItemAdding()
. Образом моя компания разворачивает приемники событий немного отличается, но это «по книге» Метод с использованием Elements.xml:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="101">
<Receiver>
<Name>My Event Receiver</Name>
<Type>ItemAdding</Type>
<SequenceNumber>1000</SequenceNumber>
<Assembly>AssemblyName, Version=1.0.0.0, culture=neutral, PublicKeyToken=[token]</Assembly>
<Class>Namespace.Class</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
</Elements>
Вы упомянули, имеющий экран для редактирования параметров кода. Похоже, вы граничаете с другой банкой червей, поэтому я не могу говорить прямо с этим. Однако, если вы хотите передать различные варианты, которые отличаются от развертывания до развертывания, просто добавьте теги в теги <Data>
выше. Затем вы можете получить доступ к своим опциям из свойства properties.ReceiverData
в своем коде. Также обратите внимание, что теги <Filter>
ничего не делают - они не были реализованы командой WSS 3. Надеюсь это поможет.