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