Some business computing systems, applications, and services allow users to selectively specify and otherwise supply information to describe or complete forms, documents, and reports. In some instances, a user may be asked or required to submit a series of data entries where a portion of the data is repeated. In such instances, a user may be faced with the task of repeatedly entering the same or nearly the same data into a device, system, or user interface repeatedly.
Some embodiments herein are associated with systems and methods for itemizing attributes associated with an object at a user's request.
The trip of the example of
In some aspects, section 205 includes a total, summary, or overview representation of the expenses related to the trip associated therewith. However, a business organization or other entity may require a business traveler to substantiate the total expenses by providing a detailed itemization of the total expenses. In some embodiments, a user may signal a request to itemize the hotel expenses shown in section 205. User interface element “Itemize Expense” 265 may be used to initiate a request to itemize an expense report, in some embodiments.
Floorplan 300 includes a number of first user interface input fields for specifying values for the attributes associated with the expense report. For example, a room charge 305 may be a type of item associated with the expense report and the amount (attribute) shown at 325 may have a value of $169.00 USD. Likewise, a room tax 310 and a room tax 315 may also be specified with the corresponding expense amounts shown at in column 325. The amounts entered at 325 of section 302 may be substantiated by the attached receipt shown at 304.
Floorplan 300 includes a number of second user interface input fields 330 and 335. These second user interface input fields provide a mechanism for selecting which specific days of the business trip the expenses associated with itemized line items 305-320 are to be applied in the expense report. As an example, the room charge of $169 may be applied to every day of the trip by selecting the user interface input field at 335, the room charge may be accounted for as an expense for a sub-set (e.g., Tue, 02/13 and Wed, 02/14) of the set of days presented at 330. The example of floorplan 300 also includes a user interface element 340 for indication whether an expense is a “personal expense”.
Floorplan 300 also includes a presentation of a receipt amount 355, indicative of the total amount stated on the attached receipt and being itemized. In some embodiments, floorplan 300 includes a presentation of an updated, current calculation of the amount of expenses still to be itemized 360 and an updated, current calculation of the total amount of itemized expenses at 365. In some embodiments, the calculations for 360 and 365 are performed automatically in response to the selection and specification of the type and amount of the incurred expense(s). In this manner, a user may be informed of the amount left to be itemized and the itemized amount within the context of floorplan 300.
In some aspects, an expense report (i.e., a particular instance of a data element) such as the expense report illustrated in
In some embodiments, documents such as a receipt may be processed by optical character recognition (OCR) or other processes to render the document into a machine-readable data format. The OCR derived data may be used to automatically generate, suggest, or propose itemization entries for a data element. In some aspects, the generated, suggested, or proposed entries may be accepted, revised, or rejected by a user or other entity, in part or in full.
In some aspects, a method and system herein may provide a notification to a user or a machine in the event that an itemization or other data element attribute specification process violates a rule, limit, or constraint. In some embodiments for example, a notification may be generated when a specific value for a particular line itemization exceeds or violates a related rule. Such notifications may be generated and transmitted to a local or remote device or system.
All systems and processes discussed herein may be embodied in program code stored on one or more computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
System 400 includes business service provider backend 415 for providing business services to users or consumers (not shown) of system 400. The users may interact with system 400 through client device 405 over a network 410. In some aspects, business service provider backend 415 may store user information into and retrieve customer information from physical tables of data store 430. Business service provider backend 415 may provide one or more services and solutions to users thereof. In some aspects, a number of services may be integrated by business service provider backend 415 to provide a comprehensive business solution to users.
Data stored in data store 430 may be received from disparate hardware and software systems, including some that may not be interoperational with one another. The systems herein may include a back-end data environment employed in a business or industrial context. The data may be pushed to data store 430 and/or provided in response to queries received therefrom.
The data of data store 430 may reside in a physical database or stored in-memory (e.g., in Random Access Memory). The data may comprise a relational database, an in-memory database, a multi-dimensional database, an eXtendable Markup Language (XML) document, and/or any other structured data storage system. The physical tables of data store 430 may be distributed among several relational databases, dimensional databases, and/or other data sources. To provide economies of scale, data store 430 may include data of more than one user. Business service provider backend 415 may include mechanisms to ensure that a client accesses only the data that the client is authorized to access. Moreover, the data of data store 430 may be indexed and/or selectively replicated in an index to allow fast retrieval thereof.
The structures of and relationships between the physical database tables may be complex, and business object models (referred to henceforth as “business objects”) may be used to shield developers and end-users from these complexities. System 400 implements metadata models to support different business solutions. Metadata models may include generic models of a business object, a floorplan (i.e., a user interface layout), user interface text, a process component, and a message type, among others. A business object, for example, is a software model data structure representing real-world items used during the transaction of business and having associated attributes. An instance of a business object metadata model (i.e., a particular data set according to the business object metadata model) may comprise, for example, an Expense Report object model. Instances of this object model, in turn, represents specific data (e.g., ExpenseReport 5985) and provide a mapping to the underlying tables storing the specific data associated with a particular travel request and expense report.
Repository 420 includes metadata of various metadata models (e.g., business objects). These metadata models include metaobjects and instances of the metaobjects, referred to herein as object models or objects. The metaobjects and object models are defined by metadata of repository 420.
As mentioned above, the metaobjects may include generic models of a floorplan (also referred to herein as a graphical user interface layout), a business object, a user interface text, a process component, and a message type, but embodiments are not limited thereto. The metaobjects and object models may be embodied in any type of data structure, including but not limited to eXtensible Markup Language files. As in the conventional storage of object instance data, the metadata defining the specific metaobjects and object models may be stored in database tables and/or any other suitable format.
Business object 425 is an object model, or class. The metadata of business object 425 may therefore provide information regarding the structure and attributes of the data of instances of business object 425. Accordingly, backend 410 uses the metadata to access corresponding data of data store 430.
At operation 510, in response to receiving the request from operation 505, a graphical user interface layout including at least one first user interface input field for specifying a value for the attributes associated with the data element and a second user interface input field for specifying a time period to associate with the at least one first user input field may be presented. In some aspects, the first user interface input fields may facilitate the entry and specification of a value(s) for at least one attribute of the data element being further defined by process 500. As an example, the first user interface input fields may refer to a type of line item (e.g., hotel room charge, hotel room tax, airline ticket, etc.) and a value for the line item. In some aspects, the second user interface input fields for specifying a time period to associate with the at least one first user input field may include a user interface element for selecting one or more days, months, years, or other periods of time.
Apparatus 600 includes processor 605 operatively coupled to communication device 615, data storage device 630, one or more input devices 620, one or more output devices 625 and memory 610. Communication device 615 may facilitate communication with external devices. Input device(s) 620 may comprise, for example, a keyboard, a keypad, a mouse or other pointing device, a microphone, knob or a switch, an infra-red (IR) port, a docking station, and/or a touch screen. Input device(s) 620 may be used, for example, to enter information into apparatus 600. Output device(s) 625 may comprise, for example, a display (e.g., a display screen) a speaker, and/or a printer.
Data storage device 630 may comprise any appropriate persistent storage device, including combinations of magnetic storage devices (e.g., magnetic tape, hard disk drives and flash memory), optical storage devices, Read Only Memory (ROM) devices, etc., while memory 660 may comprise Random Access Memory (RAM).
Program code 635 of data storage device 630 may be executable by processor 605 to provide any of the functions and processes described herein. Embodiments are not limited to execution of these functions by a single apparatus. Metadata 640 may include metadata of reports (e.g., expense reports) and data sources as described herein. Data storage device 630 may also store data and other program code for providing additional functionality and/or which are necessary for operation thereof, such as device drivers, operating system files, etc.
Embodiments have been described herein solely for the purpose of illustration. Persons skilled in the art will recognize from this description that embodiments are not limited to those described, but may be practiced with modifications and alterations limited only by the spirit and scope of the appended claims.