Semiloops were allowed in NewViews up to version 2.08 but they are deprecated from version 2.09 on. In short, this means that if a database already has semiloops then it can continue to have them and you can even create new semiloops in such a database. But when you create a new database, semiloops are not allowed in it. Furthermore, if you eliminate all semiloops from a database, then adding new semiloops to that database will no longer be allowed.
This command searches for semiloops in the total-to structure of a NewViews set of books.
Whenever you are positioned on a table of accounts (blue) you can issue the Tools>Totalto>Semiloop>Search command and a prompt like the one shown below pops up.
You can count the semiloops in a database and display them in graphic form as shown below. There are commands that display all semiloops or which stop after one or a given number of semiloops have been found. The options command enables you to control how the semiloops are displayed, i.e. colors, fonts, fields, etc.
Note in order to scrub a database for semiloops requires checking all accounts, and hence requires that you have been granted access to the root account.
It is also recommended that you count the semiloops first and do not attempt to display all semiloops when there are a very large number of semiloops, say more than 100.
The graph below is a semiloop. There are two paths from D to A, one through B and one through C.
A semiloop occurs whenever there is more than one path from one node to another. The graph below shows that semiloops can include many nodes.
The paths shown in red, B <- C <- E <- H and B <- G <- H, form a semiloop.
You might be wondering why a semiloop isn't just called a loop. But a loop in a directed graph is different from a semiloop. Whereas a semiloop has more than one path between two nodes as described above, a loop is a cycle where you can follow the arrows around from a node back to itself as shown below.
NewViews has never allowed loops in the total-to structure so there are no equivalent commands to search for loops.
A semiloop in the total-to structure means that one account is totaling to another more than once. This does not result in duplicate postings in the account that is totaled to more than once. NewViews automatically ensures that each posting appears only once in any account. So, for example, semiloops will not typically cause a set of books to go out of balance.
What semiloops may do, however, is result in amounts that do not appear to add up correctly, say on a report. The graph below shows a total-to structure for a sub-section of a set of books.
If you look at the amounts you will see that they total correctly and everything is ok.
Now, let's total KITCHENAID to FRIDGES. This is of course a questionable thing to do because KITCHENAID already totals to OVENS, but let's see what happens. The result is the semiloop shown with red arrows in the graph below:
Look closely at the amounts. FRIDGES, shown in yellow, now has an amount of 3.00 which is correct because three accounts, each with amount 1.00, total to it.
But the amount for APPLIANCES, i.e. 6.00, is unchanged from the previous graph. Although any posting in KITCHENAID will appear in both FRIDGES and OVENS, and although both of these accounts total to APPLIANCES, the posting will appear only once in APPLIANCES.
Furthermore, APPLIANCES, with an amount of 6.00, still totals the same (correct) amount forward to the financial statements. So the semiloop does not cause statements such as the balance sheet or trial balance to go out of balance. The semiloop below APPLIANCES did not affect its amount, or the amounts of accounts that it in turn totals to. Such duplication is automatically eliminated by NewViews.
However, the problem caused by the semiloop is that the amount for APPLIANCES, i.e. 6.00, does not appear to be the correct total of FRIDGES, OVENS, and TOASTERS, whose sum should be 7.00 according to the total-to structure.
So a problem with semiloops is that a total account may not display an amount that appears to be the correct total of the accounts that total to it. Your financial statements may balance, and yet you could still have a problem that users tend to report as a bug in NewViews. But it isn't a bug in NewViews. It is a problem in the total-to structure of the set of books.
We have indicated that semiloops tend to be a bad thing so why were they ever allowed?
First, the developers of NewViews restrict operations only with reluctance and at the time, there didn't seem to be a compelling reason to prohibiting semiloops.
Second, errors reporting semiloops could be annoying when re-totaling accounts.
Third, semiloops were allowed in NewViews 1.XX and to ease conversion, NewViews 2 continued to allow semiloops.
Although semiloops seemed to be harmless in theory, and although this remains largely true, practical experience has often shown otherwise. Users, even experienced users, sometimes total their books into a tangled mess of spaghetti when semiloops are allowed. Exploring the total-to structure of a database using tools such as Tools>Totalto>Graph>Above/Below conveys very little useful information when they display this tangled mess of spaghetti.
Also compatibility with NewViews 1 (which allows semiloops) is not an issue as long as NewViews 2 is capable of allowing semiloops under these and other special circumstances.
And finally there are underlying theoretical simplifications that NewViews can take advantage of, thus allowing accounts to be re-totaled much more quickly, if semiloops are prohibited.
This command lets you search for semiloops in the total-to structure of a set of books.
A semiloop occurs when you total one account to another more than once. Position on a total account high in the total-to structure, such as a balance sheet or trial balance proof account, issue this command, and a list of semiloops occurring below the account in the total-to structure, if any, is displayed. Each semiloop is displayed in graphic form as shown below.
In the example above, INCOME totals to EQUITY and also to LE, i.e. liabilities and equity. This is unnecessary because EQUITY already totals to LE, and therefore there is a semiloop.
Semiloops are not particularly harmful because NewViews automatically eliminates duplication on accounts that are totaled-to more than once. However, they do reflect a degree of sloppiness in the total-to structure, and they can also lead to amounts on reports that do not seem to add up correctly. Therefore you should use this command to identify and remove all semiloops from your total-to structure.