수색…


소개

CustomizationPlug 에서 파생 된 클래스를 사용하면 사용자 정의 프로젝트가 게시 된 후 Acumatica 사용자 화 플랫폼의 기능을 활용하고 사용자 정의 코드를 실행할 수 있습니다. 이 항목에서는 여러 회사에서 사용자 지정 플러그 인을 사용하여 변경 작업을 수행하는 방법을 학습합니다.

사용자 정의 플러그인에 대한 자세한 내용은 Acumatica Customization Guide를 참조하십시오.

여러 회사를 업데이트하는 사용자 정의 플러그인 구현

사용자 화 플러그인을 작성하려면 CustomizationPlug 에서 파생 된 클래스를 작성하고 사용자 정의 로 패키지하기 만하면됩니다. 시스템이 사용자 지정 프로젝트를 게시하는 동안 사용자 지정 플러그 인에 구현 된 OnPublishedUpdateDatabase 메서드 는 현재 회사 범위 내에서만 실행됩니다.

즉, PXLoginScope 를 사용하여 현재의 사용자 게시 사용자가 사용할 수있는 모든 회사에 차례로 로그인하지 않는 한 사용자 지정 플러그 인은 현재 회사 이외의 다른 회사를 변경하지 않습니다.

다음은 현재 사용자가 사용할 수있는 모든 회사에서 MyVerticalSolution 사용자 역할을 만드는 사용자 화 플러그인의 예입니다.

public class MyVerticalSolutionInit : CustomizationPlugin
{
    public override void UpdateDatabase()
    {
        var companies = PXAccess.GetCompanies();

        foreach (var company in companies)
        {
            using (var loginScope = new PXLoginScope(string.Format("{0}@{1}",
                PXAccess.GetUserLogin(), company)))
            {
                string roleName = "MyVerticalSolution";
                RoleAccess graph = PXGraph.CreateInstance<RoleAccess>();

                Roles existingRole = graph.Roles.Search<Roles.rolename>(roleName);
                if (existingRole != null)
                {
                    WriteLog(string.Format("{0} already exists in company '{1}' - skipped", roleName, company));
                    continue;
                }

                var wmsRole = new Roles();
                wmsRole.Rolename = roleName;
                wmsRole.Descr = "User Role for MyVerticalSolution";

                graph.Roles.Insert(wmsRole);
                graph.Save.Press();

                WriteLog(string.Format("{0} was succesfully created in company '{1}'", roleName, company));
            }
        }
    }
}

현재 사용자가 사용할 수있는 회사 목록을 얻으려면 정적 PXAccess.GetCompanies() 메소드를 호출하기 만하면됩니다. 그런 다음 PXLoginScope 를 사용하여 사용 가능한 각 회사에 로그인하여 MyVerticalSolution 사용자 역할을 만듭니다. 각 회사에 대해 RoleAccess BLC 인스턴스가 다시 초기화 됨 - 이는 한 번에 여러 회사를 변경하는 절대적으로 필수 단계입니다.

Acumatica 인스턴스에 CompanyA와 CompanyB라는 2 개의 회사가 있다고 가정 해 봅시다. 사용자 정의를 게시하는 데 사용할 관리 사용자는 두 회사 모두에 액세스 할 수 있으며 사용자 정의 플러그인에 의해 작성된 MyVerticalSolution 역할은 이미 CompanyA에 있습니다. 여기에 이미지 설명을 입력하십시오.

이전에 개발 한 사용자 지정 플러그 인을 사용하여 사용자 지정을 게시하여 현재 사용자가 사용할 수있는 모든 회사에서 MyVerticalSolution 역할을 만들면 MyVerticalSolution 역할이 CompanyA에 대해 건너 뛰고 CompanyB에 대해 성공적으로 만들어 졌음 을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오.

다음 번에이 사용자 정의를 게시하면 MyVerticalSolution 역할이 Acumatica 응용 프로그램의 두 회사에서 건너 뜁니다.

여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow