1. 程式人生 > >NC public private 端呼叫動作指令碼 推單報錯 空指標

NC public private 端呼叫動作指令碼 推單報錯 空指標

業務場景:NC裡建立webservice 接收 第三方系統資料 將系統內的 自由態訂單 填充第三方資料後 呼叫動作指令碼推成 【稽核】態。
前期測試 在client增加測試按鈕 模擬推單 都沒有問題。模擬過程中碰見一個問題 推單不成功
原因:某欄位 沒有賦值導致 建議推單前 先從庫中查詢一條正常單據 做資料比對 根據正常資料填充VO。

最怪異的問題:呼叫按鈕推單正常後 開始寫webservice 但是結果是推單錯誤 報空指標異常。但同樣的填充資料 推單操作類。
劃重點 原因如此:
前端client 呼叫時 NC系統會預設填充一些 作為校驗使用 例如 所屬組織 操作人
但是在public private呼叫時 跳過了 導致無法獲取到該值 所以導致報空指標異常 也就導致推單錯誤。
這裡寫圖片描述

左圖:在private中通過webservice 呼叫推單
右圖:在client中聽過新增測試按鈕 呼叫推單。紅色剪頭標註的就是問題原因。

解決:

/*設定所屬集團*/
InvocationInfoProxy.getInstance().setGroupId(headVO.getPk_group());
/*設定操作人*/
InvocationInfoProxy.getInstance().setUserId(psnByCode.getPk_psndoc());

設定完以上內容後 再呼叫推單 一切OK 。。妥妥的。。。