다음을 통해 공유


BaseFunctoid 사용

모든 사용자 지정 펑토이드는 BaseFunctoid 클래스에서 파생되어야 합니다. 먼저 생성자를 재정의하고 사용자 지정 펑토이드에 대해 BizTalk Mapper에 알리는 호출 집합을 만들어야 합니다. 그런 다음 펑토이드 논리를 작성해야 합니다.

생성자 재정의

펑토이드의 특징을 지정하려면 클래스 생성자 재정의 메서드에서 여러 작업을 수행해야 합니다. 이러한 작업은 솔루션에 필요한 펑토이드 관련 코드에 추가됩니다. 다음 표에서는 기본 작업에 대해 설명합니다.

과업 이러한 메서드 또는 속성 사용 코멘트
펑토이드에 고유 ID 할당 아이디 사용되지 않은 6000보다 큰 값을 사용합니다. 6000 미만의 값은 내부 펑토이드에서 사용하도록 예약되어 있습니다.
펑토이드에 부작용이 있는지 여부를 나타냅니다. 부작용이 있다 매퍼에서 생성된 XSLT 코드를 최적화하는 데 사용됩니다. 이 속성은 기본적으로 true입니다.
리소스 어셈블리를 가리킵니다. SetupResourceAssembly 프로젝트에 리소스 파일을 포함합니다. Visual Studio를 사용하여 빌드하는 경우 리소스 어셈블리는 ProjectName.ResourceName이어야 합니다.
BizTalk 매퍼 팔레트에 사용자 지정 펑토이드를 표시하도록 설정 SetName

SetTooltip

SetDescription

SetBitmap
이름, 툴팁 및 설명에 대한 문자열을 가리키는 리소스 ID를 사용합니다. 16x16 픽셀 비트맵을 사용하십시오.
하나 이상의 범주에 펑토이드 할당 범주 하나 이상의 Microsoft.BizTalk.BaseFunctoids.펑토이드카테고리 값을 사용하여 펑토이드의 범주를 지정합니다.
허용되는 매개 변수 수 지정 SetMinParams

SetMaxParams

HasVariableInputs
SetMinParams 메서드를 사용하여 필수 매개 변수 수를 설정하고 SetMaxParams 메서드를 사용하여 선택적 매개 변수 수를 설정합니다. 다음 지침을 사용하여 이러한 값을 설정합니다.

- 선택적 매개 변수가 없는 경우 min = max를 설정합니다.
- 일부 선택적 매개 변수가 있는 경우 max = (선택적 매개 변수 수 - 최소 매개 변수 수)를 설정합니다.
- 무제한 선택적 매개 변수를 허용하려면 최대값을 설정하지 마세요.
- 입력 수가 가변적인 경우 min 또는 max를 설정하지 않고 HasVariableInputs를 = true 설정합니다.
펑토이드에 연결할 수 있는 항목 선언 AddInputConnectionType 펑토이드가 지원하는 각 Microsoft.BizTalk.BaseFunctoids.ConnectionType에 대해 AddInputConnectionType을 한 번 호출합니다.
펑토이드가 연결할 수 있는 항목 선언 출력연결유형 Microsoft.BizTalk.BaseFunctoids.ConnectionType의 값을 사용하여 BizTalk Mapper에 펑토이드에서 출력을 받을 수 있는 개체 유형을 알릴 수 있습니다. OR을 사용하여 여러 연결 형식을 지정합니다.
BizTalk Server에 펑토이드에 대해 호출할 메서드를 알려주세요. SetExternalFunctionName

SetExternalFunctionName2

SetExternalFunctionName3
누적 펑토이드의 경우 SetExternalFunctionName 을 사용하여 초기화 함수를 설정하고, SetExternalFunctionName2 를 사용하여 누적 함수를 설정하고, SetExternalFunctionName3 을 사용하여 누적된 값을 반환하는 함수를 지정합니다. 누적이 아닌 펑토이드의 경우 SetExternalFunctionName 을 사용하여 펑토이드 메서드를 설정합니다.
BizTalk Server가 인라인 코드를 사용하여 펑토이드를 호출하도록 합니다. AddScriptTypeSupport SetScriptBuffer Microsoft.BizTalk.BaseFunctoids.ScriptType으로 AddScriptTypeSupport를 호출하여 인라인 코드를 사용하도록 설정합니다. SetScriptBuffer를 호출하여 펑토이드에 대한 코드를 전달합니다. 이 코드는 맵에 복사됩니다.
인라인 펑토이드에 대한 전역 변수 선언 SetScriptGlobalBuffer 모든 선언은 지도에 포함된 다른 인라인 스크립트에 표시됩니다.
인라인 함수에 필요한 도우미 함수를 명시합니다. RequiredGlobalHelperFunctions InlineGlobalHelperFunction 열거형의 값을 사용하여 필요한 도우미 함수를 지정합니다. OR을 사용하여 여러 도우미 함수를 지정합니다.
펑토이드에 전달된 매개 변수의 유효성 검사 IsDate

IsNumeric
이러한 함수는 예외를 throw하지 않고 true/false 답변을 제공합니다.

펑토이드 논리 구현

펑토이드를 유용하게 만들려면 펑토이드 범주에 따라 하나 이상의 메서드를 구현해야 합니다. 펑토이드가 누적된 경우 세 가지 메서드를 제공해야 합니다. 하나는 초기화를 위한 메서드이고, 다른 하나는 누적된 값을 반환하는 것입니다. 펑토이드가 누적되지 않은 경우 값을 반환하는 메서드를 하나 제공해야 합니다.

또한 펑토이드 구현 코드를 맵에 인라인으로 복사하거나 컴파일된 .NET 어셈블리 내에 보관하고 참조를 통해 사용해야 하는지 결정해야 합니다.

다음과 같은 경우 인라인 펑토이드를 사용하는 것이 좋습니다.

  • 다른 사용자가 비즈니스 논리를 읽고 수정해도 됩니다.

  • 펑토이드는 맵에서 지원하는 .NET Framework 네임스페이스에만 의존합니다. 사용 가능한 네임스페이스는 인라인 C#, JScript .NET 및 Visual Basic .NET을 사용하여 스크립팅을 참조하세요.

  • BizTalk 솔루션을 사용하여 다른 어셈블리를 배포하고 유지 관리하지 않으려는 경우

  • 변수를 공유하는 일련의 펑토이드를 작성합니다.

    다음과 같은 경우 참조된 펑토이드를 사용하는 것이 좋습니다.

  • 비즈니스 논리를 다른 사용자가 보거나 수정할 수 있는 맵에 복사하지 않도록 합니다.

  • 펑터이드는 맵에서 지원하지 않는 .NET Framework 클래스에 의존합니다.

  • .NET Framework에서 제공하는 추가 기능은 BizTalk 솔루션을 사용하여 다른 어셈블리를 배포하고 유지 관리하는 것을 정당화합니다.

또한 참조하십시오

사용자 정의 참조 기능 요소 개발
사용자 지정 인라인 함수 개발
사용자 정의 누적 함수 개발
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid