Я пришел на страницу в поисках ответа, но обнаружил, что во всех ответах используется статическое имя поля или какой-то другой подход, который очень ограничивает.
Так что в итоге я делаю свой собственный поиск, и вот как ясформировать имя поля рабочего процесса
string WFColumnName = string.Empty;
foreach (SPWorkflowAssociation assoc_wf in ReqList.WorkflowAssociations)
{
if (assoc_wf.BaseTemplate.Id.ToString() == "63e32cd3-2002-4b2f-81b0-4a2b4c3ccafa")
{
string str_workflowName = assoc_wf.Name;
Regex rgx = new Regex("[^a-zA-Z0-9]");
str_workflowName = rgx.Replace(str_workflowName, "");
if (str_workflowName.Trim().Length >= 8)
WFColumnName = str_workflowName.Substring(0, 8);
else
WFColumnName = str_workflowName.Substring(0, str_workflowName.Length);
break;
}
}
Имя столбца формируется на основе этого (имя вводит в заблуждение, но оно примерно соответствует названию столбца): Как получить статус рабочего процесса SharePoint для каждого SPэлемент со скриптом PowerShell?
, а затем я использую его в своем запросе CAML
if(WFColumnName != string.Empty)
viewFields += "<FieldRef Name='" + WFColumnName + "' />";
, и в моем случае мне просто нужно проверить, завершен он или нет, я получаюстроковое значение и сравнить с "5".