| Disaggregation of Revenue [Table Text Block] |
| | | Three Months Ended April 30, | |
| | | 2022 | | | 2021 | |
| | | Sales | | | % to Total | | | Sales | | | % to Total | |
| Products | | | 2,912 | | | | 9 | % | | $ | 2,587 | | | | 10 | % |
| | | | | | | | | | | | | | | | | |
| Specialty Piping Systems and Coating | | | | | | | | | | | | | | | | |
| Revenue recognized under input method | | | 10,617 | | | | 34 | % | | | 9,952 | | | | 41 | % |
| Revenue recognized under output method | | | 17,693 | | | | 57 | % | | | 11,884 | | | | 49 | % |
| Total | | $ | 31,222 | | | | 100 | % | | $ | 24,423 | | | | 100 | % |
|
| Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block] |
| (In thousands) | | April 30, 2022 | | | January 31, 2022 | |
| Costs incurred on uncompleted contracts | | $ | 23,326 | | | $ | 20,021 | |
| Estimated earnings | | | 13,531 | | | | 12,030 | |
| Earned revenue | | | 36,857 | | | | 32,051 | |
| Less billings to date | | | 32,026 | | | | 31,019 | |
| Costs in excess of billings, net | | $ | 4,831 | | | $ | 1,032 | |
| Balance sheet classification | | | | | | | | |
| Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts | | $ | 6,004 | | | $ | 2,309 | |
| Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts | | | (1,173 | ) | | | (1,277 | ) |
| Costs in excess of billings, net | | $ | 4,831 | | | $ | 1,032 | |
|