문제

나는 정밀하게 작동하는 상태 머신 워크 플로를 개발했습니다. 이것이 일하고 있지만 팀과 관련이없는 워크 플로우 작업 이메일로 포격을 겪는 것에 대해 불평합니다. doc lib 내에서 워크 플로를 실행하고 있습니다. 각 팀이 작동하는 응용 프로그램을 나열하는 열이 있습니다. 이 필드의 정보를 얻고 올바른 그룹으로의 경로를 얻는 방법이 있습니까? 열 값이 변경되도록 동적이므로 동적입니다. 열은 드롭 다운 필드 (정보를 검색 할 수없는 )입니다. 에 대한 정보를 검색 할 수는 없지만 드롭 다운에서 정보를 검색하는 데 계산 된 필드를 만들었습니다. 정적 열에. 또한 3 개의 열이있는 외부 목록을 만들어 그룹, 시스템 및 승인자를 읽으려고합니다.

IE 사용자가 "시스템"드롭 다운 목록에서 "컴퓨터"를 선택하면 승인 그룹 "My 컴퓨터 앱"의 모든 사람이 이메일을 기반으로 가져와야합니다. 필드와 그룹 이름에 문자열 "컴퓨터"가있는 경우 올바른 그룹뿐만 아니라 다른 선택에 대해서도 동일합니다.

거대한 if-else 문장으로 최적의 방법보다 적게 확신 할 수 있습니다 .... 조금 더 역동적이고 하드 코딩 된 것으로 사용하지 않으려 고합니다 ..

if (Listitem = system
createTask_taskProperties.AssignedTo = "IT Group A"
{
e.Result = true;
}
else
{
if (Listitem = system 2......
.

업데이트

목록을 반환 할 수 있으며 이제는 이제 와 같은 항목 ID를 기반으로 항목을 검색 할 수 있습니다.

SPListItem item = list.GetItemById(26);
.

워크 플로가 트리거 될 때 열 / 필드에 대한 모든 값을 가져올 수있는 방법을 찾아야합니다. 그래서 해당 정보를 변수로 전달할 수 있습니다. 이 작업이 완료되면 CAML 쿼리에서 해당 변수를 호출하여 각 항목 태스크를 라우팅 해야하는 위치를 결정할 수 있어야합니다. 나는 열에서 GUID를 얻은 줄 알았지만이 코드를 사용하여 목록 자체의 GUID만이 었습니다

SPListItem item2 = list.GetItemByUniqueId[new Guid("de417a82-f221-46bd-8003-034ea45de155")];
.

도움이 되었습니까?

해결책

Your query returns an SPListItem, however you need an SPGroup to retrieve the distribution list email.

To get to the SPGroup object that actually represents the Group itself rather than the name of the Group like you are returning from the List, you need to pull it from an SPWeb (which will be a little trickier since a workflow does not run in the context of a page; I'll leave this to you to figure out).

SPListItem item = list.GetItemById(26); // <-- This is your code here
string strGroupName = item["ColumnWithGroupName"].ToString();

// Get your SPWeb object from which to pull the group here
using (SPWeb webYourWeb = ...)
{
    // (Use SiteGroups or Groups here depending on where you want to pull the group from)
    SPGroup group = webYourWeb.SiteGroups[strGroupName];
    string strGroupEmail = group.DistributionGroupEmail;

    // Send your email
}

That's how you get the email address of a group from the group name (which you got from an SPListItem)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top