| saveProductAttributeItems(TransactionLog, ProcessSpecInfo, List, boolean) |  | 0% |  | 0% | 8 | 8 | 23 | 23 | 1 | 1 |
| buildProductAttributeItems(List, ProductAttributeInfo, Integer, List) |   | 12% |   | 10% | 5 | 6 | 22 | 25 | 0 | 1 |
| insertProductAttributeItems(TransactionLog, List) |  | 0% |  | 0% | 3 | 3 | 15 | 15 | 1 | 1 |
| updateStatusOfProductAttributeItems(TransactionLog, List, Ecn, String) |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
| updateProductAttributeItems(TransactionLog, List) |  | 0% |  | 0% | 3 | 3 | 9 | 9 | 1 | 1 |
| addProductAttributeItems(List, ProcessSpecItem, Long, String) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| saveProductAttribute(TransactionLog, ProcessSpecInfo, List, List, boolean) |   | 70% |   | 50% | 4 | 6 | 7 | 24 | 0 | 1 |
| buildProductAttributeItemTemplates(List) |   | 45% |   | 75% | 1 | 3 | 7 | 12 | 0 | 1 |
| getProductAttributeItems(Long, Integer, Long, Integer) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| queryProductAttributeHistories(ProductAttributeHistoryQueryDto) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| deleteProductAttributeItems(TransactionLog, List) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| queryProductAttributeItems(ProductAttributeFormDto) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| saveProductAttribute(TransactionLog, ProcessSpecInfo, List, List) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getProductAttributeItems(ProductAttributeItem) |   | 69% |   | 50% | 1 | 2 | 1 | 5 | 0 | 1 |
| buildProductAttributeInfos(ProcessSpecInfo, List) |  | 100% |  | 100% | 0 | 2 | 0 | 12 | 0 | 1 |
| getProductAttributeItems(Long, Integer) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| saveProductAttributeWithReset(TransactionLog, ProcessSpecInfo, List, List) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| ProductAttributeItemManagerImpl() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |