Bentley ProjectWise Explorer — как получить физический путь к файлу (DMS)

Мне нужно получить физический путь к файлу данного документа.

Запустив несколько запросов в базе данных, я понял, что могу получить большую часть информации в некоторых таблицах:

O_path из dms_stor, o_projectcode из dms_proj и o_filename из [dms_doc].

       SELECT o_node 'Server'
,c.o_path + '/' + b.o_projectcode + '/' + o_filename 'Path'
FROM [PW_Engevix_ECO].[dbo].[dms_doc] a
JOIN [PW_Engevix_ECO].[dbo].[dms_proj] b ON a.o_projectno = b.o_projectno
JOIN [PW_Engevix_ECO].[dbo].[dms_stor] c ON c.o_storno = a.o_storno

И результат похож на:

Server      Path
VIRM-RGR016 D:/PW_RGR_STORAGE/ECX/1197_00/dms00166/

Это работает в 90% случаев.

Проблема в том, что иногда создается еще одна подпапка, она всегда начинается с «ver».

Конечный результат:

New file at:
Server  Path
VIRM-RGR016 D:/PW_RGR_STORAGE/ECX/1197_00/dms00166/

Old file at:
Server  Path
VIRM-RGR016 D:/PW_RGR_STORAGE/ECX/1197_00/dms00166/ver00000

Иногда это создается как: ver00001, ver00002 …

Я не знаю, где и как я могу узнать, находится ли файл для данного документа в корне или подпапке. Мне нужно точно знать, в какой папке находится файл документа.

Я мог бы примерить папку потом другой, но таким образом я не буду точно знать, принадлежит ли этот файл тому документу.

Я знаю, что PW API (aaApi_CopyOutDocument) делает это, но я не знаю как.

Я не могу использовать PW API в этом текущем приложении.

Спасибо

1

Решение

Попробуйте сменить керри для этого:

SELECT o_node 'Server'
,c.o_path + '/' + b.o_projectcode + '/' + CASE
WHEN o_original <> 0
THEN 'ver' + REPLICATE('0', 5 - LEN(CAST(a.o_version_seq AS NVARCHAR(MAX)))) + CAST(a.o_version_seq AS NVARCHAR(MAX)) + '/'
ELSE ''
END + o_filename 'Path'
FROM [PW_Engevix_ECO].[dbo].[dms_doc] a
JOIN [PW_Engevix_ECO].[dbo].[dms_proj] b ON a.o_projectno = b.o_projectno
JOIN [PW_Engevix_ECO].[dbo].[dms_stor] c ON c.o_storno = a.o_storno

Я думаю, что это будет работать …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]