트랜잭션 관리자: 규칙 및 규칙 그룹화

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 13분
  • 트랜잭션 관리자의 규칙은 구성 규칙과 비슷합니다. 또한 함께 실행하려는 규칙을 함께 그룹화할 수도 있습니다.

    구성에서와 마찬가지로 Transaction Manager의 규칙은 사용자가 Transaction Manager 구매측 UI에 입력을 할 때 수행되는 작업을 제어합니다. 규칙은 Transaction Manager의 세 가지 구성요소인 수준, 조건 및 작업으로 구성됩니다.

    수준은 규칙이 트랜잭션 수준에서 실행되는지 또는 트랜잭션 라인 수준에서 실행되는지 여부를 결정합니다. 수준은 규칙의 조건 및 작업 정의에 사용할 수 있는 필드를 결정합니다.

    조건에 따라 규칙이 작업을 실행하는 시기가 결정됩니다. 규칙에 대해 정의된 조건이 TRUE로 평가되면 규칙 작업이 실행됩니다. 규칙에 대한 조건이 FALSE로 평가되면 규칙 작업이 실행되지 않습니다.

    작업은 규칙이 실행될 때 수행하는 작업을 결정합니다.

    각 작업 유형에는 정의해야 하는 고유한 규칙 매개변수 세트가 있습니다. 작업에 대한 자세한 설명은 다음 섹션에 설명되어 있습니다.

    새 규칙 생성

    트랜잭션 관리자 관리자 메뉴에서 관련 규칙을 클릭합니다. 새 규칙을 만들려면 + 새 규칙을 클릭합니다.

    새 규칙 생성

    새 규칙 팝업 창에서 새 규칙의 이름을 입력하고 변수 이름을 확인합니다. 변수 이름을 변경하려면 오른쪽의 연필 아이콘을 클릭합니다.

    새 규칙의 수준을 설정하려면 트랜잭션 또는 트랜잭션 라인을 클릭합니다.

    • 트랜잭션 수준 규칙은 규칙의 조건과 작업 모두에서 트랜잭션 수준 필드를 사용할 수 있습니다.
    • 트랜잭션 라인 수준 규칙은 규칙의 조건에서 트랜잭션 수준 및 트랜잭션 라인 수준 필드를 사용할 수 있지만 규칙의 작업에서는 트랜잭션 라인 수준 필드만 사용할 수 있습니다.

    저장을 클릭합니다.

    새 규칙 생성

    규칙 편집기 페이지에서 규칙의 이름과 설명을 수정할 수 있습니다. 활성 토글을 사용하여 규칙을 활성화하거나 비활성화할 수 있습니다.

    설명 필드 아래에는 조건 영역이 있습니다. 작업 수행 시기 메뉴를 클릭하면 이 새 규칙의 조건을 구현하기 위한 옵션이 표시됩니다. 이 새 규칙에 사용할 조건 방법을 선택합니다.

    • 항상 예는 사용자가 트랜잭션 관리자 구매측 UI를 변경할 때마다 규칙을 실행합니다.
    • 조건이 충족 되면 예로 평가되는 조건이 있으면 규칙을 실행합니다. (조건은 논리적으로 OR로 함께 구성됩니다.)
    • 모든 조건이 충족 됨 모든 조건이 TRUE로 평가되면 규칙을 실행합니다. (조건은 논리적으로 AND로 구성됩니다.)
    • 사용자 지정 논리 를 사용하면 괄호와 AND와 OR의 혼합을 사용하여 조건 목록의 조건에 대한 사용자 지정 논리 평가를 생성할 수 있습니다(예: If Cond_1 AND (Cond_2 OR Cond_3)).
    • 고급 기능을 사용하면 관리자가 스크립트를 작성하여 규칙을 실행해야 하는지 여부를 결정할 수 있습니다. 스크립트는 TRUE 또는 FALSE 값을 반환합니다.

    새 규칙 생성

    작업 수행 시기 메뉴의 값을 항상의 기본값에서 변경하는 경우 규칙의 실행 여부를 결정하는 조건 목록을 지정해야 합니다. 규칙에 대해 하나 이상의 개별 조건을 정의할 수 있습니다. 조건을 정의하려면 필드 입력/선택 메뉴를 사용하여 테스트할 트랜잭션 관리자 필드를 선택한 다음 같음 메뉴에서 조건의 연산자를 선택한 다음 값 입력/선택 메뉴에서 필드의 테스트 값을 설정하여 조건이 TRUE 또는 FALSE인지 확인합니다. +조건 추가 버튼을 사용하여 규칙에 여러 조건을 추가합니다.

    트랜잭션 관리자: 규칙 및 규칙 그룹화

    조건이 정의되면 규칙이 실행되는 작업을 정의할 수 있습니다. 조건과 마찬가지로 규칙에 하나 이상의 작업을 추가할 수 있으며 동일한 규칙에 다양한 유형의 작업을 포함할 수 있습니다.

    작업을 추가하려면 추가할 작업 유형을 선택하고 작업 영역에서 클릭합니다. 그런 다음 작업을 정의하기 위해 설정된 작업 유형 매개변수로 이동합니다.

    • 숨기기 작업은 조건부로 필드를 숨깁니다.
    • 메시지 작업은 구매측 사용자에게 텍스트 메시지를 표시합니다.
    • 제외 작업은 선택 목록 필드에서 메뉴 옵션을 숨기거나 비활성화합니다.
    • 포함 작업은 선택 목록 필드에 메뉴 옵션을 표시합니다.
    • 결정 작업은 필드 값을 설정하거나 지웁니다.

    새 규칙 작업

    다음은 다양한 작업 매개변수 세트를 검토합니다.

    숨기기 작업

    숨기기 작업을 사용하면 구매측 레이아웃에서 필드를 숨길 수 있습니다. 이 유형의 작업에 대한 유일한 매개변수는 숨길 필드입니다. 필드 검색 상자를 사용하여 필드를 식별합니다.

    숨기기 작업

    메시지 작업

    메시지 작업을 사용하면 트랜잭션 관리자 레이아웃에서 구매 측 사용자에게 텍스트 메시지를 표시할 수 있습니다. 표시하려는 표시 메뉴에는 네 가지 메시지 유형이 있습니다.

    • 정보 메시지는 원형 파란색 아이콘과 파란색 메시지 텍스트를 사용합니다. 아이콘과 텍스트 색은 변경할 수 없습니다.
    • 경고 메시지는 노란색 삼각형 아이콘과 노란색 메시지 텍스트를 사용합니다. 아이콘과 텍스트 색은 변경할 수 없습니다.
    • 오류 메시지는 빨간색 삼각형 아이콘과 빨간색 메시지 텍스트를 사용합니다. 아이콘과 텍스트 색은 변경할 수 없습니다.
    • 사용자 지정 메시지에는 모든 아이콘과 텍스트 색이 있을 수 있습니다.

    메시지 작업

    메시지 표시 위치 필드를 사용하여 메시지를 표시할 구매측 레이아웃의 위치를 정의합니다. 메시지는 종종 필드에 첨부되지만 계층 또는 열 집합과 같은 레이아웃 구성요소에 첨부할 수도 있습니다.

    메시지 내용 필드에서는 구매 측 사용자에게 표시할 메시지를 쓸 수 있습니다. 고급 토글을 설정하면 스크립트를 작성하여 메시지를 빌드할 수 있습니다. 메시지가 표시되는 경우 필드를 사용하여 메시지가 표시될 때 트랜잭션을 저장할 수 있는지 여부를 결정합니다.

    제외/포함 작업

    제외 및 포함 작업을 통해 선택 목록 필드에 대해 정의된 메뉴 옵션의 가시성과 사용을 설정할 수 있습니다. 제외 작업을 사용하면 메뉴 옵션을 숨기거나 비활성화할 수 있습니다. 포함 작업을 통해 메뉴 옵션을 표시하거나 활성화할 수 있습니다. 제외 및 포함 작업은 동일한 매개변수 세트를 사용합니다.

    이 필드의 경우 메뉴를 사용하여 메뉴에서 제외하거나 포함할 메뉴 옵션이 있는 선택 목록 필드를 선택합니다.

    제외/포함 작업

    옵션 [제외|포함]을 원함 메뉴를 사용하여 메뉴에서 제외하거나 포함할 선택 목록 메뉴 옵션을 선택합니다. 여러 옵션을 한 번에 하나씩 선택할 수 있습니다. 고급 토글을 사용하여 스크립트를 사용하여 규칙 실행의 일부인 메뉴 옵션을 결정합니다.

    제외된 옵션 메뉴를 사용하여 제외된 메뉴 옵션의 처리 방식을 결정합니다. (포함 작업에서 메뉴에 포함되지 않은 메뉴 옵션은 제외된 메뉴 옵션으로 처리됩니다.) 옵션을 숨 기려면 숨기기 를 선택합니다. 비활성화된 상태의 메뉴에 유지하려면 비활성화 를 선택합니다.

    규칙이 실행될 때 사용자가 제외된 메뉴 항목을 이미 선택한 경우 수행할 작업을 결정하려면 이미 선택된 경우 메뉴를 사용합니다.

    • 변경되지 않고 그대로 두 면 제외된 항목이 선택한 항목으로 남아 있습니다.
    • 선택 취소 하면 제외된 옵션의 선택이 취소되어 사용자가 다른 옵션을 선택해야 합니다.
    • 대신 첫 번째 유효한 옵션 선택 은 제외된 옵션의 선택을 취소하지만 규칙 실행 후 메뉴에서 첫 번째 사용 가능한 옵션으로 대체합니다.

    결정 작업

    결정 작업을 통해 트랜잭션 관리자에서 필드 값을 설정하고 지울 수 있습니다.

    이 필드에 대해 메뉴를 사용하여 규칙이 작동할 필드를 검색하고 선택합니다.

    결정 작업

    I want to...에서 필드의 값을 설정하거나 삭제할지, 규칙에 의해 수정된 값을 사용자가 편집하는 것을 허용할지 또는 금지할지 여부를 정의합니다.

    사용자가 값을 수정한 경우 메뉴에서 사용자가 수정한 필드의 값을 유지할지 또는 규칙의 값으로 값을 재정의할지 선택할 수 있습니다. 사용자가 입력한 값을 유지하려면 사용자 값을 유지한 경우 메뉴를 사용하여 사용자에게 필드 값에 대한 권장 사항과 함께 메시지를 표시할지 여부를 정의합니다.

    결정 작업

    마지막으로 필드에 할당할 값을 정의합니다. 이 값 사용 필드에서 이 값을 정의합니다. 고급 토글을 사용하면 스크립트가 값을 결정할 수 있습니다.

    결정 작업

    규칙 그룹화

    규칙 그룹은 함께 실행될 규칙의 모음입니다. 규칙 그룹에는 트랜잭션 수준 규칙과 트랜잭션 라인 수준 규칙이 모두 포함될 수 있습니다.

    규칙 그룹화는 스테이지와 이벤트에서 실행을 위한 규칙 그룹을 연결하는 데 사용됩니다. 각 스테이지에는 원하는 수만큼 규칙 그룹이 연결될 수 있으며, 사용자가 스테이지의 필드를 변경할 때 실행되는 규칙을 결정합니다. 규칙을 실행하려면 관리자가 규칙 그룹화를 스테이지 또는 이벤트와 연결해야 합니다. 이 작업에 대한 지침은 다음 문서를 참조하십시오.

    트랜잭션 관리자: 이벤트

    트랜잭션 관리자: 스테이지

    규칙 그룹화 생성

    시작하려면 관리자 메뉴에서 규칙 그룹화를 클릭한 다음 + 새 규칙 그룹화를 클릭합니다.

    규칙 그룹화 생성

    새 규칙 그룹화 창에서 새 규칙 그룹화의 변수 이름을 입력하고 저장을 클릭합니다.

    규칙 그룹화 생성

    규칙 그룹화 편집기 페이지가 열립니다. + 규칙 연결을 클릭합니다.

    규칙 그룹화 생성

    새 규칙 그룹에 포함할 규칙을 선택할 수 있는 슬라이드아웃 창이 나타납니다. 결과 열에서 +를 클릭하여 규칙을 선택됨 열로 이동합니다. 규칙 그룹화에 포함할 각 규칙에 대해 이 절차를 반복합니다.

    규칙 그룹화 연결

    연결 규칙

    규칙 선택을 마쳤으면 완료를 클릭합니다. 그룹에 추가된 규칙이 표시되는 규칙 그룹화 편집기 페이지로 돌아갑니다.

    연결 규칙

    규칙 집계

    집계는 규칙 결정 작업에 사용할 스크립트 기능입니다. 집계는 견적 및 트랜잭션 워크플로우에서 자동화를 향상시키고, 가격 계산을 최적화하고, 데이터 구성을 개선할 수 있으며 트랜잭션 관리자에서 규칙 엔진 성능을 최적화하기 위해 작성되었습니다.

    집계 함수는 트랜잭션 라인 필드에 대해 다양한 수학 계산을 수행합니다. 이러한 계산 결과는 트랜잭션(헤더) 필드 또는 트랜잭션 라인 필드에 저장됩니다.

    주:
    집계 함수에 하위 항목이 없는 경우에도 집계가 항상 실행됩니다. 집계 함수에 기본 집합이 없고 자식이 없는 경우 집계에서 반환되는 값은 null이며 조회의 경우 반환되는 값은 빈 배열입니다. 오류를 방지하려면 기본값을 설정하거나 빈 배열 응답을 처리하십시오.

    규칙 집계에는 다음과 같은 범주가 포함됩니다.

    • 평균, 개수, 최소, 최대, 합계
    • AvgIf, CountIf, SumIf
    • 합계 하위
    • 조회

    평균, 개수, 최소, 최대, 합계

    이러한 집계 함수는 모든 라인에 대한 트랜잭션 라인 필드 값을 집계하고 결과를 헤더 필드(결정 작업의 대상 필드)에 저장합니다.

    return txn.line.functions.<function>(txn.line.<fieldVarName>)

    <함수>의 값에는 avgField, countField, minField, maxField, sumField가 포함됩니다.

    AvgIf, CountIf, SumIf

    이러한 집계 함수는 모든 라인에 대한 트랜잭션 라인 필드 값에 필터를 적용한 다음 나머지 라인에 대해 계산을 수행하여 결과를 헤더 필드(결정 작업의 대상 필드)에 저장합니다.

    txn.line.functions.<function>(txn.line.<fieldVarName>, <condition> [, <default>])

    함수<>의 값에는 avgFieldIf, countFieldIf, sumFieldIf가 포함됩니다.

    <조건>은 다음과 같은 표현식으로 설정할 수 있습니다.
    • booleanField = 예
    • txn.line.functions.sumChildrenField(txn.line.<fieldVarName>)> 0

    집계할 하위 항목이 없고 기본값이 정의되지 않은 경우 함수는 null을 반환합니다.

    텍스트에 대한 조건부 검사는 대/소문자를 구분합니다.

    사용 사례 예시: 판매 BOM 유형에 대한 목록 가격 합산

    아래의 초안 단계 샘플 트랜잭션은 BOM 유형이 SALES인 항목의 정가 합계를 계산합니다. BOM 유형은 구성 항목이 작성되었을 때 처음 설정된 유형을 반영하는 시스템에서 파생된 라인 필드입니다.

    규칙 집계

    단계:

    1. 총 판매 유형 가격이라는 이름의 헤더 필드를 만듭니다.

      총 판매 유형 가격

    2. 레이아웃에 추가하고 트랜잭션을 배포합니다.

      트랜잭션 배포

    3. 다음 스크립트와 함께 초안 단계에서 적용된sumFieldIf 함수를 사용하여 결정 규칙을 설정합니다.
      return txn.line.functions.sumFieldIf(txn.line.pricing.list,
              txn.line.configuration.item.bomType == 'SALES');
      주:
      조건부 검사는 대/소문자를 구분합니다. 판매가 아닌 판매를 사용합니다. 대/소문자가 잘못되어도 오류가 발생하지 않지만 사용 사례에서 BOM 유형이 판매인 라인이 없기 때문에 합계는 0이 됩니다.

      트랜잭션 배포

    4. 트랜잭션을 배포하고 다시 로드합니다. 이 필드는 일치하는 라인 가격의 총합을 $46,000(0, 40,000, 2,500, 1,000, 2,500)로 올바르게 반환합니다.

      트랜잭션 배포

    합계 하위

    이 집계 함수는 모든 하위 라인에 대한 트랜잭션 라인 필드 값을 집계하고 결과를 하위 라인의 직계 상위 라인 수준 필드(결정 작업의 대상 필드)에 저장합니다.

    txn.line.functions.sumChildrenField(txn.line.<fieldVarName>)

    조회

    이러한 집계 함수는 합계를 계산하는 대신 값을 검색합니다. 단일 값 또는 값 배열을 반환하므로 사용자는 가격 책정 계산, 확인 규칙 및 출력 문서에 사용할 주요 정보를 동적으로 추출할 수 있습니다.

    기본 조회 기능은 다음과 같습니다.

    • txn.line.functions.lookupField(<field>)

      모든 트랜잭션 라인에 걸쳐 지정된 필드에서 값의 배열을 검색합니다.

    • txn.line.functions.lookupFirstField(<field> [, <default>])

      일치하는 첫 번째 필드 값을 조회합니다. 아무 것도 찾을 수 없으면 선택적 기본값을 반환합니다.

    • txn.line.functions.lookupChildrenField(<field>)

      하위 라인 항목에서 값의 배열을 검색합니다.

    • txn.line.functions.lookupFirstChildrenField(<field> [, <default>])

      선택적 기본값을 사용하여 하위 라인 항목에서 첫 번째 일치하는 값을 검색합니다.

    텍스트에 대한 조건부 검사는 대/소문자를 구분합니다. 조건부 조회 기능은 다음과 같습니다.

    • txn.line.functions.lookupFieldIf(<field>, <condition>)

      조건에 따라 필드 값의 배열을 검색합니다.

    • txn.line.functions.lookupFirstFieldIf(<field>, <condition> [, <default>])

      조건에 따라 선택적 기본값을 사용하여 처음 일치하는 필드 값을 검색합니다.

    • txn.line.functions.lookupChildrenFieldIf(<field>, <condition>)

      조건에 따라 하위 라인 항목에서 값의 배열을 검색합니다.

    • txn.line.functions.lookupFirstChildrenFieldIf(<field>, <condition> [, <default>])

      선택적 기본값을 사용하여 조건에 따라 일치하는 첫 번째 하위 라인 항목 필드 값을 검색합니다.

    함수는 명확성과 일관성을 위해 구조적 명명 규칙을 따릅니다.

    • 조회는 배열을 반환합니다. lookupFirst 는 단일 값을 반환합니다.
    • 컨텍스트: 컨텍스트 없음(모든 라인) 또는 하위 (하위 라인 항목만).
    • 객체: 필드( 필드 조회에만 적용됨).
    • 조건: 조건 없음 또는 If (조건부 조회).

    조회 함수는 검색된 값을 중간 필드에 저장하여 추가 계산 및 자동화에 사용할 수 있도록 합니다. 이를 통해 가격 책정 규칙, 승인 및 출력 문서와 통합할 수 있습니다.

    중간 필드의 이점은 다음과 같습니다.

    • 일반적으로 참조되는 값을 저장하여 중복 계산을 최소화합니다.
    • 가격 책정 및 견적 프로세스 전반에 걸쳐 일관된 필드 값 집합을 유지합니다.
    • 종속 필드에 대한 동적 업데이트를 통해 가격 책정 및 승인의 실시간 정확성을 보장합니다

    조회 집계는 견적 라인 항목이 제거되면 동적으로 조정됩니다. 시스템은 삭제된 트랜잭션 라인에 대한 참조가 지워지도록 하여 재계산된 가격 책정 및 할인에서 데이터 정확성을 유지합니다. 다음 예를 참조하십시오.

    var taxCodes =
                  txn.line.functions.lookupFieldIf("taxCode", txn.line.amount > 0);
                var firstPrice =
                txn.line.functions.lookupFirstField("price", 0);   var childService =
                txn.line.functions.lookupChildrenField("serviceType");   var totalTax =
                txn.line.functions.lookupFirstField(txn.line.taxAmount, 0);   return totalTax * 1.05; //
                Applies a 5% surcharge based on retrieved tax amount