Skip to content

Auto Folder Creation (Document Library)

Modul: DMS Reference, Auto Folder Creation. Ia menentukan di mana auto-publish Document Routing mengarsipkan salinan yang sudah direview. Mati secara default.

Cara halaman ini diverifikasi

Ditelusuri di Medco pada Juni 2026. Pada 2026-09-06 layar admin, daftar tipe referensi, flag gating dan fungsi saat publish diperiksa ulang di master dan big five.

Ringkasan

Auto Folder Creation membiarkan admin menentukan, per project, struktur subfolder Document Library bersarang tempat dokumen yang sudah direview diarsipkan otomatis saat dipublikasikan pada sign-off approver. Admin memilih daftar terurut tipe referensi metadata dokumen (Area, Discipline, Document Type, dan seterusnya). Itu menjadi level folder, dan setiap dokumen yang dipublikasikan mengarsipkan dirinya ke cabang yang cocok dengan metadatanya sendiri.

Ia menggantikan pendekatan hard-coded yang lama, di mana hierarki folder adalah salah satu dari tiga bentuk tetap yang ditentukan satu integer, ts_projects.project_east_java (Ophir / East Java / Medco), diterapkan saat upload oleh getLibCodeAutoGenerateFromDocMaster(). Strukturnya sekarang ditentukan data dan bisa diedit per project, dan pengarsipan pindah ke auto-publish routing. Lihat Upload, folder library dan Sign Off.

Hanya master, Jadestone dan Medco yang punya

JOTRE dan Timas tidak punya layar admin, tidak punya key autopublish_auto_folder_creation, dan tidak punya getProjectAutoFolderSettings(). Mereka masih punya flag subfolder kustom generik, jadi pohon default dari subfolder_custom_default adalah satu-satunya yang bisa mereka bangun.

Yang dikonfigurasi admin

Di DMS Reference, Auto Folder Creation (autopublish_auto_folder_creation.php), per project, admin memilih dan mengurutkan subset apa pun dari tipe referensi di $referencesCode. Daftarnya berbeda per fork:

Kode tersimpanLabelMasterJadestoneMedco
areanumberArea Codeyayaya
disciplineDiscipline Codeyayaya
doctypeDocument Type Codeyayaya
doccatDocument Category Codeyayaya
function_codeFunction Codeyayaya
doc_classificationClassification Codeyayaya
field_code, group_code, contract_noReferensi khusus Jadestoneya
business_unit, region, location, system_code, vendor_package, code_package_identifier, sdrl_code, drawing_category, originatorHimpunan tambahan Medcoya

Daftar yang dipilih, sesuai urutan, adalah pohon folder. Misalnya ["areanumber", "discipline", "doctype"] mengarsipkan dokumen ke .../<Area>/<Discipline>/<Doc Type>/.

Aksi di layar:

  • Load setting project saat ini (cmd=get_settings).
  • Save daftar referensi yang dipilih (act=save_settings menulis ts_auto_creation_folder_settings.settings_data sebagai array JSON).
  • Copy dari project lain (act=copyAutoFolderSetting).
  • Project tanpa baris mendapat default ['discipline'].

Penyimpanan dan seeding

  • Tabel ts_auto_creation_folder_settings, satu baris per project: project_id, settings_data (array JSON kode tipe referensi).

  • Hanya Medco: skrip sekali jalan, migrations/scripts/MIG-013_ts_auto_creation_folder_settings.php, mengisi setiap project dari nilai project_east_java legacy-nya supaya tidak ada yang berubah sampai admin mengeditnya:

    project_east_java legacysettings_data hasil seed
    0 (Ophir)areanumber, originator, discipline, doctype, system_code, drawing_category
    1 (East Java)areanumber, discipline
    2 (Medco)business_unit, region, areanumber, discipline, doctype, location, system_code, vendor_package, code_package_identifier, sdrl_code

    Idempoten (TRUNCATE plus insert); project dengan project_east_java NULL atau di luar rentang dilewati untuk diatur admin secara manual. Master dan Jadestone tidak punya seed seperti itu; project mereka mulai dari default ['discipline'].

Cara berjalannya, saat auto-publish

Struktur diterapkan saat sign-off approver memublikasikan salinan yang sudah direview, bukan saat upload, di dalam autoPublishDocumentToCustomSubfoler() di routing.inc.php. Fungsinya ada di kelima fork. Di master urutan pemeriksaannya:

  1. Arsipkan dokumen ke folder root Deliverables project (getLibCodeDeliverablesByProjectCode()).
  2. Hanya kalau enable_autocreation_subfolder_custom = '1' ia membangun subfolder bersarang. Ia mulai dari pohon default, DOCLIB_SUBFOLDER[subfolder_custom_default].tree, dan, kalau autopublish_auto_folder_creation = '1', menimpanya dengan pohon per project dari getProjectAutoFolderSettings($projectId, true)["tree"].
  3. Untuk setiap tipe referensi di pohon, ia menyelesaikan nilai dokumen (label_combined_code_desc) dan mencari atau membuat subfolder itu. Level yang flag referensi DMS-nya (enable_*) mati dilewati. originator tidak punya flag enable_* dan selalu disertakan di posisinya di daftar.
  4. Kalau nilai level wajib mana pun kosong, ia membatalkan penempatan subfolder (validToSetInSubFolder = false) dan dokumen tetap di root Deliverables.
  5. Kalau library_folder_access_default = '1', ia juga memberikan akses folder ke resource group project.

Flag config yang menjadi ketergantungannya

FlagPeranAda di seed
autopublish_auto_folder_creationSaklar utama fitur ini: pakai pohon per project, kalau tidak pakai pohon default. Default 0.master, Jadestone, Medco
enable_autocreation_subfolder_customHarus 1 supaya subfolder kustom apa pun dibangun sama sekali. Default 0.kelima fork
subfolder_custom_defaultMenamai pohon cadangan yang dipakai saat fitur per project mati.kelima fork
library_folder_access_defaultMemberi akses folder otomatis ke resource group.kelima fork
enable_* DMS (misalnya enable_discipline)Level pohon dilewati kalau flag referensinya mati.per fork, lihat inweb_config

Kedua saklar harus menyala

autopublish_auto_folder_creation sendirian tidak berbuat apa-apa kecuali enable_autocreation_subfolder_custom juga 1. Pohon per project hanya dibaca di dalam cabang subfolder kustom. Keduanya default 0, jadi fitur ini mati sejak awal.

Tabel database yang terpengaruh

TabelOperasiCatatan
ts_auto_creation_folder_settingsinsert / update / deletepohon per project (layar admin)
ts_doc_libraryinsert / selectcari atau buat setiap subfolder saat publish
ts_map_documents_libraryinsertmemetakan dokumen yang dipublikasikan ke folder daunnya
ts_projectsselectproject_east_java, hanya seed Medco

Hal yang perlu diwaspadai

  • Mati secara default dan dijaga dua lapis. Mudah dikira rusak padahal hanya belum diaktifkan.
  • Medco masih menyimpan jalur legacy juga. getLibCodeAutoGenerateFromDocMaster() (project_east_java) masih ada dan dipanggil di actMultipleProcessNew() Medco. Fork lain sudah tidak punya fungsi itu. Pastikan mana yang mengatur pengarsipan di build Medco.
  • Diam-diam kembali ke root Deliverables saat nilai level pohon mana pun kosong di dokumen. Tanpa error; dokumennya hanya tidak bersarang.
  • Berlaku saat publish, bukan upload. Dokumen yang baru diunggah dan belum disetujui ada di folder Deliverables sampai salinan _R yang sudah direview dipublikasikan.

Perbedaan antar instance

Diperiksa pada 2026-09-06.

InstancePerbedaan
JadestoneDaftar referensi menambah field_code, group_code dan contract_no.
MedcoDaftar referensi punya 15 entri. Skrip seed project_east_java legacy dan fungsi pengarsipan legacy sama-sama ada.
JOTRETidak ada layar admin, tidak ada key autopublish_auto_folder_creation, tidak ada getProjectAutoFolderSettings(). Hanya pohon default.
TimasSama dengan JOTRE.

Terkait

  • Upload hanya mengarsipkan ke folder Deliverables.
  • Sign Off adalah langkah auto-publish yang memicu pembuatan folder.
  • inweb_config mencantumkan flag-flag di atas.