درس ۲ — کاشت چگونه پیش از ساختن حساب دنبالش میگردد
ایدهٔ دوم کوچکتر از اولی است و بیشتر از آن جدل صرفهجویی میکند: ماژول به چهار روش مختلف دنبال حساب میگردد و ساختن آن آخرینشان است.
چرا این پیش از دیدن حتی یک صفحه اهمیت دارد. کدینگ حسابهای شما ستون فقرات هر چیزی است که ارائه میکنید. ماژولی که کنار حساب حقوق پایهای که همین حالا استفاده میکنید یک حساب دوم میسازد، امکانی اضافه نکرده است؛ هزینهٔ حقوق شما را روی دو سطر شکافته، و این شکاف را ماهها بعد کسی کشف میکند که سال را میبندد. پس پرسش صادقانه از هر ابزار کاشت این نیست که چه میسازد، بلکه این است که وقتی حساب از پیش هست چه میکند.
ترتیب پیدا کردن. کاشت هر حساب را به این ترتیب پیدا میکند: با شناسهٔ خودِ بومیسازی امارات، سپس با کد، سپس با نام انگلیسی، و تنها در نهایت آن را میسازد. حسابهایی که از پیش در کدینگ امارات هستند دوباره بهکار میروند. ترتیب را اینگونه بخوانید: سه تلاش برای یافتن، و پس از آن یک تصمیم برای ساختن.
| گام | کاشت چگونه میگردد | چه چیزی را میگیرد |
|---|---|---|
| نخست | با شناسهٔ خودِ بومیسازی امارات | کدینگی که از بومیسازی امارات نصب شده و حساب در آن شناسهٔ همان بومیسازی را دارد |
| دوم | با کد | کدینگی که حساب در آن زیر کد مورد انتظار هست اما شناسهٔ بومیسازی را ندارد |
| سوم | با نام انگلیسی | حسابی با نام انگلیسی مورد انتظار زیر کدی که خودتان انتخاب کردهاید |
| چهارم | ساختن آن | هیچچیز مطابقت نکرد و کدینگ امارات واقعاً برای این کاربرد حسابی ندارد |
هر سطر تخصیص میگوید کدام گام برنده شده است. هر سطر در یادداشت خود ثبت میکند که حسابش چگونه پیدا شده، تا بتوانید حسابِ بازاستفادهشدهٔ بومیسازی را از حسابی که این ماژول ساخته تشخیص دهید. آن یادداشت نخستین چیزی است که وقتی ماندهای نادرست بهنظر میرسد باید خوانده شود، چون به پرسشی پاسخ میدهد که زیر بیشتر اختلافها بر سر دفتر کل حقوق نشسته است: این حساب مال ماست یا ماژول ساخته است؟
مسیر کلیک. مسیر حقوق و دستمزد ← پیکربندی ← تخصیص حساب کل (Payroll → Configuration → GL Account Mapping) را باز کنید و فهرست را بر اساس شرکت گروهبندی کنید. برای هر قاعدهٔ حقوقی در هر شرکت یک سطر میگیرید، همراه با حساب و یادداشتش. هیچچیز اینجا در کد پنهان نیست؛ کل نتیجهٔ کاشت روی یک فهرست دیده میشود.
دو بار اجرایش کنید و هیچ اتفاقی نمیافتد. این همان ویژگیای است که ارزش دارد روی پایگاهدادهٔ خودتان آزموده شود نه اینکه به اعتماد پذیرفته شود. هر چیزی پیش از ساختهشدن جستوجو میشود و اجرای دوم چیزی را تغییر نمیدهد. تخصیصی که منحرف شده اصلاح میشود نه اینکه تخصیص تازهای اضافه شود، پس فهرست برای یک قاعده سطر تکراری درنمیآورد.
حالت خرابی. اگر واقعاً دو حساب دیدید که یک چیز بهنظر میرسند، کاشت هر دو را نساخته است. یادداشت تخصیص را باز کنید و ببینید ماژول عملاً روی کدام حساب ثبت میکند، سپس با آن دیگری همانطور برخورد کنید که با یک مسئلهٔ کدینگ حساب. حالت معکوس رایجتر و آسانتر است: اصلاً چیزی کاشته نشده باشد، که مسئلهٔ کشور است نه مسئلهٔ حساب، و درس ۵ آن را حل میکند.