2014-05-19 3 views
0

비즈니스 개체 서버에서 예약 된 보고서 만 다운로드해야하는 Java 응용 프로그램을 수행하고 있습니다. 보고서를 예약을 위해 내가 정보보기 다음과 같은 방법으로 보고서 2) 작업에예약 된 비즈니스 개체 보고서를 확인하는 중

1) 카릭을 사용하고 -> 일정 3) 설정 재발, 형식 및 대상은

보고서는 다음의 번호를 가지고 인스턴스 (instance)가없는 스케줄 된 보고서가 아니라 인스턴스 (instance)입니다. 별도의 예약 된 보고서 나

com.crystaldecisions.sdk.occa.infostore.ISchedulingInfo

IInfoObject ifo = ((IInfoObject) result.get(i)) 
ISchedulingInfo sche = ifo.getSchedulingInfo(); 

이 잘 예약에 대한 정보를 제공해야합니다을 사용하고있는 코드에서

? 그러나 어떤 이유로 이것은 객체를 반환하고 있습니다 ( null이 아닌). 이 아니고 예약 보고서가 있습니다. 그리고 그 메소드에 의해 반환 된 정보 (getBeginDate, getEndDate 등)는 두 종류 모두에서 비슷합니다.

나는 SI_CHILDREN> 0 쿼리

SELECT * FROM CI_INFOOBJECTS WHERE SI_PROGID = 'CrystalEnterprise.Webi' " 
+ AND SI_CHILDREN > 0 AND SI_PARENTID = " + String.valueOf(privateFolderId) 
+ " ORDER BY SI_NAME ASC " 

이 예약 된 보고서를 필터링 할 수있는 권리 방법을 사용하여 보고서를 필터링하려고?

답변

1

예약 된 보고서에는 예약 정보를 보유하고 예약 보고서가 부모로있는 하위 인스턴스가 있습니다. (당신은 BI 실행 패드의 기록 목록에서이 인스턴스를 볼 수 있습니다.)

당신은 순환 적이 같은 CMS에서 자식 인스턴스 일정을 검색 할 수 있습니다

SELECT * FROM CI_INFOOBJECTS WHERE SI_PROGID = 'CrystalEnterprise.Webi' 
and si_recurring = 1 

이이 예정된 보고서를 분리합니다 더 정확하게는 위에서 설명한 자식 "일정"인스턴스를 실행해야합니다. 그런 다음이 인스턴스에 대한 getSchedulingInfo()를 호출하여이 예약에 대한 추가 정보를 얻을 수 있습니다.

위의 쿼리에서 반환 된 SI_ID 필드가 아닌 SI_PARENTID 필드는 초기 WebI 보고서의 ID를 제공합니다.

+0

안녕하세요, /AdminTools/querybuilder/ie.jsp 또는 Business Objects Business Intelligence 플랫폼 - 쿼리 작성기에서 SI_PROGID = 'CrystalEnterprise.Webi'및 si_recurring = 1 인 SELECT * FROM CI_INFOOBJECTS 쿼리를 실행했으며 결과가 0입니다. 서버에 4 개의 예약 된 보고서가 있습니다. – manuel

+0

그들은 어떤 형식으로 실행될 예정입니까? WebI, Excel, PDF? – emilys

2

그래서 Webi, Crystal 등은 ISchedulable 인터페이스를 구현합니다. 즉, 인스턴스가 아닌 InfoObject는 스케줄되었는지 여부에 관계없이 ISchedulingInfo를 리턴합니다.

오브젝트가 예약 된 경우, 인스턴스는 SI_SCHEDULE_STATUS = 9 (ISchedulingInfo.ScheduleStatus.PENDING)

작업 후 실행 (SI_SCHEDULE_STATUS = 0)에 생성되고, 하나 (SI_SCHEDULE_STATUS = 1) 또는 실패를 (완료 SI_SCHEDULE_STATUS = 3).또한 일시 정지 할 수 있습니다 (SI_SCHEDULE_STATUS = 8)

그래서

예약 된 모든 인스턴스를 찾으려면, 당신은 같은 쿼리가 필요 :이 성공 또는 실패하지 않습니다 당신에게 아무것도 얻을 것이다

select * from ci_infoObjects where si_instance=1 and si_schedule_status not in (1,3)