사용자 지정 워크플로 활동 또는 플러그인에서 환경 변수에 액세스
소개
환경 변수는 환경마다 다른 전역 변수를 저장하는 좋은 방법입니다. 일부 일반적인 사용 사례는 흐름에서 참조할 수 있도록 AppID를 저장하거나 거기에 데이터를 저장하는 경우 Sharepoint 사이트 URL일 수 있습니다. EnvironmentVariableDefinition 및 EnvironmentVariableValue 테이블 아래 Dataverse에 저장됩니다.
Power Automate에 내장되어 있고 비교적 쉽게 액세스할 수 있지만 기존 플러그인 또는 사용자 지정 워크플로 활동에서 참조해야 하는 경우 FetchXML을 사용하여 검색해야 합니다.
코드 조각
protected override void Execute(CodeActivityContext context)
{
try
{
IOrganizationServiceFactory serviceFactory = context.GetExtension<IOrganizationServiceFactory>();
IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();
// Use the context service to create an instance of IOrganizationService.
IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.InitiatingUserId);
string appID = GetEnvironmentVariable(service, "appID");
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException(ex.ToString());
}
}
private string GetEnvironmentVariable(IOrganizationService service, string envVariableName)
{
string fetchXml = string.Empty;
EntityCollection result = null;
string envVariableValue = string.Empty;
fetchXml = String.Format(@"<fetch version=""1.0"" output-format=""xml-platform"" mapping=""logical"" distinct=""false"">
<entity name=""environmentvariablevalue"">
<attribute name=""environmentvariablevalueid"" />
<attribute name=""value"" />
<link-entity name=""environmentvariabledefinition"" from=""environmentvariabledefinitionid"" to=""environmentvariabledefinitionid"" link-type=""inner"">
<attribute name=""displayname"" />
<filter type=""and"">
<condition attribute=""displayname"" operator=""eq"" value=""{0}"" />
</filter>
</link-entity>
</entity>
</fetch>", envVariableName);
result = service.RetrieveMultiple(new FetchExpression(fetchXml));
if (result != null && result.Entities.Count > 0)
{
envVariableValue = result.Entities[0].GetAttributeValue<string>("value");
}
return envVariableValue;
}
설명
따라서 Execute 메서드 아래에는 클래스가 DataVerse에 액세스할 수 있도록 하는 표준 상용구 코드가 있습니다.
GetEnvironmentVariable 메서드 내부는 실제로 모든 작업이 있는 곳입니다. envVariableName이라는 매개변수를 받은 다음 FetchXML을 사용하여 호출하여 해당 이름으로 환경 값을 검색합니다.
Reference
이 문제에 관하여(사용자 지정 워크플로 활동 또는 플러그인에서 환경 변수에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/diskdrive/accessing-environment-variables-in-your-custom-workflow-activity-or-plugin-2j45
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
protected override void Execute(CodeActivityContext context)
{
try
{
IOrganizationServiceFactory serviceFactory = context.GetExtension<IOrganizationServiceFactory>();
IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();
// Use the context service to create an instance of IOrganizationService.
IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.InitiatingUserId);
string appID = GetEnvironmentVariable(service, "appID");
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException(ex.ToString());
}
}
private string GetEnvironmentVariable(IOrganizationService service, string envVariableName)
{
string fetchXml = string.Empty;
EntityCollection result = null;
string envVariableValue = string.Empty;
fetchXml = String.Format(@"<fetch version=""1.0"" output-format=""xml-platform"" mapping=""logical"" distinct=""false"">
<entity name=""environmentvariablevalue"">
<attribute name=""environmentvariablevalueid"" />
<attribute name=""value"" />
<link-entity name=""environmentvariabledefinition"" from=""environmentvariabledefinitionid"" to=""environmentvariabledefinitionid"" link-type=""inner"">
<attribute name=""displayname"" />
<filter type=""and"">
<condition attribute=""displayname"" operator=""eq"" value=""{0}"" />
</filter>
</link-entity>
</entity>
</fetch>", envVariableName);
result = service.RetrieveMultiple(new FetchExpression(fetchXml));
if (result != null && result.Entities.Count > 0)
{
envVariableValue = result.Entities[0].GetAttributeValue<string>("value");
}
return envVariableValue;
}
설명
따라서 Execute 메서드 아래에는 클래스가 DataVerse에 액세스할 수 있도록 하는 표준 상용구 코드가 있습니다.
GetEnvironmentVariable 메서드 내부는 실제로 모든 작업이 있는 곳입니다. envVariableName이라는 매개변수를 받은 다음 FetchXML을 사용하여 호출하여 해당 이름으로 환경 값을 검색합니다.
Reference
이 문제에 관하여(사용자 지정 워크플로 활동 또는 플러그인에서 환경 변수에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/diskdrive/accessing-environment-variables-in-your-custom-workflow-activity-or-plugin-2j45
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(사용자 지정 워크플로 활동 또는 플러그인에서 환경 변수에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/diskdrive/accessing-environment-variables-in-your-custom-workflow-activity-or-plugin-2j45텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)