U.S. patent application number 15/423210 was filed with the patent office on 2017-08-17 for data object extensibility.
The applicant listed for this patent is Workday, Inc.. Invention is credited to Charulatha Dhuvur, Jonathan David Ruggiero, Erin Hsu Yang.
Application Number | 20170235467 15/423210 |
Document ID | / |
Family ID | 58285861 |
Filed Date | 2017-08-17 |
United States Patent
Application |
20170235467 |
Kind Code |
A1 |
Yang; Erin Hsu ; et
al. |
August 17, 2017 |
DATA OBJECT EXTENSIBILITY
Abstract
A system for creating a custom field type comprises an input
interface, a processor, and an output interface. The input
interface is configured to receive an indication to create a custom
field type. The processor is configured to validate a parameter of
the custom field type. The output interface is configured to
provide the custom field type for creating a custom field of a
custom object.
Inventors: |
Yang; Erin Hsu; (San
Francisco, CA) ; Ruggiero; Jonathan David; (Walnut
Creek, CA) ; Dhuvur; Charulatha; (Fremont,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Workday, Inc. |
Pleasanton |
CA |
US |
|
|
Family ID: |
58285861 |
Appl. No.: |
15/423210 |
Filed: |
February 2, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13793903 |
Mar 11, 2013 |
9600136 |
|
|
15423210 |
|
|
|
|
Current U.S.
Class: |
715/771 |
Current CPC
Class: |
G06F 16/252 20190101;
G06F 3/0482 20130101; G06F 3/0481 20130101; G06F 16/211 20190101;
G06F 3/04847 20130101 |
International
Class: |
G06F 3/0484 20060101
G06F003/0484; G06F 17/30 20060101 G06F017/30; G06F 3/0482 20060101
G06F003/0482 |
Claims
1. (canceled)
2. A system for creating a custom field type, comprising: an input
interface configured to: receive an indication to create a custom
field type; a processor configured to: validate a parameter of the
custom field type, wherein the custom field type comprises a
decimal type; and an output interface configured to: provide the
custom field type for creating a custom field of a custom
object.
3. The system of claim 2, wherein the output interface is further
configured to provide one or more available kinds of the custom
field type.
4. The system of claim 2, wherein the input interface is further
configured to receive an indication of a selected kind of one or
more available kinds of the custom field type.
5. The system of claim 2, wherein: the input interface is further
configured to receive an indication of a selected kind of one or
more available kinds of the custom field type; the output interface
is further configured to provide a form based at least in part on
the selected kind; and the form prompts for parameters of the
custom field type.
6. The system of claim 2, wherein the input interface is further
configured to receive the parameter of the custom field type.
7. The system of claim 2, wherein the parameter is one of a
plurality of parameters.
8. The system of claim 2, wherein the parameter of the custom field
type further comprises a field name.
9. The system of claim 2, wherein the parameter of the custom field
type further comprises a web service alias.
10. The system of claim 2, wherein the custom field type further
comprises a currency type.
11. The system of claim 2, wherein: the custom field type further
comprises a currency type; and the parameter of the currency type
comprises one of the following: a minimum value, a maximum value,
or a precision.
12. The system of claim 2, wherein the parameter of the decimal
type comprises one of the following: a minimum value, a maximum
value, or a precision.
13. The system of claim 2, wherein the custom field type further
comprises an integer type.
14. The system of claim 2, wherein: the custom field type further
comprises an integer type; and the parameter of the integer type
comprises one of the following: a minimum value or a maximum
value.
15. The system of claim 2, wherein the custom field type further
comprises a text type.
16. The system of claim 2, wherein: the custom field type further
comprises a text type; and the parameter of the text type comprises
a maximum length.
17. The system of claim 2, wherein the custom field type further
comprises a list type.
18. The system of claim 2, wherein: the custom field type further
comprises a list type; and the parameter of the list type comprises
one or more list values.
19. The system of claim 2, wherein: the custom field type further
comprises a list type; the parameter of the list type comprises one
or more list values; and one of the one or more list values
comprises a list value name.
20. The system of claim 2, wherein: the custom field type further
comprises a list type; the parameter of the list type comprises one
or more list values; and one of the one or more list values
comprises a list value web service alias.
21. A method for creating a custom field type, comprising:
receiving an indication to create a custom field type; validating,
using a processor, a parameter of the custom field type, wherein
the custom field type comprises a decimal type; and providing the
custom field type for creating a custom field of a custom
object.
22. A computer program product for creating a custom field type,
the computer program product being embodied in a tangible computer
readable storage medium and comprising computer instructions for:
receiving an indication to create a custom field type; validating,
using a processor, a parameter of the custom field type, wherein
the custom field type comprises a decimal type; and providing the
custom field type for creating a custom field of a custom object.
Description
CROSS REFERENCE TO OTHER APPLICATIONS
[0001] This application is a continuation of co-pending U.S. patent
application Ser. No. 13/793,903, entitled DATA OBJECT EXTENSIBILITY
filed Mar. 11, 2013 which is incorporated herein by reference for
all purposes.
BACKGROUND OF THE INVENTION
[0002] In an object based database system, software objects
correspond to real-life entities. For example, a worker object
comprises information describing a worker (e.g., worker name,
title, salary, etc.) and relationships to other business objects
(e.g., supervisors, subordinates, business locations, etc.). A
developer designing the object based database system can preload
the system with a set of objects representing common business
entities, in order to cover the basic needs of a typical business.
However, many businesses have special circumstances, which cannot
be addressed using the available objects or configurations of the
objects.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Various embodiments of the invention are disclosed in the
following detailed description and the accompanying drawings.
[0004] FIG. 1 is a block diagram illustrating an embodiment of a
network system.
[0005] FIG. 2 is a block diagram illustrating an embodiment of an
object data structure.
[0006] FIG. 3 is a block diagram illustrating an embodiment of a
data structure for an object tree.
[0007] FIG. 4 is a diagram illustrating an embodiment of a create
custom object window.
[0008] FIG. 5 is a diagram illustrating an embodiment of a create
custom field window.
[0009] FIG. 6 is a diagram illustrating an embodiment of a select
custom field type window.
[0010] FIG. 7 is a diagram illustrating an embodiment of a create
custom currency field type window.
[0011] FIG. 8 is a diagram illustrating an embodiment of a create
custom decimal field type window.
[0012] FIG. 9 is a diagram illustrating an embodiment of a create
custom integer field type window.
[0013] FIG. 10 is a diagram illustrating an embodiment of a create
custom text field type window.
[0014] FIG. 11 is a diagram illustrating an embodiment of a create
custom list field type window.
[0015] FIG. 12 is a diagram illustrating an embodiment of a
validation error for a custom currency field type.
[0016] FIG. 13 is a flow diagram illustrating an embodiment of a
process for creating a custom field type.
[0017] FIG. 14 is a flow diagram illustrating an embodiment of a
process for validating one or more parameters of a custom field
type.
DETAILED DESCRIPTION
[0018] The invention can be implemented in numerous ways, including
as a process; an apparatus; a system; a composition of matter; a
computer program product embodied on a computer readable storage
medium; and/or a processor, such as a processor configured to
execute instructions stored on and/or provided by a memory coupled
to the processor. In this specification, these implementations, or
any other form that the invention may take, may be referred to as
techniques. In general, the order of the steps of disclosed
processes may be altered within the scope of the invention. Unless
stated otherwise, a component such as a processor or a memory
described as being configured to perform a task may be implemented
as a general component that is temporarily configured to perform
the task at a given time or a specific component that is
manufactured to perform the task. As used herein, the term
`processor` refers to one or more devices, circuits, and/or
processing cores configured to process data, such as computer
program instructions.
[0019] A detailed description of one or more embodiments of the
invention is provided below along with accompanying figures that
illustrate the principles of the invention. The invention is
described in connection with such embodiments, but the invention is
not limited to any embodiment. The scope of the invention is
limited only by the claims and the invention encompasses numerous
alternatives, modifications and equivalents. Numerous specific
details are set forth in the following description in order to
provide a thorough understanding of the invention. These details
are provided for the purpose of example and the invention may be
practiced according to the claims without some or all of these
specific details. For the purpose of clarity, technical material
that is known in the technical fields related to the invention has
not been described in detail so that the invention is not
unnecessarily obscured.
[0020] A system for creating a custom field type comprises an input
interface configured to receive an indication to create a custom
field type, a processor configured to validate a parameter of the
custom field type, and an output interface configured to provide
the custom field type for creating a custom field of a custom
object. The system for creating a custom field type additionally
comprises a memory coupled to the processor and configured to
provide the processor with instructions.
[0021] A system for data object extensibility comprises an object
based database system comprising a set of data objects. A data
object comprises attributes (e.g., data describing the object),
relations (e.g., connections to other data objects); and methods
(e.g., software for operating on the attributes and relations). A
database system manager may decide it is necessary to extend an
object--for instance to add new attributes to a worker object, if
it is determined necessary to store new data describing the worker.
For example, a company that requires its employees to have their
fingerprints on file would want to store as part of a worker object
information describing when a fingerprint was taken, when it was
submitted to a national fingerprint database, what the results
were, etc. A company requiring a security clearance would want to
store information describing when the clearance was applied for,
what the results were, what level of clearance an employee has,
etc. The company can add this information by creating a new object
that extends the worker object, and has associated with it the data
fields desired.
[0022] In some embodiments, in order to make data object
extensibility as flexible and as powerful as possible, a new object
is created using not only the existing data types, but also using
custom data types created specifically for the new object. Custom
data types can include numeric data types with user-defined range
and precision, a text data type with user-defined length, or a list
data type with user-defined list elements. A list data type will
allow a customer to specify a set of values for the field that can
be chosen between. For example, a list type describing an employee
security clearance might give a choice of No Clearance,
Confidential, Secret, or Top Secret. A custom data type creator
allows a custom data type to be created, validates the custom data
type, and provides the custom data type to the custom object
creator.
[0023] FIG. 1 is a block diagram illustrating an embodiment of a
network system. In the example shown, the network system comprises
database system administrator 102, database system user 104, and
database system 106, communicating via network 100. In various
embodiments, network 100 comprises one or more of the following: a
local area network, a wide area network, a wired network, a
wireless network, the Internet, or any other appropriate network.
Database system 106 comprises a database system for storage and
retrieval of information. In some embodiments, database system 106
comprises a system for analysis of information. In some
embodiments, database system 106 comprises a distributed database,
e.g., a database system comprising multiple computers not
necessarily in the same location. In some embodiments, database
system 106 comprises a system for executing business processes. In
some embodiments, database system 106 comprises a system for an
object-oriented database. In some embodiments, database system 106
comprises a system for data object extensibility.
[0024] Database system administrator 102 comprises a database
system administrator administrating database system 106. In some
embodiments, database system administrator 102 comprises an
employee at a company purchasing database system services. In some
embodiments, administrating database system 106 comprises
preparing, configuring, or modifying database system 106 as desired
by database system users (e.g., database system user 104). In some
embodiments, database system administrator 102 configures and
modifies database system 106 in ways not available to database
system user 104. In some embodiments, database system administrator
102 extends objects of database system 106. In some embodiments,
database system administrator 102 creates custom objects for
database system 106. In some embodiments, database system
administrator 102 creates custom fields for database system 106.
Database system user 104 comprises a database user accessing
database services on database system 106. In some embodiments,
database system user 104 comprises a user who uses a user interface
(e.g., a keyboard, a touch screen, a display, etc.) to interact
with database system 106. In various embodiments, the user
interface is associated with a desktop computer, a laptop computer,
a local terminal, or any other appropriate system with a user
interface. In some embodiments, database system user 104 comprises
an employee at a company purchasing database system services. In
various embodiments, there are 1, 2, 4, 13, 22, 115, or any other
appropriate number of database system users accessing database
services on database system 106. In some embodiments, each database
system user only has access to their own data stored on database
system 106 and is able to utilize database system 106 as though
they are the sole database system user. In some embodiments,
database system user 104 configures services on database system
106. In some embodiments, the ability of database system user 104
to configure database system 106 is limited compared with that of
database system administrator 102. In some embodiments, a database
system user (e.g., database system user 104) comprises a person
accessing database system 106 via a user interface, e.g., a web
page. In some embodiments, a database system user comprises an
automated system accessing database system 106 via a machine
interface, e.g., a public application programming interface
(API).
[0025] FIG. 2 is a block diagram illustrating an embodiment of an
object data structure. In some embodiments, stored data (e.g., data
stored in database system 106 of FIG. 1) is stored in object data
structures of FIG. 2. In the example shown, object 200 is comprised
of zero, one, or more than one attributes 202, zero, one, or more
than one relations 204, and zero, one, or more than one methods
206. Attributes 202 store data about the object, for instance,
name, location, salary, title, cost, vendor, or any other human
resource, corporate, financial, legal, or medical data, or any
other appropriate data. Relations 204 store relations between a
given instance of object 200 and other instances of the object or
of other objects. Methods 206 define operations that can be
performed with the attributes and relations. A given object
definition has a certain set of attributes and relations, as well
as a certain set of methods used to operate on those attributes and
relations. A given instance of an object definition comprises a set
of stored values for the attributes and relations.
[0026] In some embodiments, objects can inherit from one another.
When a child object inherits from a parent object, it takes on the
definition of the parent object. The definition of the child object
can then be extended by adding or overwriting methods, attributes,
or relations. In some embodiments, objects are defined as part of
software sold by a system vendor and maintained by a database
system administrator (e.g., database system administrator 102 of
FIG. 1). In some embodiments, a system administrator can create new
objects as desired in order to customize and/or extend the software
sold by the system vendor.
[0027] FIG. 3 is a block diagram illustrating an embodiment of a
data structure for an object tree. In some embodiments, the object
tree of FIG. 3 may comprise stored data in a database system (e.g.,
database system 106 of FIG. 1). In some embodiments, objects 300,
302, 304, 306, 308, and 310 comprise instances of object data
structures as shown in FIG. 2. In some embodiments, relations 320,
322, 324, 326, and 328 comprise relations (e.g., relations 204 of
FIG. 2). In the example shown, the object instances of FIG. 3
describe part of a business data structure. Organization 300 has
relation 320 to business site object instance 302. Business site
object instance 302 contains the name of the site at which the
organization resides. Organization 300 also has relation 322 to
employee object instances including employee object instance 304,
each representing an employee that is part of the organization.
Employee object instance 304 has relation 324, relation 326, and
relation 328 to job profile object instance 306, salary object
instance 308, and name object instance 310, respectively. Job
profile object instance 306 includes job profile attributes
corresponding to employee 304. Salary object instance 308 includes
salary attributes corresponding to employee 304. Name object
instance 310 includes name attributes corresponding to employee
304. In this way, data can be stored in a way representing the
organizational structure of the company. In some embodiments,
programs can access and store attribute data by traversing the
object tree along the connections between object instances given by
relationships, and operate on the stored attribute data to create a
meaningful report about the organization.
[0028] FIG. 4 is a diagram illustrating an embodiment of a create
custom object window. In some embodiments, create custom object
window 400 comprises a create custom object window for a database
system administrator (e.g., database system administrator 102 of
FIG. 1) to create a custom object extending an existing object. In
the example shown, business object to extend field 402 comprises an
input field for specifying a business object to extend. For
example, if a database system administrator wishes to add fields to
a worker object, he would select the worker object as the business
object to extend. In some embodiments, not all business objects are
available to extend. Custom object name field 404 comprises a field
for specifying the custom object name. Web service alias field 406
comprises a field for specifying a web service alias for the
object. In some embodiments, the object based database is
accessible via a machine interface using a web service. The web
service includes a predefined interface for the machine interface
to use to retrieve data. When a custom object is created, it needs
a new web service alias so that it can be retrieved via the web
service. Allow multiple instances checkbox 408 comprises a checkbox
for specifying if multiple instances of the custom object will be
allowed. In some embodiments, multiple instances of the custom
object can be used to specify multiple copies of the same data
field for a given object. For instance, a custom object that
extends the worker object to include fingerprint data fields may
require multiple copies to exist if the fingerprint data is taken
and sent to the fingerprint database multiple times. Display value
field 410 comprises a field for specifying a data value that will
be used to distinguish multiple instances of the custom object in a
report (e.g., date created). Reference ID field 412 comprises a
field for specifying a data value that will be used to distinguish
multiple instances of the custom object in a web service request."
Security domain field 413 comprises a field for specifying one or
more security domains for the custom object. In some embodiments, a
security domain indicates a set of employees authorized to view
and/or modify the object. Save button 414 comprises a save button
for saving progress creating the custom object. In some
embodiments, save button 414 saves custom object creation progress
and takes the user to the next custom object creation screen.
[0029] FIG. 5 is a diagram illustrating an embodiment of a create
custom field window. In some embodiments, create custom field
window 500 comprises a create custom field window for a database
system administrator (e.g., database system administrator 102 of
FIG. 1) to create a custom field for a custom object. In the
example shown, field name field 502 comprises a field for entering
a custom field name. Field type field 504 comprises a field for
selecting a field type. In some embodiments, field type field 504
comprises a field for selecting a custom field type. Field
validations field 506 comprises a field for entering a field
validation (e.g., for indicating that the field is required to have
a value). Field ordering field 508 comprises a field for indicating
a field ordering (e.g., the ordering that the field is displayed).
Web service alias 510 comprises a field for entering a web service
alias for the field. Field category field 512 comprises a field for
selecting a category for the field. In some embodiments, fields are
sorted into field categories. In some embodiments, field category
field 512 defaults to "Custom Fields Save button 516 comprises a
save button for saving progress creating the custom field. Next
field button 518 comprises a next field button for creating another
new custom field for the custom object.
[0030] FIG. 6 is a diagram illustrating an embodiment of a select
custom field type window. In some embodiments, select custom field
type window 600 comprises a select custom field type window for a
database system administrator (e.g., database system administrator
102 of FIG. 1) to select a custom field type to begin creating a
custom field type. In the example shown, currency button 602 begins
creating a custom currency field type, decimal button 604 begins
creating a custom decimal field type, integer button 606 begins
creating a custom integer field type, list button 608 begins
creating a custom list field type, and text button 610 begins
creating a custom text field type. View existing custom field types
button 612 displays a list of existing custom field types.
[0031] FIG. 7 is a diagram illustrating an embodiment of a create
custom currency field type window. In some embodiments, create
custom currency field type window 700 comprises a create custom
currency field type window for a database system administrator
(e.g., database system administrator 102 of FIG. 1) to create a
custom currency field type. In the example shown, custom field type
name field 702 comprises a custom field type name field for
entering a custom field type name. Web service alias field 704
comprises a web service alias field for entering a web service
alias. In some embodiments, the web service alias must be an
alphanumeric text string with no spaces. Minimum currency value
field 706 comprises a minimum currency value field for entering a
minimum currency value. In some embodiments, the minimum currency
value must be in the range of -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807. Maximum currency value field 708
comprises a maximum currency value field for entering a maximum
currency value. In some embodiments, the maximum currency value
must be in the range of -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807, and must be larger than the minimum
currency value. Currency precision value field 710 comprises a
currency precision value field for entering a currency precision
value. In some embodiments, the currency precision value must be in
the range of 0 to 3. Inactive checkbox 712 comprises a checkbox for
indicating if the custom currency field type is inactive (e.g., it
cannot be used). Save button 714 comprises a save button for saving
the custom currency field type.
[0032] FIG. 8 is a diagram illustrating an embodiment of a create
custom decimal field type window. In some embodiments, create
custom decimal field type window 800 comprises a create custom
decimal field type window for a database system administrator
(e.g., database system administrator 102 of FIG. 1) to create a
custom decimal field type. In the example shown, custom field type
name field 802 comprises a custom field type name field for
entering a custom field type name. Web service alias field 804
comprises a web service alias field for entering a web service
alias. In some embodiments, the web service alias must be an
alphanumeric text string with no spaces. Minimum decimal value
field 806 comprises a minimum decimal value field for entering a
minimum decimal value. In some embodiments, the minimum decimal
value must be in the range of -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807. Maximum decimal value field 808
comprises a maximum decimal value field for entering a maximum
decimal value. In some embodiments, the maximum decimal value must
be in the range of -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807, and must be larger than the minimum
decimal value. Decimal precision value field 810 comprises a
decimal precision value field for entering a decimal precision
value. In some embodiments, the decimal precision value must be in
the range of 0 to 3. Inactive checkbox 812 comprises a checkbox for
indicating if the custom decimal field type is inactive (e.g., it
cannot be used). Save button 814 comprises a save button for saving
the custom decimal field type.
[0033] FIG. 9 is a diagram illustrating an embodiment of a create
custom integer field type window. In some embodiments, create
custom integer field type window 900 comprises a create custom
integer field type window for a database system administrator
(e.g., database system administrator 102 of FIG. 1) to create a
custom integer field type. In the example shown, custom field type
name field 902 comprises a custom field type name field for
entering a custom field type name. Web service alias field 904
comprises a web service alias field for entering a web service
alias. In some embodiments, the web service alias must be an
alphanumeric text string with no spaces. Minimum integer value
field 906 comprises a minimum integer value field for entering a
minimum integer value. In some embodiments, the minimum integer
value must be in the range of -2,147,483,648 to 2,124,483,647.
Maximum integer value field 908 comprises a maximum integer value
field for entering a maximum integer value. In some embodiments,
the maximum integer value must be in the range of -2,147,483,648 to
2,124,483,647, and must be larger than the minimum integer value.
Inactive checkbox 910 comprises a checkbox for indicating if the
custom integer field type is inactive (e.g., it cannot be used).
Save button 912 comprises a save button for saving the custom
integer field type.
[0034] FIG. 10 is a diagram illustrating an embodiment of a create
custom text field type window. In some embodiments, create custom
text field type window 1000 comprises a create custom text field
type window for a database system administrator (e.g., database
system administrator 102 of FIG. 1) to create a custom text field
type. In the example shown, custom field type name field 1002
comprises a custom field type name field for entering a custom
field type name. Web service alias field 1004 comprises a web
service alias field for entering a web service alias. In some
embodiments, the web service alias must be an alphanumeric text
string with no spaces. Maximum text length field 1006 comprises a
maximum text length field for entering a maximum text length. In
some embodiments, the maximum text length is 255 characters.
Inactive checkbox 1008 comprises a checkbox for indicating if the
custom text field type is inactive (e.g., it cannot be used). Save
button 1010 comprises a save button for saving the custom text
field type.
[0035] FIG. 11 is a diagram illustrating an embodiment of a create
custom list field type window. In some embodiments, create custom
list field type window 1100 comprises a create custom list field
type window for a database system administrator (e.g., database
system administrator 102 of FIG. 1) to create a custom list field
type. In the example shown, custom field type name field 1102
comprises a custom field type name field for entering a custom
field type name. Web service alias field 1104 comprises a web
service alias field for entering a web service alias. In some
embodiments, the web service alias must be an alphanumeric text
string with no spaces. Inactive checkbox 1106 comprises a checkbox
for indicating if the custom list field type is inactive (e.g., it
can not be used). List values box 1108 comprises a list values box
for entering a set of list values for the custom list field type.
Each list value for the custom list field type comprises a list
value name (e.g., list value name 1112), a web service alias (e.g.,
web service alias 1114), and a position in the ordering within the
set of list values. The ordering can be changed for a given list
value using its associated ordering buttons (e.g., ordering buttons
1110). In some embodiments, each list value name and web service
alias must be unique for a given custom list type. In some
embodiments, a custom list type has a maximum of 100 list values.
Save button 1116 comprises a save button for saving the custom list
field type.
[0036] FIG. 12 is a diagram illustrating an embodiment of a
validation error for a custom currency field type. In the example
shown, a value of 5 has been entered into the currency precision
value field in the create custom currency field type screen. The
maximum currency precision value is 3, so the custom currency field
type is not validated. Until the custom currency field type screen
is validated (e.g., all fields contain legal values), the custom
currency field type cannot be saved.
[0037] FIG. 13 is a flow diagram illustrating an embodiment of a
process for creating a custom field type. In some embodiments, the
process of FIG. 13 is executed by a database system (e.g., database
system 106 of FIG. 1) interacting with a database system
administrator (e.g., database system administrator 102 of FIG. 1).
In the example shown, in 1300, an indication to create a custom
field type is received. In 1302, one or more available kinds of the
custom field type are provided. In 1304, an indication is received
of a selected kind of the one or more available kinds of the custom
field type. In 1306, a form is provided based at least in part on
the selected kind, wherein the form prompts for parameters of the
custom field type. In 1308, the parameter of the custom field type
is received. In some embodiments, one or more parameters of a
custom field type are received. In 1310, the parameter of the
custom field type is validated. In some embodiments, one or more
parameters of the custom field type are validated. In 1312, the
custom field type is provided for creating a custom field of a
custom object.
[0038] FIG. 14 is a flow diagram illustrating an embodiment of a
process for validating one or more parameters of a custom field
type. In some embodiments, the process of FIG. 14 implements 1310
of FIG. 13. In the example shown, in 1400, the next parameter is
selected. In some embodiments, the next parameter comprises the
first parameter. In 1402, it is determined whether the parameter
comprises a numeric parameter or a text parameter. If it is
determined that the parameter comprises a numeric parameter,
control passes to 1404. In 1404, it is determined whether there are
bounds on the numeric parameter range. If it is determined that
there are not bounds on the numeric parameter range, control passes
to 1416. If it is determined that there are bounds on the numeric
parameter range, control passes to 1406. In 1406, it is determined
whether the parameter is within the bounds on the numeric parameter
range. If it is determined that the parameter is within the bounds
on the numeric parameter range, control passes to 1416. If it is
determined that the parameter is not within the bounds on the
numeric parameter range, control passes to 1408. In 1408, the
custom field type is rejected. The process then ends.
[0039] If it is determined in 1402 that the parameter comprises a
text parameter, control passes to 1410. In 1410 it is determined
whether there are restrictions on the text. In various embodiments,
restrictions on the text comprise restrictions on the text length,
restrictions on the text character set (e.g., only alphanumeric
characters, etc.), or any other appropriate restrictions on the
text. If it is determined that there are not restrictions on the
text, control passes to 1416. If it is determined that there are
restrictions on the text, control passes to 1412. In 1412, it is
determined whether the parameter meets the restrictions. If it is
determined in 1412 that the parameter meets the restrictions,
control passes to 1416. If it is determined in 1412 that the
parameter does not meet the restrictions, control passes to 1414.
In 1414, the custom field type is rejected. The process then
ends.
[0040] In 1416, it is determined whether there are more parameters.
If it is determined that there are more parameters, control passes
to 1400. If it is determined that there are not more parameters,
control passes to 1418. In 1418, the custom field type is
validated, and the process ends.
[0041] Although the foregoing embodiments have been described in
some detail for purposes of clarity of understanding, the invention
is not limited to the details provided. There are many alternative
ways of implementing the invention. The disclosed embodiments are
illustrative and not restrictive.
* * * * *