Human resources system development
AssigneeWorkday, Inc.
InventorRalf Schroeder
Life of this patent
Estimating the term…
Abstract
Defining a human resource system is disclosed. Metadata models are defined. Processes are defined. The human resources system is stored including metadata models and processes, wherein the stored metadata models and processes are interpreted using an interpretive engine, wherein the interpretive engine is configured to process the metadata model and process definitions without compilation of any code, and wherein defining metadata models and defining processes when interpreted by the interpretive engine is sufficient to define a fully functional human resource system.
Claims17
A method for defining a human resources system, comprising:
- receiving at least one new metadata model that defines at least one new object class in the human resource system, wherein the new metadata model includes one or more attributes, one or more relationships, and one or more methods associated with the new object class;
- receiving process definitions;
- storing, in a storage module, the new metadata model including data associated with the new metadata model, and the process definitions in a minimalistic metamodel for persistence, wherein the minimalistic metamodel for persistence comprises three tables comprising an instance table, an attribute table, and a reference table for all of the objects in the human resources system, wherein the new metadata model including data associated with the new metadata model is stored by storing one or more instances of the new object class in the instance table, the one or more attributes in the attribute table, and the one or more relationships in the reference table, wherein:
- the instance table stores all instances of object classes in the human resource system as defined by a plurality of metadata models;
- the attribute table stores attribute data associated with all the instances of the object classes as defined by the plurality of metadata models;
- the reference table stores relationship data associated with all the instances of the object classes as defined by the plurality of metadata models;
- the instance table, the attribute table, and the reference table store data that has been specified;
- metadata model definitions and the process definitions are able to be interpreted using an interpretive engine;
- and
- the interpretive engine is configured to process the metadata model definitions and process definitions without compilation of any code;
- and
- at a time of execution by the interpretive engine, all the objects specified in the instance table, the attribute table, and the reference table and processes are loaded into memory for easy modification of instances of objects defined by the plurality of metadata models and the new metadata model;
- for a process of one or more processes defined by the process definitions:
- defining an element to which the process responds;
- defining one or more process steps in response to the element;
- and
- defining an output response, wherein the process when interpreted by the interpretive engine are sufficient to define a fully functional human resource system;
- receiving an update, wherein the update includes a change to an existing instance of an object class in the human resource system;
- updating the human resource system by adding, removing, or changing a plurality of entries associated with the existing instance of the object class in at least one of the instance table, the attribute table, and the reference table, comprising:
- validating a transaction request relating to the existing instance of the object class, comprising:
- ensuring a requestor has privileges to perform a requested transaction;
- checking whether the transaction request corresponds to a metadata definition of an element of the transaction request;
- and
- ensuring that data in the requested transaction is of a correct type and in a correct range of values;
- determining whether a controlling object to be updated exists, wherein the instances of the object class are organized in a tree structure the controlling object relating to a trunk of the tree structure;
- in the event that the controlling object to be updated does not exist creating the controlling object;
- and
- in the event that the controlling object to be updated exists, locating the controlling object associated with an instance of the object class;
- transferring the plurality of entries associated with the existing instance of the object class in the at least one of the instance table, the attribute table, and the reference table to the storage module after the updating of the human resource system is performed, wherein the transferring of the plurality of entries to the storage module is performed after each of the adding, removing, or changing to the plurality of entries have been completed to avoid inconsistencies in the human resource system, the storage module including permanent storage;
- and
- executing the updated human resources system by interpreting the stored metadata model definitions and process definitions using the interpretive engine.
A computer program product for defining a human resources system, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for:
- receiving at least one new metadata model that defines at least one new object class in the human resource system, wherein the new metadata model includes one or more attributes, one or more relationships, and one or more methods associated with the new object class;
- receiving process definitions;
- storing, in a storage module, the new metadata model including data associated with the new metadata model, and the process definitions in a minimalistic metamodel for persistence, wherein the minimalistic metamodel for persistence comprises three tables comprising an instance table, an attribute table, and a reference table for all of the objects in the human resources system, wherein the new metadata model including data associated with the new metadata model is stored by storing one or more instances of the new object class in the instance table, the one or more attributes in the attribute table, and the one or more relationships in the reference table, wherein:
- the instance table stores all instances of object classes in the human resource system as defined by a plurality of metadata models;
- the attribute table stores attribute data associated with all the instances of the object classes as defined by the plurality of metadata models;
- the reference table stores relationship data associated with all the instances of the object classes as defined by the plurality of metadata models;
- the instance table, the attribute table, and the reference table store data that has been specified;
- metadata model definitions and the process definitions are able to be interpreted using an interpretive engine;
- and
- the interpretive engine is configured to process the metadata model definitions and process definitions without compilation of any code;
- at a time of execution by the interpretive engine, all the objects specified in the instance table, the attribute table, and the reference table and processes are loaded into memory for easy modification of instances of objects defined by the plurality of metadata models and the new metadata model;
- and
- for a process of one or more processes defined by the process definitions:
- defining an element to which the process responds;
- defining one or more process steps in response to the element;
- and
- defining an output response, wherein the process when interpreted by the interpretive engine are sufficient to define a fully functional human resource system;
- receiving an update, wherein the update includes a change to an existing instance of an object class in the human resource system;
- updating the human resource system by adding, removing, or changing a plurality of entries associated with the existing instance of the object class in at least one of the instance table, the attribute table, and the reference table, comprising:
- validating a transaction request relating to the existing instance of the object class, comprising:
- ensuring a requestor has privileges to perform a requested transaction;
- checking whether the transaction request corresponds to a metadata definition of an element of the transaction request;
- and
- ensuring that data in the requested transaction is of a correct type and in a correct range of values;
- determining whether a controlling object to be updated exists, wherein the instances of the object class are organized in a tree structure, the controlling object relating to a trunk of the tree structure;
- in the event that the controlling object to be updated does not exist creating the controlling object;
- and
- in the event that the controlling object to be updated exists, locating the controlling object associated with an instance of the object class;
- transferring the plurality of entries associated with the existing instance of the object class in the at least one of the instance table, the attribute table, and the reference table to the storage module after the updating of the human resource system is performed, wherein the transferring of the plurality of entries to the storage module is performed after each of the adding, removing, or changing to the plurality of entries have been completed to avoid inconsistencies in the human resource system, the storage module including permanent storage;
- and
- executing the updated human resources system by interpreting the stored metadata model definitions and process definitions using the interpretive engine.
A system for defining a human resources system, comprising:
- a processor;
- a storage module for storing data associated with the human resources system;
- and
- a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:
- receive at least one new metadata model that defines at least one new object class in the human resource system, wherein the new metadata model includes one or more attributes, one or more relationships, and one or more methods associated with the new object class;
- receive process definitions;
- store the new metadata model including data associated with the new metadata model, and the process definitions in a minimalistic metamodel for persistence, wherein the minimalistic metamodel for persistence comprises three tables comprising an instance table, an attribute table, and a reference table for all of the objects in the human resources system, wherein the new metadata model including data associated with the new metadata model is stored by storing one or more instances of the new object class in the instance table, the one or more attributes in the attribute table, and the one or more relationships in the reference table, wherein:
- the instance table stores all instances of object classes in the human resource system as defined by a plurality of metadata models;
- the attribute table stores attribute data associated with all the instances of the object classes as defined by the plurality of metadata models;
- the reference table stores relationship data associated with all the instances of the object classes as defined by the plurality of metadata models;
- the instance table, the attribute table, and the reference table store data that has been specified;
- metadata model definitions and the process definitions are able to be interpreted using an interpretive engine;
- and
- the interpretive engine is configured to process the metadata model definitions and process definitions without compilation of any code;
- at a time of execution by the interpretive engine, all the objects specified in the instance table, the attribute table, and the reference table and processes are loaded into the memory for easy modification of instances of objects defined by the plurality of metadata models and the new metadata model;
- and
- for a process of one or more processes defined by the process definitions:
- defining an element to which the process responds;
- defining one or more process steps in response to the element;
- and
- defining an output response, wherein the process when interpreted by the interpretive engine are sufficient to define a fully functional human resource system;
- receive an update, wherein the update includes a change to an existing instance of an object class in the human resource system;
- update the human resource system by adding, removing, or changing a plurality of entries associated with the existing instance of the object class in at least one of the instance table, the attribute table, and the reference table, comprising:
- validate a transaction request relating to the existing instance of the object class, comprising:
- ensure a requestor has privileges to perform a requested transaction;
- check whether the transaction request corresponds to a metadata definition of an element of the transaction request;
- and
- ensure that data in the requested transaction is of a correct type and in a correct range of values;
- determine whether a controlling object to be updated exists, wherein the instances of the object class are organized in a tree structure, the controlling object relating to a trunk of the tree structure;
- in the event that the controlling object to be updated does not exist create the controlling object;
- and
- in the event that the controlling object to be updated exists, locate the controlling object associated with an instance of the object class;
- transfer the plurality of entries associated with the existing instance of the object class in the at least one of the instance table, the attribute table, and the reference table to the storage module after the updating of the human resource system is performed, wherein the transferring of the plurality of entries to the storage module is performed after each of the adding, removing, or changing to the plurality of entries have been completed to avoid inconsistencies in the human resource system the storage module including permanent storage;
- and
- execute the updated human resources system by interpreting the stored metadata model definitions and process definitions using the interpretive engine.
Dependencies are inferred from the claim text.