I have changed the non inventory quantity decimal places in POP and it rolls forward correctly. Is there a script out there to update outstanding Purchase Orders to reflect the change as well?
*This post is locked for comments
I have changed the non inventory quantity decimal places in POP and it rolls forward correctly. Is there a script out there to update outstanding Purchase Orders to reflect the change as well?
*This post is locked for comments
Hi,
'Outstanding' purchase orders can mean a number of things. POs can be closed, but still reside in the file that would deem them 'outstanding'. You have to run through the 'Remove Completed Purchase Orders' routine to move closed or cancelled POs to the history table.
If you want to change ALL of the outstanding POs search the POP10110 for items with NONINVEN = 1 and then change the DECPLQTY field.
If you only want to change POs (or PO line items) that are not closed or cancelled, you'll also need to check PO10100.POSTATUS to determine the status of the entire PO, and/or the PO10110.POLNESTA to check the status of a particular line.
The values for the number of decimals is:
1=0 decimals
2=1 decimal
3=2 decimals
4=3 decimals
5=4 decimals
6=5 decimals
The values for the PO line or PO status are:
1=New
2=Released
3=Change Order
4=Received
5=Closed
6=Cancelled
So, if you changed the quantity to 3 decimals, and you only want to change POs that are not received, closed or cancelled at the PO level, the SQL statement would be similar to this:
UPDATE POP10110
SET DECPLQTY = 9
FROM POP10100 INNER JOIN
POP10110 ON POP10100.PONUMBER = POP10110.PONUMBER
WHERE (POP10110.NONINVEN = 1) AND (POP10100.POSTATUS < 4)
If you have received some of the NonInventory items, and you want to reflect the new qty decimals, you'll also need to update the POP10500 (Purchase Receipts Line Qtys) table.
Kind regards,
Leslie
I have ran into the same case previously, and it shall be noted than "Changing the decimal place setting won't change the decimal place for non-invenoried items already entered on documents " as stated on the warning message.
Therefore, I had to change it on the database level by setting the Quantity Decimal Place Field in POP10110 | Purchase Order Line accordingly. To limit your non-inventories items in POP10110, you need to filter the data set by the ( NONINEN = 1 )
The following Select Statement will return all your non-inventories items
SELECT * FROM POP10110 WHERE NONINVEN = 1
To update the quantity decimal place field, run the following update statement;
UPDATE POP10110
SET DECPLQTY = #QuantityDecimalPlaceValue
WHERE PONUMBER IN
(SELECT DISTINCT PONUMBER FROM POP10110 WHERE NONINVEN = 1)
As for the Quantity Decimal Value, it should be noted that the values stored in DB is not the same shown on the window, the following are the DECPLQTY values;
DB_Value Actual Decimal Place
1 0
2 1
3 2
4 3
5 4
6 5
For instance, if you want to have two decimal place like (10.22), you need to set the DECPLQTY = 3
Please ensure to run this on a test Dynamics GP Company before applying on Live environment in order to ensure that no negative ramification will be encountered.
Hope this helps.