Oracle fusion smartphone edition




















The book shows you the support tools you need for source control and issue tracking as well as how to use them productively to develop an enterprise application. It explains enterprise ADF application security as well as important specialty topics like skinning, customization, and internationalization. This book will provide you with all the knowledge you need to make a real-life Oracle ADF development project a success. Your organization has decided that the Oracle Application Development Framework ADF might be the right tool to build your next enterprise application—now you need to set up an experiment to prove that your assumption is correct.

You can compare the situation at the start of a project to standing in front of a mountain with the task to excavate a tunnel. The mountainsides are almost vertical, and there is no way for you to climb the mountain to figure out how wide it is. You can take either of the two approaches:.

You can start drilling a very small pilot tunnel all through the mountain and then expand it to full width later. It's probably more efficient to build in the full width of the tunnel straight from the beginning; however, this approach has some serious disadvantages, as well. You don't know how wide the mountain is, so you can't tell how long it will take to build the tunnel.

In addition, you don't know what kind of surprises might lurk in the mountain—porous rocks, aquifers, or any number of other obstacles to your tunnel building. That's why you should build the pilot tunnel first—so you know the size of the task and have an idea of the obstacles you might meet on the way.

Since you have decided to evaluate ADF for your enterprise application, you probably already have a pretty good idea of its architecture and capabilities. Therefore, this section will only give you a very brief overview of ADF—there are many whitepapers, tutorials, and demonstrations available at the Oracle Technology Network OTN website.

A modern enterprise application typically consists of a frontend user-facing part and a backend business service part. The frontend part is constructed from several layers. In a web-based application, these are normally arranged in the common model-view-controller MVC pattern, as illustrated in the following figure:. The view layer is interacting with the user, thus displaying data as well as receiving updates and user actions. The controller layer is in charge of interpreting user actions and deciding which screens are presented to the user in which order.

The model layer is representing the backend business services to the view and controller layers, thus hiding the complexity of storing and retrieving data. This architecture implements a clean separation of duties—the page doesn't have to worry about where to go next because that is the task of the controller.

The controller doesn't have to worry about how to store data in the data service because that is the task of the model. An enterprise application could also have a mobile application frontend or even use existing desktop applications, such as Microsoft Excel, to interact with data. In the ADF technology stack, all of these alternative frontends interact with the same model, making it easy to develop multiple frontend applications against the same data services.

The backend part consists of a business service layer that implements the business logic and provides some way of accessing the underlying data services.

Under the business services layer, there will be a data service layer actually storing persistent data. Typically, this is based on relational tables, but it could also be XML files in a filesystem or data in other systems accessed through an interface. Edwards, and many other applications Oracle has acquired over the last couple of years.

If it's good enough for Oracle Fusion Applications, arguably the biggest enterprise application development effort ever undertaken by mankind, it's probably good enough for you, too. ADFc also allows you to declare transaction boundaries, so one database transaction can span across many pages. ADF binding layer ADFm : This implements a common backend model that different user interface layers can communicate with.

There are many ways of getting from A to B—this book is about traveling the straight and well-paved road Oracle has built for Fusion Applications. However, other routes might be appropriate in some situations; in the frontend part, you could use ADF Mobile for smartphones and tablets or ADF Desktop Integration to access your data directly from within Microsoft Excel, and in the backend, you could use business services based on Web Services, EJBs, or many other technologies and still use the ADF binding layer to connect the back and frontend parts together.

Entity objects EO s take care of object-relational mapping, making your relational tables available to the application as Java objects. Entity objects form the base that view objects are normally built on, and all data modifications go through the entity object. You will normally have one entity object for every database table or database view that your application uses, and this object is responsible for producing the correct SQL statements to insert, update, or delete data in the underlying relational tables.

The entity objects help you build scalable and well-performing applications by intelligently caching database records on the application server in order to minimize the load that the application places on the database. Like entity objects are the middle-tier representation of database tables and database views, associations are the representation of foreign key relationships between tables.

An association implements a connection between two entity objects and allows ADF to connect data in one entity object with data in another. JDeveloper is normally able to create associations automatically by simply inspecting the database, but in case your database does not contain foreign keys, you can build associations manually to let ADF know about the relationships in your data.

While you don't really need to make any major decisions when building the entity objects for the Proof of Concept, you do need to consider the consumers of your business services when you start building view objects —for example, what information you would display on a screen. View objects are typically based on entity objects, and you'll mainly be using them for two purposes:.

The data handling view objects are normally specific to each screen or business service. One screen can use multiple view objects. If you have master-detail data, for example, departments containing employees, you create one view object for each master-detail level you wish to display on your screen for example, one department and one employee view object. One view object can pull together data from several entity objects. If you need to look up a reference value from another table, you don't need to create a separate view object for this.

For example, an employee entity object might contain only the department number. If you want your view object to display the department name, you need to include the department entity object in the view object in order to retrieve it. The LOV view objects are used for drop-down lists and other selections in your user interface. They are typically defined as read-only, and because they can be reused, you can define them once and re-use them everywhere you need a drop-down list on a specific data set.

View links are used to define the master-detail relationships between the view objects and are typically based on associations again, they are often based on foreign keys in the database. The left-hand side illustration shows a situation in which you wish to display a department with all of its employees in a master-detail screen. In this case, you create two view objects connected by a view link. The right-hand side illustration shows a situation in which you wish to display all employees together with the name of the department they work in.

Application modules encapsulate the view object instances and business service methods necessary to perform a unit of work. Each application module has its own transactional context and holds its own database connection. This means that all of the work a user performs using view objects from one application module is part of one database transaction. Application modules can have different granularity, but typically, you will have one application module for each major subsystem in your application.

However, there is no limit to the amount of functionality you can put into one application module—indeed, it is possible to build a small application using just one application module.

If you come from an Oracle Forms background and are developing a replacement for an Oracle Forms application, your application will often have a relatively small number of complex, major forms and a larger number of simple data maintenance forms. You will often create one application module per major form and a few application modules, each of which provides data, for a number of simple forms. If you wish, you can combine multiple application modules inside one root application module.

This is called nesting and allows several application modules to participate in the transaction of the root application module. This also saves database connections because only the root application module needs a connection. JSF is a component-based framework for building web-based user interfaces that overcome many of the limitations of earlier technologies such as JavaServer Pages JSP. In a JSF application, the user interface does not contain any code but is built from the configurable components of a component library instead.

It had long been clear to web developers that in a web application, you cannot just let each page decide where to go next—you need the controller from the MVC architecture. Various frameworks and technologies have implemented controllers both the popular Struts framework and JSF have this , but the controller in ADF Task Flows was the first one capable of handling large enterprise applications.

An ADF web application has one unbounded task flow where you place all of the publicly accessible pages and define the navigation between them. This corresponds to other controller architectures such as Apache Struts. The user can enter an unbounded task flow on any page.

However, ADF also has bounded task flows , which are complete, reusable mini applications that can be called from an unbounded task flow or from another bounded task flow. A bounded task flow has a well-defined entry point, accepts input parameters, and can return an outcome back to the caller. For example, you might build a customer management task flow to handle customer data.

In this way, your application can be built in a modular fashion—the developers in charge of implementing each use case can define their own bounded task flow with a well-defined interface for others to call. The team building the customer management task flow is thus free to add new pages or change the navigation flow without affecting the rest of the application.

In bounded task flows, you can define either pages or page fragments. Pages are complete web pages that can be run on their own, while page fragments are reusable components that you can place inside regions on pages. A traditional web application consists of pages—when the user interacts with the application, the whole browser window will redraw, thus showing the next page of the application.

In a Rich Internet Application, on the other hand, you will have a small number of pages possibly only one and a larger number of page fragments. These page fragments will dynamically replace each other inside a region on an application page, so the user sees only a part of the page change. If you choose this technique, your application will seem more like a desktop application than a traditional web application. On your pages or page fragments, you can add content using layout components , data components , and control components :.

Layout components : These are containers for other components and control the screen layout. Often, multiple layout components are nested inside each other to achieve the desired layout. Data components : These are the components that the user interacts with to create and modify data. Data components range from fairly simple components, such as an input field or a checkbox, to very sophisticated components, such as an ADF table. Control components : These are the buttons and links used to perform actions in an ADF application.

To make sure that you can make the technology do what you want it to do. If we return to the tunnel analogy, we need to demonstrate that we can drill all the way through the mountain and measure our drilling speed. The most important part of the Proof of Concept is that it goes all the way through the mountain, or in application development terms, all the way from the user interface to the backend data service and back.

However, if for some reason, you decide to not use ADF Business Components or you want to base your business components on something other than relational tables, things get more complicated. In this case, you will need to demonstrate that you can retrieve data from your data service, display it on the screen, modify it, and successfully store the changes in the backend data service.

You might also have user interface requirements that require more advanced components such as trees, graphs, or even drag-and-drop functionality for the end user. If that's the case, your Proof of Concept user interface needs to demonstrate the use of these special components. There might also be other significant requirements you need to consider. Your application might have to use a legacy authentication mechanism such as a database login. Another possibility is it might have to integrate with legacy systems for authorization or customization, or you might need to support accessibility standards allowing your application to be used by people with disabilities.

If you have these kinds of requirements, you have to evaluate the impact on your project if you can't meet them.

If they are critical to your project's success; you need to validate them in a Proof of Concept. The ADF technology obviously works. Hundreds of organizations have already followed Oracle's lead and built big enterprise applications using Oracle ADF. It is very straightforward to use the ADF framework with relational tables; the framework handles all of the boring object-relational mapping, allowing you to concentrate on building the actual application logic. You are likely to inherit at least some of the data models from a pre-existing system, but in rare cases, you will be building a data model from scratch for a brand new application.

JDeveloper does allow you to build data models, but Oracle also has other tools for example, SQL Developer Data Modeler that are specialized for the task of data modeling. Either way, the ADF framework does not place any specific restrictions on your data model—any good data model will work great with ADF. But your requirements are special, of course. Nobody has ever built an application like the one you are about to build—that's the essence of a project: to do something non-trivial that has not been done before.

After all, if you didn't need anything special, you could just pick up a standard product off the shelf. So, you need to consider all of your specific requirements to see if ADF can do it. ADF can still do it. The ADF framework is immensely powerful as it is, but it also allows you to modify the functionality of ADF applications in myriad ways to meet any conceivable requirement.

However, you shouldn't just take my word or anybody else's word for it. Building an enterprise application is a major undertaking for your organization, and you want to prove that your application can meet the requirements. The development speed of a task mainly depends on three factors: the size of the task, the complexity of the task, and the speed of development. The size and complexity of the task is given by your requirements. It would be a rare project where all of the requirements are exactly known at the beginning of the project, but if you have a set of detailed requirements, you can make a good estimate of the project's size and complexity.

The speed of development will be the greatest unknown factor if ADF is new to you and your team. Using your previous development tool for example, Oracle Forms , you were probably able to convert your knowledge of project size and complexity into development effort, but you don't yet know what your development speed with ADF will be.

Your relationship with your development tool will go through a number of phases—not unlike a romantic relationship. Using the terminology of some of the countless relationship coaches on the Internet, we can identify three phases of a relationship:. During the infatuation stage, your development speed is fairly high. You will be building the types of functionalities illustrated in the tool tutorials—fairly simple stuff that the tool supports really well.

After this stage comes power struggle. You want to implement some specific functionality and the tool simply refuses to cooperate. During this stage, your development speed drops and your frustration rises…. Assuming that the relationship between you and your tool survives this phase, you can move on to the co-creativity stage.

This is where you understand the tool: you know its strengths and how to overcome its weaknesses. During this stage, your productivity recovers to the initial level and continues to grow to a higher and higher level. If you have to provide an estimate of development speed very early in the project, you can use your initial development speed as an approximation of the productive development speed you will eventually reach. However, if you do this, you must be aware of the period of lower productivity before you start climbing up with your full productive development speed.

Many developers working on their own find that after a few weeks of infatuation, the power struggle phase can take up to months before productivity starts to climb again.

If you want to move forward faster, you need to break out of your isolation and get some help. In my experience, typical classroom training is not enough to move through the struggle phase. Try to find an experienced ADF developer who can both teach and offer mentoring and support you on your way to mastering ADF. Also, use the Oracle Technology Network forums available at otn. The outcome of the Proof of Concept is not an architecture in the form of boxes and arrows on a PowerPoint slide.

David Clark from the Internet Engineering Task Force said, We believe in running code—and that's what the Proof of Concept should deliver in order to be credible to developers, users, and management: running code. If you want to convince your project review board that ADF is a viable technology, you need to bring your development laptop before your project review board and perform a live demonstration.

Additionally, it is a good idea to record the running Proof of Concept application with a screen-recording tool and distribute the resulting video file. This kind of demo tends to be watched at many places in the organization and gives your project visibility and momentum. A DMC is a specialized travel agency, sometimes called an "incoming" agency, and works with clients in the country where it is based. On an average packaged tour, you will probably not enjoy the services of a DMC.

But if you manage to qualify for a company-paid trip to some exotic location, your company is likely to engage the services of a DMC at the destination. If you have ever participated in a technology conference, a DMC will normally be taking care of transfers, dinners, receptions, and so on.

The system that DMC Solutions is selling today is based on Oracle Forms, and the sales force is saying that our competitors are offering systems with a more modern look and a more user-friendly interface. Your mission, should you choose to accept it, would be to prove that ADF is a valid choice for a modern enterprise application, and if so, set up a project to build the next generation of destination management software the XDM project.

The rest of this chapter shows you how to build the Proof of Concept application implementing two use cases. You can simply read through it to get a feel of the tasks involved in creating an ADF application, or you can use it as an ADF hands-on exercise and perform each step in JDeveloper on your own.

Your manager has dusted off the specification binder for the existing system and has asked you to implement "Use Case Task Overview and Edit". These two use cases represent the application's basic functionality the ability to search and edit data , as well as a graphical representation of time data, something new that wasn't possible in Oracle Forms.

The UC Task Overview and Edit screen allows the user to search for tasks by the responsible person, program, or a free-text search, as shown in the following screenshot.

Data can be updated and saved back to the database. This term is used because British English makes a distinction between "programme" a set of structured activities and a "program" something that runs on a computer. The screen is not a dialog box, but uses OK to accept changes and save data, and Cancel to cancel any changes and revert to the saved data.

For simplicity, we will not implement the application menu, but just have a button labeled Timeline that invokes UC instead. Your manager would like something like the Gantt charts he uses to track projects, showing the tasks assigned to each person on a timeline, such as the one shown in the following screenshot:.

Again, we will not have a menu, just a button called Overview for returning to UC The destination management system starts with events, such as "Oracle OpenWorld ". To Oracle's credit it has put pricing out there into the public domain but this might as well read like the Oracle Price Book of old: confusing, complex and guaranteed to put unwary customers at risk of under provisioning what they need or ending up with shelfware. As I understand, Fusion is available across a variety of deployment options: On-premise, hosted, in some sort of cloud - whatever.

Fair enough - but the way this reads, you might as well consider yourself as an on-premise user with every bit and piece an 'extra. Look at other components and it gets a whole lot messier. Given we were told that Oracle is looking seriously at cloud deployment options, how does this work? And that's just the start of pricing issues you're almost certain to find in the bowels of licensing agreements. Message to Oracle : wake up - the world has changed. If you're serious about Fusion as next gen then that should mean sensible pricing in the cloud as a starting point that keeps thing simple.

Or as some might say: you can fool some of the people all of the time but you can't fool all of the people all of the time. After you have accessed the starting point of a task, the interface then presents you with the page, dialog, or editor that you use to perform the task.

The browser Back button might not maintain the state of the dashboard upon return. Breadcrumbs are the recommended navigation approach. See About Navigating With Breadcrumbs. The Home page is divided into sections that allow you to begin a specific task or locate an object. It also includes sections for example, Recent and Favorites that allow you to access objects that you have recently viewed, created, or updated, and objects that are accessed the most often by the users assigned to the groups to which you belong.

Depending on what has been configured as your starting page, you might be presented with the Home page when you sign in to Oracle BI EE.

Otherwise, you can always navigate to the Home page by clicking the Home page link in the global header. The New Home Page includes a variety of functions including BI Ask which allows you to find, view, or create visualizations, analyses, and dashboards.

Data Sources contain the data that you use to create analyses and VA projects. A data source can be either a subject area or a data set. You can create data sets by either uploading an Excel file or by building a connection to Oracle BI Applications or to a database. See Adding Your Own Data. The Display area provides several categories to help you quickly locate analyses, dashboards, and VA projects stored in the catalog. Use My Folder or Shared Folders to browse the catalog.

Or click the Favorites , Recents , VA Projects , Dashboards , or Analyses category to quickly locate an object that you recently viewed or a specific object by type. You can use BI Ask to quickly combine existing data objects into an analysis.

Type a search term in the Find content or visualize field to see a list of objects that match your search criteria, and click on a row with an object icon located in the Visualize data using section of the dropdown window to start building your visualization. VA Project. See Typical Workflow for Exploring Content. See Creating Dashboards. See Specifying the Criteria for Analyses. From the Home page you can quickly and easily search for saved objects.

The drop-down list contains results that match saved objects, but also can contain BI Ask search results. To see object matches for example, folders or projects , click the row with the magnifying glass icon located at the top of the drop-down list in the Search results containing section. Note that any BI Ask matches are displayed in the Visualize data using section of the drop-down list and are flagged with different icons.

Use BI Ask to enter column names into the search field, select them, and quickly see a visualization containing those columns. You can use this functionality to perform impromptu visualizations without having to first build a project.

What you select determines the data source for the visualization, and all other criteria that you enter is limited to columns or values in that data source. Note the following BI Ask search and visualization example:.

You can use the Find content or visualize field to search for projects and visualizations or to use BI Ask. When you enter your initial search criteria, the drop-down list contains BI Ask results, which are displayed in the Visualize data using section of the drop-down list. Your initial search criteria also build a search string to find projects and visualizations. That search string is displayed in the Search results containing section of the drop-down list and is flagged with the magnifying glass icon.

See Search Tips. When you search, use meaningful keywords. If you search with keywords such as by , the , and in it returns no results. If you use a comma in your search criteria the search returns no results. However, entering does return results. If you want to search for a date attribute, you search using the year-month-date format. Instead, your search results contain entries containing 8 and entries containing When you enter criteria in the search field, what displays in the drop-down list of suggestions can differ depending upon your locale setting.

For non-English locales, Oracle suggests that when needed, you search using stem words rather than full words. For example, searching for sale rather than sales returns items containing sale and sales. Or search for custom to see a results list that contains custom , customer , and customers. The global header provides quick access to commonly used functions and is always available from the user interface.

For example, you can use the global header to begin a new task, search the Oracle BI Presentation Catalog , access the product documentation, or view a different object, without having to return to the Home page. The global header also includes the Home page link so that you can access the Home page from other pages.

What you see in the global header is determined by privileges. Your administrator can customize the global header by changing the order in which the links display or by adding links to internal or external locations such as Google or Oracle Technology Network OTN. Search — Enables you to search the catalog.

Advanced — Displays the Catalog page in search mode, where you can search for objects in the catalog. In search mode, the Search pane is displayed rather than the Folders pane within the page.

Administration — Available if you are logged in as an administrator. Displays the Administration page, where you perform administration tasks such as managing privileges and metadata for maps. Alerts — Available only if one or more alerts have been generated for you. Displays the Alerts dialog, where you can manage your alerts. An alert is a notification that is generated by an agent that delivers personalized and actionable content to specified recipients and to subscribers to the agent.

Home — Displays the Home page. Catalog — Displays the Catalog page, where you can locate objects in the catalog and perform tasks specific to those objects. Favorites — Displays your favorite objects and any categories that you created to organize your favorite objects. Note that dashboards not saved to the Dashboards sub-folders are not displayed from the global header's Dashboards list.

New — Displays a list of the objects that you can create. To create an object, select it from the list. The appropriate dialog or editor is displayed for you to create the object. Open — Displays the "Open dialog," where you can select the object with which you want to work.

Recent objects — Displays a list of the objects that you have recently viewed, created, or updated. You can use this list to select an object with which you want to work.

Most Popular objects — Displays a list of the objects that are accessed the most often by the users that are assigned to the groups to which you belong.

Signed In As username — where username is the user name that your current session is using Displays the following options:. My Account — Displays the "My Account dialog," where you can specify your preferences, such as time zone, delivery devices, and delivery profile. For information about setting preferences, see "Setting Preferences. Act As — Available only if your organization has enabled this functionality and you have been granted the appropriate permissions.

Enables you to act as another user. For information, see "Acting for Other Users. Oracle BI EE provides direct access to guides, context-sensitive help, and libraries that contain conceptual and procedural information to help you understand Oracle BI EE.

Each of these topics contains overview information, links to related concept and procedures, and an explanation of each component. To access the online help for a page, editor, tab, or dialog, click its Help button. Alternatively, for a page, editor, or tab, you can select the xxx Help option where xxx is the name of the page, editor, or tab from the Help menu that is located in the global header.

For example, for help on the Catalog page, select the Catalog Page Help option. To access one of these tables of contents, click the Help Contents option on the Help menu in the global header and then select the appropriate table of contents. OTN provides services and resources to help developers, DBAs, and architects share and find expertise and best practices about how to design, build, deploy, manage, and optimize applications.

Examples of the types of items that you find on OTN include information about industry-standard technologies such as JAVA and Linux, all Oracle product documentation, discussion forums, Oracle software, blogs and podcasts, and technical articles that are written by other OTN members.

Privileges and permissions allow you to perform specific actions, such as creating an analysis or editing a scorecard, and entitle you to access and manage objects, applications, and so on. Roles group related privileges together that pertain to specific requirements, enabling continuity and limiting access based on responsibility. Privileges and roles govern what you can see and access in Oracle Business Intelligence Enterprise Edition.

This functionality is useful, for example, when you must work on another user's dashboard or content, or when IT support staff wants to troubleshoot another user's account. To use the Act As functionality, the administrator must enable you to act for another user.

When the administrator authorizes you to act for another user, the administrator can grant you full access or restricted access to another user's account:. Full access — When you are granted full access, you inherit the target user's privileges and can change the user's default dashboard and modify the user's content and preferences. Restricted access — When you are granted restricted access, you maintain your user privileges, but inherit the target user's permission for viewing data.

Restricted access enables you only to view the user's data. You can view a list of the users with access to your account by opening the "My Account Dialog: Delegated Users tab. For information on acting for another user, see "Acting for Other Users. You can act for another user, if you have been authorized to do so. For more information, see "About Acting for Other Users. The user's default dashboard is displayed.

From this dashboard you can view or modify content, depending upon the access type full or restricted that you were granted by the administrator.

Using the "My Account dialog," and depending on your privileges, you can:. View and modify your delivery options for agents. Oracle BI EE interacts in various ways with other products. This section contains the following topics:. BI Publisher enables you to create highly formatted reports that are suitable for printing.

BI Publisher supports a wide range of layout types, so you can create the full range of documents that your organization might need.

When using the integrated environment, you see that the following areas are affected by the integration:.



0コメント

  • 1000 / 1000