การทำชุด Index (Attributes) ใน Document Management นั้นมีความสำคัญมาก เพราะการ Design ชุด Index ที่ดี จะทำให้สามารถค้นหาเอกสารได้อย่างง่ายดาย รวดเร็ว และทำให้การเขียนโปรแกรมให้เข้ากับ ส่วนต่างๆ ของระบบ เป็นไปด้วยความสะดวกมากยิ่งขึ้น โดยระบบ Enterprise Content Management โดยทั่วไปนั้น จะประกอบไปด้วย 2 ส่วน คือ

  • Document Type หมายถึง ประเภทของเอกสาร ยกตัวอย่างเช่น ในองค์กรอาจจะมีประเภทของเอกสาร ที่แตกต่างกันออกไป เช่น เอกสารประเภท invoice, เอกสารประเภท HR หรือเอกสารประเภทอื่นๆ ในแต่ละประเภทเอกสารก็จะมี Attributes ที่แตกต่างกันออกไป
  • Attributes (Meta Data) หมายถึง ชุด Index ที่จะแนบไปกับ Document Type ยกตัวอย่างเช่น ในเอกสารประเภท Invoice ก็มักจะประกอบไปด้วย Index คือ Invoice Number, Invoice Date, Customer Name เป็นต้น

การจัดทำ Document Type และ Attributes นั้น ถ้าหากว่าเป็น Software บางราย เช่น Oracle Web Content, ECM Documentum, IBM FileNet จะมี Tools ในการสร้าง Document Type ที่ง่ายทีเดียว แต่สำหรับ Alfresco นั้นจะใช้วิธีการ Config ผ่าน XML File ซึ่งถ้าหากว่าเข้าใจถึงวิธีการทำงานแล้ว ก็ไม่ยากเหมือนกัน

เริ่มเลยนะครับ อย่างที่บอกแล้วว่า Content Model ของ Alfresco ใช้การ Config ไฟล์ XML นะครับ ดังนั้น Path ที่มีการเก็บพวกไฟล์ Config ของ Alfresco จะเก็บไว้ที่ /webapps/alfresco/WEB-INF/classes (Path นี้ เพื่อใช้อ้างอิงต่อไป เราจะเรียกว่า นะครับ)

null

ซึ่งถ้าจะจำเพาะลงไปถึง Path ของไฟล์ที่เก็บ Content Model นั้น ก็จะเข้าไปอีก คือ /alfresco/model/model ซึ่งจะมีไฟล์ที่เกี่ยวกับ Content Model หลักๆ คือ

  • contentModel.xml > จะเก็บ Content Domain Model ได้แก่ Folder, File, category, Dublin Core เป็นต้น
  • systemModel.xml > จะเก็บ Config ของ System Level Repository
  • applicationModel.xml > จะเก็บ Config ของ Application Model
  • dictionaryModel.xml > จะเก็บ Config ของ Dictionary Meta Model

ซึ่งโดยปกติแล้วการเข้าไปแก้ไขหรือเพิ่มเติม Content Model เราจะไม่แก้ไข File พวกนี้ เพราะจะทำให้การ Upgrade ลำบาก แต่จะใช้การ Extend ไปใช้งานแทน ใน Folder Extension แทน โดย Path จะอยู่ที่ /shared/classes/alfresco/extension (โดยใน Folder extension นี้ จะมีไฟล์ .sample เพื่อใช้เป็นตัวอย่างในการ Config อีกด้วย)

ขั้นตอนในการสร้าง Custom Content Model จะมีอยู่ 3 ขั้นตอน คือ

1. สร้างไฟล์ Model Spring Context (Standard ของ Spring Framework) เป็นการ Config ว่าจะให้ไป Load Model Definition ตัวไหนบ้าง ตัวอย่างการตั้งชื่อไฟล์ Model Spring Context เช่น example-model-context.xml

2. สร้างไฟล์ Model Definition เป็นไฟล์ที่บอกรายละเอียดของ Content Model ว่ามีลักษณะอย่างไร ตัวอย่างการตั้งชื่อไฟล์ของ Model Definition เช่น exampleModel.xml

3. สร้างไฟล์ Web Client Configuration เป็นไฟล์ที่บอกรายละเอียดว่าจะให้ แสดงที่หน้า Alfresco อย่างไร

เริ่มต้นสร้าง Content Model กันเถอะ อันดับแรกไปที่ path ที่เราจะทำการสร้าง Content Model กันนะครับ /shared/classes/alfresco/extension ถ้าไม่มี Folder extension ให้สร้างขึ้นมาเลยนะครับ

null

ทำการสร้างไฟล์ alfresco-thailand-context.xml เป็นไฟล์ที่บอกว่า ให้ไปอ่าน Content Model ที่ไฟล์ไหนบ้าง ในตัวอย่างให้ไปอ่านที่ไฟล์ alfrescoThailandModel.xml ใน Folder [alfrescoThailandModel] ลอกตาม code ด้านล่างแล้ว Save เลยครับ

null

สร้าง Folder [extension] ภายใต้ Folder [alfrescoThailandModel] นะครับ จากนั้นสร้างไฟล์ alfrescoThailandModel.xml

null

ลอกตาม Code ด้านล่างเลยนะครับ

null

สำหรับไฟล์ alfrescoThailandModel.xml จะเป็นการบอกว่า มี Content Model อะไรอยู่บ้างและใน Content Model ประกอบไปด้วย Attributes อะไรบ้าง โดยจะประกอบไปด้วย ส่วนต่างๆ ดังนี้ คือ

  • <model name=”alfthai:alfresco_thailand_model” …  ตั้งชื่อ model name นะครับ ปกติจะพยายามตั้งให้ Unique คือ จะเริ่มจาก :ชื่อ Model เช่น alfthai:alfresco_thailand_model
  • Syntax 2 บรรทัดนี้จะเป็นการ Import Name Space ของ DictionaryModel และ ContentModel เข้ามา ซึ่งเป็น Class แม่ของ ContentModel
  • ประกาศ NameSpace ของ ContentModel ตัวเองขึ้นมา โดยให้ Prefix เหมือนกับข้อแรกนะครับ
  • ในส่วนสุดท้ายเป็นส่วนของ Content Model นะครับ ว่ามีกี่ Content Model และประกอบไปด้วยอะไรบ้าง

null

ในตัวอย่างจะตั้งเป็น ContentModel ชื่อ “alfthai:invoide”, มี ContentModel แม่ คือ cm:content และประกอบไปด้วย Property คือ alfthai:invoiceId > ใช้ alfthai เป็น Prefix ทุกครั้ง เพื่อไม่ให้ ชื่อซ้ำกันในระบบ เมื่อพิมพ์เสร็จแล้ว ให้คลิกที่ปุ่ม Save

จากนั้น ทำการแก้ไขไฟล์ชื่อ web-client-config-custom.xml ไฟล์นี้ จะเป็นไฟล์ที่บอกว่าจะให้นำ Content Model ที่สร้างขึ้นมาแสดงในหน้าไหน อย่างไรบ้าง

null

เพิ่ม config เข้าไปในไฟล์ ดังรูปด้านล่าง ส่วนแรกจะเป็นการบอกว่า ให้แสดง Type ชื่อว่า alfthai:invoice ในหน้าของ Content Wizards (ตอนที่ add content ใน Alfresco Explorer)

null

ส่วนที่สองจะเป็นการ บอกว่าให้ แสดงค่า Property: alfthai:invoiceId ในหน้าของ Property Save File แล้ว Restart Alfresco Server นะครับ จากนั้น เข้าไปที่ Alfresco Explorer ทดลอง Add Content เข้ามานะครับ คลิกที่ปุ่ม Add Content

null

ทำการ Browse ไฟล์ที่ต้องการ

null

จะปรากฏหน้า Add Content Dialog ขึ้นมา โดยที่ช่อง Type จะปรากฏ Alfresco Thailand Document ขึ้นมา ให้เลือกและกดปุ่ม OK

null

เมื่อคลิก OK แล้วจะปรากฏหน้าจอ ให้ใส่ Attributes ที่อยู่ใน Alfresco Thailand Document ในที่นี้คือ invoiceId ให้ใส่ค่าลงไป จากนั้นคลิกที่ปุ่ม OK

null

เมื่อ Content เข้าไปเก็บใน Alfresco เรียบร้อยแล้ว ให้คลิกที่ปุ่ม View Details เพื่อเข้าไปดู Attributes ต่างๆ โดยจะสังเกตว่า มี invoiceId อยู่ด้วย

null

ในเรื่องของการทำ Content Model ยังมีอีกค่อนข้างมาก เช่นการสร้าง Aspect การทำ Attributes เป็น List, การทำ Associations เป็นต้น ซึ่งจะได้นำเสนอในโอกาสต่อๆ ไป ซึ่งเมื่อเรียนรู้ครบแล้ว จะทำให้เข้าใจในระบบ ECM และสามารถจัดทำชุด Index ได้มีประสิทธิภาพมาก

Comments are closed.