本文内容
Agile PLM中Folder用来保存Query、Report或者一些具体的Object。它的概念和Windows的资源管理器完全相同:文件夹内可以包含子文件夹和文件,子文件夹内可以再包含其他子文件夹。通过用户登录后Agile加载Folder的过程,我们可以了解Folder与Query, Report和其他Object的关系。用户admin (ID=704)登录后,Agile会首先加载4个Folder,Query的最上层Folder(界面上显示为Searches),Report的最上层Folder(界面显示为Reports and Analytics),Recently Visited Folder, My Bookmarks Folder。其中Searches folder再加载Personal Searches和公共的folder,如Global Searches, Workflow Routings等等。而Reports and Analytics会再次加载Personal Reports和公共的folder。
通过如下SQL,可以观察一下admin用户所拥有的最外层Folder结构:
select id, is_public, description from folder where owner=704;
IS_PUBLIC用来标识此Folder的类型。将此结果和UI做一下匹配:
在上图的SQL结果中,没有列出诸如Global Searches,PLM Analytics等等的Folder,是因为这些Folder都是公共的,不专属于某个用户。可以通过owner=0的条件来查找这些公共的Folder。
select id, name, is_public, description from folder where owner=0;
一个Folder下可以包含其他的Folder和Query、Report或者Object,他们的包含关系保存在Foldering表中。当一个Folder同时包含Folder和Query、Report或者Object时候,是如何区别他们的呢?在Foldering表中有个CLASSID字段,不同的值类型代表了不同的含义。其中CLASSID=4表示当前的子内容为Folder,CLASSID=5表示当前的子内容为Query,如果CLASSID为一个具体的Class的值,比如10000,则表示子内容是一个具体的Object。
举例如下:Personal Searches的目录下含有4个Query和一个子Folder,如下图所示。同时查询Foldering表有如下结果:
再如:Global Report的目录下含有四个Report,查询Foldering并同界面结合起来查看:
又如:My Bookmarks目录下有5个不同的对象,比较界面和数据库,清晰的对应如下:
Query的数据存放在Query数据表中,包含Quick Search, Parametric Search和Advanced Search。这些查询有的可以编辑,有的预定义,差别很大。Query在定义的时候可选择显示哪些栏位,具体数据则保存在Select_List表。Report的数据存放在Report表中。Report和Search有一定的联系性,他们各自的查询条件均是保存在Criteria数据表中。
用户在使用Query的时候常常发现原先版本的Query在新版本中不存在或者Criteria完全错乱了,这个时候就需要详细的分析以上涉及到的所有表,之间的逻辑关系较为复杂。具体的Query和Report的技术细节,请咨询。