[NetSuite] 使用 SuiteQL 模組搭配 Query 方式查詢資料時的一些方法筆記

本篇文章更新時間:2024/09/22
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


NetSuite 可以使用 JavaScript 語言來做各種延伸開發的方法。但是說實在,要撈取資料的時候使用的 Search 模組的操作,對我來說不夠直覺。

後來發現有 SuiteQL 模組可以用的時候真是感動萬分XD

分頁方法

不過也是發現當撈取大量(大於 4000 筆)的資料時會有限制,也因為這方法背後有搭配其他組合的功能,不能用 LIMITOFFSET 的關鍵字來做切分頁。

不過這問題肯定是有人煩惱過,結果查到這篇「NetSuite: Paginating SuiteQL Query Results」看到 ROWNUM 這關鍵字。

改寫一下 Query 如下:

SELECT
    *
FROM
    (
        SELECT
            ROWNUM AS RN,
            *
        FROM
            (
                置放任何查詢的 Query
            )
    )
WHERE
    ( RN BETWEEN 10 AND 20 )

這樣包裝過的 Query 語法就可以辦到查詢一個區間的作法來達到分頁效果。

數值轉換方法

再來另一個絕對要筆記的就是數值轉換方法。由於 Query 直接取得資料表的資料,預設都是原始紀錄資料。

Search 模組中的方法有個 .getText().getValue() 方法可以前得欄位原本的數值資料,或是數值對應關聯資料的名稱欄位值。

按照傳統 Query 的作法碰到數字對應其他關聯欄位的時候,只能補上其他搜尋條件來取得對應顯示名稱。

在 Query 下可以搭配 BUILTIN.DF 內建的方法來協助這個轉換,只是想出一個報表沒有其他操作的時候就很方便!

測試 Query 的工具

如果每次要測試 Query 都要寫 script 上傳,也是很不方便。就有大大 Tim Dietrich 開源 SuiteQL Query Tool 這套工具。

真得也是必裝!

其他像是如果給外部程式呼叫下 Query 的方法,Tim Dietrich 也有一個開源的 script 可以參考這篇 NetSuite: Introducing the SuiteQL Query API

主要是透過 HTTP 傳送 Query 給 API 執行的這個方法包裝:

response.rows = query.runSuiteQL( { query: request.query, params: request.params } ).asMappedResults();

對於介接其他服務要取得 ERP 內資料,這方法也是必裝~


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon