簡體   English   中英

是否可以通過SuiteScript獲取銷售訂單中項目行的系統信息(系統說明或更改歷史記錄)?

[英]Is there way to get System information (System Notes or History of changes) for the item line in a sales order via SuiteScript?

我正在為銷售訂單編寫簡單的用戶事件腳本(在本例中使用beforeSave條目),該腳本讀取其中的每個項目行,並根據給定的情況更改項目行中的某些值。

我遇到的問題:

如果管理員(角色)現在或某個時間之前更改了銷售訂單中項目行的某些字段,則此字段不應由我的腳本更改。 通過N /運行時模塊,我可以獲得當前的用戶角色,並驗證他是否剛剛更改了某些內容,但這對當前編輯“會話”之前所做的更改沒有幫助。

我如何知道是否有任何管理員更改了某些內容? 我可以獲取銷售訂單中每個項目行的一些歷史記錄/日志/系統信息嗎?

提前致謝

如果僅當管理員是最初設置值的管理員時,如果需要防止代碼更改子列表(在您的情況下為銷售訂單中的項目列表)中的值,那么我建議使用自定義記錄來存儲管理員更改的每個事務的字段或數據的列表。 例如,在創建銷售訂單時,您的beforeSubmit用戶事件將創建此數據跟蹤自定義記錄,並設置一些字段以將其與您的銷售訂單一對一關聯(這意味着每個銷售訂單都有1個自定義記錄,但是最多不超過1個,您甚至可以將該銷售記錄中的自定義記錄的內部ID存儲在一個隱藏字段中,這樣就不必在以后的編輯中查找它。 在您的自定義記錄中,您可以使用長文本字段(我相信限制為100萬個字符)來存儲JSON數據,該數據表示由管理員設置/更改的字段或值。 在每次編輯時,您的用戶事件代碼應檢查與銷售訂單交互的用戶角色,並相應地讀取/更新自定義記錄。 這樣就可以進行創建,編輯,復制等任何操作(不可能對銷售訂單上的項目列表進行內聯編輯,因此無需考慮這些內容)。 這將需要大量的代碼才能進行每次查找和檢查,但是自定義記錄的速度非常快,並且使用的治理很少,因此用戶不會看到任何明顯的性能損失。 我認識到這不是理想的解決方案,但是它比“總是有用的” NetSuite“支持”解決方案要可行得多。 祝您好運,希望對您有所幫助!

Todd的解決方案可以工作,但是獲取所有字段ID並將其存儲在自定義記錄中有點過頭,因為您只是想知道某些字段是否發生更改。

使客戶端腳本在Field Changed上打鈎的復選框上打勾會更簡單。 客戶端腳本將檢測它是否是您要跟蹤的列或字段(如果需要)。 如果是該字段,則只需將復選框設置為“ T”。 然后,在計划的腳本上,您只需在更新記錄之前選中此復選框即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM