특정 비즈니스 객체 통합 구성
이 마지막 섹션에서는 특정 Oracle Sales and Service 애플리케이션 비즈니스 객체 내에 OCM 포함 폴더 UI를 추가하는 데 필요한 단계를 수행합니다.
이 섹션에서는 기회를 다시 사용하지만 서비스 요청, 캠페인, 이벤트 등과 같은 단계를 사용하여 비즈니스 객체를 업데이트할 수 있습니다. 그러면 고유한 OCM 폴더 ID를 저장할 기회 내에서 사용자정의 필드를 생성하는 작업이 수행됩니다. 이 단계에서는 기회에 특정한 OCM 폴더 ID를 사용하여 매시업을 통해 OCM 포함 폴더 UI를 노출하는 기회 세부정보 페이지에 문서 탭을 추가합니다.
사용자정의 필드 생성
사용자정의 필드는 생성된 비즈니스 객체와 관련이 있습니다. 이러한 변수는 생성되는 업무 객체의 각 instance에 대해 고유합니다.
특정 기회 항목과 관련된 고유 OCM 폴더 ID를 포함할 사용자정의 필드를 생성하려면 다음을 수행합니다.
- 애플리케이션 편집기를 다시 입력하려면 페이지 왼쪽 맨 위에 있는 도구를 누른 다음 드롭다운 목록에서 애플리케이션 편집기를 선택합니다.
- 왼쪽 탐색 메뉴에서 객체, 표준 객체, 기회, 필드를 차례로 선택합니다.
- Fields 페이지에서 Custom 탭을 선택하고 Create a custom field 아이콘을 누릅니다.
- [필드 유형 선택] 대화상자에서 텍스트 옵션을 선택하고 확인을 누릅니다.
- [텍스트 필드 생성] 페이지에서 다음을 수행합니다.
- Display Label(표시 레이블) 필드에서 이름을 OCMFolderId로 지정합니다. 이름 필드는 표시 레이블 필드에 지정된 값에 따라 자동으로 채워집니다.
- 설명 필드에 "OCM Opportunities Collaboration 통합을 사용 중인 고유 폴더 ID를 저장할 특정 기회 객체에 대한 사용자정의 변수" 텍스트를 입력합니다.
- 저장 후 닫기를 누릅니다.
비즈니스 객체 확장
위에서 생성한 매시업과 같은 비즈니스 객체를 확장하여 비즈니스 객체 UI 내에 OCM과 같은 외부 애플리케이션을 노출할 수 있습니다.
OCM 통합을 포함할 새 기회 페이지 레이아웃을 생성하려면 다음을 수행합니다.
- 왼쪽 탐색 메뉴에서 표준 객체, 기회, 페이지를 차례로 선택합니다.
- [기회: 페이지] 페이지의 [세부 사항 페이지 레이아웃] 섹션에서 세부 사항 페이지 레이아웃 복제를 누릅니다.
주:
사용자정의 페이지가 이미 생성된 경우 새 페이지를 생성하는 대신 OCM 통합에 해당 페이지를 사용할 수 있으며 3단계를 건너뛸 수 있습니다. - [레이아웃 복제] 대화 상자에서 다음 필드에 정보를 입력합니다.
- 새 레이아웃 이름 필드에서 이름을 OCMEmbeddedUIIntegration로 지정합니다.
- 소스 레이아웃 필드의 드롭다운 메뉴에서 표준 레이아웃을 선택합니다.
- 저장 및 편집을 누릅니다.
- Details Layout 페이지의 Subtabs Region 섹션에서 왼쪽 탐색 메뉴 아래쪽에서 Add 아이콘을 선택하여 OCM 내장 UI를 추가합니다.
- 매시업 콘텐츠 옵션을 선택합니다. 다음을 누릅니다.
- 다음 페이지에서 이전에 만든 OCMEmbeddedFolderUIMashup 옵션을 선택하고 삽입을 누릅니다.
- 다음 페이지에서 다음 필드에 정보를 입력합니다.
- 표시 레이블 필드에 문서를 입력합니다.
- 표시 아이콘의 경우 기회 UI에 문서 보기 아이콘이 탭으로 표시되도록 아이콘 변경을 누릅니다.
- 스크립트 편집 필드에 다음 스크립트를 붙여넣습니다.
println("Opportunity Documents Tab Selected: " + Name) // Get the current user security context def secCtx = adf.context.getSecurityContext() // Get the current OCM user id based off the current Oracle Sales and Service User def OCMUserId = adf.util.OCMSearchUserFunction(secCtx.getUserName()) // Now check to see if the OCM user has been shared to this folder boolean isFolderShared = adf.util.OCMIsFolderSharedFunction(OCMFolderId_c, OCMUserId) if (!isFolderShared) { // Share the current user as a Manager to the OCM Folder associated to this item adf.util.OCMShareFolderFunction(OCMFolderId_c, OCMUserId, "manager") } println("Loading OCM Embedded Docs UI") return OCMFolderId_c +'?options={"documentsView":{"layout":"grid","header":{"create":{"folder":true},"upload":true,"trash":true},"actions":{"open":{"file":true},"uploadNewVersion":true,"download":true,"delete":true,"shareLink":true,"members":true}},"documentViewer":{"actions":{"download":true,"uploadNewVersion":true,"shareLink":true},"sidebar":{"conversation":true}}}'
주:
이 스크립트는 폴더에 액세스하는 각 사용자에게 관리자 역할을 자동으로 지정합니다. 다른 사용자에게 제공자 역할을 부여하는 동안 기회 소유자에게 관리자 역할을 부여하도록 이 작업을 더욱 구체화할 수 있습니다. - 다음 단추를 누릅니다.
- 저장 후 닫기를 누릅니다.
이벤트 트리거 추가
이벤트 트리거는 이벤트를 확인하고 이벤트가 발생하면 트리거와 연관된 코드를 실행합니다.
OCMCreateFolderTrigger
기회가 생성될 때 관련 OCM 폴더를 생성하는 서버 스크립트 객체 트리거를 추가하려면 다음을 수행합니다.
- 왼쪽 탐색 창에서 표준 객체, 기회, 서버 스크립트를 차례로 선택합니다.
- Server Scripts Opportunity 페이지에서 Triggers 탭을 선택합니다.
- [객체 트리거] 섹션에서 새 트리거 추가를 누릅니다.
- Create Object Trigger 페이지에서 다음 필드에 정보를 입력합니다.
- 트리거 드롭다운 메뉴에서 데이터베이스에 삽입 전을 선택합니다.
- 트리거 이름 필드에서 트리거 이름을 OCMCreateFolderTrigger로 지정합니다.
- 설명 필드에 "생성 중인 기회와 연관된 OCM 폴더 생성" 텍스트를 입력합니다.
- Edit Script(스크립트 편집) 필드에 다음 스크립트를 붙여넣고
<OCMRootFolderId>
를 위 초기 단계에서 OCM에 캡처된 실제 OCM 루트 폴더 ID로 바꿉니다(예: F572711F9E557436A646AEC295F044A3C39B0).println("Opportunity.BeforeInsert(OCMCreateFolderTrigger): " + Name) def OCMParentFolderId = "<OCMRootFolderId>" // Create a new OCM folder under the parent folder based off the item name println("Create OCM Opportunity Folder under Pararent Folder Id: " + OCMParentFolderId) def OCMFolderId = adf.util.OCMCreateFolderFunction(OCMParentFolderId, Name) // and assign that new folder id to the OCMFolderId item variables setAttribute("OCMFolderId_c", OCMFolderId)
- 저장 후 닫기를 누릅니다.
OCMDeleteFolderTrigger
서버 스크립트 객체 트리거를 추가하려면 새 객체 트리거 생성 페이지에서 기회가 삭제될 때 관련 OCM 폴더를 제거하십시오.
주:
구현자는 기회가 삭제된 후에도 OCM 기회 폴더에 배치된 콘텐츠를 유지해야 한다는 사실을 깨달은 경우 이 단계를 구현하지 않도록 선택할 수 있습니다.- 트리거 드롭다운 메뉴에서 데이터베이스에서 삭제 전을 선택합니다.
- 트리거 이름 필드에서 트리거 이름을 OCMDeleteFolderTrigger로 지정합니다.
- 설명 필드에 "삭제 중인 기회와 연관된 OCM 폴더 제거"를 입력합니다.
- 스크립트 편집 필드에 다음 스크립트를 붙여넣습니다.
println("Opportunity.BeforeDelete(OCMDeleteFolderTrigger): " + Name + "(" + OCMFolderId_c + ")") // Make sure that we have a folder to delete if (OCMFolderId_c != null) { adf.util.OCMDeleteFolderFunction(OCMFolderId_c) } else { println("Warning: No OCMFolderId associated to the Opportunity?") }
- 저장 후 닫기를 누릅니다.