Logika membangun jadwal kerja universal

Jadwal karyawan adalah bagian integral dari sistem CRM apa pun. Tetapi tergantung pada spesifikasi bisnis klien, mereka bisa sangat berbeda. Di klinik, ini adalah jadwal penerimaan pasien, dalam telekomunikasi, jadwal koneksi klien, di sekolah, jadwal kelas. Semuanya berbeda dalam struktur dan esensi. Mereka memiliki tutup yang berbeda, satu set bidang yang berbeda, kotak yang berbeda.

Platform ERP kami berfokus pada pengembangan konfigurasi ceruk yang cepat, dan kami memikirkan cara melakukan semuanya dengan nyaman. Pertama-tama untuk dirimu sendiri. Sehingga pekerjaan kami dalam mengembangkan jadwal untuk niche tertentu tidak lebih dari satu jam kerja.

Sebelum itu, grafik adalah semacam hal yang dikembangkan di php. Tapi tuhan! Karl! Setiap kali Anda membutuhkan jadwal baru untuk solusi niche, Anda perlu menyalin kode ini dan memprosesnya. Individualitas grafik tidak memungkinkan untuk perubahan sentral. Dan secara umum, itu merusak konsep platform cloud kami sehingga klien dapat mengkonfigurasinya secara mandiri.

Sebagai hasilnya, kami membentuk persyaratan berikut untuk jadwal kerja

  1. Konfigurasi
    Mereka harus sepenuhnya dapat dikonfigurasi dari antarmuka web.
  2. Pitch variabel
    Mereka harus memiliki pitch kotak variabel.
    Di satu klinik, jadwal janji temu mungkin 30 menit per pasien, dan di 20 lainnya, pada jam ketiga
  3. Topi khusus
    Header grafik bisa unik, mis. dapat berupa seperangkat dokter, fasilitas, guru, tim, dll. Secara umum, apa pun dari apa yang dimiliki klien dalam sistem. Bahkan dari apa yang tidak bisa kita bayangkan.
  4. Dalam catatan grafik - seperangkat bidang yang berubah-ubah
    Seperangkat bidang dapat diatur secara sewenang-wenang, dari informasi apa pun yang ada di sistem. Dan entri disusun sesuai dengan tajuk.
  5. CRUD
    Entri bagan harus CRUD (buat, baca, perbarui, hapus), meskipun ada set bidang yang arbitrer. Dan bukan hanya itu, tetapi menggunakan prosedur untuk mengatur interaksi yang kompleks.

    Contoh: ada jadwal tugas.
    Dalam catatan jadwal, ditampilkan siapa yang melakukan di mana pekerjaan dilakukan, dll. + beberapa data pada tugas (misalnya, nomor dan namanya).
    Data tambahan untuk merekam jadwal disimpan dalam satu tabel, dan data tugas di tabel lain.
    Saat membuat, nomor tugas ditunjukkan, siapa yang melakukan di mana dan di mana. Dan data akan ditampilkan dari dua tabel.
    Anda hanya dapat mengedit data dalam catatan bagan, tetapi data dalam tugas tidak dapat diedit.
    Entri jadwal harus dihapus, tetapi bukan tugas.
    Diperlukan untuk menyimpan log yang melakukan sesuatu dengan entri ini. Karena itu dapat dihapus dan belum tentu terlihat dalam jadwal, maka Anda perlu masuk ke log entah bagaimana. Mereka lebih logis untuk memimpin dalam tugas itu sendiri, yaitu saat membuat-modifikasi-penghapusan harus ditulis dalam tabel terpisah dan ditampilkan dalam tugas.
    Hal-hal seperti itu hanya dapat diselesaikan dengan prosedur tersimpan, sehingga situasi yang sederhana dan kompleks dapat diselesaikan.
  6. Fields bisa berupa daftar.
    Tentu saja, bidang tidak harus berupa teks saja. Mereka juga dapat berupa daftar pop-up dari beberapa data dalam sistem.
  7. Bidang bisa berupa tautan
    Akan lebih mudah jika, misalnya, dari jadwal mengerjakan tugas yang bisa Anda lakukan sendiri.
  8. Menyembunyikan bidang
    Jika ada banyak bidang dalam catatan, masuk akal untuk meminimalkan bagian dari mereka menjadi potongan untuk kenyamanan.
  9. Pemicu
    Penting untuk menyesuaikan reaksi sistem terhadap apa yang terjadi dengan rekaman. Ini paling mudah dilakukan dengan pemicu.

    Misalnya, jika pengguna perlu menulis semacam log tentang tindakan yang diambil atas catatan, atau mengirim pemberitahuan kepada karyawan, atau bahkan mengirim klien sms atau bahkan melakukan apa yang tidak dapat kita duga.
  10. Catatan silang
    Catatan silang adalah catatan dari grafik yang berbeda digabungkan menjadi satu grafik. Atau tampilan entri dalam grafik lain, ketika entri muncul di saat ini.

    Misalnya, ada situasi di mana brigade yang sama melakukan pekerjaan, misalnya, pada aplikasi dan tugas. Yaitu mereka akan merasa nyaman dengan jadwal umum tertentu, di mana tugas-tugas dari jadwal yang berbeda akan ditampilkan.

    Atau Anda memerlukan jadwal pribadi karyawan, dengan entri dari semua jadwal di mana ia berpartisipasi.
    Tugas-tugas semacam itu sedikit lebih rumit daripada tugas-tugas biasa, tetapi tugas-tugas itu dapat diselesaikan dengan bantuan pemicu dan prosedur akuisisi data. Yaitu dengan klausa 9 dan klausa 5.

    a) pemicu dibuat pada catatan jadwal yang diperlukan yang membuat entri dalam jadwal pribadi pengguna jika pengguna ada di sana (sesuai, jika terjadi perubahan, perubahan, jika terjadi penghapusan)
    b) bidang tambahan dibuat dalam grafik pengguna yang akan mencakup data yang diperlukan, dan prosedur keluaran perekaman dikembangkan yang akan menarik data dari tabel grafik lain menggunakan pengidentifikasi ini.

    Tugas-tugas tersebut dapat diselesaikan dengan cara sebaliknya juga, ketika membuat jadwal karyawan pribadi, prosedur yang lebih canggih dilakukan yang menampilkan data tidak hanya dari tabel pribadi, tetapi dari tabel jadwal lain di mana karyawan hadir pada hari tertentu. Solusi semacam itu berdasarkan pada desain ini juga dimungkinkan.
  11. Overlay waktu
    Sistem harus dengan benar menampilkan persimpangan catatan dalam waktu, dan tidak seperti di sebagian besar sistem di mana catatan bertemu satu sama lain dan bahkan tidak ada kesempatan untuk membaca lapisan bawah.

    Seperti ini, ini menyedihkan ...
    gambar
  12. Laporan
    Sehingga sesuai dengan jadwal itu memungkinkan untuk membuat laporan. Sistem penyimpanan data harus diatur sehingga dapat diambil dalam konfigurator laporan.
    Misalnya, perlu membuat laporan yang mana dari karyawan berapa banyak waktu yang dihabiskan bepergian untuk tugas - voila! Kami pergi ke konfigurator laporan, di sana kami memilih tabel di mana data catatan dari jadwal yang diinginkan disimpan dan kami membuat laporan menggunakan konfigurator standar sesuai dengan data dari grafik.
  13. Embeddability
    Grafik harus dapat dengan mudah disematkan di mana saja di halaman mana pun - yaitu. harus berupa elemen input standar, sama dengan bidang teks, atau tombol.
    Untungnya, kami memiliki pengalaman dalam mengembangkan elemen standar yang kompleks. Secara khusus, kami memiliki elemen komentar standar, formulir aplikasi file, formulir kontak, tabel. Semuanya ditambahkan dengan satu klik sebagai elemen normal dan mudah dikonfigurasi.
  14. Akses dan Keamanan
    Hak akses ke jadwal secara keseluruhan harus diatur oleh sistem hak umum, dan di dalam jadwal hak akses ke catatan harus diatur oleh pengaturan jadwal.
    Misalnya, tunjukkan bahwa hanya penulis yang dapat mengedit posnya, atau grupnya, atau unitnya.
  15. Kemudahan konfigurasi
    Dan tentu saja, membuat dan mengonfigurasi jadwal baru harus dilakukan dengan cepat dan tidak menimbulkan masalah. Khususnya, bagi kami, untuk kasus tipikal (jelas bahwa itu bisa terjadi, tentu saja, sangat kompleks) pekerjaan ini seharusnya tidak lebih dari satu jam kerja.

Kami percaya bahwa kami berhasil menerapkan persyaratan ini secara elegan dan artikel ini akan menjelaskan bagaimana ini dilakukan.

Saat ini, saya tidak tahu sistem dengan grafik yang serba guna (jika Anda tahu, tulis di komentar, menarik untuk dilihat)

Diagram umum dari konfigurasi grafik terlihat seperti ini (jangan menilai dengan ketat, saya menggambarnya sendiri). Setiap elemen dibutuhkan di sini, tidak ada yang berlebihan.

gambar

Semua pekerjaan dimulai dengan memahami kumpulan data apa yang harus ada dalam catatan dan membuat tabel dalam database untuk jadwal ini.

gambar

Misalnya, untuk jadwal pekerjaan pada tugas-tugas di perusahaan telekomunikasi, penting untuk mengetahui kapan pekerjaan akan dilakukan, pada tugas mana, pada objek yang mana, dan kelompok insinyur mana yang akan melaksanakan pekerjaan ini.

Oleh karena itu, kami membentuk tabel di mana ada semua info ini + bidang layanan dengan ID catatan rekaman. (PS: tabel yang bisa kita edit langsung di cloud dari browser).

gambar

Ini adalah kasus sederhana, tetapi bisa jauh lebih rumit, di mana ada lebih banyak bidang atau beberapa tabel.

Itu saja, struktur penyimpanan terbentuk dan sekarang jadwal perlu tahu cara bekerja dengannya. Setiap entri dapat ditambahkan, ditampilkan, dimodifikasi dan dihapus.

gambar

Karena Jika kumpulan data dan struktur penyimpanan dapat berubah-ubah, maka struktur ini harus ditangani melalui prosedur tersimpan.

gambar

Pertama, Anda perlu membuat prosedur. Dalam contoh kami, kasingnya sederhana, dan dapat dibuat di konfigurator dengan satu tombol menggunakan fungsi "Buat prosedur standar". Sistem sendiri menurut tabel ini akan membuat prosedur untuk membuat, mengubah, menghapus, dan berbagai kesimpulan.

Misalnya, sebuah fragmen dari prosedur add yang dibuat secara otomatis terlihat seperti ini

gambar

Semua prosedur diedit langsung dari antarmuka web. Logika kompilasi mirip dengan PL-SQL.
Jika ada sesuatu yang kompleks, maka prosedur ini dapat diedit tergantung pada struktur penyimpanan dan berbagai kondisi, loop, seleksi, pembaruan, penyisipan, dll. Dapat diatur. Secara umum, gambarkan struktur pemrosesan apa pun.

Jadwal dalam setiap tindakan menunjukkan prosedur mana yang bertanggung jawab atas tindakan ini.

gambar

Pengaturan jadwal "bawaan"

Tetapi ada juga pengaturan "kabel" yang hanya dapat dikonfigurasi, tetapi tidak diubah. Ini sama sekali tidak perlu.

- Koordinat tanggal-waktu adalah properti integral dari catatan apa pun
- Lokasi grafik dalam sistem. Itu diedit menggunakan editor built-in dari antarmuka dan tidak perlu melakukan ini dari grafik itu sendiri.
- Memori tempat pengguna berada - tidak perlu secara langsung mengkonfigurasi properti ini.

gambar


Dalam pengaturan, Langkah (misalnya, kisi 20 menit, atau 30) dan Rentang jam kerja (misalnya, dari 8 hingga 20) juga dapat ditentukan.

Perlu rentang waktu untuk memotong kelebihan, misalnya, jika semua karyawan bekerja 8 jam sehari standar, maka tidak masuk akal untuk menampilkan jam malam.

Langkah - mendefinisikan kisi bagan. Misalnya, di satu klinik mungkin ada jadwal janji temu dokter selama 20 menit, di 15 klinik lain, di 30 ketiga. Ini semua dapat dikonfigurasi.

Namun, ini tidak berarti bahwa perekaman tidak dapat dilakukan di luar grid. Anda dapat membuat entri apa pun, tetapi mereka akan ditampilkan di dalam kisi.

Rentang langkah yang dapat kita atur 5, 10, 15, 30, 60 menit.

Rekam keluaran

Tidak cukup hanya membuat dan menentukan prosedur. Adalah perlu bahwa jadwal memahami bagaimana bekerja dengannya untuk bagian itu.
gambar

Topi

Yang paling penting adalah menunjukkan judul grafik. Yang mana dari bidang output dari prosedur harus header.

Pertimbangkan logika membangun jadwal kelas di organisasi pendidikan. Misalkan sebuah catatan memiliki seperangkat Kelompok Guru.

Di sini Anda dapat membuat tajuk untuk Guru, maka jadwal akan dibentuk sebagai berikut:

gambar

tapi Anda bisa dengan Grup, lalu suka ini:

gambar
tetapi Anda biasanya dapat membuat 2 grafik berbeda dan tetap menampilkannya, sesuai keinginan Anda, pengguna akan memilihnya. Dalam hal ini, data yang sama akan digunakan, prosedur yang sama. Perubahan di satu bagan akan berubah di yang lain.

Tetapi secara umum, pilihan tergantung pada pertanyaan tentang kemanfaatan. Topi harus menjadi informasi mendasar yang tidak banyak berubah. Jika Anda melayani sejumlah objek tetap - maka ini harus mereka. Jika Anda memiliki jumlah grup tetap, maka itu adalah grup.

Anda dapat melakukan hal-hal menarik dengan topi. Misalnya, jika Anda menunjukkan status tugas sebagai header, maka ketika status dalam tugas berubah, catatan tugas dalam grafik akan melompat ke status terkait itu sendiri. Yaitu sebenarnya, hampir papan kanban bisa dilakukan di sini, dll. hal-hal. Ketika kita mengikat data rekaman melalui prosedur untuk menghidupi informasi dalam sistem, itu juga dapat menjadi hidup dalam bentuk grafik. Mekanisme yang sangat fleksibel.

Selain itu, jika Anda menetapkan kondisi penyaringan dalam prosedur, Anda dapat membuat data header dalam grafik dengan mempertimbangkan filter sewenang-wenang akun.

Apa yang tidak keluar

Anda juga dapat menentukan apa yang akan ditampilkan dalam catatan dan apa yang tidak. Misalnya, dalam prosedur, beberapa pengidentifikasi layanan untuk bundel dapat ditampilkan sebagai hasil. Informasi ini, tidak penting bagi pengguna, dapat diabaikan pada kesimpulan.

Apa yang disembunyikan

Dan Anda dapat menampilkan, tetapi meminimalkan ke kucing. Informasi itu tidak terlalu penting, tetapi terkadang diperlukan. Misalnya, siapa dan kapan dibuat catatan ini mungkin diperlukan hanya dalam kasus semacam pertikaian, tetapi tidak dalam pekerjaan operasional.

Referensi

Ini juga sangat nyaman ketika beberapa bidang dapat berupa tautan.

Misalnya, jika kita membuat jadwal untuk tugas, mengapa tidak mengklik nomornya untuk masuk ke tugas itu sendiri.

Kami memiliki mekanisme penautan standar di konfigurator. Anda dapat membuatnya di sana, dan mengaitkannya dengan bidang pada grafik. Semuanya berfungsi.

Judul

Tentu saja, bidangnya harus dipanggil entah bagaimana. Secara default, sistem akan mengambil nama dari bidang prosedur, tetapi tidak selalu benar untuk persepsi. Karena itu, terkadang Anda perlu memasukkan nama alternatif.

Sebagai contoh, semua hal di atas bersama kami terlihat seperti ini. Di seberang bidang prosedur ini diperiksa.

gambar

Output dari catatan akan terlihat seperti ini:

gambar

Menambahkan entri baru

Bidang untuk menambahkan catatan baru harus ditentukan oleh prosedur penambahan. Informasi harus diberikan ke setiap parameter input prosedur.

Tapi ada triknya. Bidang tidak hanya teks, tetapi juga daftar.

Mari kita ambil contoh untuk telekomunikasi, di mana ada tugas, grup, objek. Kami tidak akan memaksa pengguna untuk mencari pengidentifikasi objek dan mengarahkannya. Perlu ada daftar pop-up dengan informasi yang diperlukan. Di mana mendapatkannya?

Untuk melakukan ini, bidang input prosedur harus menarik prosedur lain, yang misalnya akan memberikan daftar tugas aktual, atau daftar objek yang diperlukan, dll. Pada saat yang sama, Anda tidak bisa menentukan bidang beberapa tabel saja sejak itu mungkin ada filter kompleks. Tugas yang sama mungkin sudah dicap 10.000 dalam sistem, tetapi daftar 100 yang topikal harus ditampilkan sekarang.

gambar

Secara umum, prosedur yang bergerak di bidang prosedur lain.

Sebenarnya itu hanya terdengar menakutkan. Hal-hal ini terotomasi dengan baik, prosedur sesuai dengan direktori standar diperoleh dengan satu tombol. Prosedur untuk berbagai daftar grup, tugas, aplikasi, dll. telah lama diterapkan untuk pengoperasian berbagai modul CRM. Mereka hanya perlu dipilih. Jika sudah ada prosedur dengan fungsi serupa, itu disalin dan diedit.

Juga perlu untuk menunjukkan bidang mana yang ditambahkan akan menjadi header. Kami akan membutuhkan ini dalam sistem pengeditan.

Sepertinya ini untuk kita:

gambar

Edit catatan

Masih lebih menarik di sini. Tidak cukup hanya menampilkan semua bidang dalam daftar seperti pada lampiran. Perlu dalam daftar ini untuk memilih posisi saat ini (dipilih). Kami sedang mengedit.

Untuk melakukan ini, Anda harus mengaitkan bidang pembuatan dengan bidang output. Dan dalam kasus kotak daftar, ini bukan hanya setumpuk informasi dari output, tetapi pengidentifikasi informasi ini.

Yaitu ini perlu:

a) menunjukkan prosedur pengeditan
b) mengasosiasikan bidangnya dengan bidang tambahan
c) mengasosiasikan bidangnya dengan bidang output dari data rekaman untuk memasukkan data saat ini dalam daftar

Tidak ada fitur lain untuk ditunjukkan di sini, karena kami telah mengonfigurasi Output dan Menambahkan.

Ketika jendela edit ditampilkan, sistem akan memanggil prosedur yang diperlukan untuk setiap bidang, menerima data, membandingkannya dengan data dari output catatan, memasukkan yang dipilih dalam daftar, dan memasukkan nilai saat ini dalam bidang sederhana.

Sepertinya ini bersama kita

gambar

Hapus catatan

Penghapusan adalah yang termudah. Prosedur penghapusan dengan satu parameter input hanya ditunjukkan: ID rekaman grafik.

Penanganan acara saat menambahkan / mengubah / menghapus catatan. Pemicu Rekam Silang.

Hanya menambah / memodifikasi entri di bagan tidak cukup. Anda masih perlu mengelola acara. Ini membuka ruang lingkup tak terbatas untuk konfigurasi.

Mengelola acara sebenarnya sangat sederhana. Bagaimanapun, kita sudah memiliki tabel di mana data catatan grafik disimpan. Anda dapat mengatur pemicu kerumitan apa pun pada tabel ini. Konfigurasi cloud kami membuatnya mudah dilakukan.

Misalnya, log diperlukan, siapa yang melakukan apa dalam rekaman itu. Semuanya sederhana. Tabel dibuat untuk log, dan pemicu ditempatkan pada tabel bagan yang menulis data modifikasi ke tabel dengan log.

Juga berkat ini, rekaman silang tersedia. Misalnya, ketika tugas diatur dalam grup dalam contoh kami, Anda dapat mengidentifikasi semua peserta dalam grup ini dan menempatkannya dua kali lipat dari catatan ini di bagan pribadi Anda. Memasukkan grafik pribadi dalam hal ini berarti membuat catatan dalam tabel data dari grafik pribadi. Ia juga merupakan grafik dalam sistem ini, hanya dikonfigurasi secara berbeda dan ditampilkan di tempat lain. Entri ini akan muncul di dalamnya.

Atau Anda perlu mengirim pemberitahuan kepada pengguna grup. Atau mengirim SMS ke klien bahwa mereka akan datang kepadanya untuk melakukan pekerjaan pada tugas ini dan itu saat itu. Untuk melakukan ini, pemicu hanya dibuat yang membuat entri di tabel notifikasi atau SMS.

Laporan

Bagan laporan juga diperlukan, dan dengan struktur seperti itu dapat dilakukan.

Misalnya, perlu membuat laporan tentang berapa lama karyawan bepergian bulan sebelumnya. Kita pergi ke konfigurator laporan, pilih tabel yang diinginkan di mana entri grafik disimpan, atur fungsi filter dan agregasi yang diperlukan - dan vaul, laporan sudah siap.

Penggunaan lain dari data grafik

Data grafik dapat digunakan di mana saja dengan konfigurator sistem canggih. Misalnya, dalam tugas, kami dapat dengan mudah membuat tab Bagan dan dalam satu prosedur sederhana menampilkan informasi tentang berapa lama dan siapa yang memiliki tugas ini untuk dieksekusi.

gambar

Overlay waktu

Mereka terjadi. Dan tidak ada yang lebih buruk daripada rekaman yang saling memukul dan tidak memungkinkan untuk membaca catatan yang diperlukan. Masalah ini juga telah diatasi. Sistem entri yang tumpang tindih secara otomatis ditempatkan di dekat Anda. Dalam hal ini, hanya html sederhana yang digunakan, hanya struktur tabel yang dibangun dengan cara yang diperlukan untuk ini. Sistem menyediakan perawatan untuk kedalaman apa pun, tetapi lebih dari 2 entri jarang.

Tentu saja, jika waktu tumpang tindih, kemungkinan besar ada sesuatu yang tidak direncanakan.Seseorang tidak dapat secara bersamaan berada di dua tempat, tetapi bahkan situasi seperti itu harus ditampilkan dengan benar.

gambar

Akses dan keamanan

Akses dibagi menjadi 2 level. Grafik Sistem dan Pribadi. Sistem didefinisikan secara keseluruhan oleh editor Peran dan hak default yang ditentukan dalam konfigurator antarmuka. Misalnya, jika sel halaman ini (atau tab, halaman, menu yang diwarisi di atas) ditolak akses baca, maka tidak ada pengguna akan melihat grafik ini di tingkat tampilan antarmuka sampai mereka menetapkan hak baca untuk area ini di Peran Pengguna.

Selanjutnya adalah hak internal dari jadwal. Mereka dapat

1) Mengedit

- hanya penulis
- hanya grup penulis (semua karyawan termasuk dalam kelompok yang pembuat catatannya adalah anggota)
- hanya divisi penulis (semua karyawan termasuk dalam divisi penulis, sesuai dengan persediaan)

PS: kelompok kerja dan staf mungkin berbeda dari kita. Misalnya, dalam satu unit mungkin ada beberapa kelompok kerja, atau karyawan dari unit yang berbeda mungkin berada dalam kelompok yang sama. Karyawan yang sama juga dapat berada dalam kelompok yang berbeda secara bersamaan. Semua sistem ini memperhitungkan.

2) Penghapusan serupa.

- hanya penulis
- hanya grup
- hanya divisi.

Mengapa kita memerlukan hak internal?

Jika ini adalah jadwal pribadi, atau ada beberapa fitur, maka masuk akal untuk menempatkan hanya penulis.

Tetapi ada staf shift dan situasi di mana catatan perlu diedit dan karyawan tidak di tempat kerja. Apa yang harus dilakukanMasuk akal untuk mengatur jadwal tersebut untuk diedit oleh grup atau unit sehingga karyawan shift lainnya dapat bekerja dengan catatan ini.

Juga, Peran, yang memiliki hak untuk mengelola, dapat ditunjukkan dalam jadwal. Karyawan dengan Peran ini akan memiliki hak untuk mengedit dan menghapus, terlepas dari grup dan unit.



Di sini kita memiliki hal yang sangat keren, yang sangat menyederhanakan kehidupan, ketika Anda tahu cara menggunakannya tentu saja. Segera orang yang tidak berpengalaman bisa sulit untuk mengetahui. Tetapi kita harus membuat jadwal seperti itu dalam bentuk yang sederhana, itu sekitar satu jam kerja.

Selain itu, kami juga mendapatkan kapabilitas konfigurasi terdalam dan kemungkinan interaksi dengan elemen lain dari sistem.

Source: https://habr.com/ru/post/id430674/


All Articles