WebSphere Product Center: 포털 인에이블먼트
버전 5.2
참고! 이 정보와 이 정보가 지원하는 제품을 사용하기 전에 본 문서의 마지막 부분에 있는 "주의사항"을 읽으십시오.
2005년 3월 21일
이 개정판은 새 개정판에 별도로 명시하지 않는 한 WebSphere Product Center, 버전 5.2(5724-I68) 모든 후속 릴리스와 수정에 적용됩니다.
Copyright International Business
Machines Corporations 2005. All rights reserved.
US Government Users Restricted Rights-Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
제 2 장 포털 통합 프레임워크의 구조
Product Center의
통합 프레임워크
WebSphere Portal Server의 웹 서비스 기능
데이터
Product Center 요청 및 응답 데이터
항목 스펙
구성요소
Product Center 중개자
웹 서비스 인터페이스
데이터 변환기
데이터 유형
데이터 Bean
사용자 인터페이스 구성요소
데이터 교환 서비스
서비스
국제화/로컬화
지원
보안 지원
자원
LDAP로 Portal Server 보안 구성
LDAP에 대한 데이터베이스 구성
LDAP에 대한
데이터베이스 구성
접미부 추가
포털 사용자 작성
포털 구성
포털 관리자 사용자 작성
공급자 포털에 대한 로그인 서비스 사용자 정의
Product Center 구성
결론
자원
샘플 포틀렛 - WorkWithItem
XML 메시지
항목을 표현하는 데이터 오브젝트
XMLGenerator 및 XMLParser
Product Center 중개자에 메소드 추가
포틀렛 작성
Product Center 서버의 웹 서비스
지시
공급자 포털 전개
공급자 포털 UI 사용자 정의
탐색 메뉴 작성
테마 및 스킨 설치
탭에서 포틀렛 배치
탭에 대한 액세스 권한 제공
구성 파일 갱신
구성 파일
결론
제 6 장 사용자 인터페이스
프레임워크
포틀렛 구조
포틀렛 인벤토리
제 7 장 메시지 형식
개요
포함된 스크립트 및 웹 서비스에 대한 개요
다른 메시지 형식
WebSphere Product Center의 포털 인에이블먼트는 고객이 거래 상대 포털을 빌드할 수 있는 기반을 제공합니다. 포털 이니셔티브는 수천 명의 사용자가 중요한 항목 데이터에 액세스할 수 있도록 하므로 WebSphere Product Center 구현의 가치를 크게 확장할 수 있습니다.
포털 기능에서 지원하는 비즈니스 프로세스의 예: 항목 작성 또는 수정, 동기화된 항목 정보 수정, 항목 대량 업로드, 사용자 특정 선택사항 및 제안, 항목 및 조건 데이터 입력 기능.
WebSphere Portal Server는 WebSphere Product Center와 쉽게 통합할 수 있습니다. Portal Server 통합에는 Portal Server에서 지정된 다음 조작을 수행하는 기능이 포함됩니다.
WebSphere Product Center에서 항목 추가
WebSphere Product Center에서 항목 수정
WebSphere Product Center에서 항목 삭제
GTIN(글로벌 상표 식별 번호), SKU(재고 유지 단위), GLN(글로벌 위치 번호)에 따른 항목 검색
지원 선택사항
CSV(쉼표로 분리된 값) 업로드 및 다운로드
대량 갱신
이 문서는 WebSphere Product Center 환경에서 다음 구성요소가 사용된다고 가정합니다.
현재, WebSphere Product Center는 Product Information Management 포틀렛을 제공하지 않습니다. 그러나, WebSphere Product Center는 포틀렛 및 공급자 포털 사용자 인터페이스 개발을 지원하는 데 필요한 API 및 메타데이터를 제공합니다.
이 장에서는 IBM WebSphere Product Center(이후부터는 Product Center라고 함)의 포틀렛을 작성하는 방법에 대해 설명합니다. 이 장은 Product Center에 사용자 인터페이스를 제공하기 위한 아키텍처에 대해 설명합니다.
통합 프레임워크는 포틀렛이 Product Center와 작업하고, 사용자가 Product Center 정보를 보고 이 정보로 작업할 수 있도록 지원합니다. 사용자 인터페이스 프레임워크와 Product Center 간의 통합은 Product Center의 웹 서비스 지원에 기초합니다.
아키텍처는 Product Center가 제공하는 웹 서비스 인터페이스를 통해 Product Center와 통신하는 포틀렛으로 구성됩니다(그림 1 참조). Product Center는 API 레이어로 사용할 수 있는 스크립팅 레이어를 제공합니다. 이 스크립트는 웹 서비스로도 제공될 수 있습니다. 웹 서비스는 Product Center에 표시해야 하는 모든 비즈니스 기능에 대해 작성됩니다. 이 웹 서비스와 상호작용하기 위한 상응하는 포틀렛이 작성됩니다. 웹 서비스는 Product Center에서 하나 이상의 스크립트를 실행하며, 다른 웹 서비스와 연동하여 원하는 비즈니스 기능을 제공합니다. 웹 서비스는 스크립트 및 기타 웹 서비스 간에 필요한 Choreography를 수행하므로 다음을 완료합니다.
그림 1
포털 통합용. XML 문서는 데이터 전송 모드이며 수신된 요청 메시지의 모드에 따라 응답이 즉시 또는 나중에 전송됩니다. 아래 그림 2는 전체 아키텍처에 대해 설명합니다.
그림 2
Product Center와 WebSphere Portal Server 간의 통신은 항상 문서 리터럴 기반의 XML 문서 변환으로 이루어집니다. ASYNC / SYNC 트랜잭션의 유지보수는 Product Center 웹 서비스 프레임워크에 종속되어야 하며 구현 스크립트 레벨에 종속되면 안됩니다. 이 기능으로 인해 조작은 스크립트 변경 없이 특정 시점에서 ASYNC / SYNC가 될 수 있습니다.
데이터 교환 형식은 XML이며, 데이터 모델은 트랜잭션을 처리하는 데 필요한 정보를 정의하는 단일 인벨롭 또는 컨테이너에 기초합니다. 인벨롭은 다음을 정의합니다.
표 1에 샘플 요청 XML 구조가 표시되었습니다.
표 1: 요청 XML
<wpc:envelope xmlns:wpc="http://ibm.com/wpc/" communicationVersion="5.2">
<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>
<wpc:wpcHeader>
<wpc:companyName>TSS</wpc:companyName>
<wpc:userID>Scott</wpc:userID>
<wpc:password>null</wpc:password>
<wpc:messageIdentifier> 905EF150-8F05-11D9-B150-B7A43B4A833E </wpc:messageIdentifier>
<wpc:timestamp>2005-03-07</wpc:timestamp>
<wpc:supplierId>1234567890123</wpc:supplierId>
</wpc:wpcHeader>
<wpc:wpcBody>
<wpc:wpcCommand type="ITEMDETAIL" mode="SYNC">
<wpc:wpcParentCategory />
<wpc:wpcCatalogName>CTG_PORTAL_MASTER </wpc:wpcCatalogName>
<wpc:wpcTradeItem ID="C139" />
</wpc:wpcCommand>
</wpc:wpcBody>
</wpc:envelope>
표 2에 대응하는 샘플 응답 XML이 표시되었습니다.
표 2: 응답 XML
<wpc:envelope communicationVersion="5.2" xmlns:wpc="http://ibm.com/wpc/">
<wpc:wpcHeader>
<wpc:companyName>TSS</wpc:companyName>
<wpc:userID>wpsadmin</wpc:userID>
<wpc:password>null</wpc:password>
<wpc:messageIdentifier>1110199602</wpc:messageIdentifier>
<wpc:timestamp>2005-03-07</wpc:timestamp>
</wpc:wpcHeader>
<wpc:wpcBody>
<wpc:wpcResponse>
<wpc:wpcEntityIdentifier>
<wpc:wpcMessageIdentifier>8CD1DD80-8F06-11D9-9D80-A9B52946044C</wpc:wpcMessageIdentifier>
</wpc:wpcEntityIdentifier>
<wpc:wpcNotification type="SUCCESS">
<wpc:notificationInfo>
<wpc:notificationCode>000</wpc:notificationCode>
<wpc:notificationMessage>SUCCESS</wpc:notificationMessage>
</wpc:notificationInfo>
</wpc:wpcNotification>
<wpc:wpcTradeItem ID="C144">
...
...
</wpc:wpcTradeItem>
</wpc:wpcResponse>
</wpc:wpcBody>
</wpc:envelope>
항목 스펙은 항목의 Product Center 특정 정의 및 속성 콜렉션입니다. 이러한 정의는 XML 문서 형식으로 캡처할 수 있습니다. 이 항목 스펙은 항목 및 속성 정의에 사용되는 여러 데이터 유형을 참조하는 데 사용됩니다. 항목 스펙을 보기 정의와 결합하면 자동 표현 모드 또는 개발자가 JSP를 수동으로 코드화해야 하는 경우, 포틀렛 화면을 표현하는 데 도움이 됩니다.
프레임워크는 Product Center와의 상호작용 및 데이터 변환을 수행하는 데 도움이 되는 구성요소 세트로 구성됩니다.
중개자는 포틀렛 및 Product Center 웹 서비스와 상호작용하는 데 도움이 됩니다. 중개자는 레이어에 대한 단일 접촉점 역할을 하며, 두 레이어 소모에 필요한 데이터 변환도 수행합니다. 중개자는 포틀렛이 작업할 수 있는 인터페이스로 표현됩니다.
웹 서비스 인터페이싱은 AXIS Web Services Invocation Framework를 사용하여 수행됩니다. 웹 서비스 레이어는 AXIS 클라이언트와 상호작용하여 Product Center에서 해당 웹 서비스 호출을 시작합니다. 웹 서비스 호출은 문서 리터럴 유형이고 SOAP이 통신 프로토콜로 사용되며 이는 현재 HTTP 전송을 통해 수행됩니다. 현재 웹 서비스 레이어는 XML 데이터를 교환하는 데 사용되며 첨부를 업로드하거나 다운로드할 때도 사용됩니다. AXIS에서 SwA(SOAP-with-Attachments) 구현은 이 용도로 사용됩니다. AXIS 프레임워크에 대한 자세한 정보는 이 장의 "자원" 섹션을 참조하십시오.
구성 파일은 사용자 인터페이스에서 조치를 수행하기 위해 호출해야 하는 웹 서비스 목록을 보유합니다. 조치 대 웹 서비스의 맵핑은 다음과 같이 포함됩니다.
표 3: 웹 서비스에 대한 조치 맵핑
<soap-url action="<action name>">http://<server name>:<server port>/services/<service name></soap-url>
<soap-url action="ADD">http://ibm.com:9557/webservices/addAction</soap-url>
중개자 레이어는 구문 분석기 및 생성기 세트를 사용하여 Product Center에서 XML 컨텐츠를 구문 분석하고 Product Center에서의 사용을 위해 생성된 XML 컨텐츠를 변환합니다. 이러한 변환기는 XML 형식의 데이터를 사전 정의 Java 오브젝트로 변환하거나 그 반대로 변환합니다. Java 오브젝트로 변환하려면 정의된 데이터 유형 및 데이터 오브젝트 세트에 대한 지원이 필요합니다. 이에 대해서는 아래 섹션에서 설명됩니다.
Product Center는 항목 정의에 대한 속성 세트를 정의합니다. 이러한 속성의 범위는 문자열, 숫자에서 그룹 속성까지 다양한 범위로 이루어집니다. 이러한 속성 유형 및 작동은 사용자 인터페이스 프레임워크 측에서 속성 및 속성 유형 클래스 세트로 캡처됩니다.
지원되는 전체 속성 목록은 그림 3에 나타나 있습니다. 속성은 유효성 검증, 포맷팅 및 표현 기능을 첨부할 수 있는 기반을 제공합니다.
데이터 Bean은 포틀렛에 표시되는 컨텐츠에 대한 지원을 제공하고, 포틀렛의 현재 상태 또는 모드 저장 측면에서 사용자 인터페이스 플로우를 제어합니다.
사용자 인터페이스 구성요소는 주로 사용자 인터페이스 표현, 사용자 상호작용 처리 및 Product Center에서 데이터를 페치하거나 저장하기 위해 중개자 레이어에 대해 특정 호출을 수행하는 것과 관련됩니다. 기본 사용자 인터페이스 구성요소는 포틀렛 및 포틀렛의 사용자 인터페이스 표현에 도움이 되는 태그 라이브러리입니다.
그림 3
Portal Server에 전개되는 포틀렛에는 특히, 포틀렛이 서로 다른 페이지에 존재하는 경우에 정보를 교환하는 방법은 없습니다. 포틀렛 간 통신은 포틀렛이 같은 페이지에 있는 경우에만 유효합니다. 데이터 교환 서비스는 모든 포틀렛에 대한 단일 접촉점을 제공하고 정보를 보유하는 기능이 있으며 포틀렛은 이 서비스를 사용하여 데이터를 교환합니다. 이 서비스는 현재 싱글톤이며 단순 Java 메소드 호출로 호출됩니다. 이 서비스는 더 큰 오브젝트 교환 세트 또는 유형을 처리하기 위해 확장되며 성능 조정 측면을 향상시키기 위해 별도의 응용프로그램으로도 전개됩니다.
사용자 인터페이스 프레임워크는 국제화 지원 및 보안을 제공하기 위해 Portal Server에 의해 제공되는 기본 하부 구조를 사용합니다.
Portal Server는 포털 프레임워크에 의해 표시되는 컨텐츠인 테마와 스킨을 로컬화하기 위해 사용자 정의 태그 및 자원 번들 세트를 제공합니다. 포틀렛 내의 컨텐츠는 레이블, 단추 및 표시되는 메시지에 컨텐츠를 제공하는 자원 번들 세트를사용하여 로컬화됩니다. Product Center에서 가져온 컨텐츠는 해당 응용프로그램 레벨에서 사용 가능한 로케일 지원에 따라 로컬화됩니다.
포털 기반의 사용자 인터페이스 프레임워크 및 Product Center는 LDAP를 사용자 레지스트리 보유 수단으로 사용합니다. Product Center 및 사용자 인터페이스 프레임워크에는 사용자 정보를 보유하는 별도의 사용자 스키마 세트가 있습니다. 이는 주로 포털 레벨에서 등록된 사용자가 이를 사용하여 공급자 또는 벤더 포털 상호작용을 수행하기 때문입니다. 반면에, Product Center에 등록된 사용자는 주로 시스템의 power 또는 admin 사용자입니다. 사용자 레지스트리 영역에서 다음 단계는 Product Center 및 프레임워크가 사용하는 스키마를 통합하는 것입니다. 이 단계에서도 공통 사용자 레지스트리 및 사용자 정의와 역할이 생성됩니다.
사용자 인증
벤더 포털 시나리오의 경우, 공급자 및 일반 사용자는 포털을 사용하여 등록하고 포털을 통해 로그인합니다. 사용자 관리 및 후속 사용자 인증은 포털의 LDAP 레벨에서 수행됩니다. 포털이 기초 Product Center 레이어와 공유하는 정보의 중요한 부분은 공급자 식별 정보입니다. 이 정보는 사용자가 작성하거나 작업한 데이터를 필터하는 데 사용됩니다.
사용자 권한
로그인한 사용자에 기초하는 데이터에 대한 권한 부여는 주로 Product Center의 주요 기능입니다. 현재 시스템 상태에서 권한은 기본적으로 데이터 필터링에 기초하는 공급자 ID입니다. 포털은 사용자가 관리자 또는 일반 사용자인지 여부에 따라 조치를 보고 수행할 수 있는 일정 수준의 포털 액세스 권한을 제공합니다.
다음은 Product Center의 포털 통합 프레임워크 아키텍처에 대해 설명합니다.
다음 섹션에서는 조직에서 공급자 포털 전개를 사용 가능하게 하는 데 필요한 환경 설정에 대해 자세히 설명합니다.
이 장에서는 다음 소프트웨어가 WebSphere Product Center의 일부 환경으로 설치되었다고 가정합니다.
사용할 운영 체제의 선택이 설치할 소프트웨어의 결합을 요구합니다. 공급자 포털이 작동할 기본 플랫폼은 Portal Server 버전 5.0.2.2입니다.
Websphere Product Center에 대한 포털 통합 설치에는 두 개의 압축 파일이 포함됩니다. 하나는 Portal Server에서 전개되고 다른 하나는 포털 통합을 위해 Product Center 서버에서 전개됩니다.
공급자 포털 설정에서 첫 번째 단계의 일부로 LDAP에 대한 Portal Server의 보안을 구성하십시오. 이 단계는 IBM DB2 , Directory Server 및 Directory Server 관리 도구가 설치되었다고 가정합니다.
이 단계에서는 LDAP에 대한 DB2 인스턴스를 구성합니다.
1. 시작 -> 프로그램 -> IBM Tivoli Directory Server -> 디렉토리 구성을 탐색하여 Directory Server 구성 도구를 여십시오.
2. 구성 도구의 왼쪽 분할창에서 관리자 DN/암호를 선택하십시오.
3. 필드에 다음 값을 입력하십시오.
4. 확인을 클릭하십시오.
5. 구성 도구의 왼쪽 분할창에서 데이터베이스 구성을 선택하십시오.
6. 새 데이터베이스 작성 옵션을 선택한 후 다음을 클릭하십시오.
7. DB2 관리 사용자의 ID 및 암호를 입력하십시오(대개, db2admin 및 password입니다.). 다음을 클릭하십시오.
8. 다음 화면에서 데이터베이스 이름으로 DB2 인스턴스 이름을 입력하십시오. 완료를 클릭하십시오.
이 단계에서는 LDAP 계층 구조의 접미부를 추가합니다.
1. 시작 -> 프로그램 -> IBM Tivoli Directory Server -> 디렉토리 구성을 탐색하여 Directory Server 구성 도구를 여십시오.
2. 구성 도구의 왼쪽 분할창에서 접미부 관리를 선택하십시오.
3. 접미부 DN 필드에 문자열 "dc=wps,dc=com"을 입력하십시오.
4. 추가를 클릭하십시오. 그런 다음, 확인을 클릭하십시오.
이 단계는 포털에 대한 액세스 권한이 부여되는 사용자 목록을 정의합니다.
1. 시작 -> 프로그램 -> IBM Tivoli Directory Server -> 디렉토리 구성을 탐색하여 Directory Server 구성 도구를 여십시오.
2. 구성 도구의 왼쪽 분할창에서 LDIF 데이터 가져오기를 선택하십시오. 그러면, LDIF 파일을 찾아보고 사용자 데이터를 가져오는 옵션이 있는 화면이 열립니다.
3. 공급자 포털에 필요한 LDIF 파일을 선택하고 가져오기를 수행하십시오. 타스크 메시지 표시 영역에서 가져오기 상태가 반영됩니다.
이 단계에서는 보안을 위한 포털을 구성합니다.
1. Directory Server가 설치되었으며 WebSphere Portal에 필요한 설정이 수행되었는지 확인하십시오.
2. <PortalServer_root>/config/wpconfig.properties 파일을 찾아 값을 변경하기 전에 백업 사본을 작성하십시오.
3. 텍스트 편집기를 사용하여 <wp_root>/config/wpconfig.properties 파일을 여십시오.
4. 접미부 DN "dc=yourco,dc=com"으로 끝나는 모든 항목을 "dc=wps,dc=com"으로 바꾸십시오.
5. 환경에 맞게 "LDAP Properties Configuration" 섹션의 다음 등록 정보를 편집하십시오.
WasUserid=uid=wpsbind,cn=users,dc=wps,dc=com
WasPassword=wpsbind
PortalAdminId=uid=wpsadmin,cn=users,dc=wps,dc=com
PortalAdminIdShort=wpsadmin
PortalAdminPwd=wpsadmin
LDAPHostName=localhost(IP Address of the LDAP Host machine)
LDAPPort=389
LDAPAdminUId=cn=root
LDAPAdminPwd=password
LDAPServerType=IBM_DIRECTORY_SERVER
LDAPBindID=uid=wpsbind,cn=users,dc=wps,dc=com
LDAPBindPassword=wpsbind
LDAPSuffix=dc=wps,dc=com
6. 파일을 저장하십시오.
7. 명령 프롬프트를 열고 <AppServer_root>/bin 디렉토리로 변경하십시오.
8. 다음 명령을 입력하십시오.
startServer server1
stopServer WebSphere_Portal
9. <PortalServer_root>/config 디렉토리로 변경하십시오.
10. 다음 명령을 입력하여 해당 구성 타스크를 실행하십시오.
WPSconfig.bat validate-ldap
참고: 구성 타스크에 실패하는 경우, wpconfig.properties 파일의 값이 유효한지 확인하십시오.
11. 다음 명령을 입력하여 LDAP 보안을 사용 가능하게 하는 적절한 구성 타스크를 실행하십시오.
WPSconfig.bat enable-security-ldap
12. <AppServer_root>/bin 디렉토리로 변경하고 다음 명령을 입력하십시오.
(a) stopServer server1
(b) startServer server1
(c) startServer WebSphere_PortalWebSphere Application Server에서 보안이 사용 가능한 상태에서 실행하는 경우, 명령을 입력할 때 보안 인증에 대한 사용자 ID 및 암호를 지정해야 합니다.
(d) stopServer server1 -user was_admin_userid -password was_admin_password
(e) startServer server1
(f) startServer WebSphere_Portal참고: Infocenter에서 몇몇 단계는 설치 유형 및 운영 환경에 따라 달라집니다. 이러한 단계는 요구사항에 따라 제외될 수 있습니다.
이 단계에서는 관리 특권으로 포털 사용자를 작성합니다.
1. Directory Server 웹 관리 도구에 로그인하십시오.
2. 스키마 관리 > 추가 속성을 선택하고 다음 속성을 추가하십시오.
WPCRole{Syntax - Directory String Syntax, Attribute Length - 50}
userStatus{Syntax - Boolean}
userGLN{Syntax - Directory String Syntax, Attribute Length - 50}
company{Syntax - Directory String Syntax, Attribute Length - 50}
3. 스키마 관리 > 추가 오브젝트 클래스를 선택하고 다음을 추가하십시오.
오브젝트 클래스: wpcUserClass
필수 속성 - abstract, company, UserStatus, WPCRole
선택적 속성 - userGLN
4. 이 변경사항을 저장하십시오.
5. 구성 도구에서 portalAdmin.ldif 파일을 가져오십시오. 참조용으로 샘플 Admin LDIF 파일이 첨부됩니다.
6. 포털에 대해 admin/admin/ibm으로 로그인하십시오.
포털은 Product Center에 인터페이스를 제공하며 이는 사용자가 포털에 로그인할 때 사용자 ID, 암호 및 회사 정보를 입력하도록 요구합니다. 따라서, Portal Server가 제공한 표준 로그인 페이지를 수정해야 합니다.
1. 로그인 페이지를 사용자 정의하기 전에 공급자 포털에 대해 관리 특권이 있는 사용자를 구성해야 합니다.
(a) 포털 관리자 사용자 ID 및 암호로 로그인하십시오.
(b) 맨 위 막대에서 관리 링크를 클릭하고 왼쪽 분할창에서 액세스 > 사용자 및 그룹을 선택하십시오.
(c) 표시된 그룹에서 wpsadmins를 선택하십시오.
(d) portalAdmin.ldif를 통해 작성한 "admin" 사용자를 추가하고 변경사항을 저장하십시오.그러면, "admin" 사용자가 공급자 포털에 대해 관리 특권을 갖게 됩니다.
2. 포털 사용자가 포털에 로그인하거나 로그아웃할 때 WP는 특정 로그인/로그아웃 명령을 실행합니다. 이러한 명령의 클래스 이름은 기본 설정 command.login = LoginUserAuth 및 command.logout = LogoutUserAuth로 등록 정보 파일 PortalServer_root>/shared/app/config/services/ConfigService.properties에 지정됩니다.
이러한 명령의 패키지 검색 경로는 등록 정보 파일 <PortalServer_root>/shared/app/config/services/LoaderService.properties에서 기본 설정을 사용하여 쉼표 분리 목록으로 지정됩니다.
command.path = com.ibm.wps.engine.commands
3. LDAP 관련 유틸리티에 필요한 customlogin.jar를 <PortalServer_Root>/shared/app 폴더에 넣으십시오.
4. LDAP 관련 유틸리티에 필요한 ibmjndi.jar를 <PortalServer_root>/shared/app 폴더에 넣으십시오.
5. 그런 다음, 포털 클래스 경로에서 새 클래스를 찾을 수 있는지 확인하고 명령 패키지를 LoaderService.properties의 command.path에 첫 번째 항목으로 추가하십시오.
예: command.path=com.ibm.ccd.ui.services.user, com.ibm.wps.engine.commands
6. 필요한 필드를 추가하여 <AppServer_root>/installedApps/<hostname>/wps.ear/wps.war/screens/html 폴더의 "Login.jsp"를 편집하십시오. 예를 들어, 다음 코드에서 "Company" 필드를 로그인 화면에 추가하고 Cancel 단추는 필요하지 않기 때문에 이 단추의 코드 부분을 주석 처리합니다.
<tr>
<td> </td>
<td align="<%= bidiAlignLeft %>" class="wpsEditText">
<label for="company">
<wps:text key="company" bundle="nls.field"/>
</label>
</td>
</tr>
<tr>
<td> </td>
<td> <input dir="ltr" class="wpsFieldText" size="16" value="" id="company" name="company" type="text"></td>
</tr>
7. Login.jsp의 nls 관련 항목을 <PortalServer_root>/shared/app/nls/field.properties에 있는 등록 정보 파일에 추가하십시오.
예: company = Company
8. Login.jsp 관련 오류 메시지를 <PortalServer_root>/shared/app/nls/problem.properties에 있는 등록 정보 파일에 추가하십시오.
9. 공급자 포털에 대해 다음 항목을 추가하십시오.
(a) login.invalid.userStatus = This User is InActive, Please contact your System Administrator.
(b) login.invalid.company = This User doesn't belong to this company, Please verify.
(c) ldap.not.configured = LDAP authentication service is failing. Please contact your System Administrator
다음 단계를 사용하여 Product Center를 Portal Server와 통합할 수 있도록 적절하게 구성하십시오.
1. common.properties에서 soap_company, soap_user 및 trigo_web_url의 값을 설정하십시오.
a) soap_company는 사용 중인 Product Center 회사의 이름입니다.
b) soap_user는 항상 Admin입니다.
c) trigo_web_url은 http://<ipaddress>:<port>입니다.
2. public_html 디렉토리를 마운트하십시오.
3. common.properties에서 mountmgr 디먼의 빈도를 1000으로 증가시키십시오.
4. Portal_Config 찾아보기 테이블에서 FTP 세부사항을 변경하십시오. 샘플 값이 제공됩니다.
5. ftpDir(Portal_Config에서)은 FTP 서버의 루트 디렉토리 아래에 있어야 합니다.
6. /public_html/WEB-INF/server-config.wsdd 위치에 있는 파일에 쓸 수 있게 만드십시오.
7. 먼저, PORTAL_LKP.ZIP을 가져오십시오.
8. 그 다음, PORTAL_NON_LKP.ZIP을 가져오십시오.
9. 이 단계를 수행한 후 서버를 다시 시작해야 합니다.
10. Web Logic의 경우 아래 블록을,
<xs:element name="wpcSearchElementOperator">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="="/>
<xs:enumeration value=">="/>
<xs:enumeration value="<="/>
<xs:enumeration value=">"/>
<xs:enumeration value="<"/>
<xs:enumeration value="!="/>
<xs:enumeration value="BEGINSWITH"/>
<xs:enumeration value="CONTAINS"/>
<xs:enumeration value="ENDSWITH"/>
<xs:enumeration value="ISEMPTY"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
다음 블록으로 변경한 후, 웹 서비스를 저장하십시오.
<xs:element name="wpcSearchElementOperator">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="="/>
<xs:enumeration value=">="/>
<xs:enumeration value="<="/>
<xs:enumeration value=">"/>
<xs:enumeration value="<"/>
<xs:enumeration value="!="/>
<xs:enumeration value="BEGINSWITH"/>
<xs:enumeration value="CONTAINS"/>
<xs:enumeration value="ENDSWITH"/>
<xs:enumeration value="ISEMPTY"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
이 장 끝에서 다음 타스크가 완료되어야 합니다.
이 장에서는 Product Center의 포틀렛을 작성하는 단계에 대해 설명합니다. WorkWithItem 포틀렛이라고 하는 기존의 Product Center 포틀렛이 예로 사용됩니다.
이 장은 IBM WebSphere Portal Server에서의 포틀렛 개발 및 테스트에 관한 작업 지식 및 IBM WebSphere Studio Application Developer 기능에 대한 실제 경험이 있다고 가정합니다. 이 장에서는 Product Center 측에서 포틀렛의 요청을 처리해야 하는 Product Center 스크립트의 작성 방법에 대해서는 설명하지 않습니다. 이러한 스크립트의 작성 및 스크립트를 WebServices로 호스트하는 방법에 대한 세부사항은 이 장의 범위를 벗어납니다.
프레임워크 하부 구조 및 이 하부 구조를 사용하는 포틀렛은 다음 섹션에서 설명됩니다. 하부 구조는 데이터 교환을 위해 XML 형식 및 이 XML을 나타내는 데이터 오브젝트를 참조합니다. 또한, XML과 Java 간에 변환을 수행하는 클래스도 필요합니다. 포틀렛에서 사용할 수 있도록 메소드 세트를 Product Center 중개자에 첨부해야 합니다.
Product Center의 항목은 Product Center 카탈로그 아래에 있습니다. 이러한 항목은 항목 스펙을 사용하여 설명됩니다. 이 스펙은 속성 콜렉션입니다. 항목은 범주 및 하위 범주 아래에서 추가로 그룹화됩니다. 범주를 나타내는 이 트리를 계층 구조라고도 합니다.
WorkWithItem 포틀렛은 사용자가 항목으로 작업하는 데 도움이 되며 다음 타스크를 수행하는 데 필요합니다.
(a) 항목 보기
(b) 항목 작성
(c) 항목 수정
(d) 항목 복제
(e) 항목 삭제
WorkwithItem 포틀렛의 기본 기능은 카탈로그 항목을 보기, 작성, 수정, 복제 및 삭제하는 것입니다. 이러한 조치를 수행하려면 포틀렛이 웹 서비스를 통해 Product Center와 XML 형식의 데이터를 교환해야 합니다. 즉, 포틀렛에서 수행된 모든 조치는 XML 형식의 요청이 Product Center로 이동하고 Product Center에서 처리 후 XML 형식의 응답이 돌아옵니다.
예를 들어, 항목 세부사항을 검색하려는 경우의 요청 XML은 아래와 같이 표시됩니다.
표 1: Product Center 요청 XML
<wpc:wpcCommand type="ITEMDETAIL" mode="SYNC" >
<wpc:wpcParentCategory>1/5</wpc:wpcParentCategory>
<wpc:wpcCatalogName>CTG_PORTAL_MASTER</wpc:wpcCatalogName>
<wpc:wpcTradeItem ID="1732"></wpc:wpcTradeItem>
</wpc:wpcCommand>
조치 명령은 항목의 세부사항을 가져오는 것이고 호출 모드는 SYNC/ASYNC입니다. 이 모드는 Product Center에서 호출된 웹 서비스 API가 동기 또는 비동기 모드로 기능하는지 여부를 판별합니다. 이 특정 요청의 경우, ItemID, CatalogName 및 ParentCategory는 항목 세부사항을 가져오는 데 필요한 필드입니다.
항목 세부사항의 응답 XML은 해당 항목에 대한 속성 콜렉션이고 다음과 같이 표시됩니다.
표 2 : Product Center 응답 XML
<wpc:attribute-list>
<wpc:attribute name="Master Item Spec/GTIN" type="STRING">
<wpc:values>
<wpc:value occurrence="0">1087383</wpc:value>
</wpc:values>
</wpc:attribute>
<wpc:attribute name="Master Item Spec/Effective Start Date" type="DATE">
<wpc:values>
<wpc:value occurrence="0">2005-01-06 00:00:00</wpc:value>
</wpc:values>
</wpc:attribute>
<wpc:attribute name="Master Item Spec/Product Content/Web Image" type="IMAGE">
<wpc:values>
<wpc:value occurrence="0">1109678022009_id-w3-sitemark-simple.gif</wpc:value>
</wpc:values>
</wpc:attribute>
...
</wpc:attribute-list>
데이터 오브젝트는 요청 XML 및 응답 XML의 구조에 기초하여 Product Center 중개자의 데이터를 나타내도록 정의됩니다. 데이터 오브젝트에서 XML 문자열로의 변환 및 그 반대로의 변환은 Product Center 중개자 레이어에서 수행됩니다.
예를 들어, "WorkWithItem" 포틀렛에서 Product Center 항목은 속성 콜렉션이 있는 "CatalogItem" 클래스에 포함됩니다.
XML 생성기 및 구문 분석기는 Product Center 항목의 Java 표현을 XML 표현으로 변환하거나 반대로 변환하는 데 도움이 됩니다. CatalogItemGenerator는 Product Center 요청 XML을 구성합니다. XML 생성은 명령에 따라 다릅니다. 이 경우, 명령은 항목 세부사항을 페치합니다. 이 XML은 사용자가 제공하는 입력 값으로 채워지며 이러한 값은 포틀렛 요청 오브젝트에서 캡처됩니다.
아래 제공된 코드 단편은 단지 항목 세부사항 검색 조작에서 생성되는 XML의 예입니다.
public class CatalogItemGenerator {
public static String prepareItemDetailsRequestXML(
String parentCtgyID,
String catalogID,
String itemID) {
StringBuffer requestXML = new StringBuffer();
requestXML
.append(XMLHelper.WPC_NS_REF_BEG)
.append(ISoapMessageKeys.PARENT_CATEGORY)
.append(">")
.append(parentCtgyID)
.append(XMLHelper.WPC_NS_REF_END)
.append(ISoapMessageKeys.PARENT_CATEGORY)
.append(">")
.append(XMLHelper.WPC_NS_REF_BEG)
.append(ISoapMessageKeys.CATALOG_NAME)
.append("> ")
.append(catalogID)
.append(XMLHelper.WPC_NS_REF_END)
.append(ISoapMessageKeys.CATALOG_NAME)
.append(">")
.append(XMLHelper.WPC_NS_REF_BEG)
.append(ISoapMessageKeys.TRADE_ITEM)
.append(" ")
.append(ISoapMessageKeys.ID)
.append("=\"")
.append(itemID)
.append("\">")
.append(XMLHelper.WPC_NS_REF_END)
.append(ISoapMessageKeys.TRADE_ITEM)
.append(">");
return requestXML.toString();
}
}
}
CatalogItemParser는 Product Center 응답 XML 컨텐츠를 카탈로그 항목 데이터 오브젝트로 구문 분석합니다.
public class CatalogItemParser {
public static ICatalogItem prepareItem(
Element specElement,
Element tradeItemElement) {
// prepare the spec..
ICatalogItem item = getCatalogSpecItem(specElement);
// fill the item with attrib values
prepareItem(item, tradeItemElement);
return item;
}
}
}
포틀렛은 Product Center와의 모든 종류의 데이터 교환에서 중개자 레이어와만 상호작용해야 합니다. 그리고, 중개자는 포틀렛 클래스가 필요한 Product Center 웹 서비스 호출 관련 조작을 수행하는 데 필요한 모든 메소드를 가지고 있어야 합니다. 포틀렛은 기능적 요구사항 및 사용자 상호작용 관련 조작을 나타냅니다. WorkwithItemPortlet의 예에서, 포틀렛은 다음을 수행해야 합니다.
(a) 항목 보기
(b) 항목 작성
(c) 항목 수정
(d) 항목 복제
(e) 항목 삭제
따라서, 메소드를 중개자 레이어에 추가해야 하며 이러한 메소드는 다음 작업을 수행해야 합니다.
(1) 웹 서비스 호출에 적절한 SOAP URL 로드.
(2) 해당 메소드 호출에 대한 요청 XML 작성.
(3) SYNC/ASYNC 호출을 시작하는 SOAP URL 호출.
(4) 응답 XML 수신 및 해석.
(5) 성공적일 경우, 해당 데이터 오브젝트에서 응답 XML 변환.
(6) 실패할 경우, 공고 Bean 형식으로 포틀렛에 실패 정보 전달. 이는 WPCMediator 예외를 생성해야 합니다.
예를 들어, 중개자에서 CatalogItem을 페치하는 메소드는 다음과 유사합니다.
public ICatalogItem getCatalogItem(
String parentCgyID,
String catalogID,
String itemID,
WPSContext context)
throws WPCMediatorException {
try {
// Item 스펙 가져오기.
item = getCatalogItem(parentCgyID, catalogID, context);
//페치 데이터로 XML을 요청하는 항목 구성
String itemReqXML =
CatalogItemGenerator.prepareItemDetailsRequestXML(
parentCgyID,
catalogID,
itemID);
// soapHelper 호출
Element itemElement = wsHelper.getCatalogItemXML(itemReqXML, user);
// 결과 구문 분석별로 항목 준비
CatalogItemParser.prepareItem(item, itemElement);
return item;
} catch (WPCMediatorException wpce) {
if (DEBUG) wpce.printStackTrace();
throw wpce;
}
}
추가 중개자는 요청 XML을 추가 작성하고 SOAP URL을 호출하는 WSHelper 클래스 호출을 위임합니다.
public Element getCatalogItemXML(String itemReqXML, WPCUser user)
throws WPCMediatorException {
String requestXML = XMLHelper.prepareWPCRequest(
itemReqXML,
"ITEMDETAIL",
"SYNC",
user);
SoapResponse soapResponse = invokeSOAP(getSoapURL("ITEMDETAIL"),requestXML);
String responseXML = soapResponse.getDataXML();
}
위에 표시된 대로, getCatalogItem() 메소드는 응답 XML을 수신하여 응답 XML을 CatalogItem 오브젝트로 변환하는 CatalogItemParser로 전달합니다.
XMLHelper는 이러한 모든 호출에 대해 완전한 XML을 생성합니다.
요컨데 중개자 조작에 대해 수행되는 일반 단계는 다음과 같습니다.
Portlet > WPCMediator > WSHelper > SoapInvoker >Axis API
WebSphere Portal Server에서 포틀렛 개발 및 전개에 대한 세부사항은 다음 위치를 참조하십시오.
<PortalServer_root>\doc\en\InfoCenter\index.html.
Product Center 포틀렛은 적절한 Product Center 중개자 호출을 수행하고 그 호출 결과로 일반 사용자에게 표시해야 하는 메시지도 결정합니다. 이러한 메시지는 해당 목적으로 제공된 API를 사용하여 메시지 콜렉션에 추가해야 합니다.
현재 포틀렛에 대한 여러 화면을 나타내는 JSP에 이러한 사용자 메시지의 내용을 표시하는 데 도움이 되는 사용자 정의 태그가 포함되어야 합니다.
<wpctags:uimessages/>
해당 SOAP URL을 가리키도록 soapactionurls.xml과 같은 구성 파일을 수정하십시오. 샘플 구성 파일은 다음과 같습니다.
<soap-url action="<action name>">http://<server name>:<server port>/services/<service name></soap-url>
<soap-url action="ADD">http://9.184.114.58:9999/services/wpc_portal_integrated_dev
</soap-url>
이 장은 Product Center의 공급자 포털을 설치 및 구성하는 방법에 대한 자세한 단계를 제공합니다.
환경의 일부로 다음 소프트웨어가 설치됩니다.
이 단계는 공급자 포털을 전개하는 방법에 대해 설명합니다.
1. 프롬프트를 열고 <AppServer-Root>\bin으로 이동한 후 다음 명령을 사용하여 서버를 중지하십시오.
stopServer WebSphere_Portal -username wpsbind -password wpsbind
2. 다음 권한 정보를 사용하여 URL http://localhost:9080/IDSWebApp/IDSjsp/Login.jsp 로그인으로 Directory Server 웹 관리 도구를 여십시오.
LDAP 호스트 이름 : localhost
사용자 이름 : cn=root
암호 : password
3. 웹 관리 도구를 중지하십시오.
4. 명령 프롬프트에서 " DirectoryServer_Root\appsrv\bin"으로 이동한 후 다음 명령을 사용하여 LDAP 서버를 중지하십시오.
stopServer server1 -username wpsbind -password wpsbind
5. 응용프로그램 zip 파일을 다운로드하고 내용을 추출하십시오. 이 파일에 JAR 파일 "customlogin.jar[I2]"가 포함되어 있어야 합니다. 이러한 파일은 Product Center 설치 CD에서도 사용 가능합니다.
6. customlogin.jar & ibmjndi.jar를 <PortalServer_Root>\shared\app 폴더에 추가하십시오.
7. 명령 프롬프트에서 "DirectoryServer_Root\appsrv\bin"으로 이동한 후 다음 명령을 사용하여 LDAP 서버를 시작하십시오.
startServer server1 -username wpsbind -password wpsbind
8. 다음 권한 정보를 사용하여 URL http://localhost:9080/IDSWebApp/IDSjsp/Login.jsp 로그인으로 Directory Server 웹 관리 도구를 여십시오.
LDAP 호스트 이름 : localhost
사용자 이름 : cn=root
암호 : password
9. 웹 관리 도구를 시작하십시오.
10. 명령 프롬프트를 열고 "AppServer_Root\bin"으로 이동한 후 다음 명령을 사용하여 Portal Server를 시작하십시오.
startServer WebSphere_Portal -username wpsbind -password wpsbind
11. admin/admin/ibm으로 로그인하십시오.
12. 관리 -> Portlets > 응용프로그램 관리로 이동하십시오.
13. 응용프로그램의 이전 인스턴스가 있는 경우, 이를 설치 제거하십시오.
14. 응용프로그램의 새 인스턴스를 설치하고 필수 페이지에 포틀렛을 추가하십시오.
15. 필요에 따라 포틀렛에 사용자 권한을 지정하십시오.
이 단계에서 UI는 공급자 포털용으로 사용자 정의됩니다. 이 단계는 포털에 대한 기본 레이아웃 및 룩앤필을 제공합니다.
포털 사용자 정의의 일부로 그림 1에 표시된 대로 포털에 다음 레이블을 작성하십시오.
그림 1
응용프로그램의 테마 및 스킨을 설치하십시오.
1. "themes.zip" 파일을 <AppServer_Root>\installedApps\<AppServer_HOST_NAME>\wps.ear\wps.war\themes\html 폴더로 추출하십시오.
2. "skins.zip" 파일을 <AppServer_Root>\installedApps\<AppServer_HOST_NAME>\wps.ear\wps.war\skins\html 폴더로 추출하십시오.
3. 관리자로 Portal Server에 로그인하십시오.
4. 오른쪽 위에서 관리자 링크를 클릭하십시오.
5. 포털 사용자 인터페이스 -> 테마 및 스킨을 찾아가십시오.
6. 새 테마 추가 링크를 클릭하십시오.
7. 새 테마의 이름 및 디렉토리를 "WPC_Default_theme"으로 입력하십시오. 확인을 클릭하십시오.
8. 새 스킨 추가 링크를 클릭하십시오.
9. 새 스킨의 이름 및 디렉토리를 "WPC_Default_skin"으로 입력하십시오. 확인을 클릭하십시오.
다음과 같이 여러 탭에서 포틀렛을 구성하십시오.
홈 탭 |
|
검색 탭 |
|
항목 작성/편집 탭 |
|
대량 편집 탭 |
|
업로드 탭 |
|
등록 탭 |
|
다음 단계에 따라 탭의 포틀렛을 추가하십시오.
1. 관리자로 Portal Server에 로그인하십시오.
2. 오른쪽 위에서 관리자 링크를 클릭하십시오.
3. 포털 사용자 인터페이스 > 페이지 관리를 찾아가십시오.
4. 오른쪽 화면에서 필수 페이지에 대한 페이지 레이아웃 편집 단추를 선택하십시오.
5. 페이지를 검색하여 페이지에 필수 포틀렛을 추가하십시오.
6. 위에서 언급한 모든 탭에 대해 단계 (4) 및 (5)를 반복하십시오.
1. 관리자로 Portal Server에 로그인하십시오.
2. 오른쪽 위에서 관리자 링크를 클릭하십시오.
3. 액세스 -> 자원 권한을 찾아가십시오.
4. 내 포털 링크에 대해 액세스 지정 단추를 선택하십시오. 역할 편집 화면에서 인증된 모든 사용자 액세스를 제공하고 확인을 클릭하십시오.
5. 이와 유사하게, 단계 (4)에 설명된 대로 등록 페이지에 익명 사용자 액세스를 제공하십시오.
1. 아래 구성 파일에서 로그아웃 관련 사항을 다음과 같이 변경하십시오.
<PortalServer_Root>/shared/app/config/services/ConfigService.properties
# Logout redirect parameters
redirect.logout = true
redirect.logout.url = /wps/myportal
위의 변경사항에 따라, "로그아웃" 링크를 클릭하면 포털이 로그인 페이지로 경로가 재지정됩니다.
2. 아래 구성 파일에서 로그아웃 관련 사항을 다음과 같이 변경하십시오.
<PortalServer_Root>/shared/app/nls/engine_en.properties
<PortalServer_Root>/shared/app/nls/engine.properties
아래 항목을 편집하여 링크 이름을 "Register", "Login" 및 "Logout"으로 변경하십시오.
link.enrollment = Register
link.login = Sign in
link.logout = Sign out
사용자 정의 환영 메시지를 표시하는 다음 두 항목을 추가하십시오.
default_welcome = Welcome!
login_welcome = Welcome, {0}
3. 아래 구성 파일에서 로그인 단추 관련 사항을 다음과 같이 변경하십시오.
<PortalServer_Root>/shared/app/nls/button_en.properties
<PortalServer_Root>/shared/app/nls/button.properties
아래 항목을 편집하여 링크 이름 'Login'을 변경하십시오.
login = Sign in
공급자 포털 설치 및 구성 중에 몇몇 Portal Server 특정 구성 파일 및 공급자 포털 응용프로그램 특정 구성 파일이 수정됩니다. 이러한 파일에 대한 간략한 설명이 아래에 제공됩니다.
<PortalServer_root>/config/wpconfig.properties
<PortalServer_root>/wmm/wmmLDAPServerAttributes.xml
<PortalServer_root>/shared/app/config/services/ConfigService.properties
<PortalServer_root>/shared/app/config/services/LoaderService.properties
<PortalServer_root>/shared/app/nls/field.properties
<PortalServer_root>/shared/app/nls/problem.properties
<PortalServer_root>/shared/app/nls/engine.properties
<PortalServer_root>/shared/app/nls/button.properties
공급자 포털 응용프로그램 특정 구성 파일:
<application_root>/WebContent/WEB-INF/config/soapactionurls.xml
<Application_root>/WebContent/WEB-INF/config/timezonevalues.xml
<Application_root>/WebContent/WEB-INF/config/catalog_configuration.xml
<Application_root>/WebContent/WEB-INF/config/portletActions2pages.xml
이 장 끝에서 다음 타스크가 수행되었습니다.
이 장에서는 다음에 관한 세부사항을 제공합니다.
일반 포틀렛 구조는 다음 그림과 같습니다. 사용자는 메시지 표시 영역에서 트랜잭션의 상태에 대해 통보받습니다. 사용자는 활성 영역 및 조치 단추 영역과 상호작용합니다.
다음은 사용 가능한 사용자 시나리오에 대한 포틀렛을 설명합니다.
사용자 등록
a. 로그인 페이지에서 등록 링크를 클릭하십시오.
b. 사용자 등록 포틀렛이 표시됩니다.
c. 사용자 등록 포틀렛이 공급자 GLN 및 전자 우편 주소를 표시합니다. 사용자가 이 정보를 입력합니다.
d. 다음 단추를 클릭하여 GLN 및 전자 우편 주소의 유효성을 검증하십시오.
e. 시스템에 의해 인식되면 암호 필드가 표시됩니다.
f. 시스템이 암호가 동일한지 확인하기 위해 점검합니다.
g. 등록 승인 정보가 사용자에게 전송됨을 알리는 화면이 표시됩니다. 그런 다음, 사용자가 포털에 로그인할 수 있습니다.
사용자 등록 승인 - 수동
a. 오프라인 프로세스입니다. WebSphere Product Center 관리자가 등록된 사용자를 승인해야 합니다. 그러면, 사용자가 포털에 로그인하여 WebSphere Product Center 관련 포틀렛으로 작업할 수 있습니다.
b. WebSphere Product Center 관리자가 등록된 사용자에게 역할을 지정해야 합니다. 이 조치는 Portal Server 및 WebSphere Product Center가 공유하는 LDAP 스토어에서 수동으로 수행해야 합니다. 그러면, 사용자에게 WebSphere Product Center 관련 트랜잭션을 수행할 수 있는 권한이 부여됩니다.
항목 카탈로그 보기
a. 이 포틀렛은 트리 구조 형식의 항목 카탈로그를 나열합니다. 항목은 이 카탈로그 트리의 리프입니다.
b. 사용자가 카탈로그를 선택하고, 항목을 추가하기로 선택할 수 있습니다. 이 옵션은 조치 단추 영역에서 단추로 제공됩니다.
c. 사용자가 항목을 선택하고, 항목을 보기, 편집, 복제 또는 삭제하기로 선택할 수 있습니다. 이러한 옵션은 조치 단추 영역에서 단추로 제공됩니다.
d. 이러한 단추는 항목 조작에만 적용됩니다.
e. 카탈로그의 첫 번째 레벨은 WebSphere Product Center에서 검색됩니다. 하위 노드(하위 카탈로그 및 항목)는 사용자 상호작용에 기초하여 검색됩니다. 사용자가 노드를 확장하면 노드 아래의 컨텐츠가 표시됩니다. 그러면, 특정 시점에 로드해야 하는 데이터 양은 줄어들지만, 이 정보를 검색하기 위해 WebSphere Product Center에 대해 수행해야 하는 호출 횟수는 증가됩니다.
기존 항목 보기
a. 항목 카탈로그 포틀렛에서 항목을 선택하고 항목 보기 단추를 클릭하십시오. 그러면, “항목으로 작업” 포틀렛에 항목 세부사항이 표현됩니다. 컨텐츠는 읽기 전용 모드로 표시됩니다.
새 항목 추가
a. “항목 카탈로그” 포틀렛에서 카탈로그를 선택하고 항목 추가 단추를 클릭하십시오. 그러면, 사용자가 항목 정보를 입력할 수 있도록 “항목으로 작업” 포틀렛에 항목 컨텐츠가 표현됩니다. “추가” 조작은 입력한 항목을 선택한 카탈로그 아래에 추가합니다.
b. 이 항목 작성 프로세스는 “항목으로 작업” 포틀렛에서 항목 추가 단추를 클릭하여 시작할 수도 있습니다. 그러면, 지정되지 않은 카탈로그 아래에 항목이 작성됩니다.
c. 항목 관련 유효성 검증은 제출 시 수행됩니다. 유효성 검증의 첫 번째 레벨은 WebSphere Product Center에서 수신된 속성 메타 정보에 기초하여 수행됩니다. 이러한 유효성 검증은 대개 유형 검사 및 범위 검사입니다. 유효성 검증은 JavaScript 레벨 검사의 일부로 수행되지 않습니다.
d. 사용자가 조작 취소를 선택할 수도 있습니다. 그러면, 포틀렛이 초기 상태로 돌아갑니다.
기존 항목 갱신
a. “항목 카탈로그” 포틀렛에서 항목을 선택하고 항목 갱신 단추를 클릭하십시오. 그러면, 사용자가 항목 갱신 정보를 입력할 수 있도록 항목 컨텐츠가 “항목으로 작업” 포틀렛에 표현됩니다.
b. 이 항목 갱신 프로세스는 항목 검색을 수행하고 항목을 선택한 후 검색 결과에서 항목 작업 단추를 클릭하여 시작할 수도 있습니다. 그러면, “항목으로 작업” 포틀렛이 항목 정보로 채워집니다. 그런 다음, 사용자가 항목 갱신 단추를 클릭하여 항목 작업을 시작할 수 있습니다.
c. 이 항목 갱신 프로세스는 “항목 카탈로그” 포틀렛에서 항목을 선택한 후 항목 보기를 클릭하여 시작할 수도 있습니다. 그러면, “항목으로 작업” 포틀렛이 채워집니다. 그런 다음, 사용자가 갱신 단추를 클릭할 수 있습니다. 그러면, 컨텐츠가 편집 가능 모드가 됩니다.
d. 항목 관련 유효성 검증은 제출 시 수행됩니다. 유효성 검증의 첫 번째 레벨은 WebSphere Product Center에서 수신된 속성 메타 정보에 기초하여 수행됩니다. 이러한 유효성 검증은 대개 유형 검사 및 범위 검사입니다. 유효성 검증은 JavaScript 레벨 검사의 일부로 수행되지 않습니다.
e. 사용자가 조작 취소를 선택할 수도 있습니다. 그러면, 포틀렛이 초기 상태로 돌아갑니다.
항목 복제
a. “항목 카탈로그” 포틀렛에서 항목을 선택하고 항목 복제 단추를 클릭하십시오. 그러면, 사용자가 항목 복사 조작을 수행할 수 있도록 “항목으로 작업” 포틀렛에 항목 컨텐츠 사본이 표현됩니다.
b. 이 항목 복제 프로세스는 항목 검색을 수행하고 항목을 선택한 후 검색 결과에서 항목 작업 단추를 클릭하여 시작할 수도 있습니다. 그러면, “항목으로 작업” 포틀렛이 항목 정보로 채워집니다. 그런 다음, 사용자가 복제 단추를 클릭하여 항목 작업을 시작할 수 있습니다.
c. 이 항목 복제 프로세스는 “항목 카탈로그” 포틀렛에서 항목을 선택하고 항목 보기를 클릭하여 시작할 수도 있습니다. 그러면, “항목으로 작업” 포틀렛이 채워집니다. 그런 다음, 사용자가 복제 단추를 클릭할 수 있습니다. 그러면 컨텐츠가 편집 가능 모드가 됩니다.
d. 항목 관련 유효성 검증은 제출 시 수행됩니다. 유효성 검증의 첫 번째 레벨은 WebSphere Product Center에서 수신된 속성 메타 정보에 기초하여 수행됩니다. 이러한 유효성 검증은 대개 유형 검사 및 범위 검사입니다. 유효성 검증은 JavaScript 레벨 검사의 일부로 수행되지 않습니다.
e. 사용자가 조작 취소를 선택할 수도 있습니다. 그러면, 포틀렛이 초기 상태로 돌아갑니다.
기존 항목 제거
a. “항목 카탈로그” 포틀렛에서 항목을 선택하고 항목 삭제 단추를 클릭하십시오. 그러면, 사용자가 항목 삭제 조작을 수행할 수 있도록 “항목으로 작업” 포틀렛에 항목 컨텐츠가 표현됩니다. 항목 컨텐츠가 읽기 가능 모드로 표시됩니다.
b. 이 항목 삭제 프로세스는 항목 검색을 수행하고 항목을 선택한 후 검색 결과에서 항목 작업 단추를 클릭하여 시작할 수도있습니다. 그러면, “항목으로 작업” 포틀렛이 항목 정보로 채워집니다. 그런 다음, 사용자가 삭제 단추를 클릭하여 항목을 삭제할 수 있습니다.
c. 이 항목 삭제 프로세스는 “항목 카탈로그” 포틀렛에서 항목을 선택한 후 항목 보기를 클릭하여 시작할 수도 있습니다. 그러면, “항목으로 작업” 포틀렛이 채워집니다. 그런 다음, 사용자가 삭제 단추를 클릭할 수 있습니다.
d. 사용자가 조작을 취소하기로 선택할 수도 있습니다. 그러면, 포틀렛이 초기 상태로 돌아갑니다.
항목 검색
a. 검색 포틀렛은 처음에 검색 기준 값을 표시합니다: GTIN, GLN, 대상 마켓, 제품 상태(승인, 거부, 드래프트 등), SKU#, 가격, 단일 항목 또는 계층 구조 리턴. 사용자가 와일드 카드 검색을 수행할 수 있습니다.
b. 검색 기준은 날짜 또는 숫자 유형의 기준에 범위 옵션을 제공합니다. 예를 들어, 가격 기준은 $100 이상 $500 미만의 가격이 됩니다.
c. 검색 기준은 사용자가 사용한 마지막 10개의 검색 기준을 저장하고 이 기준을 표시합니다. 이 링크를 클릭하면 이 기준을 사용하여 검색을 수행합니다.
d. 검색 결과는 동일한 포틀렛의 검색 기준 아래에 표시됩니다. 리턴된 검색 결과는 사용자 특정 화면이동 크기에 따라 표시됩니다. 이 값은 포틀렛의 편집 옵션을 사용하여 설정할 수 있습니다. 검색 결과 크기는 WebSphere Product Center에 의해 제어되며 검색 성능 측면에서 더 많이 제어됩니다. 검색 결과의 표시는 포틀렛에 의해 제어되며 사용자 경험 측면에서 더 많이 제어됩니다.
e. 사용자가 검색 결과에서 단일 항목을 선택하고 작업 항목 단추를 클릭할 수 있습니다. 그러면, 항목 정보가 “항목으로 작업” 포틀렛으로 이동됩니다.
f. 사용자가 검색 결과에서 다중 항목을 선택하고 작업 항목 단추를 클릭할 수 있습니다. 그러면, 항목이 “대량 항목-갱신” 포틀렛으로 이동됩니다.
대량 업로드
a. “대량 업로드” 포틀렛은 사용자 시스템에서 WebSphere Product Center로 쉼표 분리 값(CSV) 파일을 업로드하는 파일 브라우저 인터페이스를 제공합니다.
b. 이는 WebSphere Product Center 측면에서 볼 때 긴 트랜잭션이므로 비동기 상호작용입니다. CSV 파일이 WebSphere Product Center로 업로드되고 트랜잭션 결과가 포털의 메시지 또는 전자 우편을 통해 사용자에게 보고됩니다.
벌크 / 대량 갱신
a. 사용자가 “검색” 포틀렛을 사용하여 항목 검색을 수행합니다. 검색 결과에 표시된 항목을 선택하고 항목 작업 단추를 클릭합니다.
b. 그러면, 선택한 항목의 컨텐츠가 “대량 항목-갱신” 포틀렛으로 전송됩니다. 이제, 사용자가 선택한 속성 세트에 대해 대량 항목 갱신을 수행할 수 있습니다.
메시지 형식의 경우, UCCNet 메시지 형식과 유사한 형식을 선택해야 합니다. 인벨롭에는 헤더 및 본문이 있습니다. 헤더에는 고유 메시지 ID 및 전송자/수신자 세부사항을 식별하는 데 사용되는 정보가 포함됩니다. 본문에는 요청 메시지의 경우, 실행할 명령 및 관련 정보가 포함되고 응답 메시지의 경우에는 응답 세부사항이 포함됩니다.
포털과 Product Center 간에 메시지 트랜잭션을 동기 및 비동기 두 가지 방법으로 처리할 수 있습니다.
문서 구조
<envelope>
<wpcHeader>
<!— companyName. By default the
user id and company in WPC will be taken from the respective script context.
This will be as of now just for FYI kind of field -->
< companyName></ companyName>
<!—UserID. By default the user
id and company in WPC will be taken from the respective script context. This
will be as of now just for FYI kind of field -->
< userID></ userID>
<!--messageIdentifier uniqely
identifies each message-->
< messageIdentifier></
messageIdentifier>
<!—time stamp at which the
message was sent -- >
<timestamp></timestamp>
<!—supplier ID of the WPS
user -- >
<supplierId></supplierId>
</wpcHeader>
<wpcBody>
< wpcCommand type=ADD mode=SYNC
>
………...
</wpcCommand>
</wpcBody>
</envelope>
wpcCommand 요소의 “type” 속성은 ADD/MODIFY/DELETE/SEARCH/ QUERY_TRANSACTION/etc. 등과 같은 값을 가질 수 있습니다. 이 필드는 수행해야 할 조작을 결정합니다. wpcCommand의 “mode” 속성은 조작 실행 모드를 결정합니다. 모드는 SYNC 또는 ASYNC가 될 수 있습니다.
SYNC 모드에서는 요청 XML 문서가 처리된 후 각 응답 XML 문서가 생성되어 즉시 재전송됩니다.
ASYNC 모드에서는 XML 요청 문서가 수신되면 제공된 문서가 유효하고 올바르게 형성되었는지 확인한 후, 트랜잭션 ID를 호출자에게 다시 제공합니다. 그런 다음, 호출자는 트랜잭션 ID를 제공함으로써 요청된 트랜잭션 상태를 계속 폴링할 수 있습니다.
Product Center에서 카탈로그 항목을 추가하려면, 포털이 올바른 데이터를 입력하여 아래와 같은 메시지 윤곽을 전송해야 합니다. 응답을 즉시 가져오려면 Mode 플래그가 “SYNC” 이어야 하고, 그렇지 않으면 “ASYNC”이어야 합니다.
<envelope>
<wpcHeader>
<!— companyName. By default the
user id and company in WPC will be taken from the respective script context.
This will be as of now just for FYI kind of field -->
< companyName></ companyName>
<!—UserID. By default the user
id and company in WPC will be taken from the respective script context. This
will be as of now just for FYI kind of field -->
< userID></ userID>
<!--messageIdentifier uniqely
identifies each message-->
< messageIdentifier></
messageIdentifier>
</wpcHeader>
<wpcBody>
< wpcCommand type=ADD mode=SYNC
>
<wpcCatalogItem>
………...
</wpcCatalogItem>
</wpcCommand>
</wpcBody>
</envelope>
Product Center의 각 응답은 다음과 같습니다.
<envelope> <wpcHeader> <!— companyName. By default the user id and company in WPC will be taken from the respective script context. This will be as of now just for FYI kind of field --> < companyName></ companyName> <!—UserID. By default the user id and company in WPC will be taken from the respective script context. This will be as of now just for FYI kind of field --> < userID></ userID> <!--messageIdentifier uniqely identifies each message--> < messageIdentifier></ messageIdentifier> </wpcHeader> <wpcBody> < wpcResponse> < wpcEntityIdentifier> <!—messageidentifier value of the request message --!> < wpcMessageIdentifier > </ wpcMessageIdentifier > <!—WPC transaction id created for the request msg --!> < wpcTransactionID ></ wpcTransactionID > </ wpcEntityIdentifier> < wpcNotification > < notificationInfo type=”SUCCESS” > < notificationCode >000</ notificationCode > <notificationMessage>SUCCESS</notificationMessage> </ wpcResponse> </wpcBody> </envelope>
오류가 발생한 경우, notificationInfo의 “type” 속성은 값 “ERROR” 또는 “WARNING”을 갖게 되고, notificationcode가 오류 코드를, notificaitonMessage는 연관된 각 오류 메시지를 갖게 됩니다. 이는 포털에서 전송되는 모든 메시지에 적용됩니다. SEARCH / SELECTION 요청의 경우, wpcResponse는 SYNC 모드 요청에서 탐색 / 선택사항 결과인 응답의 일부로 wpcCatalogueItem 블록을 갖게 됩니다.
ASYNC 모드 요청의 경우 전송되는 메시지 요청은 다음과 같습니다.
<envelope>
<wpcHeader>
<!— companyName. By default the user id and company in WPC will be taken
from the respective script context. This will be as of now just for FYI kind of
field -->
< companyName></ companyName>
<!—UserID. By default the user id and company in WPC will be taken from the
respective script context. This will be as of now just for FYI kind of field
-->
< userID></ userID>
!--messageIdentifier uniqely identifies each message-->
< messageIdentifier></ messageIdentifier>
</wpcHeader>
<wpcBody>
< wpcCommand type=ADD mode=”ASYNC”>
<!— in case of bulk item operations, below block will be used --!>
<!—as of now only file type supported is CSV --!>
<wpcDataContainer fileType=”CSV”>
<serverName></serverName>
<userName></userName>
<password></password>
<dataDir></dataDir>
<fileName></filename>
</wpcCommand>
</wpcBody>
</envelope>
동일한 요청에 대한 응답은 다음과 같습니다.
<envelope>
<wpcHeader>
<!— companyName. By default the user id and company in WPC will be taken
from the respective script context. This will be as of now just for FYI kind of
field -->
< companyName></ companyName>
<!—UserID. By default the user id and company in WPC will be taken from the
respective script context. This will be as of now just for FYI kind of field
-->
< userID></ userID>
<!--messageIdentifier uniqely identifies each message-->
< messageIdentifier></ messageIdentifier>
</wpcHeader>
<wpcBody>
< wpcResponse>
< wpcEntityIdentifier>
<!—messageidentifier value of the request message --!>
< wpcMessageIdentifier > </ wpcMessageIdentifier >
<!—WPC transaction id created for the request msg --!>
< wpcTransactionID ></ wpcTransactionID >
</ wpcEntityIdentifier>
< wpcNotification >
< notificationInfo type=”PROCESSING” >
< notificationCode >999</ notificationCode >
<notificationMessage>PROCESSING</notificationMessage>
</ wpcResponse>
</wpcBody>
</envelope>
이제, 포털이 Product Center를 계속 폴링하여 주어진 트랜잭션이 완료되었는지 점검해야 합니다. 다음 메시지가 이를 수행합니다.
<envelope>
<wpcHeader>
<!— companyName. By default the user id and company in WPC will be taken
from the respective script context. This will be as of now just for FYI kind of
field -->
< companyName></ companyName>
<!—UserID. By default the user id and company in WPC will be taken from the
respective script context. This will be as of now just for FYI kind of field
-->
< userID></ userID>
<!--messageIdentifier uniqely identifies each message-->
< messageIdentifier></ messageIdentifier>
</wpcHeader>
<wpcBody>
< wpcCommand type=”QUERY_TRANSACTION” mode=”ASYNC”>
< wpcEntityIdentifier>
<!—messageidentifier value of the request message --!>
< wpcMessageIdentifier > </ wpcMessageIdentifier >
<!—WPC transaction id created for the request msg --!>
< wpcTransactionID ></ wpcTransactionID >
</ wpcEntityIdentifier>
</wpcCommand>
</wpcBody>
</envelope>
조작이 성공적으로 완료된 경우, Product Center의 각 응답은 다음과 같습니다.
<envelope>
<wpcHeader>
<!— companyName. By default the user id and company in WPC will be taken
from the respective script context. This will be as of now just for FYI kind of
field -->
< companyName></ companyName>
<!—UserID. By default the user id and company in WPC will be taken from the
respective script context. This will be as of now just for FYI kind of field
-->
< userID></ userID>
<!--messageIdentifier uniqely identifies each message-->
< messageIdentifier></ messageIdentifier>
</wpcHeader>
<wpcBody>
< wpcResponse>
< wpcEntityIdentifier>
<!—messageidentifier value of the request message --!>
< wpcMessageIdentifier > </ wpcMessageIdentifier >
<!—WPC transaction id created for the request msg --!>
< wpcTransactionID ></ wpcTransactionID >
</ wpcEntityIdentifier>
< wpcNotification >
< notificationInfo type=”SUCCESS” >
< notificationCode >000</ notificationCode >
<notificationMessage>SUCCESS</notificationMessage>
</ wpcResponse>
</wpcBody>
</envelope>
요청이 계속 처리되는 경우, 응답은 Product Center가 ASYNC 요청을 수신한 후에 즉시 전송된 응답과 동일하게 됩니다.
이 섹션에서는 포털 통합과 관련된 스크립트 및 웹 서비스를 식별합니다.
wpc_portal_integrated_dev
웹 서비스 구현 스크립트(/scripts/wbs/wpc_portal_integrated_dev0)
/scripts/triggers/WPC-Portal-RequestUtil.wpcs
/scripts/triggers/WPC-Portal-ResponseUtil.wpcs
/scripts/triggers/WPC-Portal-ItemHelper.wpcs
/scripts/triggers/WPC-Portal-CSVHelper.wpcs
/scripts/triggers/WPC-Portal-ViewHelper.wpcs
다음 섹션에는 동일한 XML 메시지 및 주어진 명령을 호출하는 각 스크립트가 제공됩니다.
주어진 요청이 항목을 추가하고 성공 또는 실패 응답을 제공합니다.
//
to invoke the item add message
<?xml version="1.0" encoding="UTF-8"?>
<envelope xmlns="http://ibm.com/wpc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/wpc/
C:\wpc\portal\webservice_dev.xsd" communicationVersion="5.2">
<WPCResponseType>synchronous</WPCResponseType>
<wpcHeader>
<companyName>null</companyName>
<userID>administrator</userID>
<password>null</password>
<messageIdentifier>D5D92CE0-97A8-11D9-B84B-A068E33E0476</messageIdentifier>
<timestamp>2005-03-18</timestamp>
<supplierId>null</supplierId>
</wpcHeader>
<wpcBody>
<wpcCommand type="ADD" mode="SYNC">
<wpcParentCategory>1/5</wpcParentCategory>
<wpcCatalogName> CTG_PORTAL_MASTER</wpcCatalogName>
<wpcTradeItem>
<attribute-list>
<attribute name="Master Item Hier Sec Spec1/name"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Hier Sec Spec1/ID"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/GTIN" type="STRING">
<values>
<value occurrence="0">393939</value>
</values>
</attribute>
<attribute name="Master Item Spec/Internal ID"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Short Description"
type="STRING">
<values>
<value occurrence="0">short description</value>
</values>
</attribute>
<attribute name="Master Item Spec/Long Description"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Thumbnail Preview" type="THUMBNAIL_IMAGE_URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Type" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Regulation" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Source" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Perishable Type" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content"
type="GROUPING">
<values>
<groupvalue>
<attribute name="Master Item Spec/Product Content/Thumbnail Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Small Thumbnail
Image" type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Print Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Web Image"
type="IMAGE">
<values>
<file type="" occurrence="0">
<name/>
<dir/>
<server-name/>
<userID/>
<password/>
</file>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/POS Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Hi-Res Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Product
Documents"
type="GROUPING">
<values>
<groupvalue>
<attribute name="Master Item Spec/Product Content/Product
Documents/Document" type="URL">
<values>
<value occurrence="0"/>
</values>
</attribute>
</groupvalue>
</values>
</attribute>
</groupvalue>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet"
type="GROUPING">
<values>
<groupvalue>
<attribute name="Master Item Spec/UCCnet/Product Type"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Brand"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Category"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Color"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Consumer Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Coupon Family Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Dated Product - Days"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Detailed Description"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/D-U-N-S"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/EANUCC Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/EANUCC Type"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Effective Date"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/First Arrival"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/First Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/First Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Flash Point Temp"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Flash Point Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/GLN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Gross Weight"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/GTIN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Class Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Code Qualifier"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Description"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Sequence"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Height"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/HI"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/InnerPack"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Item Description"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Item Status"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Last Arrival"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Last Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Last Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Length"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Linear"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Maximum Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Maximum Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Minimum Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Minimum Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Name"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Net Weight"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Order Increment"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Order Sizing Factor"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Orderable Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Order Increment Units"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Pack"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Page"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Phone"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/POS Desc 1"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/POS Desc 2"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Pre Priced Amount"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Private"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Replaced by GTIN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Replaces GTIN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Size"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Size Units"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Special Handling Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Suggested Retail Price"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/TI"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Version"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Version Status"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Volume"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Volume Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Weight"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Width"
type="STRING">
<values>
<value/>
</values>
</attribute>
</groupvalue>
</values>
</attribute>
<attribute name="Master Item Spec/Supplier_ID"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/ItemStatus"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Effective Start Date"
type="DATE">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Effective End Date"
type="DATE">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Last Updated By"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Update on"
type="DATE">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 1"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 2"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 3"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 4"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 5"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/AddedVia" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/ModifiedVia" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Price"
type="NUMBER">
<values>
<value occurrence="0">0.0</value>
</values>
</attribute>
<attribute name="Master Item Spec/Item Unit Size"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/testImage"
type="IMAGE">
<values>
<file>
<name/>
</file>
</values>
</attribute>
</attribute-list>
</wpcTradeItem>
</wpcCommand>
</wpcBody>
</envelope>
아래 제공된 요청은 제공된 1차 키로 항목을 수정합니다.
//
to invoke MODIFY message
<?xml version="1.0" encoding="UTF-8"?>
<envelope xmlns="http://ibm.com/wpc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/wpc/
C:\wpc\portal\webservice_dev.xsd" communicationVersion="5.2">
<WPCResponseType>synchronous</WPCResponseType>
<wpcHeader>
<companyName>null</companyName>
<userID>administrator</userID>
<password>null</password>
<messageIdentifier>253667D0-97A9-11D9-B84B-CFE00DAB579A</messageIdentifier>
<timestamp>2005-03-18</timestamp>
<supplierId>null</supplierId>
</wpcHeader>
<wpcBody>
<wpcCommand type="MODIFY" mode="SYNC">
<wpcParentCategory>1/5</wpcParentCategory>
<wpcCatalogName> CTG_PORTAL_MASTER</wpcCatalogName>
<wpcTradeItem ID="393939">
<attribute-list>
<attribute name="Master Item Hier Sec Spec1/name"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Hier Sec Spec1/ID"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/GTIN" type="STRING">
<values>
<value occurrence="0">393939</value>
</values>
</attribute>
<attribute name="Master Item Spec/Internal ID"
type="STRING">
<values>
<value occurrence="0">23</value>
</values>
</attribute>
<attribute name="Master Item Spec/Short Description"
type="STRING">
<values>
<value occurrence="0">short description</value>
</values>
</attribute>
<attribute name="Master Item Spec/Long Description"
type="STRING">
<values>
<value occurrence="0">23</value>
</values>
</attribute>
<attribute name="Master Item Spec/Thumbnail Preview" type="THUMBNAIL_IMAGE_URL">
<values>
<value occurrence="0">http://23</value>
</values>
</attribute>
<attribute name="Master Item Spec/Item Type" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Regulation" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Source" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Perishable Type" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content"
type="GROUPING">
<values>
<groupvalue>
<attribute name="Master Item Spec/Product Content/Thumbnail Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Small Thumbnail
Image" type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Print Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Web Image"
type="IMAGE">
<values>
<file type="" occurrence="0">
<name/>
<dir/>
<server-name/>
<userID/>
<password/>
</file>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/POS Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Hi-Res Image"
type="URL">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Product Content/Product
Documents" type="GROUPING">
<values>
<groupvalue>
<attribute name="Master Item Spec/Product Content/Product
Documents/Document" type="URL">
<values>
<value occurrence="0"/>
</values>
</attribute>
</groupvalue>
</values>
</attribute>
</groupvalue>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet"
type="GROUPING">
<values>
<groupvalue>
<attribute name="Master Item Spec/UCCnet/Product Type"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Brand"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Category"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Color"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Consumer Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Coupon Family Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Dated Product - Days"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Detailed Description"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/D-U-N-S"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/EANUCC Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/EANUCC Type"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Effective Date"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/First Arrival"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/First Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/First Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Flash Point Temp"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Flash Point Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/GLN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Gross Weight"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/GTIN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Class Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Code Qualifier"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Description"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Hazmat Sequence"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Height"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/HI"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/InnerPack"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Item Description"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Item Status"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Last Arrival"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Last Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Last Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Length"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Linear"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Maximum Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Maximum Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Minimum Order"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Minimum Ship"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Name"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Net Weight"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Order Increment"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Order Sizing Factor"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Orderable Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Order Increment Units"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Pack"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Page"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Phone"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/POS Desc 1"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/POS Desc 2"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Pre Priced Amount"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Private"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Replaced by GTIN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Replaces GTIN"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Size"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Size Units"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Special Handling Code"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Suggested Retail Price"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/TI"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Version"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Version Status"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Volume"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Volume Unit"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Weight"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/UCCnet/Width"
type="STRING">
<values>
<value/>
</values>
</attribute>
</groupvalue>
</values>
</attribute>
<attribute name="Master Item Spec/Supplier_ID"
type="STRING">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/ItemStatus"
type="STRING">
<values>
<value occurrence="0">232</value>
</values>
</attribute>
<attribute name="Master Item Spec/Effective Start Date"
type="DATE">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Effective End Date"
type="DATE">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Last Updated By"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Update on"
type="DATE">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 1"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 2"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 3"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 4"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/Comment 5"
type="STRING">
<values>
<value occurrence="0"/>
</values>
</attribute>
<attribute name="Master Item Spec/AddedVia" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/ModifiedVia" type="STRING_ENUMERATION">
<values>
<value/>
</values>
</attribute>
<attribute name="Master Item Spec/Item Price"
type="NUMBER">
<values>
<value occurrence="0">0.0</value>
</values>
</attribute>
<attribute name="Master Item Spec/Item Unit Size"
type="STRING">
<values>
<value occurrence="0">23</value>
</values>
</attribute>
<attribute name="Master Item Spec/testImage"
type="IMAGE">
<values>
<file>
<name/>
</file>
</values>
</attribute>
</attribute-list>
</wpcTradeItem>
</wpcCommand>
</wpcBody>
</envelope>
제공된 1차 키로 제공된 항목 삭제
//
to invoke DELETE message
var strXML = "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>" +
"<wpc:envelope xmlns:wpc=\"http://ibm.com/wpc/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://ibm.com/wpc/
C:\vrprabu\5.2\xsd\portalschema\wpc\5.2_siva\envelop_portal.xsd\"
communicationVersion=\"5.2\"> " +
" <wpc:WPCResponseType>synchronous</wpc:WPCResponseType>"
+
" <wpc:wpcHeader>" +
" <wpc:companyName>IBM</wpc:companyName>" +
" <wpc:userID>Admin</wpc:userID>" +
" <wpc:password>trinitron</wpc:password>" +
" <wpc:messageIdentifier>12344</wpc:messageIdentifier>" +
" <wpc:timestamp>2004-10-10</wpc:timestamp>" +
" </wpc:wpcHeader>" +
" <wpc:wpcBody>" +
" <wpc:wpcCommand type=\"DELETE\"
mode=\"SYNC\">" +
" <wpc:wpcParentCategory>Hierarchy1/Category1</wpc:wpcParentCategory>"
+
" <wpc:wpcCatalogName>CTG_PORTAL</wpc:wpcCatalogName>" +
" <wpc:wpcTradeItem ID=\"173\">" +
" </wpc:wpcTradeItem>" +
" </wpc:wpcCommand>" +
" </wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
이 검색 메시지의 고급 선택에서 가능한 모든 종류의 검색 매개변수를 사용할 수 있습니다. 각 검색 기준에 대한 추가 메시지 형식은 WSDL을 살펴보십시오.
var
strXML = "<wpc:envelope xmlns:wpc='http://ibm.com/wpc/'
communicationVersion='5.2'>" +
"<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>" +
" <wpc:wpcHeader>" +
" <wpc:companyName>ibm</wpc:companyName>" +
" <wpc:userID>admin</wpc:userID>" +
" <wpc:password>admin</wpc:password>" +
" <wpc:messageIdentifier>C815A530-9077-11D9-A530-E0AE7B025BD4</wpc:messageIdentifier>"
+
" <wpc:timestamp>2005-03-09</wpc:timestamp>" +
" <wpc:supplierId>1236868684668</wpc:supplierId>" +
" </wpc:wpcHeader>" +
" <wpc:wpcBody>" +
" <wpc:wpcCommand type=\"SEARCH\" mode=\"SYNC\"
>" +
" <wpc:wpcCatalogName>CTG_PORTAL_MASTER</wpc:wpcCatalogName>"
+
" <wpc:wpcResultCount>2</wpc:wpcResultCount>" +
" <wpc:wpcSearchCriteria>" +
" <wpc:wpcSearchOperator name=\"AND\">" +
" <wpc:wpcSearchOperator name=\"AND\">" +
" <wpc:wpcSearchElement>" +
" <wpc:wpcAttributePath>Master Item Spec/GTIN</wpc:wpcAttributePath>"
+
" <wpc:wpcAttributeValue></wpc:wpcAttributeValue>" +
" <wpc:wpcAttributeNotPredicate>1</wpc:wpcAttributeNotPredicate>"
+
" <wpc:wpcSearchElementOperator>ISEMPTY</wpc:wpcSearchElementOperator>"
+
" </wpc:wpcSearchElement>" +
" </wpc:wpcSearchOperator>" +
" </wpc:wpcSearchOperator>" +
" </wpc:wpcSearchCriteria>" +
" </wpc:wpcCommand>" +
" </wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
이 메시지는 주어진 카탈로그의 1차 스펙을 리턴합니다. 카테고리 정보가 있고 해당 카테고리에 첨부된 항목 카테고리 스펙이 있는 경우, 해당 정보는 응답으로 다시 전송됩니다.
//
to invoke the ITEMSKELETON message
var strXML = "<wpc:envelope xmlns:wpc=\"http://ibm.com/wpc/\"
communicationVersion=\"5.2\">" +
" <wpc:WPCResponseType>synchronous</wpc:WPCResponseType>"
+
" <wpc:wpcHeader>"+
" <wpc:companyName>carmel</wpc:companyName>" +
" <wpc:userID>Admin</wpc:userID>" +
" <wpc:password>trinitron</wpc:password>" +
" <wpc:messageIdentifier>12345</wpc:messageIdentifier>" +
" <wpc:timestamp>2004-12-13</wpc:timestamp>" +
" </wpc:wpcHeader> " +
" <wpc:wpcBody> " +
" <wpc:wpcCommand type=\"ITEMSKELETON\"
mode=\"SYNC\"> " +
" <wpc:wpcCatalogName>CTG_PORTAL_MASTER</wpc:wpcCatalogName>"
+
" </wpc:wpcCommand>" +
" </wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
이 명령은 WPC WebService 프레임워크 자체에 의해 처리되며 각 스크립트 구현에 의해 처리되지 않습니다. WebService 프레임워크는 각 ASYNC 요청에 대한 고유 트랜잭션 ID를 제공합니다. WPS가 주어진 트랜잭션 ID를 갖는 조회 트랜잭션 세부사항 메시지를 전송하면, 프레임워크가 구현 스크립트에 의해 생성된 응답을 주의하여 다시 전송합니다.
//
to invoke QUERY_TRANSACTION_DETAILS message
<ibm:envelope xmlns:ibm="http://ibm.com/wpc/"
communicationVersion="5.2">
<ibm:WPCResponseType>synchronous</ibm:WPCResponseType>
<ibm:wpcHeader>
<ibm:companyName>String</ibm:companyName>
<ibm:userID>String</ibm:userID>
<ibm:password>String</ibm:password>
<ibm:messageIdentifier>1242432</ibm:messageIdentifier>
<ibm:timestamp>1967-08-13</ibm:timestamp>
</ibm:wpcHeader>
<ibm:wpcBody>
<ibm:wpcCommand type="QUERY_TRANSACTION_DETAILS"
mode="SYNC">
<ibm:wpcTransactionID>99</ibm:wpcTransactionID>
</ibm:wpcCommand>
</ibm:wpcBody>
</ibm:envelope>
이것은 사용자가 주어진 트랜잭션 ID(ASYNC 메시지)가 완료되었는지 여부를 알아내기 위해 일정 간격으로 전송하는 폴링 메시지입니다. 이 메시지는 구현 스크립트가 아닌 WebService 프레임워크에 의해서도 처리됩니다.
//QUERY_TRANSACTION_STATUS 메시지 호출
<ibm:envelope xmlns:ibm="http://ibm.com/wpc/"
communicationVersion="5.2">
<ibm:WPCResponseType>synchronous</ibm:WPCResponseType>
<ibm:wpcHeader>
<ibm:companyName>String</ibm:companyName>
<ibm:userID>String</ibm:userID>
<ibm:password>String</ibm:password>
<ibm:messageIdentifier>1242432</ibm:messageIdentifier>
<ibm:timestamp>1967-08-13</ibm:timestamp>
</ibm:wpcHeader>
<ibm:wpcBody>
<ibm:wpcCommand type="QUERY_TRANSACTION_STATUS"
mode="SYNC">
<ibm:wpcTransactionID>99</ibm:wpcTransactionID>
</ibm:wpcCommand>
</ibm:wpcBody>
</ibm:envelope>
파일 업로드
WebService 첨부로 전송된 파일을 업로드하기 위헤 응답 구현 스크립트는 업로드된 파일을 문서 저장소의 각 supplier/ctg_files 폴더에 복사하고 현재 문서 저장소 경로를 전송합니다.
//
to invoke the UPLOAD_FILE message with out attachments
var strXML = "<wpc:envelope xmlns:wpc=\"http://ibm.com/wpc/\"
communicationVersion=\"5.2\">" +
"<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>" +
" <wpc:wpcHeader>" +
" <wpc:companyName>null</wpc:companyName>" +
" <wpc:userID>wpsadmin</wpc:userID>" +
" <wpc:password>null</wpc:password>" +
" <wpc:messageIdentifier>C71125E0-8002-11D9-BDC3-93DA3F31311D</wpc:messageIdentifier>"
+
" <wpc:timestamp>2005-02-16</wpc:timestamp>" +
" <wpc:supplierId>null</wpc:supplierId>" +
" </wpc:wpcHeader>" +
"<wpc:wpcBody>" +
" <wpc:wpcCommand type=\"UPLOAD_FILE\"
mode=\"SYNC\">" +
" <wpc:wpcDataContainer>" +
" <wpc:wpcAttachmentsDataContainer>" +
" <wpc:FileName>xyz.jpg</wpc:FileName>" +
" </wpc:wpcAttachmentsDataContainer>" +
" </wpc:wpcDataContainer>" +
" </wpc:wpcCommand>" +
"</wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
이 명령을 호출하기 전에 파일 업로드 명령을 사용하여 필요한 데이터가 있는 CSV 파일을 업로드합니다. 그런 다음, 가져오기 메시지가 업로드된 파일의 문서 저장소 경로와 함께 전송되고 구현 스크립트에 의해 동일한 정보가 처리되어 각 레코드를 추가하거나 갱신합니다.
//외부 첨부를 가진 IMPORT 메시지 첨부
var strXML = "<wpc:envelope xmlns:wpc=\"http://ibm.com/wpc/\"
communicationVersion=\"5.2\">" +
"<wpc:WPCResponseType>asynchronous</wpc:WPCResponseType>"
+
" <wpc:wpcHeader>" +
" <wpc:companyName>null</wpc:companyName>" +
" <wpc:userID>wpsadmin</wpc:userID>" +
" <wpc:password>null</wpc:password>" +
" <wpc:messageIdentifier>C71125E0-8002-11D9-BDC3-93DA3F31311D</wpc:messageIdentifier>"
+
" <wpc:timestamp>2005-02-16</wpc:timestamp>" +
" <wpc:supplierId>null</wpc:supplierId>" +
" </wpc:wpcHeader>" +
"<wpc:wpcBody>" +
" <wpc:wpcCommand type=\"IMPORT\" mode=\"ASYNC\">"
+
"<wpc:wpcFileDocStorePath>public_html/ctg_files/1108730965078_15.3KB.1.csv</wpc:wpcFileDocStorePath>"
+
" </wpc:wpcCommand>" +
"</wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
해당될 경우, 카테고리 특정 속성을 포함한 모든 항목 속성을 가져옵니다.
//항목 세부사항 가져오기
<wpc:envelope xmlns:wpc="http://ibm.com/wpc/" communicationVersion="5.2">
<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>
<wpc:wpcHeader>
<wpc:companyName>IBM</wpc:companyName>
<wpc:userID>Admin</wpc:userID>
<wpc:password>trinitron</wpc:password>
<wpc:messageIdentifier>12343</wpc:messageIdentifier>
<wpc:timestamp>2004-12-10</wpc:timestamp>
<wpc:supplierId>2348623864826</wpc:supplierId>
</wpc:wpcHeader>
<wpc:wpcBody>
<wpc:wpcCommand type="ITEMDETAIL" mode="ASYNC">
<wpc:wpcParentCategory>1/5</wpc:wpcParentCategory>
<wpc:wpcCatalogName>CTG_PORTAL_MASTER</wpc:wpcCatalogName>
<wpc:wpcTradeItem ID="111225868"></wpc:wpcTradeItem>
</wpc:wpcCommand>
</wpc:wpcBody>
</wpc:envelope>
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
이 메시지는 1차 키에 대한 값 없이 항목 세부사항 응답을 리턴합니다.
//
to invoke clone item message
//항목 세부사항 가져오기
<wpc:envelope xmlns:wpc="http://ibm.com/wpc/" communicationVersion="5.2">
<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>
<wpc:wpcHeader>
<wpc:companyName>IBM</wpc:companyName>
<wpc:userID>Admin</wpc:userID>
<wpc:password>trinitron</wpc:password>
<wpc:messageIdentifier>12343</wpc:messageIdentifier>
<wpc:timestamp>2004-12-10</wpc:timestamp>
<wpc:supplierId>2348623864826</wpc:supplierId>
</wpc:wpcHeader>
<wpc:wpcBody>
<wpc:wpcCommand type="CLONEITEM" mode="ASYNC">
<wpc:wpcParentCategory>1/5</wpc:wpcParentCategory>
<wpc:wpcCatalogName>CTG_PORTAL_MASTER</wpc:wpcCatalogName>
<wpc:wpcTradeItem ID="111225868"></wpc:wpcTradeItem>
</wpc:wpcCommand>
</wpc:wpcBody>
</wpc:envelope>
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
요청 메시지에 카테고리 트리 정보가 제공되지 않은 경우, 이 명령은 응답으로 모든 하위 카테고리 및 주어진 카탈로그의 현재 카테고리와 1차 카테고리 트리를 리턴합니다.
//QUERY_CATALOG_CHILDREN 메시지 호출
var strXML = "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>" +
"<wpc:envelope xmlns:wpc=\"http://ibm.com/wpc/\"
communicationVersion=\"5.2\"> " +
"<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>"
+
"<wpc:wpcHeader>" +
"<wpc:companyName>ibm</wpc:companyName>" +
"<wpc:userID>portaluser</wpc:userID>" +
"<wpc:password>password</wpc:password>" +
"<wpc:messageIdentifier>A2473730-5D85-11D9-BF8A-BC1A417CAB44</wpc:messageIdentifier>"
+
"<wpc:timestamp>2005-01-03</wpc:timestamp>" +
"</wpc:wpcHeader>" +
"<wpc:wpcBody>" +
"<wpc:wpcCommand type=\"QUERY_CATALOG_CHILDREN\"
mode=\"SYNC\">" +
"<wpc:wpcParentCategory>1/5</wpc:wpcParentCategory>" +
"<wpc:wpcCatalogName>CTG_PORTAL</wpc:wpcCatalogName>" +
"<wpc:wpcHierarchyName name=\"Hier_Portal\"
type=\"PRIMARY\"/>" +
"</wpc:wpcCommand>" +
"</wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
이 메시지는 현재 WPC에서 사용 가능한 모든 카탈로그를 가져오며 응답으로 동일한 카탈로그를 전송합니다.
//
to invoke the GET_CATALOGS message type
var strXML = "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>" +
"<wpc:envelope xmlns:wpc=\"http://ibm.com/wpc/\"
communicationVersion=\"5.2\"> " +
"<wpc:WPCResponseType>synchronous</wpc:WPCResponseType>"
+
"<wpc:wpcHeader>" +
"<wpc:companyName>ibm</wpc:companyName>" +
"<wpc:userID>portaluser</wpc:userID>" +
"<wpc:password>password</wpc:password>" +
"<wpc:messageIdentifier>A2473730-5D85-11D9-BF8A-BC1A417CAB44</wpc:messageIdentifier>"
+
"<wpc:timestamp>2005-01-03</wpc:timestamp>" +
"</wpc:wpcHeader>" +
"<wpc:wpcBody>" +
"<wpc:wpcCommand type=\"GET_CATALOGS\"
mode=\"SYNC\"/>" +
"</wpc:wpcBody>" +
"</wpc:envelope>";
var resp = invokeSoapServerForDocLit("<respective
webservice URL>",strXML);
var respLog = createOtherOut("Response.xml"); // This
will have the transaction id. Check /scripts/soap/messages/response/<TXN_ID>
for the actual response.
respLog.writeln(resp);
respLog.save("Response.xml");
XML 응답에 지정된 보기를 리턴합니다. 이 메시지는 현재 Product Center에서 사용되지 않습니다.
요청된 각 응답을 첨부로 리턴합니다.
//
to invoke the GET_RESOURCE message
<?xml version="1.0" encoding="UTF-8"?>
<envelope xmlns="http://ibm.com/wpc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/wpc/
C:\wpc\portal\webservice_dev.xsd" communicationVersion="5.2">
<WPCResponseType>synchronous</WPCResponseType>
<wpcHeader>
<companyName>null</companyName>
<userID>administrator</userID>
<password>null</password>
<messageIdentifier>1D3589B0-97AB-11D9-B84B-AED0CDB181F1</messageIdentifier>
<timestamp>2005-03-18</timestamp>
<supplierId>null</supplierId>
</wpcHeader>
<wpcBody>
<wpcCommand type="GET_RESOURCE" mode="SYNC">
<wpcParentCategory>9/11</wpcParentCategory>
<wpcCatalogName>CTG_PORTAL_MASTER</wpcCatalogName>
<wpcHierarchyName type="PRIMARY" name="null"/>
<wpcTradeItem ID="1732">
<attribute-list>
<attribute name="Master Item Spec/Product Content/Web Image"
type="IMAGE"/>
</attribute-list>
</wpcTradeItem>
</wpcCommand>
</wpcBody>
</envelope>
IBM은 다른 국가에서 이 책에 기술된 제품, 서비스 또는 기능을 제공하지 않을 수도 있습니다. 현재 사용할 수 있는 제품 및 서비스에 대한 정보는 한국 IBM 담당자에 문의하십시오. 이 책에서 IBM 제품, 프로그램 또는 서비스를 언급했다고 해서 해당 IBM 제품, 프로그램 또는 서비스만을 사용할 수 있다는 것을 의미하지는 않습니다. IBM의 지적 재산권을 침해하지 않는 한, 기능상으로 동등한 제품, 프로그램 또는 서비스를 대신 사용할 수도 있습니다. 그러나 비 IBM 제품, 프로그램 또는 서비스 운영에 대한 평가 및 검증은 사용자의 책임입니다.
IBM은 이 책에서 다루고 있는 특정 내용에 대해 특허를 보유하고 있거나 현재 특허 출원 중일 수 있습니다. 이 책을 제공한다고 해서 특허에 대한 라이센스까지 부여하는 것은 아닙니다. 라이센스에 대한 의문사항은 다음으로 문의하십시오.
135-270
서울특별시 강남구 도곡동 467-12
군인공제회관빌딩, 한국 아이.비.엠 주식회사
고객만족센터
전화번호: 080-023-8080
다음 단락은 현지법과 상충하는 영국이나 기타 국가에서는 적용되지 않습니다.
IBM은 타인의 권리 비침해, 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하여(단, 이에 한하지 않음) 묵시적이든 명시적이든 어떠한 종류의 보증없이 이 책을 현상태대로 제공합니다. 일부 국가에서는 특정 거래에서 명시적 또는 묵시적 보증의 면책사항을 허용하지 않으므로, 이 사항이 적용되지 않을 수도 있습니다.
이 정보에는 기술적으로 부정확한 내용이나 인쇄상의 오류가 있을 수 있습니다. 이 정보는 주기적으로 변경되며, 이 변경사항은 최신판에 통합됩니다. IBM 이 책에서 설명한 제품 및/또는 프로그램을 사전 통고없이 언제든지 개선 및/또는 변경할 수 있습니다.
이 정보에서 비 IBM의 웹 사이트는 단지 편의상 제공된 것으로, 어떤 방식으로든 이들 웹 사이트를 옹호하고자 하는 것은 아닙니다. 해당 웹 사이트의 자료는 본 IBM 제품 자료의 일부가 아니므로 해당 웹 사이트 사용으로 인한 위험은 사용자 본인이 감수해야 합니다.
IBM은 귀하의 권리를 침해하지 않는 범위 내에서 적절하다고 생각하는 방식으로 귀하가 제공한 정보를 사용하거나 배포할 수 있습니다.
(1) 독립적으로 작성된 프로그램과 기타 프로그램(본 프로그램 포함) 간의 정보 교환 및 (2) 교환된 정보의 상호 이용을 목적으로 정보를 원하는 프로그램 라이센스 사용자는 다음 주소로 문의하십시오.
135-270
서울특별시 강남구 도곡동 467-12
군인공제회관빌딩
한국 아이.비.엠 주식회사
고객만족센터
이러한 정보는 해당 조항 및 조건에 따라(예를 들면, 사용료 지불 포함) 사용할 수 있습니다.
이 정보에 기술된 라이센스가 있는 프로그램 및 이 프로그램에 대해 사용 가능한 모든 라이센스가 있는 자료는 IBM이 IBM 기본 계약, IBM 프로그램 라이센스 계약(IPLA) 또는 이와 동등한 계약에 따라 제공한 것입니다.
본 문서에 포함된 모든 성능 데이터는 제한된 환경에서 산출된 것입니다. 따라서 다른 운영 환경에서 얻어진 결과는 상당히 다를 수 있습니다. 일부 성능은 개발 레벨 상태의 시스템에서 측정되었을 수 있으므로 이러한 측정치가 일반적으로 사용되고 있는 시스템에서도 동등하게 나타날 것이라고는 보증할 수 없습니다. 또한, 일부 성능은 추정치일 수도 있으므로 실제 결과는 다를 수 있습니다. 이 문서의 사용자는 해당 데이터를 사용자의 특정 환경에서 검증해야 합니다.
비 IBM 제품에 관한 정보는 해당 제품의 공급업체, 공개 자료 또는 기타 범용 소스로부터 얻은 것입니다. IBM에서는 이러한 제품들을 테스트하지 않았으므로, 비 IBM 제품과 관련된 성능의 정확성, 호환성 또는 기타 청구에 대해서는 확신할 수 없습니다. 비 IBM 제품의 성능에 대한 의문사항은 해당 제품의 공급업체에 문의하십시오.
이 정보에는 일상의 비즈니스 운영에서 사용되는 자료 및 보고서에 대한 예제가 들어 있습니다. 이들 예제에는 개념을 가능한 완벽하게 설명하기 위해 개인, 회사, 상표 및 제품의 이름이 사용될 수 있습니다. 이들 이름은 모두 가공의 것이며 실제 기업의 이름 및 주소와 유사하더라도 이는 전적으로 우연입니다.
IBM은 향후 방향 또는 의도에 관한 모든 언급은 별도의 통지없이 변경될 수 있습니다.
프로그래밍 인터페이스 정보(제공된 경우)는 이 프로그램을 사용하여 응용프로그램 소프트웨어를 작성하는 데 도움을 주기 위한 것입니다.
범용 프로그래밍 인터페이스를 사용하여 이 프로그램 도구 서비스를 확보하는 응용프로그램 소프트웨어를 작성할 수 있습니다.
그러나 이 정보에는 진단, 수정 및 성능 조정 정보가 포함될 수도 있습니다. 진단, 수정 및 성능 조정 정보는 사용자의 응용프로그램 소프트웨어를 디버그하는 데 도움을 주기 위해 제공됩니다.
경고: 이 진단, 수정 및 성능 조정 정보는 변경될 수 있으므로 프로그래밍 인터페이스로 사용하지 마십시오.
다음 용어는 미국 또는 기타 국가에서 사용되는 IBM Corporation의 상표 또는 등록상표입니다.
IBM
IBM 로고
AIX
CrossWorlds
DB2
DB2 Universal Database
Domino
Lotus
Lotus Notes
MQIntegrator
MQSeries
Tivoli
WebSphere
Microsoft, Windows, Windows NT 및 Windows 로고는 미국 또는 기타 국가에서 사용되는 Microsoft Corporation의 상표입니다.
MMX, Pentium 및 ProShare는 미국 또는 기타 국가에서 사용되는 Intel Corporation의 상표 또는 등록상표입니다.
Java 및 모든 Java 기반 등록상표는 미국 또는 기타 국가에서 사용되는 Sun Microsystems, Inc.의 상표입니다.
기타 회사, 제품 또는 서비스 이름은 타사의 상표 또는 서비스표일 수 있습니다.
IBM WebSphere Product Center에는 제외 구성요소가 포함되어 있으며(관련된 라이센스 정보 문서에 명시), 이에 대하여 다음 추가 조항을 적용합니다. 본 소프트웨어에는 제외 구성요소 조항에 의거하여 국제 프로그램 라이센스 계약(IPLA)의 조건에 따른 라이센스가 부여됩니다. IBM은 귀하에게 본 소프트웨어와 함께 다음 주의사항을 제공합니다.
i.) IBM WebSphere Product Center에는 IBM이 Apache 2.0 라이센스 조건에 따라 Apache Software Foundation으로부터 라이센스를 취득한 다음 소프트웨어가 포함되어 있습니다.
- Apache Regular Expression v1.2
- Apache Axis v1.1
- Apache XML4J v3.0.1
- Apache Log4j v1.1.1
- Apache Jakarta Commons DBCP Package v1.1
- Apache Jakarta Commons Pool Package v1.1
- Apache Jakarta Commons Collections Package v3.0
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION,
AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the
copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all ther
entities that control, are controlled by, or are under common control with that
entity. For the purposes of this definition, "control" means (i) the
power, direct or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or
more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation source, and
configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation, and conversions to
other media types.
"Work" shall mean the work of authorship, whether in Source or Object
form, made available under the License, as indicated by a copyright notice that
is included in or attached to the work (an example is provided in the Appendix
below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the editorial
revisions, annotations, elaborations, or other modifications represent, as a
whole, an original work of authorship. For the purposes of this License,
Derivative Works shall not include works that remain separable from, or merely
link (or bind by name) to the interfaces of, the Work and Derivative Works
thereof.
"Contribution" shall mean any work of authorship, including the
original version of the Work and any modifications or additions to that Work or
Derivative Works thereof, that is intentionally submitted to Licensor for
inclusion in the Work by the copyright owner or by an individual or Legal Entity
authorized to submit on behalf of the copyright owner. For the purposes of this
definition, "submitted" means any form of electronic, verbal, or
written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this
License, each Contributor hereby grants to You a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable copyright license to
reproduce, prepare Derivative Works of, publicly display, publicly perform,
sublicense, and distribute the Work and such Derivative Works in Source or
Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License,
each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable (except as stated in this section) patent
license to make, have made, use, offer to sell, sell, import, and otherwise
transfer the Work, where such license applies only to those patent claims
licensable by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s) with the Work
to which such Contribution(s) was submitted. If You institute patent litigation
against any entity (including a cross-claim or counterclaim in a lawsuit)
alleging that the Work or a Contribution incorporated within the Work
constitutes direct or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate as of the date
such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or
Derivative Works thereof in any medium, with or without modifications, and in
Source or Object form, provided that You meet the following conditions:
(a) You must give any other recipients of the Work or Derivative Works a copy of
this License; and
(b) You must cause any modified files to carry prominent notices stating that
You changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You
distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work, excluding those notices
that do not pertain to any part of the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained within such NOTICE
file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one of the following
places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or documentation, if
provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and wherever such
third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside or as an addendum
to the NOTICE text from the Work, provided that such additional attribution
notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any
Contribution intentionally submitted for inclusion in the Work by You to the
Licensor shall be under the terms and conditions of this License, without any
additional terms or conditions. Notwithstanding the above, nothing herein shall
supersede or modify the terms of any separate license agreement you may have
executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names,
trademarks, service marks, or product names of the Licensor, except as required
for reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in
writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible
for determining the appropriateness of using or redistributing the Work and
assume any risks associated with Your exercise of permissions under this
License.
8. Limitation of Liability. In no event and under no legal theory, whether in
tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly negligent
acts) or agreed to in writing, shall any Contributor be liable to You for
damages, including any direct, indirect, special, incidental, or consequential
damages of any character arising as a result of this License or out of the use
or inability to use the Work (including but not limited to damages for loss of
goodwill, work stoppage, computer failure or malfunction, or any and all other
commercial damages or losses), even if such Contributor has been advised of the
possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or
Derivative Works thereof, You may choose to offer, and charge a fee for,
acceptance of support, warranty, indemnity, or other liability obligations
and/or rights consistent with this License. However, in accepting such
obligations, You may act only on Your own behalf and on Your sole
responsibility, not on behalf of any other Contributor, and only if You agree to
indemnify, defend, and hold each Contributor harmless for any liability incurred
by, or claims asserted against, such Contributor by reason of your accepting any
such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include the brackets!)
The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a file or class name
and description of purpose be included on the same "printed page" as
the copyright notice for easier identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
for the specific language governing permissions and limitations under the
License.
ii.) IBM WebSphere Product Center에는 다음 조건에 따라 IBM이 Scott Hudson, Frank Flannery and C. Scott Ananian으로부터 라이센스를 취득한 다음 소프트웨어가 포함되어 있습니다.
- Cup Parser Generator v0.10k
CUP Parser Generator Copyright Notice,
License, and Disclaimer
Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
Permission to use, copy, modify, and
distribute this software and its documentation for any purpose and without fee
is hereby granted, provided that the above copyright notice appear in all copies
and that both the copyright notice and this permission notice and warranty
disclaimer appear in supporting documentation, and that the names of the authors
or their employers not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.The authors and their employers disclaim all
warranties with regard to this software, including all implied warranties of
merchantability and fitness. In no event shall the authors or their employers be
liable for any special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether in an action of
contract, negligence or other tortious action, arising out of or in connection
with the use or performance of this software.
iii.) IBM WebSphere Product Center에는 다음 조건에 따라 IBM이 Elliot Joel Berk and C. Scott Ananian으로부터 라이센스를 취득한 다음 소프트웨어가 포함되어 있습니다.
- JLex v1.2.6
JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian
Permission to use, copy, modify, and
distribute this software and its documentation for any purpose and without fee
is hereby granted, provided that the above copyright notice appear in all copies
and that both the copyright notice and this permission notice and warranty
disclaimer appear in supporting documentation, and that the name of the authors
or their employers not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.The authors and their employers disclaim all
warranties with regard to this software, including all implied warranties of
merchantability and fitness. In no event shall the authors or their employers be
liable for any special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether in an action of
contract, negligence or other tortious action, arising out of or in connection
with the use or performance of this software.Java is a trademark of Sun Microsystems, Inc.
References to the Java programming language in relation to JLex are not meant to
imply that Sun endorses this product.
iv.) IBM WebSphere Product에는 다음 조건에 따라 IBM이 International Business Machines Corporation 및 기타 회사로부터 라이센스를 취득한 다음 소프트웨어가 포함되어 있습니다.
- ICU4J v2.8
ICU License - ICU 1.8.1 and later
COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1995-2003 International Business Machines Corporation and others
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
provided that the above copyright notice(s) and this permission notice appear in
all copies of the Software and that both the above copyright notice(s) and this
permission notice appear in supporting documentation.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be
used in advertising or otherwise to promote the sale, use or other dealings in
this Software without prior written authorization of the copyright holder.
-----------------------------------------------------------------------------
상기 언급된 모든 상표 및 등록상표는 각 소유권자의 재산입니다.