Anda di halaman 1dari 78

1

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Oracle Advisor Webcast Program

Current schedule

Archived recordings
Doc ID 740966.1

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Future Advisor Webcasts


Teleconference Access:

Upcoming live webcasts and recent recordings related to Procurement:

VOICESTREAMING IS AVAILABLE
teleconference ID: 36822388
UK standard International:+44 1452 562

June 18, 2013 ADVISOR WEBCAST: R12 Period End Accruals Theory,Practical Demonstration and
Troubleshooting
[ID 1545432.1]

665
US Free Call: 1866 230 1938
US Local call: 1845 608 8023
Global Toll-Free Numbers MOS (Doc ID
1148600.1)

July 23, 2013 Advisor Webcast : R12 On Line Accruals- Theory, Practical Demonstration and
Troubleshooting
[ID 1545433.1]

Use document ((Doc ID 1456150.1)) to


register and to find the Procurement
upcoming and archived webcast

Current Advisor Webcast Schedule and


Archived Download DOC#740966.1

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

AUDIO INFO Join Teleconference

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Question and Answer Instructions


Q&A panel

3
2
Ask: ALL PANELLIST leave default!
1

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

type your question here

Send your question

Question and Answer Instructions (cont)

your question pop-up here

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Safe Harbor Statement


The following is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing decision.
The development, release, and timing of any features or
functionality described for Oracles products remains at the
sole discretion of Oracle.

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Oracle Advisor Webcast


Powering Up Oracle Purchasing With
Personalizations

Mike Filakosky & Burt Paulson

Objectives
Introduction to Personalization Architecture
Comprehend the various triggering factors
Understand the use of Context (scope)
Gain Awareness of how to leverage conditions
Understand the different action types
that are available

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Agenda
Introduction to the personalization architecture
Overview of triggering events and actions
Examples of various personalizations for Purchasing
Live Demo / Suggestions for designing/implementing a personalization
Summary / MOS Resources Currently Available for personalizations

10

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Agenda

Overview of triggering events and actions


Examples of various personalizations for Purchasing
Live Demo / Suggestions for Designing/Implementing a Personalization
Summary / MOS Resources Currently Available for Personalizations

11

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Purpose
Potential to alter the forms behavior to meet business
requirements and processes
Changes applied at runtime based on triggering events
Various Levels of Control Site, User, Responsibility
Various options exist to enhance the product:
Change object properties
Execute certain Forms built-in functionality
Display custom messages
Activate/deactivate certain menu entries

12

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Profile Options to Consider

Utilities: Diagnostics = Yes


If no, will throw an error message that you do not have access
to this function when trying to use the Personalization menu.

Hide Diagnostics Menu entry = No


If the profile is Yes then the menu option is removed all together.
This is because its possible from the Diagnostics Menu to Choose Core Code
Only which then disables all personalizations.

13

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Outline of the Personalization Flow


Triggering Event
(Form Object possibly given)

Evaluate the Condition


Plan out the flow:
Consider Context (Scope)
1. Event Takes Place
2. Condition is Evaluated
3. Context is evaluated
4. If all Conditions are met engage Actions
Perform Action(s)

14

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Engaging the Personalization Form

Help/Diagnostics/Custom Code/Personalize
- Invokes the Define Personalization Form
- Notice the Core Code Only when chosen personalizations will not be considered
15

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Outline the Personalization Flow


Triggering Event
(Form Object possibly given)

Evaluate the Condition


Plan out the flow:
Considers Context (Scope)
1. Event Takes Place
2. Condition is Evaluated
3. Is context proper?
4. Conditions are met engage Actions
Perform Action(s)
16

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Agenda
Introduction to the personalization architecture

Examples of various personalizations for Purchasing


Live Demo / Suggestions for designing/implementing a personalization
Summary / MOS Resources Currently Available for Personalizations

17

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Triggering Events
The triggering event is
used to invoke a personalization.
The range is very broad
When New Form Instance
to more the more distinct
When-New-Block-Instance

Triggering Events:
When-New-Form-Instance - Engages as the forms opens
When-New-Block-Instance - Engages as the user navigates into a new block
When-New-Record-Instance Engages as a new record is created
When-New-Item-Instance Fields on the form are items, Engages upon hitting a certain item
When-Validate-Record Engages when record validation takes place example save
18

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Triggering Objects

Example When the user clicks into the


PO_LINES section, the personalization
Actions are invoked.

Triggering events use trigger objects to engage.


These Consist of the various objects in the form, such as
form blocks, items. A Form consists of blocks and within
those blocks are items.

Example When the user clicks into the


QUANTITY field in the PO_LINES Block,
then the personalizations actions are invoked.

Note: The slides to follow will build on the following scenario (below).
If an item is entered make the item revision field mandatory as the user clicks in the quantity field.
This should only be enforced for an individual responsibility.

19

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Triggering Objects
Form Block:
PO_HEADERS

PO_LINES

Item Instance:
Actual Fields
Ex. Supplier, Site,
Item, Rev

20

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Outline of the personalization flow


Triggering Event Engages
(Form Object possibly given)

Evaluate the Condition


Plan out the flow:
Considers Context (Scope)
1. Event Takes Place
2. Condition is Evaluated
3. Is context proper?
4. Conditions are met engage Actions
Performs Action(s)
21

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Conditions:

Example above the logic is that when the user clicks into
the quantity field and the Item number is not null
(meaning user entered an item) then the condition is met = True.
If the user enters an item and then at any time clicks into the quantity
field, then pursue the actions which are specified.

22

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Conditions: Use Validate to Test

Enter the data into the form and then move into the personalize page.
This allows the condition to be tested. In the example above the item
Was entered and then personalize page was pursued.
23

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Conditions: Insert Item

Insert Item Value represents the form block and item


Generic in nature - cannot evaluate specific properties

24

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Conditions: Insert Get Expression

More granular possible to check actual item properties and evaluate


Based on those properties.
25

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Outline of the Personalization Flow


Triggering Event Engages
(Form Object possibly given)

Evaluate the Condition


Plan out the flow:
Considers Context (Scope)
1. Event Takes Place
2. Condition is Evaluated
3. Is context proper?
4. Conditions are met engage Actions
Performs Action(s)

26

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Context and processing mode:


Offers scope as to whether or not
to engage the personalization .
Query or non-query mode is also
Recognizable.

The possible levels:


Industry reserved for future use
Site Applies to All
Responsibility Limit the personalization to only this responsibility User Limits
personalization to the user
The above example, the context is limiting the personalization to the
Purchasing, Vision Operations responsibility. It is applied - only in query mode.
27

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Outline the Personalization Flow


Triggering Event Engages
(Form Object possibly given)

Evaluate the Condition


Plan out the flow:
Considers Context
1. Event Takes Place
2. Condition is Evaluated
3. Is context proper?
4. Conditions are met engage Actions
Performs Action(s)

28

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Actions: Property

Property Used to set properties on various form items


Change a form field prompt format the value
Hide a form field
Make a form field mandatory
Make a form field required
Building on the example on the previous slide
When the user clicks in the quantity field When New Item Instance
And a Item has been entered on the PO Line Condition
And the user is using the Purchasing Vision Operations Responsibility Context
Set the property on the Item Revision Field to be Required Mandatory True Actions
29

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Actions: Message

Message Used to set Various Message types


Actions will engage based on the sequence they are in
The various message types determine whether a user can continue or not
Error user cannot continue Hint or Warn lets the user continue

30

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Actions: Built In

Building on the example on the previous slides (Recap)


When the user clicks in the quantity field When New Item Instance
And a Item has been entered on the PO Line Condition Evaluation
And the user is using the Purchasing Vision Operations Resp Context/Scope
Set the property on the Item Revision Field to be Required Mandatory True Actions
Display the message text noted above Actions Message
Builtin move the cursor back to the Item Revision Field
31

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Actions: Menu

Many Menu names are being used based on what is seen in the screen print.
The logic is to first name the menu and then use the When New Item Instance on the SPECIAL to
Call a built-in function. Example to follow.

32

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: ASN Pending


Objective: If the user is updating the quantity on the purchase order and the supplier has already sent an ASN
(meaning supplier has shipped the goods) and the record is in the receiving tables Give a warning to the
user to let them know to not change the quantity since the ASN will Fail processing.

We see that when the user clicks into the quantity field, the condition is going to check to see If the po_line_id
value is in a select statement that checks the rcv_shipment_lines table to validate If there is an ASN pending.

33

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: ASN Pending

${item.po_lines.po_line_id.value} in
(SELECT po_line_id FROM RCV_SHIPMENT_LINES WHERE NVL(QUANTITY_SHIPPED, 0) >
NVL(QUANTITY_RECEIVED, 0) AND NVL(ASN_LINE_FLAG, 'N') = 'Y' AND
NVL(SHIPMENT_LINE_STATUS_CODE, 'EXPECTED') <> 'CANCELLED')

The Event is the user clicking into the quantity field in the Purchase Order lines.
The condition is taking the value of the current po_line_id and then checking for that
po_line_id in the rcv_shipments_table along with some conditions.
- If the condition comes back as TRUE it means there is an ASN invoke some action.
34

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: ASN Pending


If there is an ASN pending, engage a warning message to the user stating that there Is an ASN pending.

Note 1192970.1 - How To Warn User Changing Quantity On A PO That There Are Pending ASN?

35

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: Autocreate Clear Buyer Field


Objective: Upon opening the autocreate form, the buyer defaults to the current user.
How can this field be cleared upon opening the form?

When the autocreate form opens, the first field by default that the form goes to Is the block
FIND_REQ_LINES.OPERATING_UNIT. Set the when-new-item-instance on That field so as soon as the
form opens engage an action. When new form instance did Not work for some reason so this was the
next step.
36

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: Autocreate Clear Buyer

37

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Autocreate: Clear Buyer

The action sets the target object to a null value. It is possible to set the values
of a field by using the equals sign as seen above.
38

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Autocreate: Clear Buyer

As the form opens cursor moves to the Operating Unit field (When New Item Instance
FIND_REQ_LINES (Form Block) OPERATING_UNIT (Field).
This then invokes the action of setting the Buyer Field to a Null value.
39

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Limit Document Types


When adjusting a list of values,
consider a forms level trace
to isolate the sql that Is used by
default for the list of values.
Other option is to open the form
In Forms Developer.

Here is the sql located from the trace:


select type_name, document_subtype from po_document_types where document_type_code = 'PA' and
document_subtype in ('BLANKET','CONTRACT') or document_type_code = 'PO'
and document_subtype in ('STANDARD', 'PLANNED') order by type_name

40

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Agenda
Introduction to the personalization architecture
Overview of triggering events and actions

Live Demo / Suggestions for designing/implementing a personalization


Summary / MOS Resources Currently Available for Personalizations

41

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Limit Document Types

Utilize the when new form instance so the action is taken as soon as the form
Opens.

42

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Limit Document Types

We will now link two actions to the When New Form Instance triggering event to create a new list of values.
- Use the Builtin action and Builtin Type Create Record Group from Query
- In the Argument -utilize the adjust sql that will become the list of values
select type_name, document_subtype from po_document_types where document_type_code = 'PA'
and document_subtype in ('BLANKET') or document_type_code = 'PO and document_subtype in
('STANDARD') order by type_name
Notice the adjustment, CONTRACT and PLANNED are now gone.

43

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Limit Document Types

We will now set the object type of LOV for the ALL_DOC_TYPE list of values to the new GROUP_NAME
we created in sequence 10. So as the form is opened, the first action is to create the record group and the
next action (seen above) is to assign the record group to the LOV (list of values). The value = the
GROUP_NAME created in Sequence 10.

44

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Limit Document Types

45

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Validate Supplier Requisition Line

Condition is setup to evaluate the value given as the :LINES.SUGGESTED_VENDOR_NAME.


:LINES.SUGGESTED_VENDOR_NAME is not null
and :LINES.REQUISITION_LINE_ID is null (applies to only new requisition lines if desired)
and :LINES.SUGGESTED_VENDOR_NAME not in (select vendor_name from po_vendors
where vendor_name = :LINES.SUGGESTED_VENDOR_NAME)

46

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: Validate Supplier Requisition Line

Message text as ='This is not a valid Supplier '


||nvl(:LINES.SUGGESTED_VENDOR_NAME,'NULL')
Note: it is possible to use actual form values in the error message.

47

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Examples: Validate Supplier Requisition Line

Message is shown when the user saves or tries to navigate to a new Line.

48

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Adjusting a Default Where Clause

Condition is When New Form Instance and the Block is RCV_TRANSACTION


- Property name is DEFAULT_WHERE.
Utilize the Get Value button to locate the current default where clause for the block.

49

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Adjusting a Default Where Clause

Utilize the Help/Diagnostics/Examine to confirm what form block is


being used noting the value for use in the personalization.

50

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Adjusting the Default Where Clause


receipt_source_code IN ('INVENTORY','INTERNAL ORDER','VENDOR') and
((RCV_ENTER_RECEIPTS_V.SOURCE_TYPE_CODE = 'VENDOR' OR
RCV_ENTER_RECEIPTS_V.SOURCE_TYPE_CODE = 'ASN' OR
RCV_ENTER_RECEIPTS_V.SOURCE_TYPE_CODE = 'INTERNAL')) and
((NVL(RCV_ENTER_RECEIPTS_V.closed_code,'OPEN')
NOT IN ('CLOSED', 'CLOSED FOR RECEIVING')))
From above the view is RCV_ENTER_RECEIPTS_V.

SQL Developer shows there is a deliver_to_location_id field.


51

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Adjusting the Default Where Clause


Adjust the default where clause to limit the search results by a specific
Deliver to location.
receipt_source_code IN ('INVENTORY','INTERNAL ORDER','VENDOR') and
deliver_to_location_id = 204
((RCV_ENTER_RECEIPTS_V.SOURCE_TYPE_CODE = 'VENDOR' OR
RCV_ENTER_RECEIPTS_V.SOURCE_TYPE_CODE = 'ASN' OR
RCV_ENTER_RECEIPTS_V.SOURCE_TYPE_CODE = 'INTERNAL')) and
((NVL(RCV_ENTER_RECEIPTS_V.closed_code,'OPEN') NOT IN ('CLOSED', 'CLOSED FOR
RECEIVING')))
Adjustments can be made to create new limitations such as restricting to a certain location,
requester, etc..

52

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Creating a New Menu


Objective: How can a new menu be created so that users can call Up the Requisition Summary
form while still in the enter purchase order Form.

Creating a new menu is a two sequence process.


Sequence 10 When New Form Instance invoked when the user opens the form.

53

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Creating a New Menu

Assigning a Menu Label to one of the SPECIAL menu variables.


After saving, its necessary to exit the form and re-enter so the Menu Entry can be
Associated with the Menu Label.
Take note of the Menu Entry value Ex. SPECIAL14
54

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Creating a new menu

Its necessary to give a new sequece giving the Menu Entry value from the previous
Sequence. Example. SPECIAL14
55

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Creating a New Menu

Create a new action so that when SPECIAL14 menu is selected, it calls


the requisition summary form (granted user has access to it in the responsibility)

56

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Creating a New Menu


The menu is now available and
upon choosing the menu the
Requisition Summary would open.
Using System Administrator
1.
Query Responsibility note menu
2.
Query the menu drill down to the menu entry
3.
Note the function associated to the menu entry
4.
Query the function short name to be used in the
personalization

57

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Disabling a Control Action


Two Way Match Fully Billed - Purchase Order still allows cancel.

The condition must be written to accommodate the cancel being


Attempted at line/shipment/distribution
58

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Disabling a Control Action


(:po_docon_control.action= 'CANCEL'
or :po_docon_control.action= 'CANCEL PO')
And ${item.headers_folder.po_header_id.value}
In
(select po_header_id from po_line_locations_all where quantity = quantity_billed)
or
${item.lines_folder.po_header_id.value} in
(select po_header_id from po_line_locations_all where quantity = quantity_billed)
or
${item.shipments_folder.po_header_id.value} in
(select po_header_id from po_line_locations_all where quantity = quantity_billed)
or
${item.distributions_folder.po_header_id.value} in
(select po_header_id from po_line_locations_all where quantity = quantity_billed)

The above condition is checking at all Purchase Order Summary levels.

59

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Disabling a control action

A message will first be displayed to the user.

60

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Disabling a control action.

Then the control action will be set to a null value stopping the control
Action.
61

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Disabling a control action

62

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Format Mask

When New Form Instance used to invoke the setting of the format
Mask on the price field so it would show numeric formatting.

63

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Format Mask

Price is entered as 11102.50 format mask takes hold and the value
Is shown with numeric formatting.

64

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Format Mask

As Users enter the date if they just put in DD-MMM and tab - it defaults to Year 2000.

65

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Format Mask

Utilize the When New Item Instance on PO_LINES.VENDOR_PRODUCT_NUM as this is the next
field to be invoked when the tab key is pressed. The condition then checks to see if in fact the
need by date is well in the past over 4000 days.

66

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Format Mask

=to_char(add_months(to_date(:PO_LINES.NEED_BY, 'DD-MON-YYYY
hh24:mi:ss'),13*12),'DD-MON-YYYY hh24:mi:ss')
The value is being altered to essentially add 13 years to the date.

67

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Example: Format Mask

As the user enters a value of 13-May and hits tab the condition is evaluated and the need-by-date
value is essentially incremented properly.

68

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Agenda
Introduction to the personalization architecture
Overview of triggering events and actions
Examples of various personalizations for Purchasing

Summary / MOS Resources Currently Available for Personalizations

69

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Live Demo

70

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Agenda
Introduction to the personalization architecture
Overview of triggering events and actions
Examples of various personalizations for Purchasing
Live Demo / Suggestions for designing/implementing a personalization

71

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Summary
It is currently clear:
o The components of personalizations and its
Architecture.
o The different various triggering factors and action
types that are available.
o The use of Context (scope)
o How to leverage conditions

72

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Top Articles and Community Links


Note 279034.1 - Information About the Oracle
Applications Form Personalization Feature in 11i
(Has excellent powerpoint presentations)
Note 395117.1 - Form Personalizations in Oracle EBusiness Suite (Release 12) - Excellent PDF Tutorial

Note 1292611.1 - Upgrading Form Personalizations and


OA Framework Personalizations from Oracle EBusiness Suite Release 11i to 12.1
Note 1258975.1 - How To Extract a Single Rule Of A
Forms Personalization Using FNDLOAD?
Note 1553987.1 - Procurement Personalization Index

73

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Learn More
Available References and Resources to Get Proactive

About Oracle Support Best Practices


www.oracle.com/goto/proactivesupport
Get Proactive in My Oracle Support
https://support. oracle.com | Doc ID: 432.1
Get Proactive Blog
https://blogs.oracle.com/getproactive/
Ask the Get Proactive Team
get-proactive_ww@oracle.com

74

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Questions & Answers

75

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

How to know about the upcoming Procurement webcasts?


1- From the Procurement Community , open the Procurement
Webcasts section, you will find a list for the upcoming webcast and
the archived one

2- Use document ((Doc ID 1456150.1)) to register and to find


the Procurement upcoming and archived webcast

Next Upcoming Live Webcasts:


Title

Date/Time

Document

ADVISOR WEBCAST: R12 Period End Accruals Theory,Practical Demonstration and


Troubleshooting

June 18, 2013

[ID 1545432.1]

Advisor Webcast : R12 On Line Accruals- Theory, Practical Demonstration and


Troubleshooting

July 23, 2013

[ID 1545433.1]

76

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

THANK YOU

77

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

78

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Anda mungkin juga menyukai