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 mantera.exec_script.

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

  1. Buka Workspace: Develop > pilih Fungsi Skrip.
  2. Klik '+ Tambah Fungsi Skrip' untuk membuat fungsi baru.
  3. Masukkan Nama Tampilan. Nama Skrip akan dibuat secara otomatis.
  4. Pilih cakupan yang sesuai menggunakan kolom Global atau Aplikasi.
  5. Masukkan kode Python di kolom Skrip.
  6. Simpan Fungsi Skrip.
  7. Gunakan fungsi mantera.exec_script untuk 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.
Discard
Save

On this page

Review Changes ← Back to Content
Message Status Space Raised By Last update on