Получение пути к файлу из Business Objects Enterprise программным способом
-
12-12-2019 - |
Вопрос
Есть ли какой-либо способ извлечь путь к файлу из отчета, существующего на сервере Business Objects Enterprise, в рамках API-интерфейсов Crystal Reports, которые входят в стандартную комплектацию Visual Studios?Мы создаем объект ReportDocument и загружаем его с помощью InfoStore и EnterpriseSession.Мы ищем способ программного извлечения имени пути к файлу, чтобы можно было использовать его для метаданных в процессе извлечения.Кроме того, мы попытались использовать свойство FileName в классе ReportDocument, но оно просто возвращает CUID отчета.
Если мы не сможем найти способ сделать это, мы просто сделаем это программно с помощью рекурсивной функции, но я бы определенно сделал это. предпочитать чтобы найти свойство, в котором это сохранено.
Решение 2
К вашему сведению, вот как мы нашли решение проблемы.
Все, что мы используем, это StringBuilder
и InfoObject
запрос, который выглядит следующим образом:
string sReportQueryString =
"SELECT SI_ID, SI_CUID, SI_NAME, SI_PATH, SI_PARENT_CUID " +
"FROM CI_INFOOBJECTS " +
"WHERE SI_PROGID='CrystalEnterprise.Report' AND SI_INSTANCE = 0";
После этого мы вызываем наш рекурсивный метод и выполняем следующий код:
if (rptInfo.ParentID != 0)
{
pathName.Insert(0, "\\" + rptInfo.Parent.ToString());
getPath(rptInfo.Parent, ref pathName);
}
Где rptInfo
является InfoObject
и pathName
это StringBuilder
.
Другие советы
Это возможно только от Infostore.В вашем запросе вы хотите включить Si_Files в ответ.Если вы уже делаете выберите * из ci_infoobjects, где si_name= 'xyz' тогда у вас уже будет возвращаться.
Тященая часть состоит в том, что свойство Si_Files находится в сумке свойств и имеет 2 части, о которых вы заботитесь о:
- si_file1
- si_path
si_file1 - это настоящее имя файла, которое было сохранено в системе хранилища файлов (FRS).Si_Path - путь файла в FR.Путь будет похоже на frs: // input / a_135 / 028 / 000/7303 / 028/000 / 7303 / Первый раздел FRS: // Вход относится к пути настроенную дляФРС внутри CMC.Остальная часть пути - обычный путь файловой системы к тому, где сохраняется Si_File1.