Aspects of the disclosure relate to computer hardware and software. In particular, one or more aspects of the disclosure generally relate to computer hardware and software for determining a retention period of a record and, in at least some examples, automatically deleting the record upon expiration of the retention period.
Organizations, such as corporate entities and other large enterprise organizations, may often manage storage (e.g., archiving) of various documents, databases, or other records. In large entities, the number of documents being stored may be tremendous. Further, entities often have predetermined retention periods for which they will maintain one or more documents or types of documents. These retention periods may be defined by the entity or, in some industries by an overseeing body, such as a government entity. Ensuring that large quantities of documents are stored and retained for the appropriate time period can be time consuming, inefficient and prone to errors (e.g., retention of documents well beyond the designated retention period).
The following presents a simplified summary in order to provide a basic understanding of some aspects of the disclosure. The summary is not an extensive overview of the disclosure. It is neither intended to identify key or critical elements of the disclosure nor to delineate the scope of the disclosure. The following summary merely presents some concepts of the disclosure in a simplified form as a prelude to the description below.
Aspects of the disclosure relate to computer systems that provide effective, efficient, and convenient ways of managing archived documents and ensuring deletion upon expiration of a retention period. For example, one or more aspects of the disclosure relates to generating a plurality of record codes. Each record code may be associated with a retention period. A record code may be assigned to each record being stored to designate the appropriate retention period for that record.
In some examples, the system (e.g., a record retention engine computing platform) may determine whether the retention period for a particular record has expired (e.g., based on the record code assigned to that record). If so, the record may be identified as having an expired retention period. The record (or an identification of the record) may be transmitted to a second computing platform, such as a record and information management computing platform, for a determination of whether the record should be deleted or whether a flag or other hold has been assigned to the record. In some examples, determining whether the record should be deleted may include determining whether the record is eligible for automatic deletion.
If the record is eligible for deletion, the record and information management computing platform may transmit an instruction to the record retention engine computing platform to delete the identified record. Accordingly, the record may be deleted (e.g., automatically). In some examples, deletion of the record may include holding the record for a predefined time period and, upon expiration of the time period, automatically deleting the record.
If the record is not eligible for deletion, the record and information management computing platform may transmit an instruction to the record retention engine computing platform to perform further processing on the record. Further processing may include forwarding the record for a manual review prior to deletion, placing a temporary hold on deletion of the record, or the like.
In some examples, a date from which the expiration of the retention period may be determined may be automatically provided by the system (e.g., a record may be assigned a date on which it was archived or uploaded to the system). In other examples, the date may be manually adjusted (e.g., by a system administrator). In still other examples, the record retention engine computing platform may query a record to determine whether date content exists within the record. If so, the system may determine whether the date content in the record pre-dates the date assigned by the system. If so, the date maybe modified to the earlier date.
These features, along with many others, are discussed in greater detail below.
The present disclosure is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
In the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown, by way of illustration, various embodiments in which aspects of the disclosure may be practiced. It is to be understood that other embodiments may be utilized, and structural and functional modifications may be made, without departing from the scope of the present disclosure.
It is noted that various connections between elements are discussed in the following description. It is noted that these connections are general and, unless specified otherwise, may be direct or indirect, wired or wireless, and that the specification is not intended to be limiting in this respect.
As discussed herein, entities, such as corporations, government entities, universities, and the like, often implement record retention policies. In some industries, one or more retention policy may be required by a governing body or government agency. However, many business entities employ some type of retention policy which identifies when a particular record, or type of record, should or may be deleted. A record may include documents, databases, and various other types of data. In large entities, managing the records, identifying records with an expired retention period, and the like, can be time-consuming, costly, and inefficient, and may also lead to mistakes or other inaccuracies. Accordingly, the arrangements described herein relate to systems and methods of managing records, identifying retention periods, identifying records with an expired retention period and deleting documents that have been held beyond the prescribed retention period. Some or all of the aspects of the systems and arrangements described herein may be performed automatically, as will be discussed below. These and other aspects will be discussed more fully herein.
Computing system environment 100 may include computing device 101 having processor 103 for controlling overall operation of computing device 101 and its associated components, including random-access memory (RAM) 105, read-only memory (ROM) 107, communications module 109, and memory 115. Computing device 101 may include a variety of computer readable media. Computer readable media may be any available media that may be accessed by computing device 101, may be non-transitory, and may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, object code, data structures, program modules, or other data. Examples of computer readable media may include random access memory (RAM), read only memory (ROM), electronically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by computing device 101.
Although not required, various aspects described herein may be embodied as a method, a data processing system, or as a computer-readable medium storing computer-executable instructions. For example, a computer-readable medium storing instructions to cause a processor to perform steps of a method in accordance with aspects of the disclosed embodiments is contemplated. For example, aspects of method steps disclosed herein may be executed on a processor on computing device 101. Such a processor may execute computer-executable instructions stored on a computer-readable medium.
Software may be stored within memory 115 and/or storage to provide instructions to processor 103 for enabling computing device 101 to perform various functions. For example, memory 115 may store software used by computing device 101, such as operating system 117, application programs 119, and associated database 121. Also, some or all of the computer executable instructions for computing device 101 may be embodied in hardware or firmware. Although not shown, RAM 105 may include one or more applications representing the application data stored in RAM 105 while computing device 101 is on and corresponding software applications (e.g., software tasks) are running on computing device 101.
Communications module 109 may include a microphone, keypad, touch screen, and/or stylus through which a user of computing device 101 may provide input, and may also include one or more of a speaker for providing audio output and a video display device for providing textual, audiovisual and/or graphical output. Computing system environment 100 may also include optical scanners (not shown). Exemplary usages include scanning and converting paper documents, e.g., correspondence, receipts, and the like, to digital files.
Computing device 101 may operate in a networked environment supporting connections to one or more remote computing devices, such as computing devices 141, 151, and 161. Computing devices 141, 151, and 161 may be personal computing devices or servers that include any or all of the elements described above relative to computing device 101. Computing device 161 may be a mobile device (e.g., smart phone) communicating over wireless carrier channel 171.
The network connections depicted in
The disclosure is operational with numerous other computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the disclosed embodiments include, but are not limited to, personal computers (PCs), server computers, hand-held or laptop devices, smart phones, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Computer network 203 may be any suitable computer network including the Internet, an intranet, a wide-area network (WAN), a local-area network (LAN), a wireless network, a digital subscriber line (DSL) network, a frame relay network, an asynchronous transfer mode (ATM) network, a virtual private network (VPN), or any combination of any of the same. Communications links 202 and 205 may be any communications links suitable for communicating between workstations 201 and server 204, such as network links, dial-up links, wireless links, hard-wired links, as well as network types developed in the future, and the like.
For example, memory 312 may include a record code generating module 313. The record code generating module 313 may include hardware and/or software configured to perform various functions within the record code retention engine computing platform. For instance, the record code generating module 313 may generate and/or store (e.g., in a database within the module) one or more record codes identifying a retention period for a record. For instance, record codes such as one year, five years, seven years, or ten years may be generated and may be used to indicate that a record associated with a particular record code will (or should) be retained for the retention period associated with the record code.
In some examples, a user, such as an administrator of the system, may request a new record code (e.g., a record code indicating a retention period not previously associated with a record code). In such arrangements, the user may access the record code generating module 313 (e.g., via user computing device 302 and entity network 330) to request and/or create the desired record code. The newly created record code may then be stored (e.g., in a database associated with the record code generating module 313) for additional or later use.
The record retention engine computing platform 310 may further include a record code assignment module 314. The record code assignment module 314 may include hardware and/or software configured to perform various functions within the record retention engine computing platform 310. For instance, the record code assignment module 314 may determine a retention period for a particular record (e.g., based on a type of record, content of the record, and the like) and may assign a record code associated with that retention period to the record. The record and assigned retention code may then be stored (e.g., together) for use and/or to await deletion upon expiration of the retention period.
The record retention engine computing platform 310 may further include record evaluation module 315. The record evaluation module 315 may include hardware and/or software configured to perform various functions within the record retention engine computing platform 310. For instance, the record evaluation module 315 may evaluate one or more records and assigned record codes within the record retention engine computing platform 310 to determine whether the retention period has expired. For instance, when a record is archived (e.g., provided to the record retention engine computing platform 310) a date on which the record is archived may be stored with the record. Accordingly, the record evaluation module 315 may retrieve the date on which the record was archived and determine a difference between the archive date and a current date. If this difference is greater than the retention period associated with the record code assigned to the record, then the retention period has expired and the record should be removed or deleted.
In some arrangements, the date on which the record was archived might not be the most accurate date from which to calculate the retention period. For instance, if the record was created and stored in another medium and then uploaded to the record retention engine computing platform 310, the archive date provided by the platform 310 may be the date the record was uploaded. However, a more accurate date from which to calculate the retention period may be earlier than that (e.g., a date on which the record was created, a date on which the record was archived to the other medium, or the like). Accordingly, the record retention engine computing platform 310 may include an exception module 316.
The exception module 316 may include hardware and/or software configured to perform various functions within the record retention engine computing platform 310. For instance, in some examples, a user, such as a system administrator, may be aware of the earlier date from which the retention date should be calculated. Accordingly, the user may override the date associated with the record in the platform 310 to instead assign the earlier date to the record.
In another example, the exception module 316 may query the data within a record to determine whether date information is provided within the record (e.g., within content of the record). If so, the exception module 316 may determine whether the date information within the record matches (or is within a predefined threshold of) or pre-dates the archive date provided by the platform 310. If the record matches the date provided by the platform, no changes may be made to the date of the record. If not (e.g., if the date within content of the record pre-dates the date provided or identified by the platform 310, the exception module may automatically modify the date associated with the record to the earlier or alternate date (e.g., the date identified within the record). In some example, any modifications may be logged, tracked and/or stored such that a report (such as a reporting table of modified records) may be generated indicating changes made to date, records affected, and the like.
Records identified as having an expired retention period may be transmitted to a record and information management computing platform 320 (e.g., via an entity network). For instance, once a record is identified as having an expired retention period, the record or identification of the record may be provided to the record and information management computing platform 320 for processing. Providing the record or identification of the record may include adding the record to a file of records having an expired retention period that may be transmitted to the record and information management computing platform 320.
The record and information management computing platform 320 may include one or more processors 321, memory 322, and communication interface 325. A data bus may interconnect processor(s) 321, memory 322, and communication interface 325. Communication interface 325 may be a network interface configured to support communication between record retention engine computing platform 310, record and information management computing platform 320, and one or more networks (such as network 330). Memory 322 may include one or more program modules having instructions that when executed by processor(s) 321 cause record and information management computing platform 320 to perform one or more functions described herein and/or one or more databases that may store and/or otherwise maintain information which may be used by such program modules and/or processor(s) 321. In some instances, the one or more program modules and/or databases may be stored by and/or maintained in different memory units of record and information management computing platform 320 and/or by different computer systems that may form and/or otherwise make up the record and information management computing platform 320.
As discussed above, in some arrangements, records identified as having an expired retention period may be transferred or transmitted from the record retention engine computing platform 310 to the record and information management computing platform 320 for further processing. For example, memory 322 may include an expiration confirmation module 323. The expiration confirmation module 323 may include hardware and/or software configured to perform various functions within the record and information management computing platform 320. For instance, the expiration confirmation module 323 may confirm the determination that the difference between a current date and a date associated with a record is greater than a retention period and, thus, that the record's retention period has expired.
The memory 322 may further include a deletion approval module 324. The deletion approval module may include hardware and/or software configured to perform various functions within the record and information management computing platform 320. For instance, the deletion approval module 324 may analyze the records identified as having an expired retention period (or file including the records) to determine whether the record is eligible for automatic deletion. In some examples, determining whether a record is eligible for automatic deletion may include determining whether a flag or hold has been placed on the record. For instance, a legal department of an entity may desire to retain a record beyond the prescribed retention period. If so, the record may include a flag or hold and, instead of being automatically deleted, may be further processed.
Once a determination is made as to whether a record is eligible for automatic deletion, the record and information management computing platform 320 may transmit an instruction to the record retention engine computing platform 310 regarding the outcome of the determination. For instance, memory 312 may include an automatic deletion module 317. The automatic deletion module 317 may include hardware and/or software configured to perform various functions within the record retention engine computing platform 310. For instance, the automatic deletion module 317 may receive an instruction (e.g., from record and information management computing platform 320) that the record may be automatically deleted. In some examples, automatic deletion of a record may include holding the record for a predetermined time period and, upon expiration of the time period, automatically deleting the record (e.g., executing a deletion procedure on the record).
If the record is not eligible for automatic deletion, an instruction may be transmitted to the record retention engine computing platform 310 to further process the record. For instance, memory 312 may include an alternate processing module 318 which may include hardware and/or software configured to perform various functions within the record retention engine computing platform 310. For instance the alternate processing module 318 may forward a record to a manual review process, may flag a record to be reviewed by the system again prior to deletion, may forward a record identified for deletion to a log or other report which may be reviewed, either automatically by one or more devices within the system, or manually prior to deletion. Various other types of alternate processing may be performed without departing from the invention.
With reference to
In step 405, the records and record codes assigned thereto may be transmitted to the record evaluation module 315. The record evaluation module may then evaluate one or more records in step 406 in
If the time difference is greater than the retention period for the record (as retrieved from the record code) the retention period for that document has expired. Accordingly, in step 407, the record evaluation module 315 may identify one or more records for which the retention period has expired. In step 408, the identified records, or identification of the records, may be transferred or transmitted to the record and information management computing platform 320.
With reference to
In step 504, the records may be transferred to the deletion approval module 324. In step 505, the deletion approval module 324 may determine whether the record is eligible for automatic deletion. For instance, the deletion approval module 324 may determine whether a flag or hold has been placed on the record. If the record is eligible for automatic deletion, in step 506A, an instruction may be transmitted to the automatic deletion module 317 of the record retention engine computing platform 310, as shown in
In step 602, a retention period for each record may be determined based on the type of record, content of the record, business unit who generated the record, and the like. In step 604, a record code may be assigned to each record based on the determined retention period. The record code may be stored with the record and may provide an indication of the retention period or time period for which the record should or will be retained prior to deletion.
In step 606, a record may be evaluated to determine whether a retention period for the document has expired. For instance, as discussed herein, a date associated with the record (e.g., an archive date, a date indicated in the content of the record, an adjusted archive date, or the like) may be retrieved or determined and the system may determine a time difference between the date and a current date. If the time difference is greater than the retention period (as determined from the retention code) for the record, the retention period will be deemed expired and, in step 608, the record may be identified as ready for deletion or identified as having an expired retention period. The process may then move to step 610 in which a determination is made as to whether there are additional records for evaluation. If so, the process may return to step 608 to evaluate another record.
If, in step 606, the retention period has not expired (e.g., the time difference determined is less than the retention period) then the system will continue to store the record and the process may move to step 610 in which a determination is made as to whether there are additional records for evaluation. If so, the process may return to step 606 to evaluate another record.
If, in step 610, there are no additional records for evaluation, the system may, in step 612, automatically delete any records identified as eligible for automatic deletion.
In step 704, a determination may be made as to whether a record is eligible for automatic deletion. If so, an instruction may be transmitted (e.g., to the record retention engine computing platform) to automatically delete the record (e.g., execute a deletion procedure to permanently remove the record from the system) in step 708. If the record is not eligible for automatic deletion, an instruction may be transmitted to perform further processing using one or more alternate processing techniques described herein, in step 706.
The process may then move to step 710 in which a determination may be made as to whether there are additional records to evaluate for automatic deletion. If so, the process may return to step 704 to evaluate another record. If not, the process may end.
In step 802, a date may be assigned to each record. In some examples, the date assigned to each record may be the date on which the record was added (e.g., archived, uploaded, or the like) to the record retention engine computing platform.
In step 804, the record retention engine computing platform may query each record to determine whether date content exists in the record. In step 806, a determination is made as to whether date content exists in the record. If not, the assigned date may be maintained in step 808.
If date content does exist, a determination may be made at step 810 as to whether the date content in the record pre-dates the date assigned to the record. If so, the date may be modified to the earlier date in step 812. If not, the assigned date may be maintained in step 808.
One or more aspects of the disclosure may be embodied in computer-usable data or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices to perform the operations described herein. Generally, program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types when executed by one or more processors in a computer or other data processing device. The computer-executable instructions may be stored on a computer-readable medium such as a hard disk, optical disk, removable storage media, solid-state memory, RAM, and the like. The functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents, such as integrated circuits, application-specific integrated circuits (ASICs), field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated to be within the scope of computer executable instructions and computer-usable data described herein.
Various aspects described herein may be embodied as a method, an apparatus, or as one or more computer-readable media storing computer-executable instructions. Accordingly, those aspects may take the form of an entirely hardware embodiment, an entirely software embodiment, an entirely firmware embodiment, or an embodiment combining software, hardware, and firmware aspects in any combination. In addition, various signals representing data or events as described herein may be transferred between a source and a destination in the form of light or electromagnetic waves traveling through signal-conducting media such as metal wires, optical fibers, or wireless transmission media (e.g., air or space). In general, the one or more computer-readable media may comprise one or more non-transitory computer-readable media.
As described herein, the various methods and acts may be operative across one or more computing servers or platforms and one or more networks. The functionality may be distributed in any manner, or may be located in a single computing device (e.g., a server, a client computer, and the like). For example, in alternative embodiments, one or more of the computing platforms discussed above may be combined into a single computing platform, and the various functions of each computing platform may be performed by the single computing platform. In such arrangements, any and/or all of the above-discussed communications between computing platforms may correspond to data being accessed, moved, modified, updated, and/or otherwise used by the single computing platform. Additionally or alternatively, one or more of the computing platforms discussed above may be implemented in one or more virtual machines that are provided by one or more physical computing devices. In such arrangements, the various functions of each computing platform may be performed by the one or more virtual machines, and any and/or all of the above-discussed communications between computing platforms may correspond to data being accessed, moved, modified, updated, and/or otherwise used by the one or more virtual machines.
Aspects of the disclosure have been described in terms of illustrative embodiments thereof. Numerous other embodiments, modifications, and variations within the scope and spirit of the appended claims will occur to persons of ordinary skill in the art from a review of this disclosure. For example, one or more of the steps depicted in the illustrative figures may be performed in other than the recited order, and one or more depicted steps may be optional in accordance with aspects of the disclosure.