If you have the option marked on the workflow where at least one approver is always required, then it will attempt to route the workflow to first the alternate final approver if one is specified and if not, then to the overall workflow manager, as a manager is always required, if one or both of the following occurs:
1. In this case, it looks at the workflow conditions and doesn't deem them as true, thus requiring approval, so it doesn't route to the specified approver, but instead will go to the alt approver or workflow manager.
2. This can also happen, though less so, if workflow can't validate the approver(s) as being valid, so it routes the workflow to the alt approver or workflow manager. Though in most cases, if this is true, it will reject the workflow outright.
When you add the conditions and the workflow is routed to the workflow manager, what does it show in the workflow history for that requisition? Does it show the step actually requiring approval based on the conditions entered, or does it show 'no action needed' before being routed to the workflow manager?
If it is a matter of the conditions not working, so that workflow doesn't think approval is needed based on those conditions, what we would do is run a SQL Profiler trace capturing this issue, then look for a qdCreateSQL procedure which Workflow uses to generate a SQL SELECT query, which will return either a value of '1' (requires approval) or '0' (no approval needed), to find the SELECT statement being generated and then run it manually in SQL against that company database to determine why it's returning an incorrect value.
One other thing I'd like to verify is whether or not you've used or are currently using the Workflow Condition Editor or not?
I.e. have you entered the following line in your Dex.ini file and launched Dynamics GP with it? QueryDesignerAllFuncitonality=TRUE
The reason I ask is because we've seen an issue when extending the functionality of the Workflow Condition window with this line in Dex.ini, which causes GP to generate a script that runs to get the '1' or '0' value I mentioned above to determine whether approval is needed or not, but what happens is that it adds lines for GL in the script, which isn't related to requisitions at all, thus the script will always return a '0' value, thus deeming it as no approval needed based on the conditions.
If you are using this extended functionality, on your requisition workflow steps, click on the lookup button for the approval condition to open the 'Workflow Condition Editor' window.
In this window, you'll see a series of tabs across the top which you normally wouldn't have by default.
Click the 'Link Tables' tab and it should show you the tables and join statements that it is using to pull the approval condition information from.
What you want to look for, is to see if you have the following lines in your condition script:
Purchasing Requisition Line INNER JOIN GL_Account_Index_MSTR WHERE
Purchasing Requisition Line.Inventory Index = GL_Account_Index_MSTR.Account Index
If you do, make a copy of the entire script as a backup, and then remove these two lines, save changes and then see if your purchase requisition workflow flows as expected depending on what approval conditions you have setup.
Please let me know if you have any questions on anything I mentioned here.
Thank you,