템플리트 메타 태그 대체 확장점

이 예제에서는 메타 태그 대체 처리로 사용자 정의 확장을 제공합니다.
	sub EMP_SubstituteCustomMetaTag {
	  my $metaTagParts_ref = shift; # a reference to an array
	  my $entityDefObj    = shift;
	  my $isHTMLContent   = shift;
	  my $isTest          = shift;
    # 이 루틴은 메타 태그 대체 처리로 사용자 정의 확장을 제공합니다.
    # 기본 제공 메타 태그가 ClearQuest 관리자에게 충분하지 않을 경우,
    # 이 확장은 관리자가 자신의 메타 태그를 추가할 수 있게 합니다. EXPRESSION 메타 태그로 대부분의 요구사항이 충족되므로
    # 먼저 EXPRESSION 메타 태그를 탐색하십시오.
    # 스키마에 저장된 함수도 호출할 수 있음을 기억하십시오.
    # 이 사용자 정의 지점은 함수를 테스트하거나 HTML 출력과 일반 텍스트를 전환하려는 위치에
    # 사용하기 위한 것입니다.
    # 
    # 매개변수:
    # metaTagParts_ref - 이는 제공된 템플리트에서 읽음으로써 메타 태그의 디코드된 파트에 대한 참조입니다.
    #                     0 요소는 존재하는 기타 다른 요소가 원래 입력에서 디코드된 매개변수를 보유하는 동안
    #                    메타 태그의 이름입니다.
    #                    원본 입력은 "::" 경계로 분리됩니다. 완전한 원본 태그는
    #                    다음 명령문에서 다시 구성될 수 있습니다.
    #                    $origMetaTag = join("::", @{$metaTagParts_ref});
    #  entityDefObj    - 이는 템플리트가 보유하는 레코드 유형에 대한 ClearQuest 엔티티 정의 오브젝트입니다.
    #  isHTMLContent   - 이는 부울 플래그이며 1로 설정될 때 원하는 경우 적절히 형식화된 HTML로 결과를 렌더링할 수 있음을 의미합니다.
    #                    그렇지 않으면 리턴하는 모는 결과가 일반 텍스트로 처리됩니다.
    #  isTest	       - 이는 부울 플래그이며 1로 설정될 때 태그 확장이 AND NOT 값을 생성할 수 있다는 오류를 리턴해야 함을 표시합니다.
    #                    isTest 모드에서 널 문자열을 리턴한다는 것은 오류가 없음을 의미합니다.
    #                    이 함수는 태그 사용을 유효성 검증하는 데 사용됩니다.
    
    EMP_DebugOut("START - Add custom meta tags");
    my $errorTags = "";     # 오류 텍스트를 이 변수에 넣습니다. 이는 EmailPlusTemplate에서 디버그 창에 표시됩니다.
    my $fieldValue = "";    # MetaTag 표현식의 결과를 이 변수에 넣습니다. 이 값은 EmailPlus 알림에 포함됩니다.
    
    # 사용자 정의 태그를 처리합니다.
    
    my $customTag = lc($metaTagParts_ref->[0]);

    # 사용자의 처리를 여기에 추가하십시오.
    # ========================
    # 메타 태그는 소문자로 변환됨을 주의하십시오. 또한 모든 리터럴 값은 소문자로 입력해야 합니다.
    # 다음은 템플리트 규칙 작성자가 태그 이름에 대소문자 혼합을 사용할 경우를 핸들합니다.
    
    if ($customTag eq "nameoftemplate") {
        # 이는 EmailPlusTemplate 템플리트의 고유 이름을 리턴하는 사용자 정의 메타 태그의 예제입니다.
        # EmailPlusTemplate 템플리트에서 대소문자를 구분하지 않는 #@NAMEOFTEMPLATE@# 메타 태그를 사용할 수 있습니다.   	
			if ($session->HasValue("EMP::CONTEXT")) {
	    	my $context = $session->GetNameValue("EMP::CONTEXT");
			my($ruleName,$templateName) = split(/\|\|/,$context);
			$fieldValue = $templateName;
			# 고유한 TemplateName은 세 개의 파트로 구성됩니다. RecordType TemplateKind TemplateName
		}
		else {
		    # EMP::CONTEXT 세션 변수가 정의되지 않으면 결과로 오류 메시지를 리턴합니다.
		    my $errmsg = 'TemplateName could not be established using the MetaTag: '.$metaTagParts_ref->[0];

            # 메시지 본문 형식이 HTML인 경우 오류를 형식화하기 위해 EMP_MakeEmbeddedErrorMessage 함수를 사용하십시오.
			$fieldValue = EMP_MakeEmbeddedErrorMessage($errmsg,$isHTMLContent);
		}
    }
    # ================================================
    # 이 더미는 테스트용이며 제거될 수 있습니다. START->
    elsif ($customTag eq "dummy") {
        $fieldValue = "Customized test tag ".localtime();
    }
    # <- END 이 더미는 테스트용이며 제거될 수 있습니다.
    # ================================================
    else {
        # Catches Undefined tags
        $errorTags .= "ERROR: Undefined MetaTag: ".$metaTagParts_ref->[0]."\n";
    }
    
    # 모드에 따라 값 또는 오류 문자열을 리턴합니다
    my $result = "";    # 리턴 값
    if ($isTest) {
        # EmailPlusTemplate 레코드의 디버그 창에 오류가 표시됩니다.
        $result = $errorTags;
    }
    else {
        # 이는 EmailPlus 알림 메시지에 삽입되는 항목입니다.
        $result = $fieldValue;
    }
    
    EMP_DebugOut("END - result \= \<$result\>");
    return $result;
}

피드백