與呼叫從一個靈巧SQL過程。該過程包含光標。這個遊標被設置爲調用另一個調用Dynamics GP過程'taComputerChecklineinsert'的過程。工作應該是整個過程必須在工資單交易條目中插入交易。只有固定數量的42個交易被插入。我有超過42筆交易。如果我使用相同的參數從SQL服務器執行相同的過程,它會提供所需的結果。當我從靈巧來電時,問題就出現了。什麼可能是錯誤的?......我一直在這上很長時間......並且無法弄清楚這個問題。GP PROC只執行42個交易 - 敏捷調用一個SQL過程包含我有問題光標
2
A
回答
1
終於解決了。它與兩個econnect程序中的任何一個都沒有關係,即'taCreatePayrollBatchHeaderInsert'和'taComputerChecklineinsert'。
它曾提出由於taCreatePayrollBatchHeaderInsert批創建之前的SELECT語句。 select語句就位以選擇taCreatePayrollBatchHeaderInsert的參數。
當SELECT語句被註釋掉的代碼工作完全正常。
CREATE PROC [dbo].[GTG_PR_Create_ABS_Trx]
@CMPANYID INT
, @UPRBCHOR INT -- 1 = Computer Check , 2 = Manual Check
, @BACHNUMB CHAR(15)
, @EMPLOYID CHAR(15)
, @COMPTRTP SMALLINT -- Computer transaction type:1 = Pay code; 2 = Deduction; 3 = Benefit
, @SALCHG SMALLINT -- Salary change ; required if passing a salary pay code:1 = Reallocate dollars; 2 = Reallocate hours;3=Reduce dollars;4=Reduce hours;=5=Additional amount
, @UPRTRXCD CHAR(6) -- (OT , ABS)
, @TRXBEGDT DATETIME
, @TRXENDDT DATETIME
, @Amount NUMERIC(19 , 5) -- Amount
, @ProcessStatus INT OUT
, @ErrorState INT OUT
, @ErrString VARCHAR(255) OUT
AS
set @ErrorState = 0
set @ErrString = ''
-- Create batch if it doesn`t exist
IF NOT EXISTS(SELECT 1 FROM DYNAMICS..UPR10304 WHERE BACHNUMB = @BACHNUMB AND CMPANYID = @CMPANYID AND UPRBCHOR = @UPRBCHOR)
BEGIN
**--SELECT @BACHNUMB
-- ,@UPRBCHOR
-- ,@ErrorState
-- ,@ErrString**
EXEC taCreatePayrollBatchHeaderInsert
@I_vBACHNUMB = @BACHNUMB
, @I_vUPRBCHOR = @UPRBCHOR
, @O_iErrorState = @ErrorState OUT
, @oErrString = @ErrString OUT
-- Associate employee deduction code if association doesn`t exist
IF NOT EXISTS(SELECT 1 FROM UPR00500 WHERE EMPLOYID = @EMPLOYID AND DEDUCTON = @UPRTRXCD)
BEGIN
EXEC taCreateEmployeeDeduction
@I_vEMPLOYID = @EMPLOYID
, @I_vDEDUCTON = @UPRTRXCD
, @O_iErrorState = @ErrorState OUT
, @oErrString = @ErrString OUT
END
-- Create Transaction
EXEC taCreateComputerCheckLineInsert
@I_vBACHNUMB = @BACHNUMB
, @I_vEMPLOYID = @EMPLOYID
, @I_vCOMPTRTP = @COMPTRTP
, @I_vSALCHG = @SALCHG
, @I_vUPRTRXCD = @UPRTRXCD
, @I_vTRXBEGDT = @TRXBEGDT
, @I_vTRXENDDT = @TRXENDDT
, @I_vVARDBAMT = @Amount
, @O_iErrorState = @ErrorState OUT
, @oErrString = @ErrString OUT
END
GO
相關問題
- 1. 必須一個T-SQL存儲過程包含腳本支持的SqlClient交易?
- 2. 我只想過去3個月交易
- 3. 用HTML敏捷包C解析HTML標籤的問題#
- 4. MYSQL光標執行問題
- 5. 爲什麼我不能在帶有交易的另一個程序中調用與交易的過程?
- 6. 在敏捷工具包中執行多個JS答案
- 7. 只有一個命令的交易
- 8. HTML敏捷包
- 9. 執行SQL中只有一個存在
- 10. 使用敏捷包
- 11. 刪除按鈕觸發器不工作 - 敏捷動態GP
- 12. 微調+光標問題
- 13. SAS PROC SQL不包含一個語句中的多個值
- 14. plone.indexer和敏捷的問題
- 15. 與子程序調用SQL我有一個問題,而試圖執行的代碼的SQL線內嵌
- 16. HTML敏捷包
- 17. 有多個webservice調用有交易嗎?
- 18. 部署過程/敏捷
- 19. C#只有一個線程執行
- 20. 創建一個android sqlite包含一個表只有單行
- 21. 並行交易問題
- 22. 這個SQL過程有什麼問題?
- 23. SQL包含問題
- 24. 應用敏捷方法的問題
- 25. 交易問題
- 26. 交易問題
- 27. c#html敏捷包
- 28. 使用HTML敏捷包
- 29. HTML敏捷性包
- 30. Cookie HTML敏捷包?
我試圖從光標排除econnect過程調用taComputerChecklineinsert,光標工作完全正常的剩餘運作,因爲它插入所需數量的交易到表中。這就結束了從光標調用econnect proc沒有問題。它做的靈巧調用「taComputerChecklineinsert」 – msgpdev10 2014-12-07 07:52:39
的問題是與批創建,如果使用「taCreatePayrollBatchHeaderInsert」這PROC是制約交易的數量創造了一些東西。目前我嘗試通過手動創建批處理標題。那麼如果在調用taComputerChecklineinsert時指定了此批處理標題,則將插入所有必需的事務。 – msgpdev10 2014-12-07 12:39:47