0

BizTalk Orchestration에서 CASE 문을 식 모양으로 작성하는 방법은 무엇입니까?BizTalk Expression Shape의 사례 식

아래 코드를 사용하여 시도했지만 "식별자 케이스가 존재하지 않습니다. 어셈블리 참조가 누락 되었습니까?"

switch case <value> 
{ 
    case "1": 
     construct message1 
     { 
      message1=message2; 
     } 
     break; 
    case default: 
     break; 
} 

답변

3

BizTalk 오케스트레이션 표현 편집기에는 variety of limitations이 있습니다. 특히 다른 곳에서 작성하는 많은 C# 코드가 허용되지 않습니다. switch 문이 하나의 예입니다.

일반 표현식 모양 (즉, 메시지 할당 모양이 아닌)을 사용하는 경우 IF-ELSE 문을 사용할 수 있습니다 (if 술어 내에서 마이너스 할당). Microsoft에서 C#의 하위 집합 만 허용하는 명시된 이유는 “to keep code for the business process separate from its implementation code.”

복잡한 메시지 할당을 수행하려는 경우 단일 표현 모양으로 채우지 않아야합니다 (Microsoft는 사용자를 막으려 고합니다). 대신에 각 분기가 적절한 메시지 할당/표현으로 이동하면서 케이스와 동등한 것으로 Decide shape을 사용할 수 있습니다.

몇 가지 브랜치 이상을 필요로하는 경우 지나치게 복잡한 오케스트레이션을 피하기 위해 모든 메시지 할당 논리를 사용하여 C# 도우미 어셈블리를 작성하는 것이 좋습니다.