كيف يمكن تعيين قيمة لحقل مرجع عام (Generic Reference) داخل مسار كيان؟

Viewed 2

عند العمل داخل مسار كيان (Entity Flow)، أحاول تثبيت قيمة في حقل مرجع عام يقبل أكثر من نوع جدول، ويُعرض في الواجهة باختيار النوع ثم الكود. جرّبت كتابة:

details.ref1='MCI0001'

مع تحديد النوع المطلوب في إعدادات الحقول والشاشات، لكن القيمة لا تُحفظ. كذلك جرّبت تعيين النوع والكود بشكل منفصل:

details.ref1.entityType='PurchaseElement'
details.ref1='MCI0001'

أو:

details.ref1.entityType='PurchaseElement'
details.ref1.code='MCI0001'

لكن عند فتح المرجع في النظام لا يُعرض بشكل صحيح. ما الطريقة الصحيحة لتعيين قيمة في هذا النوع من الحقول؟

1 Answers

عند التعامل مع الحقول المرجعية العامة (التي تقبل مراجع من أكثر من جدول وتُعرض في الواجهة باختيار النوع ثم الكود)، يجب تعبئتها بطريقة واحدة متكاملة، وليس بتعيين النوع والكود بشكل منفصل.

الطريقة الموصى بها هي استخدام دالة ref بهذا الشكل:

details.ref1=ref('PurchaseElement', 'MCI0001')

كما يمكن استخدام استعلام SQL يُرجع النوع والكود أو المعرف، مثل:

details.ref1=sql(select 'PurchaseElement', 'MCI0001')

أو:

details.ref1=sql(select entityType, id from PurchaseElement where code = 'MCI0001')

وإذا اضطررت لاستخدام الطريقة التي تعتمد على تحديد النوع والكود يدويًا، فيجب أيضًا تعيين المعرف (id) حتى يتعرف النظام على المرجع بشكل صحيح:

details.ref1.entityType='PurchaseElement'
details.ref1.code='MCI0001'
details.ref1.id='0xFFFF00018C21ED75F9000100FF1573C6'

لكن هذه الطريقة معقدة ولا يُنصح باستخدامها ما لم يكن هناك ضرورة قصوى. الأفضل دائمًا استخدام ref أو sql لسهولة القراءة وضمان عمل المرجع بطريقة سليمة.