Рабочие процессы - не самый лучший способ. Вы должны создать приемник события элемента. Причина, по которой я это говорю, заключается в том, что вам нужно, чтобы какой-то код запускался только после добавления элемента. Поскольку вам не нужно поддерживать состояние, рабочие процессы не являются правильным решением этой проблемы. Вот что вы делаете: создайте новый класс в 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. Надеюсь, это поможет.