Я пытаюсь создать собственное действие рабочего процесса с выходным параметром для обработки ошибок. Работая на разных примерах, я не могу заставить параметр Direction Direction = "Out" работать. Все кажется правильным, но когда я пытаюсь назначить вывод переменной «error» в SharePoint Designer, он ставит вокруг нее звездочки и помечает ее как ошибку рабочего процесса. Вот как выглядит XML действия:
<Action Name="Create Folder"
ClassName="ActivityLibrary.CreateFolderActivityTest"
Assembly="ActivityLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx"
AppliesTo="all"
CreatesInList="ListId"
Category="Custom">
<RuleDesigner Sentence="Create a folder %1 in the %2 base folder. If an error occurs it will be output to %3.">
<FieldBind Field="FolderName" Text="folder name" Id="1" />
<FieldBind Field="BaseFolderPath" Text="folder path" Id="2"/>
<FieldBind Field="OutError" DesignerType="ParameterNames" Text="out error" Id="3"/>
</RuleDesigner>
<Parameters>
<Parameter Name="FolderName" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="BaseFolderPath" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="OutError" Type="System.String, mscorlib" Direction="Out" />
</Parameters>
</Action>
Вы уверены, что проблема связана с параметрами, а не с переменной SPD? Конечно, ничего не выглядит неправильно с вашим XML.
Я всегда ненавидел то, как SPD и рабочие процессы заставляют вас создавать переменную в рабочем процессе, а другую - на странице, чтобы назначать то же значение, что и для переменной рабочего процесса.
Я думаю, что вы можете захотеть Direction = "InOut" от внешнего вида привязки
Вы получили что-нибудь с этим? Я подозреваю, что проблема была скорее в вашем логическом коде, чем в этом XML-файле (.actions). Это выглядит вполне приемлемым для меня.