Sometimes I feel like an idiot while standing behind such a strange issue! I been in a situation with one of my clients where they have a rare case that occur once a week or once every two weeks.
When they post the Receiving Batch, the posting screen is shown and never finalize posting, GP remain responding and the user can work, process monitor has nothing pending and everything looks like the transaction was successfully posted.
When returning back to the Receiving screen you will find that the transaction remain un-posted, posting it again will return tons of errors that duplicate document numbers are exist.
Investigating this issue further shown that transaction has the below impact:
1. GL Batch was created!
2. Payables invoice was created.
3. Receiving Posted Transactions Table Header (POP30300) is affected while Receiving Posted Transactions Line Items Table (POP30330) was not.
4. Inventory Cost Layers Table (IV10200) was partially affected.
5. Inventory Transactions History Table (IV30300) was partially affected.
Client used to perform manual operation like creating an inventory adjustment with differences to fix this miss, but this actually will cover the issue but will not correct the transaction.
Current installation with existing customizations done internally does not allow for application reinstallation specially since the client is using terminal services environment, therefore we been unable to identify the actual reason behind this issue which most probably due to a corrupted dictionaries that cause such an error.
the good thing is I gave them the script below which will remove the effect of posting the transaction from the inventory and allow to repost the transaction which will be posted correctly on the second try! For sure they will still have to manually void the AP invoice and will need to manually delete the GL Journal.
CREATE PROCEDURE FIXPOHANG (
@POPRCTNM VARCHAR(500)
)
AS
DECLARE @BACHNUMB VARCHAR(500)
SELECT @BACHNUMB = BACHNUMB FROM POP30300
DELETE FROM POP30300
WHERE POPRCTNM =@POPRCTNM
DELETE FROM POP30310
WHERE POPRCTNM =@POPRCTNM
DELETE FROM POP30330
WHERE POPRCTNM =@POPRCTNM
DELETE FROM POP30700
WHERE POPRCTNM =@POPRCTNM
DELETE FROM POP30390
WHERE POPRCTNM = @POPRCTNM
DELETE FROM IV30300
WHERE DOCNUMBR = @POPRCTNM
DELETE FROM IV10200
WHERE RCPTNMBR = @POPRCTNM
DELETE FROM SEE30303
WHERE DOCNUMBR = @POPRCTNM
DELETE FROM DYNAMICS..SY00800
WHERE BACHNUMB= @BACHNUMB
DELETE FROM DYNAMICS..SY00801
UPDATE SY00500 SET MKDTOPST='0', BCHSTTUS='0', USERID=''
WHERE BACHNUMB = @BACHNUMB
Hope that this helps people have such an issue.
Regards,
--
Mohammad R. Daoud MVP - MCT
MCP, MCBMSP, MCTS, MCBMSS
+962 - 79 - 999 65 85
me@mohdaoud.com
www.mohdaoud.com