2단계: SAP 아티팩트에 대한 애플리케이션 정의 파일 만들기
완료 시간: 15분
목표: Microsoft SharePoint Server의 비즈니스 Data Catalog 기능은 LOB(기간 업무) 애플리케이션의 데이터를 포털에 노출하고 통합합니다. 이 데이터를 포털 사이트에 통합하려면 Microsoft Office SharePoint Server에서 사용할 수 있는 애플리케이션 정의 파일을 빌드해야 합니다.
Microsoft Office SharePoint Server 2007 SDK에서 사용할 수 있는 비즈니스 Data Catalog 정의 편집기 도구를 사용하면 Business Data Catalog 대한 애플리케이션 정의 파일을 만들 수 있습니다. 이 도구는 정의 파일에 대한 XML 파일을 자동으로 생성하므로 XML 편집기에서 파일을 수동으로 만들 필요가 없습니다.
만드는 Microsoft Office SharePoint Server 애플리케이션의 목적은 다음과 같습니다.
고객 이름을 기반으로 SAP 시스템에서 고객을 검색합니다.
가져온 고객 목록에서 고객을 선택하고 고객의 세부 정보를 검색합니다.
가져온 고객 목록에서 고객을 선택하고 고객의 판매 주문을 검색합니다.
이러한 각 요구 사항에 대해 비즈니스 Data Catalog 정의 편집기 도구에서 일련의 작업을 완료해야 합니다. 이 항목에서는 이러한 작업을 수행하는 방법에 대한 지침을 제공합니다.
사전 요구 사항
Microsoft Office SharePoint Server 2007 SDK의 일부로 비즈니스 Data Catalog 정의 편집기가 설치되어 있어야 합니다.
애플리케이션 정의 파일 만들기
이 항목에서는 WCF 서비스에 대한 애플리케이션 정의 파일을 만드는 단계별 지침을 제공합니다.
WCF LOB 서비스에 연결하고 엔터티 만들기
서비스에 대한 WSDL(웹 서비스 설명 언어)을 추출하려면 WCF 서비스에 연결해야 합니다. WSDL에서 비즈니스 Data Catalog 정의 편집기는 메서드를 추출합니다. 이러한 메서드를 사용하여 엔터티를 만들 수 있습니다. 이 예제에서는 고객 및 판매 주문에 대해 각각 하나씩 두 개의 엔터티가 만들어집니다.
WCF 서비스에 연결하고 엔터티를 만들려면
비즈니스 Data Catalog 정의 편집기를 시작합니다. 시작 메뉴에서 Microsoft Business Data Catalog 정의 편집기를 클릭합니다.
도구 모음에서 LOB 시스템 추가를 클릭합니다.
LOB 시스템 추가 창에서 Webservice에 연결을 클릭합니다.
URL 상자에 WCF 서비스의 URL을 입력합니다. URL은 다음 형식이어야 합니다.
https://<computer_name>/Customer_Order/Rfc.svc?wsdl
여기서 Rfc.svc는 Rfc 계약에 대해 생성된 파일입니다.
URL은 1 단계: SAP Artifacts를 WCF 서비스로 게시 항목에 설명된 대로 WCF 서비스가 성공적으로 게시되었는지 여부를 테스트할 때 사용할 수 있습니다.
연결을 클릭합니다.
WCF 어댑터 서비스 개발 마법사에서 선택한 작업을 보려면 웹 메서드 추가 탭을 클릭합니다. 다음과 같은 메서드가 표시됩니다.
SD_RFC_CUSTOMER_GET
BAPI_SALESORDER_GETLIST
에 웹 메서드 추가
메서드를 디자인 화면으로 끕니다. 두 작업을 다른 엔터티로 끌어야 합니다.
웹 메서드 에
확인을 클릭합니다.
LOB 시스템 이름 입력 대화 상자의 LOB 시스템 이름 상자에 이름을 입력합니다. 이 예제에서는 Customer_Order 호출한 다음 확인을 클릭합니다.
비즈니스 Data Catalog 정의 편집기에서 두 엔터티는 Entity0 및 Entity1로 나열됩니다. 이러한 엔터티에 친숙한 이름을 지정합니다. SD_RFC_CUSTOMER_GET 엔터티의 이름을 Customer로 바꾸고 BAPI_SALESORDER_GETLIST 엔터티의 이름을 SalesOrder로 바꿉니다. 엔터티 이름을 바꾸려면 다음 단계를 수행합니다.
Customer_Order 노드를 확장한 다음 엔터티 노드를 확장합니다.
Entity0 노드를 선택합니다.
속성 창의 이름 상자에 Customer를 입력합니다.
Entity1 노드를 선택합니다.
속성 창의 이름 상자에 SalesOrder를 입력합니다.
메서드에 대한 사용자 이름 및 암호 헤더 지정
SAP 시스템에서 선택한 RFC에 대한 WCF 서비스를 만들 때 엔드포인트 동작 구성의 일부로 사용자 이름 및 암호 헤더를 지정했습니다. 1단계: SAP 아티팩트 게시를 WCF 서비스로 참조하세요. 메서드 속성에 대해 동일한 값을 지정해야 합니다.
사용자 이름 및 암호 헤더를 지정하려면
SD_RFC_CUSTOMER_GET 메서드의 사용자 이름 및 암호 헤더를 추가합니다.
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장합니다.
SD_RFC_CUSTOMER_GET 노드를 클릭하고 속성 창에서 속성 상자의 줄임표(...) 단추를 클릭합니다.
PropertyView 컬렉션 편집기 창에서 추가를 클릭하고 속성 창에서 이름 상자에 HttpHeaderUserName을 입력합니다. 마찬가지로 PropertyValue 상자에 MyUserHeader를 입력합니다. 형식 상자에서 System.String을 선택합니다.
PropertyView 컬렉션 편집기 창에서 추가를 클릭하고 속성 창에서 이름 상자에 HttpHeaderPassword를 입력합니다. 마찬가지로 PropertyValue 상자에 MyPassHeader를 입력합니다. 형식 상자에서 System.String을 선택합니다.
확인을 클릭합니다.
BAPI_SALESORDER_GETLIST 메서드에 대한 사용자 이름 및 암호 헤더를 추가합니다.
메타데이터 개체 창에서 SalesOrder 노드를 확장한 다음 메서드 노드를 확장합니다.
BAPI_SALESORDER_GETLIST 노드를 클릭하고 속성 창에서 속성 상자의 줄임표(...) 단추를 클릭합니다.
PropertyView 컬렉션 편집기 창에서 추가를 클릭하고 속성 창에서 이름 상자에 HttpHeaderUserName을 입력합니다. 마찬가지로 PropertyValue 상자에 MyUserHeader를 입력합니다. 형식 상자에서 System.String을 선택합니다.
PropertyView 컬렉션 편집기 창에서 추가를 클릭하고 속성 창에서 이름 상자에 HttpHeaderPassword를 입력합니다. 마찬가지로 PropertyValue 상자에 MyPassHeader를 입력합니다. 형식 상자에서 System.String을 선택합니다.
확인을 클릭합니다.
SAP 시스템에 연결하기 위한 단일 Sign-On 설정
이 항목의 모든 절차를 완료한 후에는 SharePoint 애플리케이션으로 가져올 수 있는 애플리케이션 정의 파일을 만듭니다. 애플리케이션에서 SAP 메서드를 호출하여 SAP 시스템에서 관련 데이터를 검색합니다. 이를 사용하도록 설정하려면 SAP 시스템의 사용자와 SharePoint 애플리케이션의 사용자 간에 매핑을 만들어야 합니다. 애플리케이션 정의 파일을 가져온 후 SharePoint 중앙 관리 콘솔에서 이 매핑을 만듭니다.
그러나 매핑을 만들려면 Business Data Catalog 정의 편집기에서 SecondarySsoApplicationId 속성을 설정해야 합니다.
SecondarySsoApplicationId 속성을 설정하려면
메타데이터 개체 창에서 Customer_Order 노드를 확장한 다음 인스턴스 노드를 확장합니다 .
Customer_Order_Instance 클릭하고 속성 창에서 속성 상자의 줄임표(...) 단추를 클릭합니다.
PropertyView 컬렉션 편집기 창에서 추가를 클릭하고 속성 창에서 이름 상자에 SecondarySsoApplicationId를 입력합니다. 마찬가지로 PropertyValue 상자에 SAPSSO를 입력합니다. 형식 상자에서 System.String을 선택합니다.
추가
확인을 클릭합니다.
요구 사항 1: 고객 이름에 따라 고객 검색
고객 이름에 따라 고객을 검색하는 데 사용할 수 있는 애플리케이션 정의 파일을 만들려면 다음 작업 집합을 수행해야 합니다.
SD_RFC_CUSTOMER_GET 메서드에서 필터를 만들고 고객 이름을 저장하는 매개 변수에 매핑합니다.
SD_RFC_CUSTOMER_GET 메서드에 대한 Finder 메서드 instance 만듭니다. Finder 메서드는 필터를 기반으로 레코드 목록을 검색합니다.
필터를 만들고 고객 이름 매개 변수에 매핑하려면
필터를 만듭니다.
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장합니다.
SD_RFC_CUSTOMER_GET 메서드를 확장하고 필터를 마우스 오른쪽 단추로 클릭한 다음 필터 추가를 클릭합니다.
메서드 에
속성 창의 이름 상자에 CustomerName을 입력합니다.
필터 의 합니다.
FilterType 속성에 대해 와일드카드필터를 선택합니다.
필터를 SD_RFC_CUSTOMER_GET 메서드의 NAME1 매개 변수에 매핑합니다.
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장합니다.
SD_RFC_CUSTOMER_GET 메서드를 확장한 다음 매개 변수 노드를 확장합니다.
NAME1 노드를 확장하고 두 번째 NAME1 노드를 클릭합니다. NAME1 매개 변수에는 고객의 이름이 포함됩니다.
속성 창의 FilterDescriptor 목록에서 CustomerName을 선택합니다.
에 필터 매핑
SD_RFC_CUSTOMER_GET 메서드에 대한 Finder 메서드 instance 만들려면
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장합니다.
SD_RFC_CUSTOMER_GET 노드를 확장하고 인스턴스를 마우스 오른쪽 단추로 클릭한 다음 메서드 인스턴스 추가를 클릭하여 메서드 인스턴스 만들기 창을 엽니다.
추가
메서드 인스턴스 만들기 창에서 메서드 인스턴스 형식에 대한 Finder를 클릭합니다. TypeDescriptor 반환에 CUSTOMER_T 선택합니다.
추가
확인을 클릭합니다.
속성 창의 이름 상자에 GetCustomerByName_Instance 입력합니다.
요구 사항 2: 고객 목록에서 특정 고객에 대한 세부 정보 검색
고객 이름에 따라 고객을 검색하는 데 사용할 수 있는 애플리케이션 정의 파일을 만들려면 다음 작업 집합을 수행해야 합니다.
SD_RFC_CUSTOMER_GET 메서드에서 식별자를 만들고 고객 번호를 저장하는 매개 변수에 매핑합니다.
SD_RFC_CUSTOMER_GET 메서드에 대한 특정 Finder 메서드 instance 만듭니다. 특정 Finder 메서드는 식별자를 기반으로 특정 레코드를 찾습니다.
식별자를 만들고 고객 번호 매개 변수에 매핑하려면
고객 엔터티에 대한 식별자를 만듭니다.
메타데이터 개체 창에서 고객 노드를 확장합니다.
식별자 노드를 마우스 오른쪽 단추로 클릭한 다음 식별자 추가를 선택합니다.
에
속성 창의 이름 상자에 CustomerID를 입력합니다.
형식 상자에서 System.String을 선택합니다.
의 이름을 지정합니다.
식별자를 SD_RFC_CUSTOMER_GET 메서드의 키 매개 변수에 매핑합니다.
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장합니다.
SD_RFC_CUSTOMER_GET 메서드를 확장한 다음 매개 변수 노드를 확장합니다.
KUNNR 매개 변수를 확장한 다음 두 번째 KUNNR 노드를 클릭합니다.
속성 창의 식별자 목록에서 CustomerID[Customer]를 선택합니다.
에 매핑
입력 매개 변수와 반환 매개 변수 간의 연결을 설정합니다.
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장합니다.
SD_RFC_CUSTOMER_GET 메서드를 확장한 다음 매개 변수 노드를 확장합니다.
CUSTOMER_T 노드, 두 번째 CUSTOMER_T 노드, 항목 노드를 차례로 확장한 다음, KUNNR 노드를 클릭합니다.
속성 창의 식별자 목록에서 CustomerID[Customer]를 선택합니다.
SD_RFC_CUSTOMER_GET 메서드에 대한 특정 Finder 메서드 instance 만들려면
메타데이터 개체 창에서 고객 노드를 확장한 다음 메서드 노드를 확장 합니다 .
SD_RFC_CUSTOMER_GET 노드를 확장하고 인스턴스를 마우스 오른쪽 단추로 클릭한 다음 메서드 인스턴스 추가를 선택하여 메서드 인스턴스 만들기 창을 엽니다.
추가
메서드 인스턴스 만들기 창에서 메서드 인스턴스 유형에 대한 특정 찾기를 선택합니다. 마찬가지로 TypeDescriptor 반환에 CUSTOMER_T 선택합니다.
확인을 클릭합니다.
속성 창에서 이름 상자에 GetCustomerByNumber_Instance 입력합니다.
요구 사항 3: 고객 목록에서 특정 고객에 대한 판매 주문 세부 정보 검색
특정 고객의 판매 주문 세부 정보를 검색하는 데 사용할 수 있는 애플리케이션 정의 파일을 만들려면 다음 작업 집합을 수행해야 합니다.
Customer와 SalesOrder 엔터티 간의 연결을 설정합니다.
BAPI_SALESORDER_GETLIST 메서드에 대한 Association 메서드를 만듭니다.
Customer와 SalesOrder 엔터티 간의 연결을 만들려면
메타데이터 개체 창에서 SalesOrder 노드를 확장한 다음 메서드 노드를 확장합니다.
BAPI_SALESORDER_GETLIST 메서드를 확장한 다음 매개 변수 노드를 확장합니다.
CUSTOMER_NUMBER 노드를 확장한 다음 두 번째 CUSTOMER_NUMBER 노드를 클릭합니다.
속성 창의 식별자 목록에서 CustomerID[Customer]를 선택합니다.
간의 연결 만들기
BAPI_SALESORDER_GETLIST 메서드에 대한 Association 메서드 instance 만들려면
메타데이터 개체 창에서 SalesOrder 노드를 확장한 다음 메서드 노드를 확장합니다.
BAPI_SALESORDER_GETLIST 노드를 확장하고 인스턴스를 마우스 오른쪽 단추로 클릭한 다음 메서드 인스턴스 추가를 선택하여 메서드 인스턴스 만들기 창을 엽니다.
추가
메서드 인스턴스 만들기 창에서 메서드 인스턴스 유형에 대한 연결을 선택합니다.
원본 엔터티 목록에서 고객을 선택합니다.
TypeDescriptor 반환 목록에서 SALES_ORDERS 선택합니다.
확인을 클릭합니다.
속성 창에서 이름 상자에 SalesOrderForCustomer_Instance 입력합니다.
의 이름을 지정합니다.
System.Nullable 형식의 매개 변수 제거
BAPI_SALESORDER_GETLIST 메서드에 대한 Association 메서드 instance 만드는 동안 반환 형식을 SALES_ORDERS 선택했습니다. SALES_ORDER 매개 변수를 확장하면 일부 매개 변수가 System.Nullable 형식임을 알 수 있습니다. Business Data Catalog 정의 편집기에서 매개 변수를 선택하고 TypeName 속성 값을 확인하여 매개 변수 형식을 볼 수 있습니다.
이러한 매개 변수의 경우 비즈니스 Data Catalog 정의 편집기는 이름이 같지만 접미사가 "지정됨"인 다른 매개 변수를 만듭니다. 예를 들어 매개 변수 ITM_NUMBER 확인하고 ITM_NUMBERSpecified. Microsoft Office SharePoint Server는 System.Nullable 매개 변수를 지원하지 않습니다. 따라서 System.Nullable 매개 변수 형식이 포함된 레코드를 시도하면 예외가 throw됩니다. 따라서 비즈니스 Data Catalog 정의 편집기에서 두 매개 변수("지정됨" 접미사와 이름이 같을 경우 및 없음)를 모두 제거해야 합니다.
System.Nullable 형식의 매개 변수를 제거하려면
메타데이터 개체 창에서 SalesOrder 노드를 확장한 다음 메서드 노드를 확장합니다.
BAPI_SALESORDER_GETLIST 노드를 확장한 다음 매개 변수 노드를 확장합니다.
SALES_ORDERS 확장하고 두 번째 SALES_ORDERS 확장한 다음 항목을 확장합니다.
이름에 "지정됨" 접미사가 포함된 매개 변수를 마우스 오른쪽 단추로 클릭한 다음 삭제를 선택합니다.
접미사 없이 삭제한 매개 변수와 이름이 같은 매개 변수를 마우스 오른쪽 단추로 클릭한 다음 삭제를 선택합니다. 일반적으로 이 매개 변수는 "지정됨" 접미사가 있는 매개 변수 바로 앞에 있습니다.
기본 매개 변수 설정
BAPI_SALESORDER_GETLIST 두 개의 매개 변수를 사용합니다. 이러한 매개 변수 중 하나인 TRANSACTION_GROUP 기본 매개 변수입니다. 따라서 이 매개 변수의 기본값을 설정해야 합니다.
TRANSACTION_GROUP 기본값을 설정하려면
메타데이터 개체 창에서 SalesOrder 노드를 확장한 다음 메서드 노드를 확장 합니다 .
BAPI_SALESORDER_GETLIST 노드를 확장한 다음 인스턴스 노드를 확장합니다.
instance SalesOrderForCustomer_Instance 메서드를 선택하고 속성 창에서 DefaultValues 상자에 대해 줄임표 단추(...)를 클릭합니다.
편집 창에서 TRANSACTION_GROUP 노드를 확장하고 TRANSACTION_GROUP 상자에 기본값 0을 지정합니다.
메서드 instance 에 합니다.
닫기를 클릭합니다.
애플리케이션 정의를 파일로 내보내기
이제 SAP 시스템 instance 메타데이터가 포함된 애플리케이션 정의를 만들었습니다. 이 정의를 Microsoft Office SharePoint Server로 가져올 수 있는 XML 파일로 내보내야 합니다.
애플리케이션 정의를 파일로 내보내려면
메타데이터 개체 창에서 Customer_Order 노드를 마우스 오른쪽 단추로 클릭한 다음 내보내기를 클릭합니다.
파일을 Customer_Order.xml 저장합니다.
다음 단계
이제 SAP 시스템에서 데이터를 검색하는 SharePoint 애플리케이션을 만들어야 합니다. 지침은 3단계: SAP에서 데이터를 검색하는 SharePoint 애플리케이션 만들기 를 참조하세요.