Script Function
DocType Fungsi Skrip di TechMaju memungkinkan pengembang untuk mendefinisikan dan mengeksekusi fungsi Python yang dapat digunakan kembali dan dipanggil secara dinamis di seluruh platform. Fitur ini memungkinkan eksekusi skrip yang modular, skalabel, dan terorganisir.
Memahami DocType Fungsi Skrip
Tujuan: DocType Fungsi Skrip dirancang untuk memungkinkan pengembang membuat fungsi Python modular dan dapat digunakan kembali yang dapat dieksekusi secara dinamis di bagian skrip Python lainnya.
Fungsi:
- Mendefinisikan fungsi Python yang dapat digunakan kembali untuk logika berulang yang digunakan di berbagai area.
- Mengeksekusi kode Python secara dinamis menggunakan
mantera.exec_script.
Peran yang Diperlukan
- TM Core Developer: Dapat membuat, menulis, dan menghapus Fungsi Skrip.
Kolom Fungsi Skrip
Kolom |
Deskripsi |
|---|---|
Nama Tampilan |
Kolom teks bebas yang menentukan nama skrip. |
Nama Skrip |
Dihasilkan berdasarkan konvensi penamaan: awalan cakupan global/aplikasi diikuti oleh Nama Tampilan. Ini mengidentifikasi fungsi secara unik yang diteruskan ke |
Global |
Checkbox untuk membedakan antara cakupan global dan aplikasi. Jika dicentang, fungsi ini didefinisikan untuk digunakan secara global. |
Aplikasi |
Mengidentifikasi cakupan skrip ini. Perlu dicatat bahwa saat ini, pembatasan lintas cakupan tidak diterapkan secara ketat. |
Skrip |
Kode Python yang akan dieksekusi ketika fungsi dipanggil. |
Menggunakan Fungsi Skrip
Untuk mengeksekusi Fungsi Skrip, gunakan metode mantera.exec_script.
Syntax
mantera.exec_script("scope.script_function_name", *args, **kwargs)
Di sini, args dan kwargs bersifat opsional dan dapat diteruskan ke skrip untuk eksekusi dinamis.
Contoh
1. Memanggil Fungsi Skrip Tanpa Argumen
Mengeksekusi fungsi tanpa meneruskan argumen apa pun.
mantera.exec_script("scope.script_function_name")
2. Memanggil Fungsi Skrip dengan Argumen Posisi
Meneruskan argumen posisi memungkinkan fungsi skrip mengakses nilai berdasarkan indeks posisi.
mantera.exec_script("scope.script_function_name", 1, "dua")
3. Memanggil Fungsi Skrip dengan Argumen Kata Kunci
Meneruskan argumen kata kunci memungkinkan fungsi skrip mengakses nilai menggunakan kunci bernama.
mantera.exec_script("scope.script_function_name", flag_zero="Alpha", flag_one="Beta")
4. Memodifikasi Objek untuk Mengembalikan Nilai
Bagian skrip tidak memungkinkan penggunaan return; sebagai gantinya, modifikasi objek yang diteruskan untuk pengambilan nilai setelah eksekusi.
result_obj = {"key": "nilai_awal"}
mantera.exec_script("scope.script_function_name", result_obj=result_obj)
frappe.log_debug(result_obj["key"]) # Output: "nilai_baru"
Contoh Fungsi Skrip yang Menangani Argumen dan Memodifikasi Objek untuk Mengembalikan Nilai Baru
# Contoh Args
first_param = args[0] if len(args) > 0 else None
second_param = args[1] if len(args) > 1 else None
frappe.log_debug("first_param", first_param)
frappe.log_debug("second_param", second_param)
# Contoh Kwargs
frappe.log_debug("flag_zero", kwargs.get("flag_zero"))
frappe.log_debug("flag_one", kwargs.get("flag_one"))
# Contoh Pengembalian Nilai Baru dengan Objek
if "result_obj" in kwargs:
result_obj["key"] = "nilai_baru"
Catatan: Baik args maupun kwargs dapat digunakan secara bersamaan dalam Fungsi Skrip, tetapi praktik terbaik adalah memilih salah satu untuk konsistensi.
Prosedur
- Buka Workspace: Develop > pilih Fungsi Skrip.
- Klik '+ Tambah Fungsi Skrip' untuk membuat fungsi baru.
- Masukkan Nama Tampilan. Nama Skrip akan dibuat secara otomatis.
- Pilih cakupan yang sesuai menggunakan kolom Global atau Aplikasi.
- Masukkan kode Python di kolom Skrip.
- Simpan Fungsi Skrip.
- Gunakan fungsi
mantera.exec_scriptuntuk memanggil fungsi ini di bagian skrip Python lainnya.
Praktik Terbaik
- Pastikan nama fungsi unik dan bermakna.
- Gunakan argumen dan/atau argumen kata kunci untuk membuat fungsi lebih dapat digunakan kembali.
- Uji fungsi dalam lingkungan yang terkontrol sebelum menerapkannya ke produksi.
- Ikuti praktik terbaik Python untuk menjaga kode tetap bersih dan efisien.