Skip to main content
1-Visitor
September 30, 2016
Question

EPM Document UML, file store, vault in PDMLink

  • September 30, 2016
  • 20 replies
  • 8980 views

Hello,

I am a new user of Windchill PDMLink. I am exploring this topic and have read a couple of User Guide, SQL Queries and lot of discussions on this group.

Currently the below knowledge is scattered with me and I wanted help to understand them

I have come across some basic queries related to PDMLink:

1. FvVault and Vaults Topic:

  • In the Help Topics I have learnt to create a folder, vault, but I am not able to mount or link a folder to the created vault.

  • Is this true: Default, if we do not create the vaults manually, does PDMLink store everything onto "C:\ptc\Windchill_10.2\Windchill\vaults\defaultuploadrootfolder\defaultuploadrootfolder_Folder_1"

  • Do we need to create a vault structure for uploading the creo files from embedded browser (through workspace: upload CAD Documents process is known to me and could successfully do it).

2. I am basically curious to know how PDMLink stores the CAD Document (EPM Document) data. I have also checked EPMDocument, EPMDocumentMaster, EPMMemberLink, EPMReferenceLink tables (and uniqueLinkId, uniqueNDId).

3. I want to extract file path of each CAD Document on disk or know how to build this path.

For eg. In the DemoData of Golf_Cart, I could see some creo related files at

C:\ptc\Windchill_10.2\Windchill\loadFiles\pdmlink\demodata\GolfCart

Whereas, for Drive System, I am unable to get the location for the same.

I am able to extract properties like create date, modify date, file size, cadname, name, documentnumber, authoring application, docType, State, Version

Could you please guide me further on this.

Thank You in advance.

Regards,
Kalyani H


20 replies

22-Sapphire I
September 30, 2016

With valuting not set up (e.g forceContentToVault=false), the system actually stores the huge CAD files in the Oracle database on disk as BLOBS.  This is the default condition after Windchill is installed.

When you set the related properties correctly, the system pretty much manages vaulting automatically.  The only reason to get into this further really, is just for understanding, not really needed for Windchill admin work.  There are some interesting query builder reports that can relate what you see on disk in the vault folders with what users see.

22-Sapphire I
September 30, 2016

By the way, I believe the golf cart is supplied with WTParts and viewables of CAD, but no actual CAD files, so no EPM Docs.

khomkar1-VisitorAuthor
1-Visitor
October 3, 2016

Hello Mike,

Thank you for the prompt response.

I learnt from your response about how Windchill stores the data in both the cases- Vault and if no Vault created as BLOBS.

Further, I created a Vault, mounted it (using the UserGuide document). In the database query, I could see the Vault details under FvVault and FvMount tables.

As suggested by you, I did set the forceContentToVault=true using xconfManager utility. Further, I created a Part and checked the FvFolder and FvItem tables. However, unfortunately both seem to be empty.

Could you guide me to analyse if I missed any more steps in this process? Any possible reference link or document to insert EPM Document type of files in this newly created Vault would be of great help.

Thank You in advance.

Regards,
Kalyani H

20-Turquoise
October 3, 2016

Kalyani Homkar wrote:

Hello Mike,

Thank you for the prompt response.

I learnt from your response about how Windchill stores the data in both the cases- Vault and if no Vault created as BLOBS.

Further, I created a Vault, mounted it (using the UserGuide document). In the database query, I could see the Vault details under FvVault and FvMount tables.

As suggested by you, I did set the forceContentToVault=true using xconfManager utility. Further, I created a Part and checked the FvFolder and FvItem tables. However, unfortunately both seem to be empty.

There is no content for a WTPart (Part). Creating a WTPart will only create database entries. You will have to create a document of some type ie checkin a cad prt/asm or create another type of document in which you upload a local file.

khomkar1-VisitorAuthor
1-Visitor
October 5, 2016

Hi,

Thank You for the response.

I tried the below query:

SELECT

dm.documentNumber DNUMBER,

sys.fn_varbintohexsubstring(0,CAST(fvitem.uniqueSequenceNumber AS VARBINARY(7)),1,0) "FileInFolder",

fm.path IN_PATH,doc.versionIdA2versionInfo,doc.iterationIdA2iterationInfo,

folder.name FOLDER_NAME,fh.hostName IN_SERVER,

fvitem.uniqueSequenceNumber

FROM

    wcadmin.wcadmin.EPMDocumentMaster dm,

    wcadmin.wcadmin.EPMDocument doc,

    wcadmin.wcadmin.HolderToContent h,

    wcadmin.wcadmin.ApplicationData app,

    wcadmin.wcadmin.FvItem fvitem,

   wcadmin.wcadmin.FvFolder folder,

   wcadmin.wcadmin.FvMount fm,

   wcadmin.wcadmin.FvHost fh

WHERE

     doc.idA3masterReference = dm.idA2A2

    AND dm.documentNumber = 'RISER.PRT'

    AND doc.versionIdA2versionInfo ='A'

    AND h.idA3A5 = doc.idA2A2

    AND h.idA3B5 = app.idA2A2

    AND app.idA3A5 = fvitem.idA2A2

    AND fvitem.idA3A4 = folder.idA2A2

    AND fvitem.idA3A4 = fm.idA3A5

    AND fm.idA3B5=fh.idA2A2

    AND doc.iterationIdA2iterationInfo ='1'

     AND app.fileName='{$CAD_NAME}'

But still it fetches no record. I think I am not able to add files in the Vault correctly.

On your machine via SQL Query or SQL Server Management Studio, if we query 'fvItem':

"select top 10 * from fvItem;"

Does this show any records?

Regards,
Kalyani Homkar

12-Amethyst
October 5, 2016

Yes, It's showing the Records.

FVItem.jpg

Thanks,

Bhagirath

12-Amethyst
October 5, 2016

Kalyani,

I think it's storing the Data in Blobs.

Can you execute the below query and verify if it's uploading data into Blobs.

select count(*) from StreamData;


Note down the Count and Check-in few EPM Documents, wait for few minutes and see if Stream data Count increases.


You can also execute the below query to identify the no of items stored in Blobs.

select htc.classnamekeyroleAObjectRef, count(sd.idA2A2)
from HolderToContent htc, ApplicationData ad, StreamData sd
where ad.idA3A5 = sd.idA2A2
and htc.idA3B5 = ad.idA2A2
group by htc.classnamekeyroleAObjectRef;


Result

Blob.png

Thanks,

Bhagirath