Documentum基本类型详解

来源:互联网 发布:如何将一个矩阵对角化 编辑:程序博客网 时间:2024/06/06 19:39

    1. dm_type


    Stores structural information about an object type in the repository

    不能直接创建该对象,创建其它类型的时,Content server会自动创建一个dm_type的对象

    1. ContentServe将对象类型分为标准型和特殊型两大类。大部分使用到的类型都是标准类型。
      特殊类型包括以下几类:
      a. 共享型(Shareable):共享对象类型一般会与轻量级对象类型联合起来使用。一个共享型类型的对象可以为多个轻量级对象共同使用。
      b. 轻量级(Lightweight):轻量级对象被用来减少多个对象共享一般系统信息时的存储。共享的属性存储在一个共享型对象里,其余属性存储在轻量级对象里。轻量级类型是共享型类型的子类型。
      c. 方面属性(Aspect property):方面允许任何类型的对象都可以增加属性。方面属性对象一般用来内部管理与方面相关的属性,而用户和客户端并不知道这种类型的存在。
      d. 数据表:数据表是一个协作的组件,它允许用户管理结构化信息的集合。
      内容服务器使用
      dm_typetype_category属性显示的定义的类型的种类,它包括以下值:0.标准类型,1.方面属性,2.共享型,4.轻量级,8.数据表

     

    3. ContentServer类型(type)的命名规范

    dm_:(一般)代表通常应用的对象类型,例如dm_document,通常被用来存储文档。

      dmr_:(只读)代表只读的对象类型,例如dmr_content,它存储了文件本身的信息。

      dmi_:(内部)代表了内部对象类型,例如dmi_workitem,它存储了任务的信息。

      dmc_(客户端)代表了支持客户端应用的对象类型,例如dmc_calendar对象,被协作服     务用来存储日历事件。

     

    4.ContentServer属性命名规范

    . r_:(只读)一般表示这个属性是由ContentServer管理,不能被用户或应用程序修改。例如r_object_id代表了对象的唯一IDr_version_labe它是一个可重复的属性,不能为空,默认值由ContentServer提供,其他值由用户或客户端程序提供。

    . i_: (内部)r_很类似,不同在于它仅限于ContentServer内部使用,一般对于用户和程序是不可见的。例如,Content Server通过i_chronicle_id(很有用)绑定了所有版本的文档到一个版本树下。

    . a_: (应用程序)显示了这个属性通常由应用程序使用,可以被应用程序或用户修改。例如,文档的类型被存储在a_content_type里。这个属性帮助 webtop启动对应的桌面程序来打开文档。一般来说,其它三种格式的属性可以被视为系统的,或非应用程序的属性。

    5.几个常见属性:

    r_object_id:对象标识符ID,对象创建时自动增长并且唯一(详见5-17)


     

    i_is_replica:用来管理对象复制,决定某个对象是否是从其它内容库里复制过来的。

    i_vstamp:管理对象的更新,该值用于内部支持锁定和版本,此属性基本上是用于版本控制,每次你更改保存到这个属性的值增加1,这也有助于检查对象的并发修改的对象。

     

    一个属性值既可以是唯一值也可以为重复的。每个唯一属性只能有一个值,如object_name=test.docx, keywords=John Doe,'application

     


     

    6.dql支持的数据类型

      Int/float/String/Date/ID

      ID:用一个16字节字符串标识对象ID,是由系统自动分配的,用的时候要用单引号。

      Date:包含TODYANOWYESTERDAYTORMORROW四个关键词

     如:select * from dm_document where r_creation_date<Date(TODAY)

     注意:创建type时可用的类型有:intchar(30)string(30)booleandoublefloat

     

    7.特殊关键字USER,只能在DQL中使用,不能在DFC方法中使用,表示当前用户

    如:SELECT process_id, object_name FROM dm_workflow WHERE supervisor_name=USER

     

    8.DQL中常用的函数:

     标量函数:ASCIIUPPERLOWERSUBSTR

     集合函数:COUNTMINMAXAVGSUM

     Date函数:DATEFIFFDATEADDDATEFLOORDATETOSTRING

        ID函数:如:SELECT * FROM "dm_document" WHERE FOLDER (ID('099af3ce800001ff'))

      

    1. DATEDIFF(date_part, date1, date2)  date_part有效值为:year,month,week,day
    1. DATEADD(date_part, number, date) date_part有效值为:year,month,week,day
    1. DATEFLOOR(date_part,date) date_part有效值为:year,month,week,day

    如:假设一个文档的属性r_createion_date的值为March 23,1996 9:30:45 am

    Specifying                             Returns

    DATEFLOOR(year,"r_creation_date")        January 1, 1996 at 00:00:00

    DATEFLOOR(month,"r_creation_date")      March 1, 1996 at 00:00:00

    DATEFLOOR(day,"r_creation_date")         March 23, 1996 at 00:00:00

    1. DATETOSTRING(date,'format') 如:DATETOSTRING("r_creation_date",'dd-mon-yy')

    9.dql语句type操作

    ---------------------创建type

     语法:CREATE TYPE type_name

    [(property_def {,property_def})]

    [WITH] SUPERTYPE parent_type 创建好后,返回新建类型的object_id

    如:

    CREATE TYPE "cus_mydoc" ( attr1 STRING(32) SPACEOPTIMIZE) SUPERTYPE "dm_document" -----------------------修改type

      ALTER TYPE type_name

    MODIFY (property_modifier_clause)[PUBLISH]

    ALTER TYPE type_name

    ADD property_def {,property_def}[PUBLISH]

    如:

    ALTER TYPE " cus_mydoc " ADD "monthly_total" integer

    ALTER TYPE " cus_mydoc "  MODIFY ("attr1" string(255))

    -------------------------删除type

      DROP TYPE type_name

     

    10.dql语句object操作

     

     -----------------------create---object

     CREATE type_name OBJECT update_list

    [,SETFILE 'filepath' WITH CONTENT_FORMAT='format_name']

    {,SETFILE 'filepath' WITH PAGE_NO=page_number}

    如:CREATE "dm_document" OBJECT

    set "object_name"='testdoc',

    SET "title" = 'Grant Proposal',

    SET "subject" = 'Research Funding',

    SETFILE 'c:\test.docx' WITH CONTENT_FORMAT='msw8',

    SETFILE 'c:\test66.docx' WITH PAGE_NO=1

    ---------------------------updateobject

    UPDATE [PUBLIC]type_name [(ALL)]

    [WITHIN PARTITION partition_id {,partition_id}]

    OBJECT[S] update_list

    [,SETFILE filepath WITH CONTENT_FORMAT=format_name]

    {,SETFILE filepath WITH PAGE_NO=page_number}

     [WHERE qualification]

     

    如:UPDATE "dm_document" OBJECTS

    SET "title" = 'A Cake Primer',

    SET "subject" = 'cake',

    INSERT "authors"[3] = 'georgette'

    WHERE "r_object_id" = '090007354140004e'

    -------------------deleteobject

    DELETE [PUBLIC]type_name[(ALL)]

     [WITHIN PARTITION (partition_id {,partition_id})

    OBJECT[S]

     [WHERE qualification]

    如:DELETE "dm_document" OBJECTS

    WHERE "r_modify_date" < date('01/01/1970')

    AND "owner_name" = 'joe'

     

    11.select查询

     (1)得到一个文件柜下的所有文档(包括版本)

    select * from dm_document(all) where folder('/Temp',descend)

    若获得文件柜下的当前版本文档:

    select * from dm_document where folder('/Temp',descend)

    (2).通过i_chronicle_id字段可以得到该文档的根版本,即升级前的原始版本

    select r_object_id,i_chronicle_id,object_name from dm_document(all) where folder('/ProjectFile',descend)

    (3).获取工作流attachements

     select r_component_id,r_component_name from dmi_wf_attachment where r_workflow_id='4d0003e880001229'

     

    (4).返回前10条数据

     select * from dm_document enable(return_top 10)

     

    (5).获取工作流信息

     select task_name,task_state,* from dmi_queue_item where router_id=’workflowId’

    (6).测试NULL和默认值NULLDATENULLSTRINGNULLINTNULLID,注册表用NULL

      select * from dm_user where user_address is nullstring

     

    (7)返回指定组的用户成员

      select user_name from dm_user where user_group_name='admingroup'

     

    (8).查询属于一个虚拟文档的所有components

      Select * from dm_sysobject IN DOCUMENT ID(‘object_id’) DESCEND


原创粉丝点击