# GetUserAttr 스크립트 및 차트 함수

GetUserAttr() 함수는 응용 프로그램에 액세스하는 사용자에 대한 다음 정보를 반환합니다.

* 이메일 주소

* 주체

* 사용자가 속한 그룹(예: ID 공급자(IdP) 그룹 및 사용자 지정 그룹)

* 기본 언어

* 표준 시간대

로드 스크립트 또는 차트 표현식에서 GetUserAttr() 함수를 직접 사용합니다. 두 경우 모두 함수를 사용하여 특성을 변수에 저장하거나 변수 없이 직접 저장할 수 있습니다. Qlik Sense 클라이언트 관리에서 이 함수를 사용하면 빈 데이터 값만 반환됩니다. 따라서 나중에 응용 프로그램을 Qlik Cloud에 업로드할 목적으로 이 함수를 사용하여 오류 발생 없이 Qlik Sense 클라이언트 관리에서 스크립트를 개발할 수 있습니다.

구문:

GetUserAttr(name)

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| name | 반환할 특성의 이름입니다. 식에 문자열 값으로 입력합니다. 입력한 문자열 값은 대/소문자를 구분합니다. |

해당 함수를 사용하여 사용자 특성을 응용 프로그램에 로드합니다. 이 함수는 다음 특성을 반환할 수 있습니다.

GetUserAttr()GetUserAttr() 함수에서 반환할 수 있는 사용자 특성

| 특성 | 설명 | 로드 스크립트 변수의 예 | 차트 표현식 예(변수 없음) | 차트 표현식 결과의 예 |
| --- | --- | --- | --- | --- |
| userEmail | 현재 사용자의 이메일. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | 현재 사용자의 주제. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | 현재 사용자가 속한 그룹(IdP, 사용자 지정 또는 둘 다). 문자열로 된 그룹의 쉼표로 구분된 목록을 반환합니다. 기본적으로 `GetUserAttr`은 로드 스크립트 문에서 `QlikCloudGroupMode` 시스템 변수가 설정되지 않은 한 IdP 그룹을 반환합니다.<br><br>[QlikCloudGroupMode](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | 사용자의 기본 언어는 사용자의 설정에서 설정됩니다.<br><br>[개인 설정 관리](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | 사용자의 설정에서 설정된 사용자의 표준 시간대.<br><br>[개인 설정 관리](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## GetUserAttr를 사용하는 경우

이 함수는 응용 프로그램의 현재 사용자에 대한 사용자 속성 및 그룹을 반환합니다. 이를 통해 사용자에게 표시되는 콘텐츠를 사용자 지정하는 솔루션을 구축할 수 있습니다. 예를 들어, 글로벌 영업 응용 프로그램에서 특정 제품 그룹을 담당하는 영업 담당자에게만 제품별 시트를 표시할 수 있습니다. 응용 프로그램의 로드 스크립트에 있는 로드 문 또는 차트 표현식에서 함수를 직접 표현식으로 사용하거나 변수로 저장된 표현식에서 사용합니다.

[Dynamic titles based on user language using the GetUserAttr function](https://play.vidyard.com/bozy96G13YU5YrBjnqNNDF)

## 예 – 스크립트에서 사용자 특성을 변수로 저장

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetUserAttr.htm)

#### 스크립트 변수 및 차트 표현식 로드

이 예에서는 생성하는 응용 프로그램 콘텐츠에서 사용할 수 있는 스크립트 변수 집합을 정의합니다. 응용 프로그램이 다시 로드될 때마다 특성이 평가되어 응용 프로그램에 추가됩니다.

다음과 같이 하십시오.

1. 새 Qlik Sense 응용 프로그램을 만듭니다.

2. 데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다. 로드 스크립트에는 다음이 포함됩니다.

   * 샘플 트랜잭션 데이터가 포함된 `Transactions`라는 새 테이블입니다. 이는 임의의 데이터로 바뀔 수 있으며 자리 표시자로 추가됩니다.

   * `QlikCloudGroupMode` 시스템 변수를 `2`로 설정하는 스크립트 문. `userGroups` 특성은 사용자가 속한 IdP 그룹과 사용자 지정 그룹을 모두 반환합니다.

   * GetUserAttr 함수가 반환할 수 있는 사용할 수 있는 특성에 대한 일련의 스크립트 변수 정의입니다.

     ```
     Set QlikCloudGroupMode = 2;
     Transactions:
     Load * inline [
     id,date,amount
     1,1/1/2023,500.67
     2,1/2/2023,458.91
     3,1/3/2023,12.34
     4,1/4/2023,90.90
     5,1/5/2023,256.30
     6,1/6/2023,789.16
     7,1/7/2023,501.25
     8,1/8/2023,87.01
     9,1/9/2023,161.16
     10,1/10/2023,300.06
     ];
     Let vUserEmail = GetUserAttr('userEmail');
     Let vUserSubject = GetUserAttr('userSubject');
     Let vUserGroups = GetUserAttr('userGroups');
     Let vUserLocale = GetUserAttr('userLocale');
     Let vUserZoneinfo = GetUserAttr('userZoneinfo');
     ```

3. 데이터를 로드하고 고급 편집 모드에서 새 시트를 엽니다.

4. 테이블을 만들고 다음 표현식을 차원으로 추가합니다.

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups`, 이는 쉼표로 구분된 목록을 문자열로 반환합니다.

   * `=vUserLocale`

   * `=vUserZoneinfo`

팁 메모차원을 만들 때 가독성을 높이기 위해 사용자 이메일과 같은 차원 레이블을 추가할 수 있습니다.

테이블의 출력에는 사용할 수 있는 사용자 특성이 동적으로 표시됩니다. 다음 테이블은 `GetUserAttr` 함수를 사용하여 반환된 결과의 예를 보여 줍니다.

결과 테이블

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Sales,Product-Lead,OKTA-Github-RnD | en | 미국/토론토 |

## 예 – 사용자 특성을 변수로 저장하고 차트 표현식에서 사용

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetUserAttr.htm)

#### 변수 및 차트 표현식

이 예에서는 로드 스크립트에서 변수를 정의하는 대신 응용 프로그램에서 변수를 정의합니다. 일단 정의되면 변수는 응용 프로그램의 차트 표현식에서 사용될 수 있습니다. 차트 표현식에서 함수를 사용하는 주요 이점은 응용 프로그램을 다시 로드할 필요 없이 특성이 자동으로 새로 고쳐진다는 것입니다. 이를 통해 응용 프로그램 수명 주기의 일부로 사용자 간에 응용 프로그램을 보다 원활하게 이동할 수 있습니다.

다음과 같이 하십시오.

1. 새 Qlik Sense 응용 프로그램을 만듭니다.

2. 고급 편집 모드에서 새 시트를 엽니다.

3. 변수 대화 상자를 엽니다.

4. 새로 만들기를 선택한 후 다음을 수행합니다.

   * 이름에 vUserEmail을 입력합니다.

   * 정의에 =GetUserAttr('userEmail')를 입력합니다.

   * 만들기를 선택합니다.

   사용자의 이메일 주소를 표시하기 위해 응용 프로그램 변수가 만들어집니다. 다음 매개 변수를 사용하여 나머지 특성에 대한 변수를 만들려면 이 단계를 반복합니다.

   * 사용자 주체

     * 이름: vUserSubject

     * 정의: =GetUserAttr('userSubject')

   * 사용자 그룹

     * 이름: vUserGroups

     * 정의: =GetUserAttr('userGroups')

   * 사용자 로캘

     * 이름: vUserLocale

     * 정의: =GetUserAttr('userLocale')

   * 사용자 영역 정보

     * 이름: vUserZoneinfo

     * 정의: =GetUserAttr('userZoneinfo')

5. 테이블을 만들고 다음 표현식을 차원으로 추가합니다.

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups`(쉼표로 구분된 목록을 문자열로 반환합니다)

   * `=vUserLocale`

   * `=vUserZoneinfo`

팁 메모차원을 만들 때 가독성을 높이기 위해 사용자 이메일과 같은 차원 레이블을 추가할 수 있습니다.

새 테이블의 출력에는 사용할 수 있는 사용자 특성이 동적으로 표시됩니다. 다음 테이블은 `GetUserAttr` 함수에서 반환된 결과의 예를 보여 줍니다.

결과 테이블

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Sales,Product-Lead,OKTA-Github-RnD | en | 미국/토론토 |

정보 메모기본적으로 `GetUserAttr('userGroups')` 함수는 사용자의 IdP 그룹을 반환합니다. 스크립트 문에서 `QlikCloudGroupMode` 시스템 변수를 설정하여 반환되는 그룹을 선택할 수 있습니다. 예를 들어, `Set QlikCloudGroupMode = 2`는 IdP 및 사용자 지정 그룹을 모두 반환합니다. 자세한 내용은 [QlikCloudGroupMode](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm)을 참조하십시오.

## 예 – 로드 스크립트에서 GetUserAttr 함수 사용

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetUserAttr.htm)

#### 로드 스크립트

변수 없이 응용 프로그램에서 함수를 사용할 수도 있습니다. 이 예는 각 특성이 있는 테이블을 개별 필드로 로드하는 방법을 보여 줍니다. 여기에서 응용 프로그램에서 시각화를 만들어 이러한 세부 정보를 표시할 수 있습니다.

다음과 같이 하십시오.

1. 새 Qlik Sense 응용 프로그램을 만듭니다.

2. 데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다. 로드 스크립트에는 다음이 포함됩니다.

   * 각 특성을 필드로 포함하는 `Attributes`라는 새 테이블.

   * 사용자 지정 그룹에 대해 `QlikCloudGroupMode` 시스템 변수를 `1`로 설정하는 스크립트 문. `userGroups` 특성은 사용자가 속한 사용자 지정 그룹만 반환합니다.

   ```
   Set QlikCloudGroupMode = 1;
   Attributes:
   Load RowNo() as Key,
   GetUserAttr('userEmail') as UserEmail,
   GetUserAttr('userSubject') as UserSubject,
   GetUserAttr('userLocale') as UserLocale,
   GetUserAttr('userZoneinfo') as UserZoneinfo,
   GetUserAttr('userGroups') as UserGroups autogenerate 1;
   ```

3. 데이터 로드를 요청합니다. 각 특성을 개별 필드로 표시하는 테이블이 데이터 모델에 만들어집니다.

   이제 테이블이나 텍스트 및 이미지 개체와 같은 시각화에서 특성 필드를 사용할 수 있습니다.

## 예 – 차트 표현식에서 GetUserAttr 함수 사용

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetUserAttr.htm)

#### 차트 표현식

변수를 사용하지 않고 차트 표현식에 직접 함수를 입력할 수 있습니다. 사용자 속성은 응용 프로그램을 다시 로드할 필요 없이 새로 고쳐집니다. 이를 통해 응용 프로그램 수명 주기의 일부로 사용자 간에 응용 프로그램을 보다 원활하게 이동할 수 있습니다.

다음과 같이 하십시오.

1. 새 Qlik Sense 응용 프로그램을 만듭니다.

2. 고급 편집 모드에서 새 시트를 엽니다.

3. 텍스트 및 이미지 개체를 시트로 끕니다.

4. 빈 차트 내부를 클릭하고 다음 레이블을 입력합니다.

   사용자 이메일:

5. 속성 패널에서 측정값 추가를 선택합니다.

6. 다음 표현식을 입력합니다.

   * =GetUserAttr('userEmail')

7. 다른 특성에 대한 레이블과 측정값을 새 줄에 추가합니다. 각 특성에 대해 다음 표현식을 사용합니다.

   * 사용자 주체의 경우, =GetUserAttr('userSubject')

   * 사용자 그룹의 경우, =GetUserAttr('userGroups')

   * =GetUserAttr('userLocale'), 사용자 로캘의 경우

   * =GetUserAttr('userZoneinfo'), 사용자 영역 정보의 경우​

정보 메모기본적으로 `GetUserAttr('userGroups')` 함수는 사용자의 IdP 그룹을 반환합니다. 스크립트 문에서 `QlikCloudGroupMode` 시스템 변수를 설정하여 반환되는 그룹을 선택할 수 있습니다. 예를 들어, `Set QlikCloudGroupMode = 2`는 IdP 및 사용자 지정 그룹을 모두 반환합니다. 자세한 내용은 [QlikCloudGroupMode](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm)을 참조하십시오.

## 예 - 차트 표현식을 사용하여 열을 조건부로 숨기기

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetUserAttr.htm)

#### 차트 표현식

개요

이 예에서는 사용자 이메일 주소의 도메인을 기준으로 테이블에서 열을 표시하거나 숨깁니다.

다음과 같이 하십시오.

1. 새 Qlik Sense 응용 프로그램을 만듭니다.

2. 데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다. 로드 스크립트에는 다음이 포함됩니다.

   * `Transactions`라는 테이블에 로드되는 데이터 집합.

   * 데이터 테이블의 필드는 다음과 같습니다.

     * `ID`

     * `Date`

     * `Amount`

     로드 스크립트

     ```
     Transactions:
     Load * inline [
     ID, Date, Amount
     1, 1/1/2023, 500.67
     2, 1/2/2023, 458.91
     3, 1/3/2023, 12.34
     ];
     ```

3. 데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

   * `ID`

   * `Date`

   * `Amount`

   다음 표현식을 계산 차원으로 추가합니다.

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`: 사용자의 이메일 도메인이 `@qlik.com`과 일치하는지 확인합니다.

4. `Amount` 차원의 속성 패널에서 열 표시 아래에 다음 표현식을 추가합니다.

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`: 사용자의 이메일이 `qlik.com` 도메인과 일치하는 경우 금액 열을 표시합니다.

   표현식은 이메일 주소 도메인에 `@qlik.com`이 포함된 사용자에 대해서만 `Amount` 열을 표시합니다. 다른 도메인 이름을 사용하는 사용자에게는 해당 열이 숨겨집니다.

Results table 1 - User with email address: `user@qlik.com`user@qlik.com

| ID | Date | Amount | WildMatch(GetUserAttr('userEmail'),'\*@qlik.com')&gt;0 |
| --- | --- | --- | --- |
| 1 | 1/1/2023 | 500.67 | -1 |
| 2 | 1/2/2023 | 458.91 | -1 |
| 3 | 1/3/2023 | 12.34 | -1 |

Results table 2 - User with email address: `user@gmail.com`user@gmail.com

| ID | Date | WildMatch(GetUserAttr('userEmail'),'\*@qlik.com')&gt;0 |
| --- | --- | --- |
| 1 | 1/1/2023 | 0 |
| 2 | 1/2/2023 | 0 |
| 3 | 1/3/2023 | 0 |

이 예에서는 `GetUserAttr` 함수를 사용하여 특정 열을 조건부로 숨기거나 표시하는 방법을 확인할 수 있습니다. 첫 번째 표에 `Amount` 열이 표시되는 이유는 응용 프로그램을 보고 있는 사용자의 이메일 주소에 `@qlik.com` 도메인이 포함되어 있고, 열 4의 차원 표현식이 `-1`을 반환하기 때문입니다. 사용자에게 `qlik.com` 도메인의 이메일 주소가 없기 때문에 두 번째 표의 결과에서 `Amount` 열이 숨겨집니다.