Explosions of bill-of-materials lists
Summary by NHIP
Parallel BOM list explosion method
The method determines if an assembly's bill-of-materials list is already broken down into a graph structure for another product. If not, it creates a new graph and stores component unit counts in a matrix with rows for the assembly and components and columns for the selected product.
Claim Score by NHIP
Abstract
In a parallel explosion unit of a parallel explosion apparatus, a processing unit extracts an end product, extracts an assembly directly constituting the end product, and an determines whether or not a BOM tree having the assembly as a vertex is already broken down. When the BOM tree of the assembly is not yet broken down, the processing unit registers the number of units of each component constituting the assembly in an explosion result list and generates a tree-specific list in which the number of units of each component and a registration position of the component in the explosion result list are recorded. When the BOM tree of the assembly is already broken down, the processing unit adds the number of units of each component recorded in the tree-specific list to the number of units at the registration position of the component likewise recorded in the explosion result list.

Term
Projected expiry 17 September 2032.
- Priority
- Filed
- Granted
- Today
- Projected expiry
10 claims: 3 independent, 7 dependent
- 1Broadest claimClaim Score 26, narrow(NHIP)A method for performing explosions of bill-of-materials (BOM) lists of products, the method comprising:a processing unit determining whether or not a BOM list of an assembly that is identified as an assembly within a selected product is already broken down into a first BOM graph structure for another product comprising an identified assembly node, and a plurality of component nodes each depending from the identified assembly node and representing different components of the identified assembly and comprising respective numbers of units of each of the plurality of components within the identified assembly;in response to determining that the BOM list of the identified assembly is not broken down into the first BOM graph structure, the processing unit breaking down the BOM list of the identified assembly into a new BOM graph structure comprising a product node that represents the selected product and the identified assembly node depending from the product node and a plurality of component nodes each depending from the identified assembly node and representing different components of the identified assembly and comprising respective numbers of units of each of the plurality of components within the identified assembly, and storing respective numbers of units of each of the components nodes in a BOM matrix within different respective component row positions within a column of the BOM matrix for the selected product, wherein the BOM matrix comprises rows for the identified assembly and for each of the components, and columns for each of a plurality of products that include the specified selected product;and in response to determining that the BOM list of the identified assembly is already broken down into the first BOM graph structure, the processing unit adding the numbers of units of each of the components nodes of the first BOM graph structure to numbers of units of respective corresponding ones of the components for the selected product that are stored in the different respective component BOM matrix row positions within the BOM matrix column for the selected product, and within a column of the BOM matrix columns for the another product.
- 5A system, comprising:a processing unit in communication with a computer readable memory and a tangible computer-readable storage medium;wherein the processing unit, when executing program instructions stored on the tangible computer-readable storage medium via the computer readable memory: determines whether or not a bill-of-materials (BOM) list of an assembly that is identified as an assembly within a selected product is already broken down into a first BOM graph structure for another product comprising an identified assembly node, and a plurality of component nodes each depending from the identified assembly node and representing different components of the identified assembly and comprising respective numbers of units of each of the plurality of components within the identified assembly;in response to determining that the BOM list of the identified assembly is not broken down into the first BOM graph structure, breaks down the BOM list of the identified assembly into a new BOM graph structure comprising a product node that represents the selected product and the identified assembly node depending from the product node and a plurality of component nodes each depending from the identified assembly node and representing different components of the identified assembly and comprising respective numbers of units of each of the plurality of components within the identified assembly, and stores respective numbers of units of each of the components nodes in a BOM matrix within different respective component row positions within a column of the BOM matrix for the selected product, wherein the BOM matrix comprises rows for the identified assembly and for each of the components, and columns for each of a plurality of products that include the specified selected product;and in response to determining that the BOM list of the identified assembly is already broken down into the first BOM graph structure, adds the numbers of units of each of the components nodes of the first BOM graph structure to numbers of units of respective corresponding ones of the components for the selected product that are stored in the different respective component BOM matrix row positions within the BOM matrix column for the selected product, and within a column of the BOM matrix columns for the another product.
- 8An article of manufacture, comprising:a computer readable tangible storage medium having computer readable program code embodied therewith, the computer readable program code comprising instructions that, when executed by a computer processing unit, causes the computer processing unit to determine whether or not a bill-of-materials (BOM) list of an assembly that is identified as an assembly within a selected product is already broken down into a first BOM graph structure for another product comprising an identified assembly node, and a plurality of component nodes each depending from the identified assembly node and representing different components of the identified assembly and comprising respective numbers of units of each of the plurality of components within the identified assembly;in response to determining that the BOM list of the identified assembly is not broken down into the first BOM graph structure, break down the BOM list of the identified assembly into a new BOM graph structure comprising a product node that represents the selected product and the identified assembly node depending from the product node and a plurality of component nodes each depending from the identified assembly node and representing different components of the identified assembly and comprising respective numbers of units of each of the plurality of components within the identified assembly, and store respective numbers of units of each of the components nodes in a BOM matrix within different respective component row positions within a column of the BOM matrix for the selected product, wherein the BOM matrix comprises rows for the identified assembly and for each of the components, and columns for each of a plurality of products that include the specified selected product;and in response to determining that the BOM list of the identified assembly is already broken down into the first BOM graph structure, add the numbers of units of each of the components nodes of the first BOM graph structure to numbers of units of respective corresponding ones of the components for the selected product that are stored in the different respective component row positions within the BOM matrix column for the selected product, and within a column of the BOM matrix columns for the another product.
Independent claims3
162 paragraphs in 4 sections, as filed
BACKGROUND
0001The present invention relates apparatuses and methods for explosions of bill-of-materials (BOM) lists.
0002Assembled industrial products such as automobiles having a lot of options and variations include similar products having the same basic structure but being just partially different due to a partial specification difference. In promoting common use of components to enhance the efficiency of designing and development, it is useful to compare component configurations of such similar products in the course of work and thereby to know which part is the same and which part is different in the component configurations as efficiently as possible.
BRIEF SUMMARY
0003In one embodiment of the present invention, a method is provided for performing parallel explosions of bill-of-materials lists of a plurality of products in a way that a number of units of each of a plurality of components constituting each of the plurality of products is arranged in an area corresponding to the component. The method includes a processing unit selecting a particular component as directly constituting a particular product among the plurality of products. The method also includes the processing unit determining whether or not a bill-of-materials list of the selected particular component is already broken down. if determined that the bill-of-materials list of the selected particular component is not yet broken down, the processing unit breaks down the bill-of-materials list of the particular component into parallel explosion information and bill-of-materials explosion information. The parallel explosion information comprises a number of units of each of a plurality of components constituting the particular component stored at a position corresponding to the particular product in an area corresponding to the component. The bill-of-materials explosion information comprises information specifying the number of units of each of the components and an area corresponding to each of the components in the parallel explosion information. If determined that the bill-of-materials list of the particular component is already broken down, the processing unit adds the number of units of each of the components included in the bill-of-materials explosion information to the number of units stored in a position in the parallel explosion information that corresponds to the particular product in an area specified as corresponding to the component based on the information included in the bill-of-materials explosion information.
0004In another embodiment, a system has a processing unit, computer readable memory and a tangible computer-readable storage medium with program instructions, wherein the processing unit, when executing the stored program instructions, performs parallel explosions of bill-of-materials lists of a plurality of products in a way that the number of units of each of components constituting each of the plurality of products is arranged in an area corresponding to the component. More particularly, the processing unit thereby selects a particular component directly as constituting a particular product among the plurality of products, and determines whether or not a bill-of-materials list of the selected particular component is already broken down. If the bill-of-materials list is not yet broken down, the processing unit breaks down the bill-of-materials list of the particular component into a parallel explosion list and a bill-of-materials explosion list. The parallel explosion list comprises a plurality of nodes respectively representing the components constituting the plurality of products, and the number of units of each of the components stored in a position corresponding to the particular product in an array corresponding to the node representing the component among the plurality of nodes. The bill-of-materials explosion list comprises a plurality of nodes respectively representing components constituting the particular component, the number of units of each of the components, and information specifying the node of the component in the parallel explosion list registered in the node representing the component among the plurality of nodes. If the bill-of-materials list of the particular component is already broken down, the processing unit adds the number of units of the component registered in each of the nodes included in the bill-of-materials explosion list to the number of units stored in a position corresponding to the particular product in an array corresponding to the node in the parallel explosion list, wherein the node is specified as representing the component based on the information registered in each of the nodes included in the bill-of-materials explosion list.
0005In another embodiment, an article of manufacture has a tangible computer-readable storage medium with computer readable program code embodied therewith, the computer readable program code comprising instructions that, when executed by a computer processing unit, cause the computer processing unit to perform parallel explosions of bill-of-materials lists of a plurality of products in a way that the number of units of each of components constituting each of the plurality of products is arranged in an area corresponding to the component. More particularly, the processing unit thereby selects a particular component directly as constituting a particular product among the plurality of products, and determines whether or not a bill-of-materials list of the selected particular component is already broken down. If the bill-of-materials list is not yet broken down, the processing unit breaks down the bill-of-materials list of the particular component into a parallel explosion list and a bill-of-materials explosion list. The parallel explosion list comprises a plurality of nodes respectively representing the components constituting the plurality of products, and the number of units of each of the components stored in a position corresponding to the particular product in an array corresponding to the node representing the component among the plurality of nodes. The bill-of-materials explosion list comprises a plurality of nodes respectively representing components constituting the particular component, the number of units of each of the components, and information specifying the node of the component in the parallel explosion list registered in the node representing the component among the plurality of nodes. If the bill-of-materials list of the particular component is already broken down, the processing unit adds the number of units of the component registered in each of the nodes included in the bill-of-materials explosion list to the number of units stored in a position corresponding to the particular product in an array corresponding to the node in the parallel explosion list, wherein the node is specified as representing the component based on the information registered in each of the nodes included in the bill-of-materials explosion list.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
0006<figref idref="DRAWINGS">FIGS. 1A and 1B</figref> are diagrams showing examples of BOM trees for parallel explosions.
0007<figref idref="DRAWINGS">FIG. 2</figref> is a diagram showing an example of an adjacency list structure generated from the BOM trees.
0008<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are diagrams showing modes of showing results of parallel explosions of the BOM trees.
0009<figref idref="DRAWINGS">FIG. 4</figref> is a diagram showing examples in an explosion result list generated from the BOM trees.
0010<figref idref="DRAWINGS">FIG. 5</figref> is a diagram showing examples in an explosion result list generated from the BOM trees.
0011<figref idref="DRAWINGS">FIGS. 6A and 6B</figref> are diagrams for explaining a first implementation example.
0012<figref idref="DRAWINGS">FIGS. 7A</figref>, <b>7</b>B and <b>7</b>C are diagrams showing BOM trees used for explaining a second implementation example.
0013<figref idref="DRAWINGS">FIG. 8</figref> is a diagram showing an example of an adjacency list structure generated from the BOM trees used for explaining the second implementation example.
0014<figref idref="DRAWINGS">FIGS. 9A</figref>, <b>9</b>B, <b>9</b>C, <b>9</b>D and <b>9</b>E are tables showing explosion results obtained by copying all of the numbers of the units of each component in broken down columns in the second implementation example.
0015<figref idref="DRAWINGS">FIG. 10</figref> is a table showing an explosion result obtained by copying only a necessary number of units of each component in the broken down columns in the second implementation example.
0016<figref idref="DRAWINGS">FIG. 11</figref> is a diagram showing an example of a parallel explosion data structure in a case of width-priority explosions in the second implementation example.
0017<figref idref="DRAWINGS">FIG. 12</figref> is a diagram showing an example of a parallel explosion data structure in a case of depth-priority explosions in the second implementation example.
0018<figref idref="DRAWINGS">FIG. 13</figref> is a block diagram showing a functional configuration example of a parallel explosion apparatus in an embodiment of the present invention.
0019<figref idref="DRAWINGS">FIG. 14</figref> is a flowchart showing an operation example of a parallel explosion unit in the embodiment of the present invention.
0020<figref idref="DRAWINGS">FIG. 15</figref> is a diagram showing a hardware configuration of a computer to which the embodiment of the present invention is applicable.
DETAILED DESCRIPTION
0021A BOM list explosion frequently uses a list in which an end product as a vertex of a BOM tree is broken down into components. However, simply arranging results of explosions of individual BOM trees side by side is not sufficient to extract the same parts and different parts in the multiple BOM trees, and thus this technique is not appropriate for comparative study. Hence, a first parallel explosion method is used in which parts having the same component configuration are merged into one and parts having different component configurations are broken down into components in a parallelized table showing differences in configuration. In this method, the merging logic differs depending on the work, but the whole explosion results are generally displayed in a mode where rows are associated with components as the explosion results and columns are associated with end products or assemblies at one level lower than the end products.
0022However, if the entire logic of a parallel explosion of the BOM lists is implemented by use of a structured query language (SQL), the explosion requires a long processing time and includes a lot of unnecessary processing because the same data is repeatedly accessed. Hence, use of the following second parallel explosion method is also conceivable. Specifically, only necessary data is first read from data on components and component configurations in a database, and a BOM tree graph data structure based on an adjacency list structure is built up in a memory for all the BOM trees to be parallelized. Next, the BOM trees are broken down by utilizing this data structure. An explosion result list of the explosion of the first BOM tree is used as a key list. Then, instead of the first BOM tree itself, the key list is used to search for the same component as a component in explosion results of the second and following BOM trees, and to hold therein information on the components. Since all of information on the same components and different components for the parallelization is registered in the key list, a result can be outputted from this in any necessary mode.
0023Examples of a technique focusing on common components and non-common components in Patent Publications include a technique in Japanese Patent Application Publication No. 2009-265706.
0024In the technique in Japanese Patent Application Publication No. 2009-265706, components of products forming product groups are analyzed in function and attribute and classified into common components and non-common components. Functions of the non-common components are classified into common functions and non-common functions. Then, improvement guides for creating a structure of each of non-common components with minimum cost are generated based on a material and a construction method satisfying the attribute of the component.
0025Examples of techniques for management of a BOM list include techniques in Japanese Patent Application Publication No. Hei 11-203327, Japanese Patent Application Publication No. 2002-73708, and Japanese Patent Application Publication No. 2003-281199.
0026In the technique in Japanese Patent Application Publication No. Hei 11-203327, a configuration information acquiring unit acquires configuration information of product models from a configuration information table in a storage unit in which configuration information of the products is stored. A configuration information compiling unit compiles the acquired configuration information of the multiple similar product models into a single multiple-model BOM list. A component information editing unit edits the multiple-model BOM list. When receiving the multiple-model BOM list edited by the component information editing unit, a configuration information dividing unit divides the multiple-model BOM list, by model on the basis of quantity columns, into records having columns of a parent product name, a product name, and a quantity; converts the structure of the multiple-model BOM list into a structure allowing storage of the component configuration in the configuration information table; and registers data in the configuration information table, while omitting duplicated records among multiple models.
0027With the technique in Japanese Patent Application Publication No. 2002-73708, a parts information system has a BOM list database, a workflow management function, a schedule management function, and a BOM list explosion function. The BOM list database integrally manages BOM list data created in processes (designing, concept planning, engineering, and production) of product development in association with each other, and holds CAD data, document data, and parts catalog data further associated with the BOM list data. The workflow management function controls development functional units for work support in the processes so that the multiple processes can be executed simultaneously in parallel. A change in one of the processes can be quickly made known to the other processes through the BOM list database.
0028The technique in Japanese Patent Application Publication No. 2003-281199 uses an electronic parts list system including a BOM list generating unit, a layout table generating unit, and a layout unit. The BOM list generating unit generates an electronic parts list according to input of a designer with reference to design reference data. The electronic parts list is a BOM list including parts information on parts to be used for designing an automobile. The layout table generating unit generates a layout list on the basis of parts information. The layout list is a table including requisite layout information required for parts layout. The layout unit generates layout information indicating a parts arrangement state, on the basis of the design reference information, the parts information, and the requisite layout information. The electronic parts list, the layout list, and the layout information are associated with each other.
0029Further, examples of a technique of checking validity of related information used for a technical BOM list, drawings, and a parts characteristic table include the technique in Japanese Patent Application Publication No. 2003-281203.
0030The technique in Japanese Patent Application Publication No. 2003-281203 uses a total inspection system including a part number rule database and an item check unit. The part number rule database stores rules for the parts numbers. Based on the first part numbers of first parts in an electronic parts list and the second part numbers of second parts in a parts characteristic table, which are assigned according to the rules, the item check unit detects a particular first part number as a first part number suitable for a concerned second part number, then detects a level of the particular first part having the particular first part number in the electronic parts list, and then checks whether the level matches a predetermined level of the second part. Note that in the electronic parts list, the first part number and first part information on each of the first parts are associated with each other, and each of the first parts is managed based on its level in a hierarchical structure. In the parts characteristic table, equipment units providing distinctive features to the specifications of a second part, and combinations of equipment units are associated with the second part numbers.
0031The aforementioned second parallel explosion method can execute high-speed processing for BOM trees having a small number of columns, i.e., a small number of end products even while having a large number of rows, i.e., a large number of components. However, sufficient execution performance may not be exerted for BOM trees having a large number of columns even while having only a small number of rows. This is because this method requires time to perform comparison and other processing for merging the numbers of units of each component in the BOM trees corresponding to the respective columns. In the case where the columns in the table resultant from the parallel explosion indicate end products, the table may include several hundred columns at least, and include even several thousand columns if there are a huge number of end products. In this case, even though reduction in the DB access time is achieved, it takes hours to complete the explosion itself.
0032It should be noted that none of the techniques described in the above prior art Patent Publications propose a method for solving problems in the processing for parallel explosions of BOM lists of multiple products in a way that the number of units of each of components constituting each of the multiple products is arranged in an area corresponding to the component.
0033In contrast, embodiments of the present invention enable high-speed processing for parallel explosions of BOM lists of multiple products in a way that the number of units of each of components constituting each of the multiple products is arranged in an area corresponding to the component, even when the number of the products is large. More particularly, one embodiment of the present invention provides an apparatus that performs parallel explosions of bill-of-materials lists of a plurality of products in a way that the number of units of each of components constituting each of the plurality of products is arranged in an area corresponding to the component, the apparatus comprising: a selection unit configured to select a particular component directly constituting a particular product among the plurality of products; a determination unit configured to determine whether or not the bill-of-materials list of the particular component selected by the selection unit is already broken down; an explosion unit configured to break down the bill-of-materials list of the particular component into parallel explosion information and bill-of-materials explosion information, when the determination unit determines that the bill-of-materials list of the particular component is not yet broken down, the parallel explosion information having the number of units of each of components constituting the particular component stored at a position corresponding to the particular product in an area corresponding to the component, the bill-of-materials explosion information including information specifying the number of units of each of the components and the area corresponding to each of the components in the parallel explosion information; and an adding unit configured to, when the determination unit determines that the bill-of-materials list of the particular component is already broken down, add the number of units of each of the components included in the bill-of-materials explosion information to the number of units stored in a position in the parallel explosion information, the position corresponding to the particular product in the area specified as corresponding to the component based on the information included in the bill-of-materials explosion information.
0034Here, as the area corresponding to each of the components constituting the particular component, the explosion unit may use, for a component the number of units of which is not stored in the parallel explosion information, an area determined in accordance with a predetermined rule, and for a component the number of units of which is stored in the parallel explosion information, an area in which the number of units of the component is stored.
0035In addition, the explosion units may break down the bill-of-materials list of the particular component into the parallel explosion information and the bill-of-materials explosion information, the parallel explosion information further having the number of units of the particular component stored at a position corresponding to the particular product in an area corresponding to the particular component, the bill-of-materials explosion information further including information specifying the number of units of the particular component and the area corresponding to the particular component in the parallel explosion information, and the adding unit may add the number of units of the particular component included in the bill-of-materials explosion information to the number of units stored in a position in the parallel explosion information, the position corresponding to the particular product in the area specified as corresponding to the particular component based on the information included in the bill-of-materials explosion information.
0036In this case, as the area corresponding to the particular component, the explosion unit may uses an area determined in accordance with a predetermined rule, when the number of units of the particular component is not stored in the parallel explosion information, and an area in which the number of units of the particular component is stored, when the number of units of the particular component is stored in the parallel explosion information.
0037Moreover, embodiments of the present invention provide an apparatus that performs parallel explosions of bill-of-materials lists of a plurality of products in a way that the number of units of each of components constituting each of the plurality of products is arranged in an area corresponding to the component, with one apparatus comprising: a selection unit configured to select a particular component directly constituting a particular product among the plurality of products; a determination unit configured to determine whether or not the bill-of-materials list of the particular component selected by the selection unit is already broken down; an explosion unit configured to break down the bill-of-materials list of the particular component into a parallel explosion list and a bill-of-materials explosion list when the determination unit determines that the bill-of-materials list of the particular component is not yet broken down, the parallel explosion list including a plurality of nodes respectively representing the components constituting the plurality of products, the parallel explosion list having the number of units of each of the components stored in a position corresponding to the particular product in an array corresponding to the node representing the component among the plurality of nodes, the bill-of-materials explosion list including a plurality of nodes respectively representing components constituting the particular component, the bill-of-materials explosion list having the number of units of each of the components and information specifying the node of the component in the parallel explosion list registered in the node representing the component among the plurality of nodes; and an adding unit configured to, when the determination unit determines that the bill-of-materials list of the particular component is already broken down, add the number of units of the component registered in each of the nodes included in the bill-of-materials explosion list to the number of units stored in a position corresponding to the particular product in an array corresponding to the node in the parallel explosion list, the node specified as representing the component based on the information registered in each of the nodes included in the bill-of-materials explosion list.
0038Embodiments of an apparatus may further comprise: a database configured to store the bill-of-materials lists of the plurality of products; and a memory configured to store an adjacency list generated based on the bill-of-materials lists of the plurality of products, the adjacency list having a plurality of nodes respectively representing the plurality of products and the components constituting the plurality of products, wherein among the plurality of nodes included in the adjacency list, the selection unit selects as the particular component a component represented by a node specified based on information which is registered in the bill-of-materials list and is held by the node representing the particular product.
0039Moreover, embodiments of the present invention also provide a method for parallel explosions of bill-of-materials lists of a plurality of products in a way that the number of units of each of components constituting each of the plurality of products is arranged in an area corresponding to the component, with one method comprising the steps of: selecting a particular component directly constituting a particular product among the plurality of products; determining whether or not the bill-of-materials list of the selected particular component is already broken down; breaking down the bill-of-materials list of the particular component into parallel explosion information and bill-of-materials explosion information, when it is determined that the bill-of-materials list of the particular component is not yet broken down, the parallel explosion information having the number of units of each of components constituting the particular component stored at a position corresponding to the particular product in an area corresponding to the component, the bill-of-materials explosion information including information specifying the number of units of each of the components and the area corresponding to of each of the components in the parallel explosion information; and when it is determined that the bill-of-materials list of the particular component is already broken down, adding the number of units of each of the components included in the bill-of-materials explosion information to the number of units stored at a position in the parallel explosion information, the position corresponding to the particular product in the area specified as corresponding to the component based on the information included in the bill-of-materials explosion information.
0040Furthermore, embodiments of the present invention also provide a program causing a computer to function as an apparatus that performs parallel explosions of bill-of-materials lists of a plurality of products in a way that the number of units of each of components constituting each of the plurality of products is arranged in an area corresponding to the component, the program causing the computer to function as: a selection unit configured to select a particular component directly constituting a particular product among the plurality of products; a determination unit configured to determine whether or not the bill-of-materials list of the particular component selected by the selection unit is already broken down; an explosion unit configured to break down the bill-of-materials list of the particular component into parallel explosion information and bill-of-materials explosion information, when the determination unit determines that the bill-of-materials list of the particular component is not yet broken down, the parallel explosion information having the number of units of each of components constituting the particular component stored at a position corresponding to the particular product in an area corresponding to the component, the bill-of-materials explosion information including information specifying the number of units of each of the components and the area corresponding to each of the components in the parallel explosion information; and an adding unit configured to, when the determination unit determines that the bill-of-materials list of the particular component is already broken down, add the number of units of each of the components included in the bill-of-materials explosion information to the number of units stored at a position in the parallel explosion information, the position corresponding to the particular product in the area specified as corresponding to the component based on the information included in the bill-of-materials explosion information.
0041A description is given below in detail of one embodiment of the present invention with reference to the accompanying drawings.
0042Design Method as Base of Embodiment
0043In one embodiment, one of BOM trees stored in a database is broken down in a graph structure built up as an adjacency list structure in a memory, and an explosion result is represented by a linked list and a component-units-number array storing the numbers of units of each component (hereinafter referred to as the numbers of component units) corresponding to respective nodes in the linked list. Another one of the BOM trees to be subjected to parallel explosions is also broken down in the graph structure likewise, and this linked list is searched to find a node of a component to be merged. If a node to be merged is found, the number of component units is written in a component-units-number array of the found node. If no node to be merged is found, a new node is inserted into the linked list. This operation is repeated for all the BOM trees under an end product for parallel explosions.
0044Speeding up of the parallel explosions in this embodiment is based on a design panning employing a general-purpose data structure based on a graph theory. Since all of the accesses to the database are made at the beginning, I/O can be minimized. In addition, since an explosion result is represented by the linked list instead of the array, data can be efficiently inserted and deleted. Further, since there are BOM trees in the graph structure in the memory, any one of a depth-priority explosion (an explosion based on searching with priority given to a depth) and a width-priority explosion (an explosion based on searching with priority given to a width) can be repeatedly executed any number of times as appropriate. Besides, the explosion only requires tracing a pointer in the memory, and thus is extremely efficient.
0045<figref idref="DRAWINGS">FIGS. 1A and 1B</figref> show examples of BOM trees for the parallel explosions in this embodiment.
0046<figref idref="DRAWINGS">FIG. 1A</figref> shows a BOM tree of an end product A, and <figref idref="DRAWINGS">FIG. 1B</figref> shows a BOM tree of an end product B. Note that reference numeral suffixed to each component is a part number of the component in <figref idref="DRAWINGS">FIGS. 1A and 1B</figref>. Numbers in bold-face type on the left side of each of the BOM trees show the levels of the explosions. Explosion levels of components (assemblies) P<b>1</b> and P<b>1</b>′ at one level lower than end products are herein 0. Numbers added to lines linking components represent the numbers of units of each component. Although it is actually impossible that an end product is constituted of only one assembly, a simplified example is herein shown for convenience.
0047<figref idref="DRAWINGS">FIG. 2</figref> shows an example of an adjacency list structure of the BOM trees in <figref idref="DRAWINGS">FIGS. 1A and 1B</figref>.
0048For example, <figref idref="DRAWINGS">FIG. 2</figref> shows a state in which structural data corresponding to the BOM trees in <figref idref="DRAWINGS">FIGS. 1A and 1B</figref> is read from a database by using a recursive SQL or the like and is broken down into the adjacency list structure in the memory. Note that components whose explosion levels are 0 or lower in each of the BOM trees are herein broken down.
0049Arrows represent pointers, and what is required for high speed recursive execution of the parallel explosions of the BOM trees is only to trace the pointers.
0050<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> show modes of showing results of the parallel explosions of the BOM trees in <figref idref="DRAWINGS">FIGS. 1A and 1B</figref>.
0051<figref idref="DRAWINGS">FIG. 3A</figref> shows that the explosion result of the BOM trees is shown in a format in which each part number is indented according to the explosion level thereof.
0052<figref idref="DRAWINGS">FIG. 3B</figref> shows calculated numbers of component units in a matrix form in addition to the display in <figref idref="DRAWINGS">FIG. 3A</figref>. A certain end product in its tree only includes components having the number of component units of 0 in a corresponding column in this matrix. A parent component directly above a certain component in a BOM tree of a certain end product is found by upwardly tracing a column corresponding to the end product from the certain component. In the tracing, the parent component is a first one of components having one explosion level higher than the certain component and not having the number of component units of 0.
0053Parallel Explosion Data Structure and its Creation Logic
0054In each of modes in <figref idref="DRAWINGS">FIGS. 3A and 3B</figref>, original data can be represented in the original data structure.
0055<figref idref="DRAWINGS">FIG. 4</figref> shows a data structure (an explosion result list) corresponding to the BOM tree in <figref idref="DRAWINGS">FIG. 1A</figref>.
0056Firstly, the BOM tree is broken down by a depth-priority search, and an explosion result is held in a linked list. At the same time, a dynamic array is created to include each node included in the linked list, the array having a size of the number of columns of a matrix. Then, the numbers of corresponding component units are stored in the first column of the dynamic array. This is a component-units-number array.
0057Thereafter, by using this explosion result list as a key list, the BOM tree in <figref idref="DRAWINGS">FIG. 1B</figref> is broken down by the depth-priority search, and an explosion result is applied to the key list. At this time, the following merging rule is applied.
0058Specifically, if the same component as a currently broken down component exists in the same level as that of the component, a calculation result of the number of component units is written at a position corresponding to the component in the second column of the component-units-number array. On the other hand, if the same component as the currently broken down component does not exist in the same level as that of the component, the current component is added to the last row of the explosion level. However, the merging rule is an example of specific work requirements, and a merging method and a position for adding a component can change variously, depending on the work. However, the logic of this part is independent from the data structure, and thus a later revision can be made easily.
0059The basic concept of the merging is as follows. A component of a BOM tree to be broken down is searched at the level of the component. If there is no match in the key list, a row is added. If there is a match in the key list, the number of component units of the component currently broken down is written in a matched row of the key list which is the component-units-number array.
0060<figref idref="DRAWINGS">FIG. 5</figref> shows a merging result based on this logic.
0061In other words, <figref idref="DRAWINGS">FIG. 5</figref> shows the result of merging explosion results of the BOM tree in <figref idref="DRAWINGS">FIG. 1B</figref> by applying the logic to the key list in <figref idref="DRAWINGS">FIG. 4</figref>.
0062After this merging, a linked list showing the explosion result and values in the component-units-number array for the nodes can be outputted in any one of the formats in <figref idref="DRAWINGS">FIGS. 3A and 3B</figref>.
0063Meanwhile, this example uses two BOM trees, i.e., two columns in an explosion result table. However, there is a case where an explosion result table has hundreds or thousands of columns. This case requires a larger number of repetition times of comparative processing for components for the merging even though the explosion of the BOM tree itself can be executed at a high speed by performing tracing by use of the pointer, thus requiring a longer processing time.
0064Specific Implementation Method in One Embodiment
0065As described above, even though there are many end products due to reflection of various options, assemblies at one level lower than the end products are made common, and thus the types thereof are limited. In the aforementioned example, if the end products A and B include identical assembles, the BOM trees thereof having the vertexes of the assemblies are also identical. This means that a result of the explosion of the end product A, that is, the numbers of component units corresponding to parts numbers of the broken down components have only to be copied to the column of the end product B in the corresponding order. Specifically, a column of a broken down assembly is recorded. If an assembly traced later from a different end product is found to have the same column of the broken down assembly, the numbers of component units have only to be copied to the column of the current end product.
First Implementation Example
0066<figref idref="DRAWINGS">FIGS. 6A and 6B</figref> show a first implementation example in this embodiment.
0067Suppose a case as an extreme case where all of the end products use the same assemblies as components as shown in <figref idref="DRAWINGS">FIG. 6A</figref>. In this case, a column of every end product has the identical explosion result, and the same components are all merged. Thus, breaking down the BOM tree for each column is waste of time.
0068Hence, it is conceivable that the numbers of component units of the first explosion result should be copied to columns of the component-units-number array.
0069However, this method causes a problem. This is because there is no such case where different end products are all constituted of the same assembles only. In other words, a difference among the end products is attributable to a difference among assembles. Because of the difference, simply copying the numbers of component units of an explosion result is not sufficient. A column of an explosion result includes all of components in a BOM tree which are under an assembly under an end product of the column. Accordingly, when being constituted of multiple assembles, the end product does not naturally have an explosion result of a single assembly.
Second Implementation Example
0070Hence, a second implementation example is proposed in this embodiment.
0071<figref idref="DRAWINGS">FIGS. 7A</figref>, <b>7</b>B, and <b>7</b>C show examples of BOM trees for explaining the second implementation example.
0072<figref idref="DRAWINGS">FIG. 7A</figref> shows a BOM tree of an end product A, <figref idref="DRAWINGS">FIG. 7B</figref> shows a BOM tree of an end product B, and <figref idref="DRAWINGS">FIG. 7C</figref> shows a BOM tree of an end product C. In this example, the end products A and C use a common assembly M<b>1</b>, the end products A and B use a common assembly M<b>2</b>, and the end products B and C use a common assembly M<b>3</b>.
0073<figref idref="DRAWINGS">FIG. 8</figref> shows an example of an adjacency list structure for the BOM trees in <figref idref="DRAWINGS">FIGS. 7A to 7C</figref>.
0074Specifically, <figref idref="DRAWINGS">FIG. 8</figref> shows data of the BOM trees in <figref idref="DRAWINGS">FIGS. 7A to 7C</figref> for parallel explosions in an adjacency list structure in the memory after the data thereof are all read from a database.
0075A dictionary has component data registered therein without duplication, the component data corresponding to components in the BOM trees.
0076Each component in the dictionary has a list of a component (a component list) whose level is one level lower than the component in the dictionary.
0077Further, a node of each component in the component list has information on a position associated with the component data corresponding to the component.
0078The use of such an adjacency list structure makes it possible to achieve explosions of the BOM trees while tracing the component list from component data at a vertex through a node of a component in the component list to component data corresponding to the component.
0079Suppose that the numbers of component units in a column of the explosion result are simply copied to another column.
0080<figref idref="DRAWINGS">FIGS. 9A to 9E</figref> show tables of the explosion results. However, the BOM trees in only <figref idref="DRAWINGS">FIGS. 7A and 7B</figref> are shown.
0081Firstly, as shown in <figref idref="DRAWINGS">FIG. 9A</figref>, the assembly M<b>1</b> of the end product A is broken down. Since the end product B does not have the assembly M<b>1</b> thereunder, the number of component units of 0 is stored in the column of the end product B as shown in <figref idref="DRAWINGS">FIG. 9B</figref>.
0082Next, as shown in <figref idref="DRAWINGS">FIG. 9C</figref>, the assembly M<b>2</b> of the end product A is broken down. The end product B has the assembly M<b>2</b> thereunder. Since the assembly M<b>2</b> is already broken down in the column of the end product A, the numbers of component units stored in the column of the end product A are copied to the column of the end product B as shown <figref idref="DRAWINGS">FIG. 9D</figref>.
0083In addition, the end product B has the assembly M<b>3</b> thereunder, and thus the assembly M<b>3</b> is broken down as shown <figref idref="DRAWINGS">FIG. 9E</figref>.
0084However, simply copying the numbers of component units in such a manner leads to an incorrect result. When the numbers of component units are copied simply, the number of component units of the assembly M<b>1</b> in the column of the end product A is also copied. For this reason, the number of component units in the column of the end product B has a larger number than an actual one.
0085<figref idref="DRAWINGS">FIG. 10</figref> shows a table having a correct explosion result.
0086The final explosion result must be like this.
0087The reason why the numbers of component units are not correct in <figref idref="DRAWINGS">FIG. 9</figref> is that simply copying the numbers of component units in the column of the explosion result does not allow differences among the explosion results of the multiple assemblies to be distinguished.
0088Hence, in the second implementation example, an explosion result of a BOM tree of each assembly is held individually as a tree-specific list, and each of nodes in the tree-specific list is designed to point to a corresponding row in the explosion result list. In addition, since an explosion result of the BOM tree of components under the assembly is required, information which is a copy source is held for each BOM tree under the assembly.
0089<figref idref="DRAWINGS">FIG. 11</figref> shows a parallel explosion data structure in a case of width-priority explosions in the second implementation example. In the width-priority explosions, the BOM tree of the end product A is broken down in the order from M<b>1</b>, M<b>2</b>, P<b>1</b>, P<b>2</b>, P<b>1</b>, and P<b>3</b>; the BOM tree of the end product B, from M<b>2</b>, M<b>3</b>, P<b>1</b>, P<b>3</b>, P<b>2</b>, and P<b>4</b>; and the BOM tree of the end product C, from M<b>1</b>, M<b>3</b>, P<b>1</b>, P<b>2</b>, P<b>2</b>, and P<b>4</b>.
0090Meanwhile, in the parallel explosion data structure, each assembly has a tree-specific list thereunder which stores the numbers of component units resultant from calculations after only BOM trees under the assembly are broken down. Values in square brackets in the tree-specific list represent the calculated numbers of component units. Note that the tree-specific list is different from the explosion result list finally resultant from merging of multiple BOM trees. The tree-specific list is created only once when the BOM tree having the assembly as a vertex is broken down for the first time. Since a correspondence between each component in the tree-specific list and a component in the explosion result list can be known at this timing, a position of the component is stored so that labor of searching later can be saved. Thus, there is no need to concern about the order of explosions in the tree-specific list.
0091Thereafter, when the BOM tree having the assembly as the vertex appears again, the explosion result in the tree-specific list belonging to the assembly and the position of each component in the explosion result list are extracted, then the explosion result is merged (copied) to the explosion result list at the position.
0092For example, suppose a case where the BOM trees are broken down in the order from the end products A, B, and C. A tree-specific list of the assembly M<b>2</b> is created for the first time when the BOM tree of the end product A is broken down. Thereafter, when the assembly M<b>2</b> appears while the BOM tree of the end product B is broken down, the tree-specific list of the assembly M<b>2</b> already exists. Hence, tracing is performed from each of components in the tree-specific list to find a corresponding component in the explosion result list, and the number of units of the corresponding component held by the tree-specific list is added to a value of an element in a column of the end product B in the component-units-number array, the element corresponding to the component in the explosion result list.
0093Now, a description is roughly given of an explosion operation for a BOM tree in this case.
0094First, suppose a case of processing the assembly M<b>1</b> at one level lower than the end product A. In this case, the number of units of the components P<b>1</b> and P<b>2</b> are recorded in the tree-specific list having the assembly M<b>1</b> as the vertex. In addition, nodes of the assembly M<b>1</b> and the components P<b>1</b> and P<b>2</b> are recorded in the explosion result list, and the numbers of component units of the assembly M<b>1</b> and the components P<b>1</b> and P<b>2</b> are respectively added to the numbers of component units in component-units-number arrays for the nodes in the column of the end product A. Thereafter, positions at which the assembly M<b>1</b> and the components P<b>1</b> and P<b>2</b> are registered in the explosion result list are recorded in the tree-specific list having the assembly M<b>1</b> as the vertex.
0095Next, suppose a case of processing the assembly M<b>2</b> at one level lower than the end product A. In this case, the numbers of component units of the components P<b>1</b> and P<b>3</b> are recorded in the tree-specific list having the assembly M<b>2</b> as the vertex. In addition, a node of the component P<b>1</b> is found in the explosion result list, nodes of the assembly M<b>2</b> and the component P<b>3</b> are registered, and the numbers of component units thereof are respectively added to values in the column of the end product A in component-units-number arrays for the nodes. Subsequently, positions at which the assembly M<b>2</b> and the components P<b>1</b> and P<b>3</b> are registered in the explosion result list are recorded in the tree-specific list having the assembly M<b>2</b> as the vertex.
0096Next, suppose a case of processing the assembly M<b>2</b> at one level lower than the end product B. In this case, where to copy the numbers of component units of the assembly M<b>2</b> and the components P<b>1</b> and P<b>3</b> recorded in the tree-specific list having the assembly M<b>2</b> as the vertex are determined according to the registration positions recorded in the tree-specific list, and the numbers of component units are added to values in the column of the end product B in the component-units-number arrays for the nodes of the assembly M<b>2</b> and the components P<b>1</b> and P<b>3</b> in the explosion result list.
0097Next, suppose a case of processing the assembly M<b>3</b> at one level lower than the end product B. In this case, the numbers of component units of the components P<b>2</b> and P<b>4</b> are firstly recorded in the tree-specific list having the assembly M<b>3</b> as the vertex. In addition, a node of the component P<b>2</b> is found in the explosion result list, nodes of the assembly M<b>3</b> and the component P<b>4</b> are registered, and the numbers of component units thereof are respectively added to values in the column of the end product B in component-units-number arrays for the nodes. Subsequently, positions at which the assembly M<b>3</b> and the components P<b>2</b> and P<b>4</b> are registered in the explosion result list are recorded in the tree-specific list having the assembly M<b>3</b> as the vertex.
0098Next, suppose a case of processing the assembly M<b>1</b> at one level lower than the end product C. In this case, where to copy the numbers of component units of the assembly M<b>1</b> and the components P<b>1</b> and P<b>2</b> recorded in the tree-specific list having the assembly M<b>1</b> as the vertex are determined according to the registration positions recorded in the tree-specific list, and the numbers of component units thereof are added to values in the column of the end product C in the component-units-number arrays for the nodes of the assembly M<b>1</b> and the components P<b>1</b> and P<b>2</b> in the explosion result list.
0099Lastly, suppose a case of processing the assembly M<b>3</b> at one level lower than the end product C. In this case, where to copy the numbers of component units of the assembly M<b>3</b> and the components P<b>2</b> and P<b>4</b> recorded in the tree-specific list having the assembly M<b>3</b> as the vertex are determined according to the registration positions recorded in the tree-specific list, and the numbers of component units thereof are added to values in the column of the end product C in the component-units-number arrays for the nodes of the assembly M<b>3</b> and the components P<b>2</b> and P<b>4</b> in the explosion result list.
0100<figref idref="DRAWINGS">FIG. 12</figref> shows a parallel explosion data structure in a case of depth-priority explosions in the second implementation example. In the depth-priority explosions, the BOM tree of the end product A is broken down in the order from M<b>1</b>, P<b>1</b>, P<b>2</b>, M<b>2</b>, P<b>1</b>, and P<b>3</b>; the BOM tree of the end product B, from M<b>2</b>, P<b>1</b>, P<b>3</b>, M<b>3</b>, P<b>2</b>, and P<b>4</b>; the BOM tree of the end product C, from M<b>1</b>, P<b>1</b>, P<b>2</b>, M<b>3</b>, P<b>2</b>, and P<b>4</b>.
0101The data structure and an explosion operation in the depth-priority explosions are the same as those in the width-priority explosions except that components in the explosion result list are arranged in an order according to the depth-priority explosions. Thus, a description thereof is herein omitted.
0102As described above in the second implementation example, positions of components in the explosion result list are stored in the respective components in tree-specific lists. Thereby, unnecessary comparative processing for the merging can be avoided, and thus the performance of the parallel explosion is drastically improved.
0103Parallel Explosion Apparatus Achieving Implementation Method in this Embodiment.
0104Next, a description is given of a parallel explosion apparatus achieving the second implementation example proposed in this embodiment.
0105Functional Configuration of Parallel Explosion Apparatus.
0106<figref idref="DRAWINGS">FIG. 13</figref> shows a functional configuration example of such a parallel explosion apparatus.
0107As illustrated therein, the parallel explosion apparatus includes a BOM-tree storage unit <b>10</b>, a BOM-tree explosion unit <b>20</b>, an adjacency-list storage unit <b>30</b>, a parallel explosion unit <b>40</b>, an explosion-result-list storage unit <b>50</b>, and an explosion-result output unit <b>60</b>.
0108The BOM-tree storage unit <b>10</b> is a database storing BOM trees of multiple products, and is implemented by a magnetic disk device <b>90</b><i>g</i>, for example (see <figref idref="DRAWINGS">FIG. 15</figref>).
0109The BOM-tree explosion unit <b>20</b> breaks down the BOM trees of the multiple products stored in the BOM-tree storage unit <b>10</b> into an adjacency list structure. The BOM-tree explosion unit <b>20</b> is implemented in a way that, for example, a CPU <b>90</b><i>a </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) loads a program stored in the magnetic disk device <b>90</b><i>g </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) onto a main memory <b>90</b><i>c </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) and then executes the program.
0110The adjacency-list storage unit <b>30</b> stores data of the adjacency list structure generated by the BOM-tree explosion unit <b>20</b> by breaking down the BOM trees. The adjacency-list storage unit <b>30</b> is implemented by the main memory <b>90</b><i>c</i>, for example (see <figref idref="DRAWINGS">FIG. 15</figref>). In this embodiment, the adjacency-list storage unit <b>30</b> is provided as an example of a memory storing an adjacency list.
0111The parallel explosion unit <b>40</b> performs parallel explosions on the BOM trees of the multiple products while tracing a pointer of each data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b>, and then generates an explosion result list. The parallel explosion unit <b>40</b> is implemented in a way that, for example, the CPU <b>90</b><i>a </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) loads a program stored in the magnetic disk device <b>90</b><i>g </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) onto the main memory <b>90</b><i>c </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) and then executes the program.
0112The explosion-result-list storage unit <b>50</b> stores therein the explosion result list generated by the parallel explosion unit <b>40</b>. The explosion result list includes a linked list and component-units-number arrays as described above. The linked list links each node representing a corresponding one of components constituting each of multiple products to be broken down in parallel. Each of the component-units-number arrays is provided for the component represented by the node and stores the number of units of each component in the product. The adjacency-list storage unit <b>30</b> is implemented by the main memory <b>90</b><i>c</i>, for example (see <figref idref="DRAWINGS">FIG. 15</figref>). In this embodiment, the explosion result list is used as an example of parallel explosion information and a parallel explosion list.
0113The explosion-result output unit <b>60</b> outputs information held in the explosion result list stored in the explosion-result-list storage unit <b>50</b> to a display mechanism <b>90</b><i>d</i>, for example (see <figref idref="DRAWINGS">FIG. 15</figref>). The explosion-result output unit <b>60</b> is implemented in a way that, for example, the CPU <b>90</b><i>a </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) loads a program stored in the magnetic disk device <b>90</b><i>g </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) onto the main memory <b>90</b><i>c </i>(see <figref idref="DRAWINGS">FIG. 15</figref>) and then executes the program.
0114Here, the parallel explosion unit <b>40</b> is described in more detail.
0115As illustrated in <figref idref="DRAWINGS">FIG. 13</figref>, the parallel explosion unit <b>40</b> includes an end-product extraction unit <b>41</b>, an assembly extraction unit <b>42</b>, an explosion determination unit <b>43</b>, an adjacency-list explosion unit <b>44</b>, a tree-specific-list storage unit <b>45</b>, and a component-units-number adding unit <b>46</b>.
0116The end-product extraction unit <b>41</b> extracts an end product from data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b>. In this embodiment, the end product is used as an example of a product.
0117From the data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b>, the assembly extraction unit <b>42</b> extracts an assembly directly constituting the end product extracted by the end-product extraction unit <b>41</b>. Specifically, the assembly extraction unit <b>42</b> extracts the assembly by performing tracing by use of a pointer from data of the end product in the data in the adjacency list structure. In this embodiment, the assembly is used as an example of a particular component directly constituting a particular product, and the assembly extraction unit <b>42</b> is provided as an example of a selection unit configured to select the particular component.
0118The explosion determination unit <b>43</b> determines whether or not a BOM tree having a vertex of the assembly extracted by the assembly extraction unit <b>42</b> is already broken down. In this embodiment, the explosion determination unit <b>43</b> is provided as an example of a determination unit configured to determine whether or not a BOM list of a particular component is already broken down.
0119When the explosion determination unit <b>43</b> determines that the BOM tree having the vertex of the assembly extracted by the assembly extraction unit <b>42</b> is not yet broken down, the adjacency-list explosion unit <b>44</b> breaks down the BOM tree having the vertex of the assembly by referring to the data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b>. Specifically, the adjacency-list explosion unit <b>44</b> breaks down the BOM tree by performing tracing by use of a pointer from data of the assembly in the data in the adjacency list structure, and thereby generates a tree-specific list and an explosion result list. In this embodiment, the adjacency-list explosion unit <b>44</b> is provided as an example of an explosion unit configured to break down a BOM list of a particular component when the BOM list of the particular component is determined to be not yet broken down.
0120The tree-specific-list storage unit <b>45</b> stores the tree-specific list generated by the adjacency-list explosion unit <b>44</b> by breaking down the BOM tree. Note that the tree-specific list is a linked list in which a node representing the assembly is linked to each node representing a corresponding component in the BOM tree having the assembly as the vertex, as described above. Each node has the number of component units and information registered therein, the number of component units being of the component represented by the node, the information indicating a row of the component represented by the node in the explosion result list. In this embodiment, the tree-specific list is used as an example of BOM list explosion information and a BOM list explosion list.
0121When the explosion determination unit <b>43</b> determines that the BOM tree having the vertex of the assembly extracted by the assembly extraction unit <b>42</b> is already broken down, the component-units-number adding unit <b>46</b> adds the number of component units registered in each node under the assembly in the tree-specific list stored in the tree-specific-list storage unit <b>45</b> to the number of component units stored in a component-units-number array in a row specified based on the information registered in the node and in a column of the end product. In this embodiment, the component-units-number adding unit <b>46</b> is provided as an example of an adding unit configured to, when the determination unit determines that a BOM list of a particular component is already broken down, add the number of component units included in BOM explosion information to the number of component units in parallel explosion information.
0122Operation of Parallel Explosion Apparatus
0123In the parallel explosion apparatus, the BOM-tree explosion unit <b>20</b> firstly reads all the data for parallel explosions stored in the BOM list from the BOM-tree storage unit <b>10</b> to break down the data into an adjacency list structure, and stores data in the adjacency list structure in the adjacency-list storage unit <b>30</b>. Next, the order of breaking down end products to be broken down is determined so that assemblies at one level lower than the end products can be extracted in turn. This can be achieved by providing data of the end product in the data of the adjacency list structure with data indicating the explosion order.
0124On the assumption that such processing is already performed, the parallel explosion unit <b>40</b> starts an operation.
0125<figref idref="DRAWINGS">FIG. 14</figref> is a flowchart showing an operation example of the parallel explosion unit <b>40</b>.
0126In the parallel explosion unit <b>40</b>, the end-product extraction unit <b>41</b> firstly determines whether or not there is left an end product to be broken down (Step <b>401</b>). When the parallel explosion unit <b>40</b> determines that there is left an end product to be broken down, the end-product extraction unit <b>41</b> extracts the end product from the data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b> (Step <b>402</b>).
0127After the end-product extraction unit <b>41</b> extracts the end product, the assembly extraction unit <b>42</b> determines whether or not there is left an assembly at one level lower than the end product (Step <b>403</b>). When determining there is left an assembly, the assembly extraction unit <b>42</b> extracts the assembly from the data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b> (Step <b>404</b>).
0128After the assembly extraction unit <b>42</b> extracts the assembly, the explosion determination unit <b>43</b> determines whether or not a BOM tree having a vertex of the extracted assembly is already broken down (Step <b>405</b>). This can be achieved, for example, by providing data of the assembly in the adjacency list structure with a flag indicating whether or not the BOM tree having the assembly as the vertex is already broken down.
0129When the assembly extraction unit <b>42</b> determines that the BOM tree is not yet broken down as a result, the adjacency-list explosion unit <b>44</b> refers to data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b> and thereby breaks down the BOM tree having the vertex of the assembly extracted in Step <b>404</b>.
0130In other words, the adjacency-list explosion unit <b>44</b> firstly determines whether or not there is left a component to be broken down in the BOM tree (Step <b>406</b>). When determining that there is left a component to be broken down in the BOM tree, the adjacency-list explosion unit <b>44</b> extracts the component from the data in the adjacency list structure stored in the adjacency-list storage unit <b>30</b> (Step <b>407</b>). Note that in the examples in <figref idref="DRAWINGS">FIGS. 7A to 12</figref>, assemblies are also registered in the tree-specific list and the explosion result list, and thus an assembly is extracted at this timing. However, the operation may also be designed not to extract the assembly, but to extract only each component constituting the assembly. The order of extracting the components may be based on the width-priority search shown in <figref idref="DRAWINGS">FIG. 11</figref> or the depth-priority search shown in <figref idref="DRAWINGS">FIG. 12</figref>.
0131Next, the adjacency-list explosion unit <b>44</b> registers the component extracted in Step <b>407</b> in the tree-specific list having the vertex of the assembly extracted in Step <b>404</b> (Step <b>408</b>). Specifically, the adjacency-list explosion unit <b>44</b> sets a node representing the component in the tree-specific list and records the number of component units of the component in the node. Then, the tree-specific list is recorded in the tree-specific-list storage unit <b>45</b>.
0132The adjacency-list explosion unit <b>44</b> also searches the explosion result list stored in the explosion-result-list storage unit <b>50</b> to find a position allowing merging or insertion of the component extracted in Step <b>407</b> into the explosion result list (Step <b>409</b>). Specifically, when the component extracted in Step <b>407</b> is already registered in the explosion result list, the registered position is used as a position allowing the merging of the component. When the component extracted in Step <b>407</b> is not yet registered in the explosion result list, a position determined in accordance with a predetermined rule is used as the position allowing the insertion of the component. Then, the component is registered in the explosion result list at the position found as the result of the search (Step <b>410</b>).
0133Subsequently, the adjacency-list explosion unit <b>44</b> records the registration position in a node representing the component in the tree-specific list stored in the tree-specific-list storage unit <b>45</b>, the registration position being of the component in the explosion result list stored in the explosion-result-list storage unit <b>50</b> (Step <b>411</b>). Then, the processing returns to Step <b>406</b>.
0134In contrast, when determining in Step <b>406</b> that there is no component to be broken down in the BOM tree, the adjacency-list explosion unit <b>44</b> considers that the BOM tree having the vertex of the assembly extracted in Step <b>404</b> is already broken down (Step <b>412</b>). This is performed by, for example, setting a flag of data of the assembly in data of the adjacency list structure to have information indicating that the BOM tree having the assembly as the vertex is already broken down. Then, the processing returns to Step <b>403</b> to be continued for another assembly.
0135Meanwhile, when it is determined in Step <b>405</b> that the BOM tree is already broken down, the component-units-number adding unit <b>46</b> refers to the tree-specific list stored in the tree-specific-list storage unit <b>45</b> and thereby adds the number of component units recorded in the tree-specific list having the vertex of the assembly extracted in Step <b>404</b> to the number of component units stored in the explosion result list stored in the explosion-result-list storage unit <b>50</b>.
0136Specifically, the component-units-number adding unit <b>46</b> firstly determines whether or not there is left a component to be processed in the tree-specific list (Step <b>413</b>). Then, when determining that there is left a component to be processed in the tree-specific list, the component-units-number adding unit <b>46</b> extracts the component from the tree-specific list (Step <b>414</b>). Note that in the examples in <figref idref="DRAWINGS">FIGS. 7A to 12</figref>, the number of component units of assemblies are also stored in the explosion result list, and thus an assembly is extracted at this timing. However, the operation may also be designed to not extract the assembly but to extract only each component constituting the assembly.
0137Next, the component-units-number adding unit <b>46</b> extracts information from the extracted component, the information indicating a position at which the component is registered in the explosion result list (Step <b>415</b>).
0138Thereafter, in a component-units-number array associated with the position of the explosion result list specified based on the extracted information, the component-units-number adding unit <b>46</b> adds the number of component units recorded in the extracted component to the number of component units stored in a column corresponding to the end product extracted in Step <b>402</b> (Step <b>416</b>). Then, the processing returns to Step <b>413</b>.
0139In contrast, when it is determined in Step <b>413</b> that there is no component to be processed in the tree-specific list, the processing returns to Step <b>403</b> to be continued for another assembly.
0140It should be noted that when it is determined in Step <b>403</b> that there is no assembly at one level lower than the end product, the processing returns to Step <b>401</b> to be continued for another end product.
0141When it is determined in Step <b>401</b> that there is no end product to be broken down, the processing is terminated.
0142When the explosion-result-list storage unit <b>50</b> stores therein the explosion result list generated by the parallel explosion unit <b>40</b> in this manner, the explosion result output unit <b>60</b> outputs the contents of the explosion result list to, for example, the display mechanism <b>90</b><i>d </i>(see <figref idref="DRAWINGS">FIG. 15</figref>).
0143Summary.
0144An explosion of the BOM list is generally performed for each vertex of BOM trees, and thus has conventionally been performed for each end product while using the end product as the vertex. For this reason, when an identical partial tree exists in the BOM tree, the same explosion has been repeated. Addition of merging processing of the same component for parallel explosions leads to the completely same result. However, comparative processing for the same merging is repeated, and the unnecessary repeated processing deteriorates the execution performance.
0145Generally, even though there are many variations in end products, there are not so many types in assemblies at one level lower than the end products. This is because common components are used. Hence, instead of breaking down BOM trees for each end product used as the vertex, each BOM tree is broken down from each assembly to hold an explosion result thereof. When multiple end products use the same assembly as a component, an explosion result which is already broken down and held is copied.
0146This enables explosion processing which have required hours in a case of many columns to be completed in minutes.
0147Computer Hardware Configuration of One Embodiment Application
0148<figref idref="DRAWINGS">FIG. 15</figref> shows an example of a preferable hardware configuration of such a computer. As illustrated therein, a computer includes the central processing unit (CPU) <b>90</b><i>a </i>which is computing means, the main memory <b>90</b><i>c </i>connected to the CPU <b>90</b><i>a </i>through a motherboard (M/B) chipset <b>90</b><i>b</i>, and the display mechanism <b>90</b><i>d </i>likewise connected to the CPU <b>90</b><i>a </i>through the motherboard (M/B) chipset <b>90</b><i>b</i>. To the M/B chipset <b>90</b><i>b</i>, a network interface <b>90</b><i>f</i>, the magnetic disk device (HDD) <b>90</b><i>g</i>, an audio mechanism <b>90</b><i>h</i>, a keyboard/mouse <b>90</b><i>i</i>, and a flexible disk drive <b>90</b><i>j </i>are connected through a bridge circuit <b>90</b><i>e. </i>
0149The components in <figref idref="DRAWINGS">FIG. 15</figref> are connected via a bus. For example, the CPU <b>90</b><i>a </i>and the M/B chipset <b>90</b><i>b</i>, and the M/B chipset <b>90</b><i>b </i>and the main memory <b>90</b><i>c </i>are connected each other via a CPU bus. In addition, the M/B chipset <b>90</b><i>b </i>and the display mechanism <b>90</b><i>d </i>may be connected to each other via an accelerated graphics port (AGP). However, when the display mechanism <b>90</b><i>d </i>includes a video card supporting PCI Express, the M/B chipset <b>90</b><i>b </i>and this video card are connected via a PCI Express (PCIe) bus. When the network interface <b>90</b><i>f </i>is connected to the bridge circuit <b>90</b><i>e</i>, PCI Express, for example, can be used. Serial AT attachment (ATA), parallel transfer ATA or peripheral components interconnect (PCI), for example, can be used for the magnetic disk device <b>90</b><i>g</i>. Further, universal serial bus (USB) can be used for the keyboard/mouse <b>90</b><i>i </i>and the flexible disk drive <b>90</b><i>j. </i>
0150As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
0151Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
0152A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in a baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
0153Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including, but not limited to, wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
0154Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
0155Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
0156These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
0157The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
0158The present invention has been described by using the above-described embodiments. However, the technical scope of the present invention is not limited to the embodiment. It is apparent to those skilled in the art that various changes can be made in the embodiment and alternative embodiments can be employed without departing from the spirit and scope of the present invention.
0159The present invention enables high-speed processing for parallel explosions of BOM lists of multiple products in a way that the number of units of each of components constituting each of the multiple products is arranged in an area corresponding to the component, even when the number of the products is large.
0160The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Contents4
17 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2015113388A1 | Cited by | United States of America | Pre-grant |
| JP2001142929A | Cites | Japan | Applicant |
| JP2002073708A | Cites | Japan | Applicant |
| US2003126024A1 | Cites | United States of America | Search report |
| JP2003281197A | Cites | Japan | Applicant |
| JP2003281199A | Cites | Japan | Applicant |
| JP2003281203A | Cites | Japan | Applicant |
| US2004098151A1 | Cites | United States of America | Search report |
| US2004181506A1 | Cites | United States of America | Search report |
| US2004193500A1 | Cites | United States of America | Search report |
| US2004243491A1 | Cites | United States of America | Search report |
| US2005080690A1 | Cites | United States of America | Search report |
| US2005125311A1 | Cites | United States of America | Search report |
| US2005131779A1 | Cites | United States of America | Search report |
| US2005154704A1 | Cites | United States of America | Search report |
| US2005273401A1 | Cites | United States of America | Search report |
| US2005278296A1 | Cites | United States of America | Search report |
| US2005283412A1 | Cites | United States of America | Search report |
| US2006116937A1 | Cites | United States of America | Search report |
| US2006190364A1 | Cites | United States of America | Search report |
| US2006212151A1 | Cites | United States of America | Search report |
| US2007117567A1 | Cites | United States of America | Search report |
| US2007282779A1 | Cites | United States of America | Search report |
| US2007288306A1 | Cites | United States of America | Search report |
| US2008021797A1 | Cites | United States of America | Search report |
| US2008040186A1 | Cites | United States of America | Search report |
| US2008114660A1 | Cites | United States of America | Search report |
| US2008126788A1 | Cites | United States of America | Search report |
| US2008215410A1 | Cites | United States of America | Search report |
| US2008297504A1 | Cites | United States of America | Search report |
| US2009125414A1 | Cites | United States of America | Search report |
| US2009216357A1 | Cites | United States of America | Search report |
| JP2009265706A | Cites | Japan | Applicant |
| US2009276275A1 | Cites | United States of America | Search report |
| US2009281651A1 | Cites | United States of America | Search report |
| US2010057729A1 | Cites | United States of America | Search report |
| US2010082138A1 | Cites | United States of America | Search report |
| US2010153154A1 | Cites | United States of America | Search report |
| US2010161364A1 | Cites | United States of America | Search report |
| US2010161365A1 | Cites | United States of America | Search report |
| US2011112679A1 | Cites | United States of America | Search report |
| US2011246250A1 | Cites | United States of America | Search report |
| US2011246256A1 | Cites | United States of America | Search report |
| US2012204104A1 | Cites | United States of America | Search report |
| US2012233533A1 | Cites | United States of America | Search report |
| US2012317543A1 | Cites | United States of America | Search report |
| US2013036221A1 | Cites | United States of America | Search report |
| US2013054427A1 | Cites | United States of America | Search report |
| US2013144416A1 | Cites | United States of America | Search report |
| US2013227504A1 | Cites | United States of America | Search report |
| US2013246451A1 | Cites | United States of America | Search report |
| US2013246481A1 | Cites | United States of America | Search report |
| US2014031966A1 | Cites | United States of America | Search report |
| JP3470248B2 | Cites | Japan | Applicant |
| JP4027904B2 | Cites | Japan | Applicant |
| US5197001A | Cites | United States of America | Search report |
| US5307261A | Cites | United States of America | Search report |
| US5434791A | Cites | United States of America | Search report |
| US5970465A | Cites | United States of America | Search report |
| US6041268A | Cites | United States of America | Search report |
| US6226561B1 | Cites | United States of America | Search report |
| US6516301B1 | Cites | United States of America | Search report |
| US6823226B2 | Cites | United States of America | Search report |
| US6885902B2 | Cites | United States of America | Search report |
| US7096173B1 | Cites | United States of America | Search report |
| US7512553B2 | Cites | United States of America | Search report |
| US7558793B1 | Cites | United States of America | Search report |
| US7593885B2 | Cites | United States of America | Search report |
| US7610259B2 | Cites | United States of America | Search report |
| US7610286B1 | Cites | United States of America | Search report |
| US7653452B2 | Cites | United States of America | Search report |
| US7801916B1 | Cites | United States of America | Search report |
| US7933673B2 | Cites | United States of America | Search report |
| US8015052B2 | Cites | United States of America | Search report |
| US8050789B2 | Cites | United States of America | Search report |
| US8086337B1 | Cites | United States of America | Search report |
| US8600841B2 | Cites | United States of America | Search report |
| JPH0950459A | Cites | Japan | Applicant |
| JPH11203327A | Cites | Japan | Applicant |
| JPH11213007A | Cites | Japan | Applicant |
| US20030126024A1 | Cites | United States of America | Search report |
| US20040098151A1 | Cites | United States of America | Search report |
| US20040181506A1 | Cites | United States of America | Search report |
| US20040193500A1 | Cites | United States of America | Search report |
| US20040243491A1 | Cites | United States of America | Search report |
| US20050080690A1 | Cites | United States of America | Search report |
| US20050125311A1 | Cites | United States of America | Search report |
| US20050131779A1 | Cites | United States of America | Search report |
| US20050154704A1 | Cites | United States of America | Search report |
| US20050273401A1 | Cites | United States of America | Search report |
| US20050278296A1 | Cites | United States of America | Search report |
| US20050283412A1 | Cites | United States of America | Search report |
| US20060116937A1 | Cites | United States of America | Search report |
| US20060190364A1 | Cites | United States of America | Search report |
| US20060212151A1 | Cites | United States of America | Search report |
| US20070117567A1 | Cites | United States of America | Search report |
| US20070282779A1 | Cites | United States of America | Search report |
| US20070288306A1 | Cites | United States of America | Search report |
| US20080021797A1 | Cites | United States of America | Search report |
| US20080040186A1 | Cites | United States of America | Search report |
4 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2011180999 | Japan | – | |
| 2011180999 | Japan | A |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2013054427A1 | United States of America | A1 | |
| JP2013045186A | Japan | A | |
| US8965797B2This record | United States of America | B2 | |
| JP5852361B2 | Japan | B2 |
54 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Correspondence Address ChangeC.AD | C.AD | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Acknowledgement of Priority PapersMP327 | MP327 | |
| Priority Paper AcknowledgementP327 | P327 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Supplemental ResponseSA.. | SA.. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| New or Additional Drawing FiledC614 | C614 | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Notice of Restarted Response PeriodMNRES | MNRES | |
| Letter Restarting Period for Response (i.e. Letter re References)NRES | NRES | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Mail Interview Summary - Examiner Initiated - TelephonicMEXET | MEXET | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 8965797
- Application
- 13554353
Titles
- English
- Explosions of bill-of-materials lists
Patent term adjustment
- A delay
- +120 daysthe office missed an examination deadline
- Applicant delay
- −61 days
- Net adjustment
- 59 days
Classification
- CPC, 9
- G06Q10/0875
- G06Q10/06
- G06Q10/087
- G06Q10/08
- G06Q30/04
- G06Q30/06
- G06Q40/10
- G06Q20/203
- G06Q20/202
- IPC, 10
- A01K5 02
- G06F17 50
- G06G1 14
- G06Q20 00
- G06Q10 08
- G06Q10 06
- G06Q30 04
- G06Q40 00
- G06Q20 20
- G06Q30 06