2013-10-17 2 views
0

에 대한 WorkflowTemplate을 가져 오기 내가 BaseId를 통해 가져 오기 위해 노력다른 언어

내 사용자 지정 목록과 연결하기 위해 현재 웹에서 OOB 승인 워크 플로우를 가져 오기 위해 필요하지만 난 BaseId가 동일하지 않습니다 알고있어 다른 언어들.

다른 언어로 만든 사이트에 대한 OOB 승인 워크 플로 템플릿을 가져 오는 다른 방법이 있습니까?

나는 또한 GetTemplateByName 메서드를 시도했지만 영어가 아닌 다른 언어도 null을 반환했습니다.

web.WorkflowTemplates.GetTemplateByName ("승인 - SharePoint 2010의"CultureInfo.CurrentCulture는)

어떤 도움을 주시면 감사하겠습니다.

감사 산 제이

답변

0

나는이 문제를 자신을 해결했다.

제 질문에서 언급했듯이 BaseId는 언어마다 다릅니다. 다른 방법을 시도해보고 그것을 검색 한 후에 문제에 대한 해결책을 찾지 못했습니다. 그래서 직접 조사하기 시작했습니다.

조사하는 동안 다른 언어의 승인 워크 플로에 대한 BaseId를 가져 왔으며 곧 패턴이 나타납니다. BaseId (Guid)는 마지막 세자리를 제외한 모든 언어에서 거의 동일하며 3 자리 숫자는 기본적으로 LCID를 16 진수로 나타냅니다.

그래서,이 템플릿 기반의 ID가

문자열 baseId = "8ad4d8f0-93a7-4941-9657-cf3706f00을"+ web.Language.ToString ("X")을 형성 할 수있는 방법이며; Guid workflowBaseId = new Guid (baseId);

그래서 일단 기본 ID를 얻으면 같은 방법으로 템플릿을 검색 할 수 있습니다. web.WorkflowTemplates.GetTemplateByBaseID (workflowBaseId); http://sanjaybhagia.wordpress.com/2013/10/20/associating-oob-approval-workflow-with-custom-list-for-different-locale-lcids/

는 희망이 도움이 :

는 또한 경우에 당신은 워크 플로 연결에 대한 코드의 전체 조각을보고 싶다, 여기 하나의 블로그 게시물을 썼다.

감사합니다. 산 제이