The present invention relates to data processing by digital computer, and more particularly to extracting record content.
To hire and retain employees, a company, organization or enterprise issues stock options that can be exercised by its employees after a vesting period. Once the vesting period is reached or an exercising window is opened, employees may contact a financial institution to exercise the options. Upon being contacted by one of the employees, the financial institution checks, for example, personal, employment, and other information associated with the employee, along with the number of options granted to the employee prior to exercising the options. Once the employee has exercised some or all of the options granted, the financial institution notifies the company that the employee has exercised the options.
In general, in one aspect, the invention features a method that includes (a) updating record content included in a database, (b) extracting updated record content during a periodic time interval, (c) producing an internal document that includes data representing the updated record content, (d) producing a file that includes data corresponding to content of the internal document, and (e) sending the file at the periodic time interval.
Implementations of the invention may include one or more of the following features. The file may include Extensible Markup Language. Updating record content may include adding content. Updating record content may include extending a time period in which the record content is valid. Updating record content may include shortening a time period in which the record content is valid. The periodic time interval may include a day. The periodic time interval may include a week. The record content may include information associated with a participant of a stock option program. The record content may include information associated with stock options granted in a stock option program. The updating, extracting, producing the internal document, producing the file, and sending may be repeated at a second periodic time interval.
In general, in another aspect, the invention features a computer program product, tangibly embodied in an information carrier, the computer program product being operable to cause a machine to update record content included in a database, extract updated record content during a periodic time interval, produce an internal document that includes data representing the updated record content, produce a file that includes data corresponding to content of the internal document, and send the file at the periodic time interval.
Implementations of the invention may include one or more of the following features. The file may include Extensible Markup Language. Updating record content may include adding content. Updating record content may include extending a time period in which the record content is valid. Updating record content may include shortening a time period in which the record content is valid. The periodic time interval may include a day. The periodic time interval may include a week. The record content may include information associated with a participant of a stock option program. The record content may include information associated with stock options granted in a stock option program. The updating, extracting, producing the internal document, producing the file, and sending may be repeated at a second periodic time interval.
In general, in another aspect, the invention features a system that includes a company including a computer system that updates record content included in a database, updated record content is extracted from the database during a period time interval, the computer system produces an internal document that includes data representing the updated record content, the computer system produces a file that includes data corresponding to the content of the internal document, and the file is sent at the periodic time interval.
Implementations of the invention may include one or more of the following features. The file may include Extensible Markup Language. Updating record content may include adding content. Updating record content may include extending a time period in which the record content is valid. Updating record content may include shortening a time period in which the record content is valid. The periodic time interval may include a day. The periodic time interval may include a week. The record content may include information associated with a participant of a stock option program. The record content may include information associated with stock options granted in a stock option program. The updating, extracting, producing the internal document, producing the file, and sending may be repeated at a second periodic time interval.
Other features and advantages of the invention will be apparent from the description and from the claims.
FIGS. 4A-H are timing diagrams depicting updating intervals.
Referring to
To provide the bank 18 with employee information for validity checking, each company 12, 14, 16 includes a computer system that communicates with the bank through a network 20 (e.g., the Internet, an intranet, etc.). Focusing on company 12, a computer system 22 (e.g., personal computer, server, mainframe, etc.) associated with the company is in communication with the network 20 so that data can be sent to, and received from, the bank 18. Typically, the data comprises files that include information associated with each participant (e.g., participant name, address, etc.) in the stock option plan provided by the company 12. Some files sent to the bank may include information associated with the options granted to each participant (e.g., shares granted, vesting date, etc.). In this embodiment, the information sent to the bank 18 resides in a participant database 24 that is stored on a storage device 26 (e.g., a hard drive, CR-ROM, etc.) that is in communication with the computer system 22. In some embodiments the database may be produced by a software package such as SAP R/3™, SAP MySAPBusinessSuite™, Microsoft Access™, or other similar package that can be used to categorize and store data.
Typically, the participant database 24 includes multiple records for grouping information associated with each of the participants of the stock option plan. For example, each record may include the full name of one of the participants, the participant's home address, and other information such as the participant's position (e.g., officer, shareholder, etc.) in the company 12, the number of stock options granted to the participant, and the vesting period that restricts exercising of the granted options. The information in the participant database 24 can be relatively quickly updated or modified so that when one participant informs the company 12 that information associated with him or her (e.g., new home address) is no longer accurate, the participant database 24 is updated to store the most current participant information. The company 12 may initiate updating of the participant database 24 to reflect a change in the stored information (e.g., employee promotion, granting additional stock options, etc.).
In order to provide the bank 18 with current information associated stock option participants, one or more files containing the current information may be sent at regular intervals from the company 12, through the network 20, to the bank 18. In some embodiments the regular intervals for sending the one or more files is daily, however, in other embodiments the files may be sent weekly, monthly, or based on other similar time interval. Also, different time intervals may be used in combination. For example, the one or more files may be sent monthly during the summer and holiday months (e.g., August, December, etc.), and on a weekly interval during the rest of the calendar year. By providing the bank 18 with the current information associated with the stock option participants, when a particular participant contacts the bank 18 to exercise stock options granted to him or her, the bank can relatively quickly determine if the participant is a valid participant and if any options granted to the participant may be exercised at the current time.
To initiate sending of the information to the bank 18 at regular intervals, the computer system 22 executes a record extractor 28 that accesses the participant database 24 and retrieves the appropriate record content from the database associated with the participants. In some embodiments, the record extractor 28 retrieves record content from the participant database 24 that is associated with each of the stock option program participants. However, in other embodiments, the record extractor 28 retrieves record content associated with a pre-selected set of participants (e.g., all employees with vested options). In still other embodiments, the record extractor 28 only retrieves record content that has recently been updated, added, or modified so that the bank 18 is provided the current information associated with the altered records. For example, if a participant has updated his or her current home address, the record extractor 28 retrieves the record content associated with this participant for transmitting to the bank 18.
In this particular embodiment, after retrieving the appropriate records, the record extractor 28 produces two files, namely internal documents 30, 32. Internal documents 30, 32, such as SAP intermediate documents (IDoc) that incorporate a standard data structure, are used to provide structured exchanging of business documents. In this particular example, each of the internal documents 30, 32 is stored on the storage device 26, however, in other embodiments the documents are stored in another storage device or in memory included in the computer system 22. The two internal documents 30, 32 produced by the record extractor 28 comply with a human resources (HR) related electronic business standard for inter-company exchange of HR data files that use Extensible Markup Language (XML). This standard is the Employee Stock Plans Interface 1.1 that is promoted by the HR-XML Consortium of Raleigh, N.C., and is incorporated by reference herein. To comply with the standard, the companies 12, 14, 16 transmit two HR-XML files to the bank 18 to provide current information associated with the stock option participants. In this particular example, to comply with the standard, the internal document 30 includes participant information such as contact information (e.g., name, home address, phone number, etc.), associated business information (e.g., office location, employment position, etc.), and other similar information related to the participants. The second internal document 32 typically includes information relating to the participant stock options (e.g., number of options granted, granting option price, etc.) and information relating to vesting of the options (e.g., vesting date, vesting restrictions, etc.), along with other similar information.
After the record extractor 28 retrieves the pertinent records from the participant database 24 and produces the two internal documents 30, 32, an HR-XML file production process 42, which is executed on the computer system 22, accesses the internal documents to produce two corresponding HR-XML files 38, 40 that comply with the HR-XML standard for transmitting the retrieved information to the bank 18. By using the HR-XML standard, the information included in the HR-XML files 38, 40 is formatted such that the bank, or other financial institutions that subscribe to the HR-XML standard, can readily recognize and extract the information from the files. In this embodiment, to produce the HR-XML files 38, 40, the HR-XML file production process 42 accesses data included in the internal documents 30, 32 and enters the data in two XML files 34, 36. Typically, the HR-XML file production process 42 converts each of the internal documents 30, 32 into respective XML files 34, 36 relatively quickly using conversion rules and then maps the data in the XML files into the respective HR-XML files 38, 40. By producing the XML files 34, 36 prior to producing the HR-XML files 38, 40, the HR-XML file production process 42 can map the data included in the XML files into additional files the use formats other than the HR-XML format.
Referring to
Referring to
Returning to
Upon receiving the HR-XML files 38, 40, an option manager 44 that executes on a server 46 located at, or in communication with the bank 18, uses the files to update one of the option databases 48, 50, 52 that is associated with the company that sent the files. In this particular example, since company 12 sent the HR-XML files 38, 40, the option database 48 associated with company 12 is updated by the option manager 44. In this example, the HR-XML files 38, 40 are stored on a storage device 54 (e.g., a hard drive, CD-ROM, etc.) that is in communication with the server 46, along with the option databases 48, 50, 52. By storing the HR-XML files 38, 40, on the storage device 54, those files can be retrieved at a later time for additional data processing. For example, a computer system 56 located at the bank 18 and in communication with the server 46 may access the HR-XML files 38, 40 to display particular data included in those files.
In this embodiment, due to the HR-XML standard, the HR-XML files 38, 40 provide the option manager 44 with currently valid participant information as of the time of the file transmission, but the HR-XML files 38, 40 do not include data that reflect future changes in participant information. For example, a participant may inform the company 12 that his or her home address will change, for example, in two months. While the participant database 24 can be modified to reflect the upcoming change, the HR-XML file 38 that includes the participant address that is sent to the bank 18 only provides the current participant address as of the time when the file was transmitted. So, the bank 18 recognizes the address change on the particular date the address change becomes effective (e.g., in two months). Thus, to provide the bank 18 with up-to-date participant information, the record extractor 28 determines if record content in the participant database 24 needs to be modified, modifies the appropriate record content, and stores the modified record content in the participant database so that the HR-XML files produced by the HR-XML file production process 42 include the updated information in this case, the future address change.
Along with receiving HR-XML files 38, 40 from company 12, and HR-XML files from the other companies 14, 16, the bank 18 also receives communications (e.g., telephone calls, facsimile transmissions, etc.) from participants in stock option plans to exercise their granted stock options. Upon receiving an option-exercising request, the bank 18 validates the request with the information stored in the appropriate option database (e.g., option database 48 for requests associated with the company 12). Typically, once the request has been validated, the bank 18 exercises the stock options as requested by the participant. Additionally, to report the option exercising to the respective company, the option manager 44, or another process executing on the server 46, produces an HR-XML file that includes information reflecting the exercising and initiates transmission of the file to the company so that the appropriate participant database is updated.
Referring to
Referring to
In this example, the participant informs the company 12 during week 5 (i.e., W5) that he or she will be residing at a new address, address 3, starting in week 8 (i.e., W8). Upon being informed on this notice date 80, the record extractor 28 shortens the time period that address 2 is valid and modifies the record content to reflect that address 3 is valid as of an effective day 82 during week 8. By modifying the record content to reflect the future address change, the respective HR-XML files transmitted from company 12 during week 8 and forward provide address 3 as the residence of the participant.
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
In each of the
Referring to
After updating the appropriate record content, or if it is determined that no notice for updating has been received, the record extractor 130 determines (138) if the appropriate time has arrived to provide the bank, or one or more other financial institutions, with the currently valid record content included in the participant database. However, in some arrangements the record extractor 130 provides the bank with only the currently valid record content that has been updated since the last HR-XML file transmission to the bank. Typically, the time interval for HR-XML file transmissions is weekly, however in other arrangements the interval may be longer (e.g., monthly, bi-yearly, etc.) or may be shorter (e.g., daily, hourly, etc.). If it is determined that the time has not arrived to provide the bank with the currently valid record content in the database, the record extractor 130 returns to determine (134) if a notice has been received. If determined that the appropriate time has arrived, the record extractor 130 retrieves (140) the appropriate record content from the participant database and inserts (142) the retrieved record content into an internal document associated with participant information and an internal document associated with the granted stock options.
Referring to
After producing the XML files, the HR-XML file production process 150 respectively produces (156) HR-XML files for each produced XML file. For example, the HR-XML file production process 150 produces an HR-XML file that includes data representing the content of the XML file that includes participant information and also produces a second HR-XML file that includes data representing content of another XML file that includes stock option information. After producing the HR-XML files, the HR-XML file production process 150 typically stores the files on a storage device such as the storage device 24 and initiates (158) the transmission of the HR-XML files to the bank 18 or to one or more other financial institutions that manage the stock option program for the company sending the files.
The record extractor 130 along with other processes such as the HR-XML file production process 150 can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The processes can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps of the processes can be performed by one or more programmable processors executing a computer program to perform functions of the record extractor by operating on input data and generating output. Method steps can also be performed by, and apparatus of the record extractor can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer include a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
The processes can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the record extractor, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Other implementations are also within the scope of the following claims.