الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Validation Item In Adf With Call Database Stored Procedure

Featured Replies

بتاريخ:

الاخت / هالة

انا سؤالى عن ازاى اعمل when_validat_item ينادى database stored procedure وارسل لهذا ال procedure قيمة من item اخر وهذا ال procedure بيرجع قيمة عاوز اظهرها فى outputtext على نفس الشاشه .

شكراً اخت هاله

ياسر

تم تعديل بواسطة lino_yasser

بتاريخ:

بجد مش فاهمه اى حاجة من السؤال :) السؤال ده مكانه منتدى الفورمز .مفيش حاجة فى الجافا او فى الADF اسمها when_validat_item
ولا ايتم من الاساس اشرح سؤالك على مثال معين من اى Schema وقول بالظبط عايز تنفذه ازاى على الJDeveloper

بتاريخ:
  • كاتب الموضوع

اخت / هاله

انا اقصد انى عاوز ارنdatabase procedure لما انتقل من حقل الى حقل وابعتله parameter عباره عن قيمة حقل اخر موجود على الشاشه ويرجعلى قيمة فى output text موجود على الشاشه

شكر

ياسر

بتاريخ:

واضح من سؤالك انك مشتغلتش قبل كده على الجى دفيلوبر او اتعاملت مع الصفحات لان بيئه العمل فى الويب مختلفه خالص عن الفورمز طبعا مش حقدر اوضح اكتر لانك اذا اتعاملت مع صفحات المعموله بالJSF حتعرف قصدى ايه لكن ملخص الكلام كده ان اى صفحة احنا بنعملها فى الجى ديفيلوبر ممكن يبقالها managed bean يعنى كلاس جافا بنعرف فيها اى variables احنا عاوزينه وكمان بيبقى فيها set and get لكل component فى الصفحة (output Text,Selectonechoice,etc) وبنستخدم المتغيرات دى بطرق كتير يعنى مثلا ممكن اذا المستخدم عمل login بنحفظ الusername الخاص بيه فى متغير ونجعل قيمة الoutputtext هى المتغير ده وحاجات كتير تانيه نصيحتى ليك حاول تشتغل على الجى ديفيلوبر web application وتفهم الframework ككل ماشى ازاى

بتاريخ:
  • كاتب الموضوع

اخت / هاله

انا قولت ليكى قبل كده انى oracle developer وانى لسه بتعلم ال Jdeveloper و كمان ال Java .

طب لو فى شاشة login لو كان اسم المستخدم وكلمة السر محفوظين فى table فى database الطريقة هتكون ازاى ولو وجدها صح هيرجع كلمة مرحباُ بجانب اسمه على الشاشة فى outputtext.

شكرا

بتاريخ:
  • كاتب الموضوع

اخت / هاله

ياريت تكون طريقة البحث داخل ال database عن طريق استدعاء procedure ابعتله parameter ب اسم المستخدم وكلمة السر ويرجعلى كلمة "مرحباً" اذا وجدهم

شكرا

تم تعديل بواسطة lino_yasser

بتاريخ:
انا قولت ليكى قبل كده انى oracle developer وانى لسه بتعلم ال Jdeveloper و كمان ال Java .


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

بالنسبة للlogin فطريقتها ليس عن طريق استدعاء procedure وبوجه عام يمكن استدعاء procedure داخل الجى ديفيلوبر وذلك عن طريق Web service أو عن طريق تحويله لجافا ممكن تعرف اكتر عن الموضوع ده من هنا

اما طريقة عمل الlogin لو انت مش عامل enable ADF Security فهى كالاتى:

1 بنعمل view object مبنى على الانتيتى الخاصة بجدول الusers وبه two bind variables لاسم المستخدم وكلمة المرور

2 بنعمل صفحة الwelcome والLogin والnavigation case ما بينهم ("success") وفى الManaged bean بنستدعى الViewobject وعن طريق ميثود فى الmanaged beanبنخليه ياخد الtwo bind variable بتوعه من القيم اللى حيدخلها المستخدم فى الinputtext يعنى مثلا بنكتب كده

public String DoLogin(){
String		amDef = "model.AppModule";
String		config = "AppModuleLocal";
ApplicationModule am =
Configuration.createRootApplicationModule(amDef,config);
ViewObject vo = am.findViewObject("UsersView1");
vo.setNamedWhereClauseParam("N",(String)getInputText1().getValue());
vo.setNamedWhereClauseParam("P",(String)getInputText2().getValue());



وبعد كده بنفذ الquery ده لو رجع row يبقى اسم المستخدم وكلمة المرور موجودين فى الداتابيز يبقى حنوجهه للoutcome اللى اسمه "success" يعنى برضه بنكتب كده



vo.executeQuery();
if(vo.hasNext()){
Row r=vo.next();
Configuration.releaseRootApplicationModule(am,true);
return "success";
}



وحنحفظ اسم المستخدم فى الكلاس كالتالى

  public String userName;
public void setUserName(String userName) {
	this.userName = userName;
}

public String getUserName() {
	return userName;
}
setUserName((String)r.getAttribute("UserName"));



وفى صفحة الwelcome حنعمل drag and drop لoutputText وحنكتب فى حقل الvalue ان القيمة بتاعته هى

welcome #{backing_Login.userName}


معناها هى قيمة المتغير الذى تم تخزينه فى الbacking bean

ملحوظة:
لو بعد تنفيذ الview object لم يرجع قيمة حنظهر له رساله ان اسم المستخدم او كلمة المرور خطا

وسورى على التاخير بس انشغلت شويه

  • بعد 2 أسابيع...
بتاريخ:

السلام عليكم
ياسر
بالنسبة إلى When_Validate_Item
سؤالك ينقسم إلى شقين الأول يجب معرفة أولا كيفية عمل Validation فى ADF مثل الفورمز
الشق الثانى وهو كيفية مناداة DB Procedure من داخل Validation

الشق الأول :
فى ADF يوجد بديل لها او ما نسميه عمليه Mapping
يمكنك قراءة المزيد عن عملية mapping ما بينForms Trigger And ADF
من هنا

شرح فى عجالة
هناك فى ADF ما يسمى بــ Entity وهو يمثل الجدول الموجود فى قاعدة البيانات
يمكنك وضع أى قاعدة عمل (Business Rule) فى هذا الجزء والميزة هنا انك توحد قاعدة العمل على جميع المستويات او الصفحات اى كانك وضعت هذا الــ Validation على قاعدة البيانات

هناك ما يسمى بــ View Object
وهو المقابل إلى Data Block و هو جمله Select او Query
ويمكنك وضع validation هنا أيضا

على أى حال هناك كثير من Validation الموجودة والجاهزة والتى يمكن استخدامها على مستوى View Oject or Entity Object
ممكن تدخل على الموقع دة وهيفيدك كتير جدا
من هنا

بتاريخ:
  • كاتب الموضوع

السلام عليكم
وائل

انا دخلت على الربط لكن المشكله انى مش بعرف اكتب كود جافا انا كنت عاوز اعرف ازاى ممكن اعمل parameter واعطيه قيمة واستخدمه فى تحديد المخرجات من ENTITY .
مثال : فى شاشة Login بعد كتابة اسم المستخدم وكلمة السر اريد ان احدد اسم الشركة والفرع التابع لهم هذا المستخدم واظاهر البيانات الخاصه به فقط من كل Entity او View Object على اساس انه parameter موجود فى جملة ال Query

وشكراً

بتاريخ:
انا دخلت على الربط لكن المشكله انى مش بعرف اكتب كود جافا انا كنت عاوز اعرف ازاى ممكن اعمل parameter واعطيه قيمة واستخدمه فى تحديد المخرجات من ENTITY .


الاخ ياسر

من اهم الادوات التى نستخدمها لعمل الsearch فى الADF هو ExecuteWithParams و bind variables وهذه لا تحتاج االى كتابة اى اكواد جافا مثلا عاوزين تدخل للصفحة(minimum Salary و Maximum Salary للمرتبات ك two Parameters) ويعطيك كل المعلومات عن الموظفين التى مرتباتهم بين هذا المعدل (المثال على Scott schema) يبقى حنعمل view object وجملة الquery فى ال viewobjectحتكون كالاتى

SELECT * from Emp WHERE sal between (:LowSal) and (:HighSal)


وحنعمل two bind variables بنفس الاسم (LowSal,HighSal) ونوعهم number وفى الصفحة نفسها من الData Control Palette من الoperation الخاصة بالview object اللى عملناه بنختار ExecuteWithParams وبنعمله drag ك Parameters > ADF Parameter Form حيظهر Edit Form Fields dialog اضغط OK وبعدين اعمل drag لل view object ك read only table على سبيل المثال وده كل المطلوب لو جربت تعمل run للصفحة حتلاقى ان فى two inputText حتدخل فيهم الParameters وعلى اساس الباراميترز حتظهر اسماء الموظفين وبياناتهم التى تترواح مرتباتهم بين المعدلين اللى كتبتهم


بتاريخ:
  • كاتب الموضوع

اخت هاله

شكراً على الرد واهتمامك بحل الاسئله .
انا هقولك مثال على الى انا عاوز اعمله بالضبط
بعد المستخدم ما يكتب اسم المستخدم وكلمة السر فى شاشة Login لو موافق عاوز اروح اجيب اسم الشركات الشركات المتاحه والفروع التابعه لكل شركة
واضعهم فى variables عشان انا كل الاختيارات من Entity هتكون فى للشركة والفرع الخاص بالمستخدم ده وايضاً سوف اقوم بوضع اسم الشركة والفرع فى كل عمليه حفظ .
فكيف اعمل هذه .
انا فى Oracle Forms كنت بقوم باختيار الشركة والفرع واضعهم فى Parameter وعلى اساس هذا ال parameter كنت بعمل كل شغلى من Query و Insert وعاوز اتعلم اعمل ده ازاى فى Jdeveloper .

شكرا اخت هاله

بتاريخ:

شوف اولا اللى فهمته انك عاوز عندما المستخدم يعمل login ويدخل مثلا على صفحة للبحث تظهر له كل فروع الشركة الخاصه به فقط وطبعا فيه جدوال فى قاعده البيانات للشركات والفروع والفكرة العامة للحل ان بعد ما تضيف الid الخاص بالشركة فى جدول الusers فى قاعده البيانات حتيجى تعمل managed bean (كلاس جافا) وتكون (session scope) وبعد ما الuser يمر بالlogin حتخزن ال idالخاص بالشركة بتاعته كvariable فى الكلاس بحيث ان فى حالة الinsert نقوله برمجيا ان الid اللى حتدخله هو الvariable المتخزن فى الكلاس اما باه لموضوع الquery فاعمل view object مبنى على الانتيتى الخاصة بالفروع (اللى فيها الid بتاع الشركة كforeign key)واعمل bind variable (الbind variable مثل where فى الداتابيز) بحيث انه يجيب كل الفروع لشركة معينة وفى الصفحة الخاصة بتنفيذ الquery اعمل executewithparam والباراميتر هو المتغير اللى فى الكلاس

بتاريخ:
انا فى Oracle Forms كنت بقوم باختيار الشركة والفرع واضعهم فى Parameter وعلى اساس هذا ال parameter كنت بعمل كل شغلى من Query و Insert وعاوز اتعلم اعمل ده ازاى فى Jdeveloper .


ما هو المقصود بذلك ؟ هل انت تنفذ جمل الاستعلام والادخال بنفسك باستخدام Stored procedure ?
ام انك تقصد علاقة Master- detail ?
بتاريخ:
  • كاتب الموضوع

اخت / هاله

ال دخول USER انا هستدعى رقم الشركة الخاص به من البيانات الخاصه له فى جدول ال user واضعها فى variable وبعد ذلك هحددمخرجات كل views على هذا ال variable .
وياريت لو عندك رابط فيه مثال او يعلمنى كيفية عمل هذه الخطوه

شكراً

  • بعد 3 شهور...
بتاريخ:

المهندسة هاله

اقدم شكري لكي علي المجهود في موضوع login وطلب من حضرتك مثال عملي schema hr الموجود في قاعدة البيانات بعد ما تضيفي جدول باسم users و يوجد به (username ,userpassword)
لوسمحتي وضحي DoLogin كيف عمل لها create وفي مكان

وشكرا

جهاد علي

  • بعد 1 شهر...
بتاريخ:
  • بعد 2 أسابيع...
بتاريخ:

Dear My Friend


this is Example to return value from Stored Database Function

public int GetSalaryHistory(Number EmpId) throws SQLException {
int Final = 0;
CallableStatement History =
getDBTransaction().createCallableStatement("BEGIN ? := GET_SALARY_HISTORY (?); END;",
getDBTransaction().DEFAULT);
try {
History.registerOutParameter(1, Types.NUMERIC);
History.setObject(2, EmpId);
History.executeUpdate();
} catch (SQLException e) {
throw new JboException(e.getMessage());
}
Final = History.getInt(1);
History.close();
return Final;
}

if you call in User Interface, please Add it to appModuleImpl & include it in client interface , drag it and drop , be sure that it exist in Page Definiation and use , if you know EJB , then call it in Operation Bindings


if you like to use in validation , put it in your XXXXEOImpl and call it in XXValidate()

Many Thanks

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.