گزارش منتشر شده گارتنر در خصوص تبدیل برنامه های Oracle Form Builder به ADF یا APEX حاکی از آن است که ADF بهترین گزینه برای تبدیل برنامهای Form Builder میباشد و به نظر گاتنر Oracle APEX تکنولوژی مناسبی برای این موضوع نمیباشد و بنا بر این گزارش Apex نمیتواند پیچیدگیهای برنامه های کاربردی را بر طرف نماید و مشکلاتی مانند عدم نگهداری نسخه های مختلف برنامه و همچنین عدم وجود مکانیزم کار گروهی از جمله عواملی میباشد که گارتنر به آن بعنوان دلایل عدم مناسب بودن Apex در این گزارش اشاره مینماید.
به گزارش گارتنر برنامه های تبدیل خودکار نیز دارای فراز و نشیب های گوناگون بوده و دارای معایب و مزایای خاص خود میباشند و به همین دلیل گارتنر بهترین گزینه را آموزش و تولید در داخل شرکت (in house migration) و همچنین برون سپاری ( Out Sourcing) میداند.
همچنین در همین گزارش برنامه های Form Builder را تنها برای برنامه های قدیمی و یا ارتباط بین برنامه های جدید با برنامه های قدیمی مناسب میداند و سرمایه گذاری مناسب را معماری سرویس گرا (SOA) و تکنولوژیهای مبتنی بر جاوا مانند (Oracle ADF) میداند.
متن کامل این گزارش در پیوست همین مطلب آمده است و همچنین در آدرس زیر قابل دسترسی میباشد.
http://www.gartner.com/technology/reprints.do?id=1-198LN9P&ct=120208&st=sb
Written by a Group Product Manager at Oracle, this Oracle Press guide gets you up and running quickly with your first Oracle Fusion applications. Quick Start Guide to Oracle Fusion Development provides only the essential information you need to build applications in a matter of hours. Rapidly learn the building blocks and functionality you’ll use most of the time. The progression of topics closely matches the application building process, taking you through a typical developer scenario from start to completion.
Quick Start Guide to Oracle Fusion Development features
The perfect entry point to Oracle Fusion development
Introduction to Fusion and the Fusion Technologies; Introduction to JDeveloper and Oracle ADF; Finding your Way Around JDeveloper; Building Business Services; Introducing ADF Business Components; The Role of the Entity; A View of your Data – The View Object; The Application Module; Implementing Business Service Validation; More View Object Features; Building the User Interface; Introducing ADF Face Rich Client; ADF Model; Building Typical ADF Pages; Building Application Flow; Menus, Toolbars and Buttons; Advanced UI Techniques; Data Visualization and Other Rich UI Components; Application Look and Feel; Common Coding Patterns; Common Business Service Coding Examples; Common View Coding Examples
Grant Ronald is a Group Product Manager in Oracle’s Application Development Tools Division responsible for guiding Oracle's traditional development base to Fusion. He has spent 12 years working with Oracle's traditional toolset and eight years working on the Oracle JDeveloper and ADF product management team. Grant speaks at many Oracle events (e.g. UKOUG, DOAG, Oracle World, ODTUG) across Europe, the Middle East, Africa, Asia and North America. He also has a regular column in the UK Oracle User Group magazine and has written for Oracle Magazine and the Oracle Development Tools Journal. Grant also blogs at www.groundside.com/blog/GrantRonald.php.
حدو.د قیمت نسخه چاپی 10-15 هزار تومان زمان تحویل حداکثر 4 روز
شما میتوانید نسخه چاچی این کتاب را در ایران خریداری نمایید زمان ارسال خرید شما کمتر از 1 هفته میباشد و نسخه مربوطه بصورت آفست میباشد.جهت سفارش نسخه چاپی این کتاب درخواست خود را با شرح عنوان و تعداد نسخه ایمیل نمایید مسئولین مربوطه با شما تماس خواهند گرفت.
In this post which has the source file attached also you can see that how you can use af:message in order to show errors that is specific to that a component.
as you know when you generate a general error like the below one
String msg="this is a global message.";
FacesContext ctx = getFacesContext();
FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, "");
ctx.addMessage(null,fm);
the generated error would be catch by af:messages and can be shown inline or popup.
but if you want your message be shown separately for different component or part of the page you can use af:message
the af:message has the property for="" which you must assign a component id to it, then this af:message would only shows the message that is related to that component, you mainly have one af:messages in your page to catch all the messages that are not related to any component and also you can have many af:message for different part of your page.
in order to generate a message that is related to a specific component in your page you must use below code
getFacesContext().addMessage(panelBox.getClientId(getFacesContext()),
new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Specific Error", "this error is just for panel box 1"));
panelBox.getClientId(getFacesContext() --> is the id of the component, you can write the id component instead but using the getClientId is error free and standard.
you can see a sample application developed in 11.1.1.3 in the attachment to this post.
این کامپوننت تقویم عربی برای Oracle Jdeveloper میباشد و در حقیقت همان af:inputDate میباشد که اصلاح گردیده است
در تغییر آن از کارشناسان شرکت اراکل کمک گرفته شده است و برای نسخه های 11.1.1.3 و 11.1.1.2 موجود میباشد و تنها بر روی سرور نصب میگردد.

این کامپوننت پس از قرار گیری در صفحه تنها با تنظیم یک فیلد بر روی آن کلیه عملیات عقب وجلو رفتن بر روی رکورد ها، ایجاد، حذف، ثبت و لغو تغییرات وجستجو را پوشش میدهد.
باعث ایجاد یکسان سازی ظاهر صفحات گردیده و امکان اضافه کردن دکمه های دیگر را نیز دارد
· عملیات حذف در آن ابتدا تاییدیه میگیرد.
· در صورت تغییر رکورد میتوان فرد را مجبور کرد که تغییرات را ثبت یا لغو نماید سپس به رکورد بعدی برود.
· صفحه جستجو بدون کد نویسی ایجاد میگردد.
· در کد نویسی آن از استاندارد های اراکل استفاده گردیده است.
· با استفاده از این کامپوننت کد نویسی صفحات CRUD بیشتر از 40% در زمان صرفه جویی میگردد.
· بر روی صفحات master/detail و به هر 2 شکل table یا form قابل استفاده میباشد.
![]()
پس از قرار دادن در صفحه فیلد iteratorname را برای آن پرنماییدIteratorname نام iterate میباشد که بر روی آن میخواهید عملیات CRUD را انجام دهید.
در ادامه کلیه فیلدها و عملکرد هریک مشخص گردیده است.
![]()
|
default |
description |
Property name |
|
|
نام iterator که بر روی آن این کامپوننت عملیات CRUD انجام میدهد |
iteratorname |
|
persian |
زبان نمایش این کامپوننت در حال حاضر مقادیر Persian/English برای دو زبان فارسی و انگلیسی پشتیبانی میگردد. |
lang |
|
true |
اگررکوردی تغییرکرده است تا تغییرات ثبت یا لغو نگردد فرد نمیتواند به رکورد بعدی یا قبلی برود یا رکورد جدیدی ایجاد نماید |
warningChanged |
|
false |
در صورتیکه معادل true باشد از ppr استفاده مینماید. در این حالت باید id کامپوننت در بخش partialTriggers برای جدول یا فرم مربوطه اضافه گردد. |
partialsubmit |
|
true |
نمایش یا عدم نمایش دکمه "اولین رکورد" |
showfirst |
|
true |
نمایش یا عدم نمایش دکمه "آخرین رکورد" |
showlast |
|
true |
نمایش یا عدم نمایش دکمه " رکورد قبلی" |
showprevious |
|
true |
نمایش یا عدم نمایش دکمه "رکورد بعدی" |
shownext |
|
true |
نمایش یا عدم نمایش دکمه "ایجاد رکورد" |
showcreate |
|
true |
نمایش یا عدم نمایش دکمه "حذف رکورد" |
showdelete |
|
true |
نمایش یا عدم نمایش دکمه "ثبت تغییرات" |
showcommit |
|
true |
نمایش یا عدم نمایش دکمه "لغو تغییرات" |
showrollback |
|
true |
نمایش یا عدم نمایش دکمه "بازیابی مجدد رکوردهای جدید" |
showreferesh |
|
false |
غیر فعال کردن دکمه نمایش رکورد اول |
disabled_first |
|
false |
غیر فعال کردن دکمه نمایش رکورد آخر |
disabled_last |
|
false |
غیر فعال کردن دکمه نمایش رکورد قبلی |
disabled_previous |
|
false |
غیر فعال کردن دکمه نمایش رکورد بعدی |
disabled_next |
|
false |
غیر فعال کردن دکمه ایجاد |
disabled_create |
|
false |
غیر فعال کردن دکمه حذف |
disabled_delete |
|
false |
غیر فعال کردن دکمه ثبت تغییرات |
disabled_commit |
|
false |
غیر فعال کردن دکمه لغو تغییرات |
disabled_rollback |
|
false |
غیر فعال کردن دکمه بارگذاری مجدد |
disabled_refresh |
|
true |
پس از ثبت رکورد اگر با خطا مواجه گردید، لغو تغییرات (rollback) صورت میپذیرد. |
RollbackAfterUnsuccessfulCommit |
|
false |
غیر فعال کردن دکمه تغییر رکورد |
disabled_EditCommand |
|
|
[1] این کلد هیچ کاری انجام نمیدهد صرفاً جهت هماهنگی با ورژنهای قبلی قرار گرفته است و در این نسخه منسوخ گردیده است |
tableFormId |
|
3 |
تعداد رکوردهای قابل نمایش در صفحه جستجو |
search_rows |
|
-1 |
تعداد ستونهای قابل نمایش در صفحه جستجو |
search_maxColumns |
|
False |
در صورتیکه بخواهید اگر انجام عملیاتی مانند حذف، با خطا مواجه گردید دلیل خطا نمایش داده گردد. |
debug |
|
false |
نمایش یا عدم نمایش دکمه "نمایش جستجوی خطی"
|
showquery |
|
|
در صورتیکه برای عملیات جستجو از popup خاصی استفاده مینمایید مانند زمانیکه از taskflow استفاده میکنید id مربوط به popup را در اینجا قرار دهید تا با فشار دکمه جستجو بجای عملیات جستجو popup مربوطه باز گردد. |
searchpopupid |
|
|
در صورتیکه برای عملیات insert از popup خاصی استفاده مینمایید مانند زمانیکه از taskflow استفاده میکنید id مربوط به popup را در اینجا قرار دهید تا با فشار دکمه insert بجای عملیات درج popup مربوطه باز گردد. |
createpopupid |
|
true |
در صورت فعال بودن پس از عملیات حذف commit صورت میپذیرد |
commitafterdelete |
|
|
Id مربوط به query در اینجا ظاهر میگردد به قسمت ایجاد جستجو مراجعه نمایید |
quickqueryid |
|
|
نمایش دکمه edit ، این دکمه کمک میکند تا رکورد جاری در وضعیت ویرایش قرار بگیرد. نکته: برای فعال شدن حالت تغییر باید از توابع کمکی شرکت استفاده کرده باشید و در داخل properties مربوط به view متناظر با iterator این کامپوننت مقدار برای آن ست شده باشد |
showEditCommand |
این کامپوننت در حقیقت خود کامپوننت تاریخ مربوط بهADF 11g میباشد (af:InputDate) که تنها به منظور نمایش تاریخ فارسی تنظیم و تغییر نموده است لذا از دید برنامه نویس هسچ تغییری در روال صفحات و برنامه نویسی وجود نخواهد داشت میتوان اینگونه تصور نمود که به محظ نصب برنامه فارسی سازی تقویم کلیه تقویم ها فارسی میگردد بدون نیاز به هیچگونه تغییر در کد برنامه های نوشته گردیده، در راستای این برنامه نکات زیر را میتوان عنوان نمود
امکانات:
1. کلیه موارد کامپوننت فارسی میگردد و هیچ نکته انگلیسی در آن وجود نخواهد داشت
2. امکان وجود فارسی و انگلیسی وجود خواهد داشت
3. فارسی گردیدن یا انگلیسی گردیدن اتوماتیک به locale صفحه بر میگردد در locale انگلیسی بصورت تاریخ لاتین و در locale مربوط به فارسی بصورت تاریخ هجری شمسی میگردد
4. پس از انتخاب تاریخ زمان انتخاب گردیده بصورت رشته نوشتاری String بر میگردد و فرمت آن بصورت yyyy/mm/dd میباشد مانند 1389/04/21
5. فرمت را میتوان بنا به خواسته شما تغییر داد ولی در حال حاضر امکان تغییر فرمت در زمان اجرای برنامه وجود ندارد
6. کامپوننت امکان انتخاب تاریخ غیر معتبر را به کاربر نمیدهد.
7. نسخه های 11.1.1.2 و 11.1.1.3 را پوشش میدهد
8. بر روی سرور فقط یکبار نصب میشود
9. نیازی به نصب بر روی کلاینت یا دستگاه برنام نویس ندارد
به منظور بومی سازی این چهار چوب ، شرکت شاخص نرمافزار با كمك تیم حرفهاي خود که تجربه چندین ساله در راهبری این تکنولوژی را دارا میباشد و با استفاده از تحقیقات گسترده و کمک های مستقیم وغیر مستقیم شایاني که از برنامه نویسان داخلي و خارجي گرفته است ، موفق گرديد تا کاستی محصول شرکت اراکل ، که همان پشتیبانی نکردن از زبان فارسی میباشد را بر طرف كرده و در حال حاضر اكثر موارد داخلی این چهارچوب را به زبان فارسی ترجمه نمايد.
لازم به ذکر است که با مهندسی معکوسی که در اين فرايند صورت گرفته است پشتیبانی زبان فارسی به روشی کاملاً استاندارد پياده سازي شده و هیچ تغییر اضافی یا غیر متعارفی در این چهار چوب انجام نشده است.
از آنجایی که فارسی سازی كامل این محصول در عمل بیش از هزار لغت يا عبارت را شامل میگردد لذا احتمالا مواردقابل تغييري هنوز وجود دارد كه البته موارد ریز باقی مانده در مدت پشتیبانی بصورت رایگان رفع میگردد .
در صورتی که هریک از عبارات ترجمه گردیده بر حسب سلیقه ، نیاز به تغییر داشته باشد ، اين تغييرات توسط شرکت در مدت زمان پشتیبانی بصورت رايگان انجام ميشود و در صورت تغییر نسخه ADF ، در کوتاهترین زمان ، فارسي سازی آن صورت میپذیرد و تعهد آن توسط شرکت پذیرفته میگردد .