다음을 통해 공유


BaseFunctoid 사용

사용자 지정 펑토이드는 모두 BaseFunctoid 클래스로부터 파생되어야 합니다. 먼저 생성자를 재정의하고 BizTalk 맵 편집기에 사용자 지정 펑토이드에 대해 알려 주는 일련의 호출을 수행해야 합니다. 그런 다음 펑토이드 논리를 작성해야 합니다.

생성자 재정의

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

Task 사용되는 메서드 또는 속성 의견
펑토이드에 고유 ID 할당 ID 사용되지 않은 6000보다 큰 값을 사용합니다. 6000보다 작은 값은 내부 펑토이드에 사용하도록 예약되어 있습니다.
펑토이드에 파생 작업이 있는지 여부 지정 HasSideEffects 생성된 XSLT 코드를 최적화하기 위해 맵 편집기에서 사용됩니다. 이 속성의 기본값은 True입니다.
리소스 어셈블리 가리키기 SetupResourceAssembly 프로젝트에 리소스 파일을 포함시킵니다. Visual Studio를 사용하여 빌드하는 경우 리소스 어셈블리는 ProjectName.ResourceName이어야 합니다.
사용자 지정 펑토이드가 BizTalk 맵 편집기 팔레트에 표시되도록 설정 SetName

SetTooltip

SetDescription

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

SetMaxParams

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

- 선택적 매개 변수가 없는 경우 min = max를 설정합니다.
- 일부 선택적 매개 변수가 있는 경우 max = (선택적 매개 변수 수 - 최소 매개 변수 수)를 설정합니다.
- 선택적 매개 변수를 무제한으로 허용하려면 최대를 설정하지 마세요.
- 입력 수가 가변적인 경우 min 또는 max를 설정하지 말고 HasVariableInputs를 = true 설정합니다.
펑토이드에 연결할 수 있는 항목 선언 AddInputConnectionType 펑토이드가 지원하는 각 Microsoft.BizTalk.BaseFunctoids.ConnectionType 에 대해 AddInputConnectionType 을 한 번 호출합니다.
펑토이드가 연결할 수 있는 항목 선언 OutputConnectionType Microsoft.BizTalk.BaseFunctoids.ConnectionType 의 값을 사용하여 펑토이드에서 출력을 받을 수 있는 개체 형식을 BizTalk 맵 편집기에 알립니다. 연결 유형을 여러 개 지정하려면 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
이러한 함수는 예외를 발생시키지 않고 True/False 응답을 제공합니다.

펑토이드 논리 구현

펑토이드를 유용하게 하려면 펑토이드 범주에 따라 메서드를 하나 이상 구현해야 합니다. 누적 펑토이드의 경우 초기화, 누적 및 누적 값 반환을 위해 각각 하나씩, 총 세 개의 메서드를 제공해야 합니다. 누적 펑토이드가 아닌 경우 값을 반환하는 한 개의 메서드만 제공하면 됩니다.

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

다음과 같은 경우 인라인 펑토이드 사용을 고려하십시오.

  • 다른 사람이 비즈니스 논리를 읽고 수정할 수 있는 경우

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

  • BizTalk 솔루션과 함께 다른 어셈블리를 배포 및 유지 관리하지 않으려는 경우

  • 변수를 공유하는 일련의 펑토이드를 작성하는 경우

    다음과 같은 경우 참조 펑토이드 사용을 고려하십시오.

  • 다른 사람이 보거나 수정할 수 있는 맵에 비즈니스 논리를 복사하지 않으려는 경우

  • 펑토이드가 맵에서 지원하지 않는 .NET Framework 클래스를 사용하는 경우

  • .NET Framework에서 제공하는 추가 기능을 위해 BizTalk 솔루션과 함께 다른 어셈블리를 배포 및 유지 관리해야 하는 경우

참고 항목

사용자 지정 참조 펑토이드 개발
사용자 지정 인라인 펑토이드 개발
사용자 지정 누적 펑토이드 개발
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid