بتاريخ: 18 يناير 201214 سنة comment_219878 كيف يمكنني تخزين المستخدم الذي قام بتعديل السجل وتاريخ التعديلمع العلم انني عامل الصلاحيات عن طريق جدول في قاعدة البيانات فيه المستخدمين وكلمة السروبالتالي عايز عندما يقوم المستخدم بالحفظ يتم تسجيل اسمه وتاريخ التعديل علي نفس السجلوذلك في صفحةjsfمعمول بال ADFوانا اعمل علي jdeveloper 11.2 تم تعديل 18 يناير 201214 سنة بواسطة samirtarek تقديم بلاغ
بتاريخ: 18 يناير 201214 سنة comment_219883 السلام عليكم حبيبنا اولا انت ببساطة تقوم تضيف عمودين الاول لتاريخ التعديل والتاني للمستخدم وتقوم تكتب كود في الزر بتاع الحفظ نفسو مثلا افرض انك عندك bottun بتاع save ومثلا اعمدتك id , name , sal , وانت اضفت العمودين القلتهم ليك save_date , user_name اكتب الكود دا insert into my_table values (:id , :name , :sal ,to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'),user)commit والله اعلم تقديم بلاغ
بتاريخ: 18 يناير 201214 سنة كاتب الموضوع comment_219884 شكرا يا استاذي علي الرد انا فعليا عامل الحقول في الجدولبس الكود الذي كتبته جملة sqlولكن انا اريد عمل ذلك من خلال الADF تقديم بلاغ
بتاريخ: 18 يناير 201214 سنة comment_219897 بالنسبة لتخزين اسم المستخدم الذى قام بالتعديل بعد عمل اللوجين قم بتخزين ال UserId فى ال BC session ثم فى ال Entity Impl فى ميثود الdoDML قوله لو حصل تعديل خللى ال ModifiedBY هو رقم المستخدم المتخزن عندك فى السيشن هكذا protected void doDML(int operation, TransactionEvent e) { Number userid = (Number)getFromSession("UserId"); if(operation == DML_UPDATE){ setModifiedBy(userid); } super.doDML(operation, e); } بالنسبة لتاريخ التعديل اجعل هذا ال History column) attribute )ومن track change History اختار modified on تقديم بلاغ
بتاريخ: 24 يناير 201214 سنة كاتب الموضوع comment_219929 شكرا جزيلا علي الردوهل يمكن ان توجد طريقة اخري غير ذلك من خلال backingوالكود الموجود علي الصفحة نفسها تقديم بلاغ
بتاريخ: 24 يناير 201214 سنة comment_219939 المهدس هاله ممكن تشرح لي اش يعمل هذا الكود اذا سمحتيprotected void doDML(int operation, TransactionEvent e) { Number userid = (Number)getFromSession("UserId"); if(operation == DML_UPDATE){ setModifiedBy(userid); setModifiedBy(userid); } super.doDML(operation, e); } وماذا تعمل تقديم بلاغ
بتاريخ: 30 يناير 201214 سنة comment_220170 الاخ / samirtarekبالطبع يمكن عمل ذلك من خلال backing bean ولكن بهذه الطريقه انت بتعمل Break MVC Pattern وده شىء غير مستحب عمله على الاطلاق المتغير ده بتحصل عليه كناتج لعملية الدخول اللى بتتهندل عن طريق ال Model Layer وبالتالى بيتم تخزينه هناك وبنضعه ك Default Value لقيمه attribute اخر فما الفائده من استدعائه الى ال view Layer عموما يوجد مكانين لتخزين ال user Data فى ال DB transaction session او فى http session. (والافضل تخزين بعض الداتا فى كلا ال two sessions فى حالة استخدامك لهم فى المكانين شوف المثال ده من هنا الاخ/ majedاحنا هنا بنعمل override على DoDML اللى بيتم استدعائها automatically فى حالة insert, update و ال delete (ال framework بيستدعيها بدون اى تدخل منا ) وبنقوله فى حالة ال update خللى تم التعديل بواسطة هو رقم المستخدم اللى عامل لوجين والمتخزن عندك فى السيشن بس خللى بالك من ان ال DoDML بيتم استدعائها بعد ال validation اقره عنها فى oracle Docs من هنا عموما انا ليه ملاحظه ودى ليست لسائلى الموضوع ولكن لاى حد بيبدا ADF جديد لانى شايفه ان اللى بيحصل الاتى واحد مثلا حيبنى مشروع بال DF فبدلا من اعطاء هذه التقنيه حقها فى الدراسه والفهم لبعض الوقت ثم البدأ فى التطبيق لا يشوف كام موضوع دراج ودروب من عند اوراكل على كام توتريال وبعدين يبدا يشتغل وده خاطىء تماما لازم تقرا ال Oracle Docs فى الاول واذا معندكش وقت ليها فعلى الاقل لازم تقرا وتفهم كويس جدا الDeveloper guide وخاصة اجزاء ال business components لان دى بتمثل ال infrastructure او الاساس اللى بتبنى عليه مشروعك كله وبالتالى تمكنك منها حيوفر عليك وقت كتير جدا بعد كدهومثالا على موضوع التطبيق السريع ده كنت من كان يوم بشوف مشروع اتبنى منه اجزاء كتيره بالفعل وبعدين فوجئت ان فى ال model layer عاملين 11 ابليكيشن موديول وكلهم Root Application module وليس nested ل Parent app module معنى كده ان اليوزر الواحد حيعمل 11 connection الى الداتابيز لو عندك 10 يوزر متزامنين يبقى حتعمل 110 من ال connections الى الداتابيز ومفيش حل لتقليل عدد ال Connections الى الداتابيز غير اعادة التصميم لجعلهم nested App module ل parent واحد فقططبعا الغرض من الكلام ده اننا لازم نقرا ونفهم وبعد كده نطبق وليس العكس تقديم بلاغ
بتاريخ: 6 ديسمبر 201213 سنة comment_229880 الاخت القديره Hala Salemاطلعت على ردك الاخير وواضح انك مسيطره على ADF بشكل كبير جدا ومطلعه عليها قويانا حاليا اعمل على هذه التقنيه الرائعه في مشاريع وانظمه لأحدى الجهات الحكوميهلكني عند قراتي لتعليقك الاخير اتضح لي اننا نفتقد للكثير من خبايا هذه التقنيه الرائعهوقد اطلعت على الروابط الذين وضعتيهم في ردكلكن صعب الاطلاع على كل هذا بالشكل المنهجي المتسلسل والممل نوعا ما برغم حاجتنا لذلكوجل ما اتمناه هو ردك على سؤال بسيطمن اين تستقين معلوماتك وماهي مراجعك لهذه التقنيهارجو افادتنا وافادة الجميع بكل ما تستطيعي نصحنا بهويفضل ان يكون مراجع انجليزي ان كان بالامكانحتى ولو كان مجرد ذكر لأسماء المراجع فقطوشكرا تم تعديل 6 ديسمبر 201213 سنة بواسطة mukaddam تقديم بلاغ
بتاريخ: 30 ديسمبر 201213 سنة comment_230633 المهدس هاله ممكن تشرح لي اش يعمل هذا الكود اذا سمحتيprotected void doDML(int operation, TransactionEvent e) { Number userid = (Number)getFromSession("UserId"); if(operation == DML_UPDATE){ setModifiedBy(userid); setModifiedBy(userid); } super.doDML(operation, e); }وماذا تعمل Dear Majedsimply it is doDML (work for each record) method in Enitity Object to make pre insert or pre updateto assign values of user & date , and get user data from session scope i thinkgood luck تقديم بلاغ
بتاريخ: 9 يناير 201313 سنة comment_230966 سؤال هة بالنسبة للميثود اللى هترجعلى اليوزر getFromSessionالميثود دى هتبقى فى managed bean يعنى على ال view projectمعنى كدة انى هضطر اضيف ال view controler project فى ال dependency بتاع ال model projectعلشان ال model project يقدر يشوف الميثود دىهل الكلام دة صح و لا لا؟و هل دى طريقة جيدة؟شكرا تقديم بلاغ
بتاريخ: 9 يناير 201313 سنة comment_230970 Dear Tarek no need, you can simpley access session from Entity Object and back beans using below example ADFContext.getCurrent().getSessionScope().get("username") thanks تقديم بلاغ
بتاريخ: 10 يناير 201313 سنة comment_230988 Dear Tarekno need, you can simpley access session from Entity Object and back beans using below exampleADFContext.getCurrent().getSessionScope().get("username")thanks ممتازمعنى كدة انى هعمل التالي1- هعمل ال managed bean بتاعتي فى ال session scope2- مثلا ال managed bean هيكون فيها attribute اسمة usernameبعد كدة فى ال DoDML() فى ال Entity Object String loginUser =(String) ADFContext.getCurrent().getSessionScope().get("username); تمام كدة؟؟؟ تقديم بلاغ
بتاريخ: 10 يناير 201313 سنة comment_230989 kindly, do managed bean scope what every you want, and assign value for session parameter using same senario like below ADFContext.getCurrent().getSessionScope().put("username", getUsername().getValue().toString()); Good Luck تقديم بلاغ
بتاريخ: 20 ديسمبر 201312 سنة comment_244358 اخي الكريم .. يقوم الـ ASF بالـ Mini auto Audit ... فقط يحتاج منك بعض الإعدادات ... راجع الروابط التاليه How to use History columns in Oracle ADF for mini auditing والربط التالي Populating WHO Columns in Oracle ADF : Created by, Creation Date, Last Updated by, Last Updated on تقديم بلاغ
بتاريخ: 28 ديسمبر 201312 سنة comment_244762 شكرا للاخ omdawebs ولكن هل الطريقة في الرابط كافية اني لو حبيت اضايف بيانات اخرى مثل اسم الجهاز المستخدم في التعديل او الاضافة او رقم سيشن الدخول تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.