پرش به مطلب اصلی

افزودن یک فیلد به یک موجودیت

هدف​

به یک موجودیت موجود فیلدی بیفزایید تا رکوردهای آن بتوانند دادهٔ دیگری را نیز نگه دارند.

پیش‌نیازها​

  • با نقش سازنده (یا مدیر پلتفرم) وارد شده‌اید.
  • موجودیت از پیش وجود دارد (سناریوی ساخت یک موجودیت را ببینید).

گام‌ها​

  1. صفحهٔ جدول‌ها را باز کنید، محیط را انتخاب کنید و نام موجودیت را از فهرست موجودیت‌ها برگزینید تا موجودیت روی زبانهٔ فیلدها باز شود.

  2. نام نمایشی فیلد تازه را وارد کنید (برای نمونه، Total).

  3. یک نام منطقی وارد کنید. پیشوند ناشرِ راه‌حلی که در آن کار می‌کنید کنار جعبه نشان داده و به‌طور خودکار اعمال می‌شود، پس تنها بقیهٔ نام را تایپ می‌کنید — total به par_total تبدیل می‌شود.

    این کار روی جدول‌های استاندارد هم انجام می‌شود. Account و Contact پیشوندی از خود ندارند، چون پارس‌ور آن‌ها را عرضه می‌کند؛ اما ستونی که شما به آن‌ها می‌افزایید از آنِ شماست: par_accountnumber می‌شود، نه accountnumber. نام‌های بدون پیشوند به پلتفرم تعلق دارند و نامی که شما بسازید با ستون بعدی‌ای که پارس‌ور با همان نام اضافه کند برخورد می‌کند.

  4. یک نوع داده انتخاب کنید. تنها ورودی‌های مرتبط با نوع انتخاب‌شده نمایش داده می‌شوند:

    • متن — متن تک‌خطی (می‌توانید حداکثر طول را تعیین کنید؛ مقدار پیش‌فرض ۱۰۰ است).
    • متن چندخطی — متن بلند.
    • عدد صحیح — اعداد صحیح.
    • عدد اعشاری — اعداد با ممیز ثابت. دقت شمار همهٔ رقم‌هاست و مقیاس شمار رقم‌های پس از ممیز. پس ۱۲ و ۲ تا ۹٬۹۹۹٬۹۹۹٬۹۹۹٫۹۹ را نگه می‌دارد و ۲ و ۲ هیچ عددی بزرگ‌تر از ۰٫۹۹ را نگه نمی‌دارد. مقادیر پیش‌فرض ۱۸ و ۲ هستند؛ برای مبالغ پولی همین را بخواهید مگر آنکه دلیل دیگری داشته باشید.
    • بولی — درست/نادرست.
    • تاریخ/زمان — یک تاریخ و زمان.
    • جستجوی رکورد — ارجاعی به رکورد موجودیتی دیگر؛ موجودیت مقصد را انتخاب کنید (خودِ موجودیت از میان گزینه‌ها کنار گذاشته می‌شود). افزودن یک فیلد جستجوی رکورد به‌طور خودکار ارتباط یک‌به‌چند میان دو موجودیت را می‌سازد — لازم نیست ارتباط را جداگانه بسازید (سناریوی ساخت یک ارتباط میان دو موجودیت را ببینید).
    • جستجوی رکورد (چند جدول) — ارجاعی به رکوردی در چندین جدول: مشتری‌ای که می‌تواند یک حساب یا یک مخاطب باشد. حداقل دو جدول را تیک بزنید؛ فیلد در آن صورت علاوه بر شناسهٔ رکورد، جدولی که رکورد در آن است را هم ذخیره می‌کند. این نوع کلید خارجی ندارد و همین تنها چیزی است که در عوض از دست می‌دهد — افزودن جستجوی چندجدولی را ببینید.
    • شماره‌ی خودکار — شماره‌ی مرجعی که پلتفرم به هر رکورد تازه می‌دهد، مانند CR-2026-00417. تنها تنظیمش قالب شماره است که هنگام تایپ پیش‌نمایش داده می‌شود؛ کسی مقدار را تایپ نمی‌کند، پس کادر الزامی ندارد. ببینید شماره‌گذاری خودکار رکوردها.
  5. در صورت تمایل فیلد را الزامی علامت بزنید.

  6. گزینهٔ افزودن فیلد را انتخاب کنید.

  7. فیلد در فهرست فیلدهای موجودیت ظاهر می‌شود و ستونش از پیش وجود دارد — چیزی برای فشردن پس از آن نیست.

پشت صحنه چه اتفاقی می‌افتد​

فیلد به‌صورت فراداده روی موجودیت ذخیره می‌شود و ستونش در همان گام به جدول داده افزوده می‌شود، پس فیلد از همان لحظهٔ افزودن زنده است: آن را روی فرمی قرار دهید و کاربران برنامه می‌توانند پُرش کنند. یک فیلد جستجوی رکورد به موجودیتی دیگر با نام منطقی‌اش ارجاع می‌دهد و یک ارجاع واقعی (کلید خارجی) به آن است.

اگر ستون ساخته نشود، فیلد دوباره برداشته می‌شود و خطا گزارش می‌شود — پس فیلدی در این فهرست همیشه ستونی پشت خود دارد. به وقتی جدولی را ذخیره می‌کنید چه می‌شود نگاه کنید.

ویرایش یک فیلد​

کادر انتخاب فیلد را علامت بزنید و ویرایش را انتخاب کنید. آنچه می‌توانید تغییر دهید:

  • نام نمایشی — برچسبی که همه‌جا نشان داده می‌شود. تغییر نام بی‌خطر است: هر چیزی که از فیلد استفاده می‌کند آن را با نام منطقی‌اش می‌شناسد و آن تغییر نمی‌کند.
  • الزامی — اینکه فیلد به‌طور پیش‌فرض روی فرم‌ها الزامی باشد یا نه. این یک قاعدهٔ فرم است، نه محدودیت پایگاه داده: هر ستون مقدار خالی را می‌پذیرد و یک فرم همچنان می‌تواند این را برای جای‌گذاری خودش بازنویسی کند (به الزامی یا فقط‌خواندنی کردن یک فیلد نگاه کنید). پس روشن کردنش هیچ رکورد موجودی را نامعتبر نمی‌کند.
  • بیشینهٔ طول (متن) یا دقت و مقیاس (اعشاری) — اندازهٔ فیلد. کادر را خالی بگذارید تا مقدار کنونی حفظ شود.

آنچه نمی‌توانید تغییر دهید نام منطقی فیلد، نوع داده و — برای فیلد جستجوی رکورد یا مجموعه‌گزینه — مقصدی است که به آن اشاره می‌کند. این‌ها نشان داده می‌شوند اما قفل‌اند، چون هر چیزی که از فیلد استفاده می‌کند آن را با نامش می‌شناسد و ستونش از پیش داده‌ای از یک نوع نگه داشته است؛ مقادیر درون آن با همان مقصد یا مجموعهٔ کنونی اعتبارسنجی شده‌اند. برای تغییر هر کدام، فیلد را حذف کنید و دوباره بسازید.

تغییر اندازهٔ یک فیلد تغییری واقعی در جدول داده است، چون ستونش از پیش وجود دارد. بلندتر کردن یک فیلد متنی همیشه کار می‌کند. کوتاه‌تر کردنش اگر رکوردی از پیش مقدار بلندتری داشته باشد شکست می‌خورد — ذخیره خطا را گزارش می‌کند و آنچه کسی تایپ کرده را نمی‌بُرد. به‌جایش فیلد را بلندتر کنید، یا نخست داده را پاک‌سازی کنید.

Deleting a field​

کادر انتخاب فیلد را علامت بزنید و حذف را انتخاب کنید. برای حذف چند فیلد با هم، کادر هر کدام را علامت بزنید، یا کادر سرستون را بزنید تا همه انتخاب شوند و بعد آن‌هایی را که می‌مانند بردارید. فیلد از هر فرم و نمایی از جدول که از آن استفاده می‌کرد نیز برداشته می‌شود، تا چیزی به فیلدی که دیگر وجود ندارد ارجاع ندهد. لازم نیست خودتان به تک‌تک فرم‌ها و نماها سر بزنید. حذف یک فیلد جستجوی رکورد ارتباطی را هم که ساخته بود برمی‌دارد، پس حذف یک فیلد جستجوی رکورد هرگز ارتباطی یتیم باقی نمی‌گذارد.

پیش از حذف، دانستن سه نکته ارزش دارد:

  • بخشی که خالی می‌ماند، باقی می‌ماند. تنها فیلد برداشته می‌شود — بخش، سطر یا زبانه‌ای که فیلد را در آن گذاشته بودید سرِ جای خود می‌ماند و آمادهٔ محتوای دیگری است.
  • نمایی که بدون ستون بماند، به ستون اصلی جدول بازمی‌گردد. یک نما باید چیزی برای نمایش داشته باشد.
  • نمایی که روی آن فیلد فیلتر داشت، رکوردهای بیشتری از قبل نشان می‌دهد. فیلتر همراه فیلد می‌رود، چون فیلتر را نمی‌توان روی فیلدی که دیگر وجود ندارد اعمال کرد. اگر نمایی برای پنهان کردن رکوردها بر پایهٔ همین فیلد ساخته شده بود، پس از حذف آن را بررسی کنید.

فیلد اصلی جدول قابل حذف نیست. خودِ ستون داده در جدول باقی می‌ماند — حذف فیلد آن را از برنامه برمی‌دارد، نه از دادهٔ ذخیره‌شده.

عیب‌یابی​

  • فیلدی افزودم اما در برنامه دیده نمی‌شود. — ستون به‌محض افزودن فیلد وجود دارد، اما یک فیلد تنها جایی نمایش داده می‌شود که قرارش داده باشید. آن را به فرم یا نمایی که می‌بینید بیفزایید.
  • «… must be lower snake-case and start with the publisher prefix.» — نام منطقی فیلد باید با {prefix}_ آغاز شود.
  • «… must be namespaced by your publisher's prefix.» — فیلد اصلاً بدون پیشوند فرستاده شده است. تنها ستون‌های استاندارد خودِ پارس‌ور بدون پیشوندند؛ هر چیزی که شما بیفزایید پیشوند ناشر شما را دارد، حتی روی یک جدول استاندارد.
  • «A field named … already exists on this entity.» — نام منطقی دیگری برگزینید؛ نام‌های فیلدها درون هر موجودیت یکتا هستند.
  • «The lookup target entity … was not found.» — نخست موجودیت مقصد را بسازید، یا مقصدی را که انتخاب کرده‌اید اصلاح کنید.
  • هنگام ذخیرهٔ رکورد می‌گوید عدد «باید حداکثر ۰ رقم پیش از ممیز داشته باشد». — دقتِ فیلد شمار همهٔ رقم‌هاست، نه شمار اعشار. فیلدی که قرار است مبلغ با دو رقم اعشار نگه دارد دقت ۱۲ و مقیاس ۲ می‌خواهد؛ دقت ۲ و مقیاس ۲ ستونی است که چیزی بیش از ۰٫۹۹ در آن جا نمی‌شود. نوع دادهٔ فیلد پس از ساخت تغییرپذیر نیست، اما دقت و مقیاس هست: فیلد را برگزینید، ویرایش را بزنید و آن را بزرگ‌تر کنید.
  • «Text maxLength must be between 1 and 4000.» / «Decimal precision/scale is out of range.» — طول یا دقت/مقیاس را به بازهٔ مجاز برسانید.
  • ویرایش برای یک فیلد در دسترس نیست. — ویرایش به دقیقاً یک فیلد انتخاب‌شده نیاز دارد، و فیلدهای سیستمی خود پلتفرم (ایجاد شده در، تغییر یافته توسط و مانند آن) قابل ویرایش نیستند: آن‌ها از آنِ پلتفرم‌اند نه جدول شما.
  • کوتاه کردن یک فیلد خطای «value too long for type …» می‌دهد. — رکوردی از پیش مقداری بلندتر از طول تازه دارد. تغییر به‌جای بریدن آن رد می‌شود. به‌جایش فیلد را بلندتر کنید، یا نخست رکوردهای خطاساز را کوتاه کنید.

سناریوهای مرتبط​