본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

7 - 사용자 지정 집계 Function 작성하기

이 내용은 learn.palantir.com ↗에서도 확인할 수 있으며 접근성 목적으로 여기에 제공됩니다.

📖 작업 소개

Workshop 모듈 사용자에게 대기 중인 알림 중 해결되지 않은 알림의 비율을 강조하는 측정치 카드를 제공하려고 합니다. Workshop은 숫자 집계를 원래 계산하고 표시할 수 있지만, 때때로 Workshop 프론트엔드를 통해 사용할 수 없는 비즈니스 로직을 사용하여 측정치를 계산해야 할 수도 있습니다.

Function을 사용하여 필요한 수치를 제공하는 Workshop의 기능을 확장할 수 있습니다. 이 작업에서는 MyFunctions 클래스의 메소드로 사용자 지정 Function을 추가하게 됩니다.

🔨 작업 지침

  1. 리포지토리의 ../src/index.ts 파일을 엽니다.

  2. MyFunctions 클래스 내에서 새로운 함수를 위한 공간을 만들어야 합니다. 8행의 닫힌 중괄호 뒤에 커서를 두고 엔터키를 두 번 누릅니다.

  3. 다음 코드 블록을 삽입하십시오. 단, @Function() 데코레이터와 public... 줄이 위의 함수와 정렬되도록 주의하세요.

    • 또한 jmeierPercentUnresolved를 알아볼 수 있는 전용 이름으로 바꾸고 (예를 들어, jmeier을 본인의 이름으로 바꾸십시오) JmeierFlightAlert본인의 API 이름으로 바꾸십시오.
    • 코드 내의 주석은 수행되는 작업을 설명합니다.
    @Function()
        // "alerts"라는 별칭을 가진 항공편 알림 오브젝트 배열을 입력 받고 
        // Double을 반환합니다
        public jmeierPercentUnresolved(alerts: JmeierFlightAlert[]): Double {
        
        // 배열에 실제 오브젝트가 포함되어 있는지 확인하고, 그렇지 않으면 "0"을 반환합니다
            if (alerts.length === 0) {
                return 0;
            }
        
        // 배열을 순환하면서 해결되지 않은 상태의 알림을 발견할 때마다 
        // 변수("numberUnresolved")를 1씩 증가시킵니다
            let numberUnresolved = 0;
            for (const alert of alerts) {
                if (alert.status != "Resolved") {
                    numberUnresolved++;
                }
            }
        
        // 원본 배열의 길이로 나눈 해결되지 않은 알림 수를 반환합니다
            return numberUnresolved/alerts.length;
        }
    
  4. 코드 지원이 실행 중이면 Double의 출력 유형이 빨간색으로 밑줄 친 것을 볼 수 있습니다. 이는 코드에 문제가 있음을 나타냅니다. 요약하면, 리포지토리는 가져오지 않은 유형을 발견했습니다.

    • Functions API 가져오기 문장에 Double을 추가합니다: import { Function, Integer, Double } from "@foundry/functions-api";