إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

Post_form_commit Vs ? In Database

POST_FORM_COMMIT

3 رد (ردود) على هذا الموضوع

#1 ahmedkhaled

ahmedkhaled

    عضو نشط

  • الأعضــاء
  • 298 مشاركة
  • الاسم الأول:Ahmed
  • اسم العائلة:Khaled
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle developer

تاريخ المشاركة 30 November 2017 - 11:44 AM

السلام عليكم ورحمة الله وبركاته

 

عندي فاتورة مبيعات محتاج اعمل عليها فاليداشن معين بعد ما يتم عمل انسرت للوثيقة بالكامل(في الجدولين الماستر والديتيل ) وذلك طبعا  سهل جدا يتعمل من POST_FORM_COMMIT في الفورمه (FORMS 12G)

لكن المطلوب عمل هذا في تريجير على الداتا بيز على مستوى الجدول الدتيل بتاع الفاتورة (INVOICE_DTL) طبعا الترجر بيكون على مستوى كل ريكورد  ( FOR EACH ROW )

المشكله ان التريجر بيعمل فاير مع كل ريكورد طبعا  في الديتيل ومش بقدر اعرف امتى تم ادخال لجميع ريكورد الفاتورة 

حد عنده حل 



#2 Darwiesh.fci

Darwiesh.fci

    عضو نشط

  • الأعضــاء
  • 340 مشاركة
  • الاسم الأول:إبراهيم
  • اسم العائلة:درويش
  • البـلـد: Country Flag

تاريخ المشاركة 30 November 2017 - 11:56 AM

المشكلة مش واضحه .. طبيعي ان التريجر يشتغل مع كل ريكورد .. فين المشكلة تحديدا ولو في كود يبقي تمام 


Ibrahim Darwiesh
Sr.Software Analyst/EngineerORACLE|Java EE|ADF 
Contact Me: darwiesh@live.com

#3 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 3,844 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 30 November 2017 - 02:57 PM

حل ع السريع كده. 

post-insert trigger on your detail block:- 

if :system.last_record = 'TRUE'

THEN

Validate as you wish...

end if; 

---------------

حل 2 برده ع السريع كده :- 

------------

فى شغل محترم بقى ع الداتابيز. وهو انك تعمل Package Specs للموضوع ده بس. وتحط فيها متغيرات عامة لكل المستندات الى عاوز تعمل Validation عليها بالطريقة دى. وفى Post-forms-commit trigger تعين قيم للمتغيرات دى ولتكن 1 والتريجر بتاعك ينطلق  بشرط ان المتغير ده = 1. 

 

-----------------

واكيد فى حلول ع البطئ كده, بس استنى لما اتغدا بقى. 


تم التعديل بواسطة eslam elbyaly, 30 November 2017 - 03:37 PM.


#4 ahmedkhaled

ahmedkhaled

    عضو نشط

  • الأعضــاء
  • 298 مشاركة
  • الاسم الأول:Ahmed
  • اسم العائلة:Khaled
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle developer

تاريخ المشاركة 06 December 2017 - 01:34 PM

مهندس 

Darwiesh.fci

المشكله ان الفورم فيه ترجر اسمه  

post_form_commit

من خلاله بقدر اعرف اذا كان المستند بالكامل اتحفظ ولا لا  بمعنى ان لو في 2 بلوك ماستر وديتيل ودخل في الامستر ريكورد وفي الديتيل  5 ريكورد بعد ما بعمل كومت للاتنين بلوك ال  post_for_commit  بيرن معاي صح كده

طيب الان في ناس شغالين معانا  

Android   and  IOS 

بيعملو انسرت في نفس الجداول

انا عاوز اعمل نفس عمل ال POST_FORM _COMMIT 

على تريجر بتاع الجدول الديتيل في الدتا بيز وليس الفورمه طبعا المشكله .

 

مهندس اسلام شكرا جدا ليك على الحلول السريعه دي بس انا اقترحتهم عليهم قيل ما الجاء للموقع ورفضو بل في حل كمان تاني ان هاعمل كونت لعدد الريكورد في الفورمه واعمله انسرت في الجدول المستر وفي الترجر على مستوى الداتا بيز بعد كل انسرت او ابدات بعمل سلكون لل COUNT بتاع الريكورد الي دخلت واول ما يوصل للعد الي في الماستر يعمله فاير 

لكن رفضو 

لان احنا الشركه عندنا عدد الريكورد كبير جداااااااااااااااااااااااااااا بالملاين وده هايون بطيق 

فا احنا عاوزين حاجه خفيفه بتشتغل اتومتك على الداتا بيز 

زي 

POST_FORM_COMMIT 

 

وشاكر ليكم جدا تعاونكم