分析
上次更新:2026/10/14QV2QS 會自動掃描每個 QlikView 文件,找出移轉後可能需要注意的功能和模式。部分發現項目屬於資訊性質。其他發現會指出不受支援的功能,或在 Qlik Sense 中運作方式不同的部分。結果會顯示在執行摘要的 其他發現 區段,以及 Excel 報告的 分析 工作表中。
分析與轉換報告是分開的。轉換報告可衡量物件的轉換成效。此分析識別出 Qlik Cloud 部署的其他相容性考量。
掃描哪些內容
QV2QS 會檢查 QlikView 文件的七個區域。
隱藏的指令碼
QlikView 文件可包含在可見指令碼之前執行的隱藏載入指令碼。隱藏的指令碼儲存在 QVW/QVF 二進位檔案內的壓縮區塊中,且在 PRJ 資料夾中不可見。QV2QS 會從二進位檔案擷取隱藏的指令碼,並將其附加至 script.qvs 中可見的載入指令碼前端。當偵測到隱藏的指令碼時,「分析」工作表與執行摘要的「其他調查結果」區段會顯示一項資訊性調查結果。
載入指令碼模式
QV2QS 會掃描載入指令碼 (LoadScript.txt),以找出在移轉期間需要注意的陳述式與函數。當存在隱藏指令碼時,隱藏指令碼內容會包含在掃描中。某些陳述式在 Qlik Sense 中不受支援。其他模式可能需要路徑調整或替代選項做法。註解行和區塊註解已排除在掃描之外。
以下是偵測到的模式:
| 模式 | 描述 |
|---|---|
| 二進位載入 | 從另一個 QVW 檔案載入資料的 BINARY 陳述式。資料載入方式可能需要修改。 |
| 套件載入 | BUNDLE 或 INFO LOAD 將影像內嵌於 QVW 的陳述式。在 Qlik Sense 中不支援。 |
| InputField | INPUTFIELD 用於使用者資料輸入的陳述式。在 Qlik Sense 中不支援。 |
| Direct Discovery | 適用於即時資料來源連線的 DIRECT QUERY 陳述式。在 Qlik Sense 中不支援。 |
| 納入 | $(Include=...) 或 $(Must_Include=...) 對外部指令碼檔案的參照。檔案路徑可能需要調整。 |
| 命令 | 執行作業系統命令的 COMMAND 陳述式。在 Qlik Sense 中不支援。 |
| 執行 | 執行外部程式的 EXECUTE 陳述式。在 Qlik Cloud 中不支援。 |
| Image_Size | Image_Size 函數在 Qlik Sense 中不支援。 |
| GetCurrentField | GetCurrentField 函數在 Qlik Sense 中不支援。 |
| GetExtendedProperty | GetExtendedProperty 函數在 Qlik Sense 中不支援。 |
| 輸入平均值 / 輸入總和 | 輸入欄位的彙總函式。在 Qlik Sense 中不支援。 |
| MsgBox | 適用於對話方塊的 MsgBox 函式。在 Qlik Sense 中不支援。 |
| NoOfReports | NoOfReports 函數在 Qlik Sense 中不支援。 |
| 報表註解 / 報表識別碼 / 報表名稱 / 報表編號 | 報表相關功能。在 Qlik Sense 中不支援。 |
每項結果都包含來自載入指令碼的行號和行文字。
文件屬性
QV2QS 會檢查 DocProperties.xml 是否有需要注意的文件層級功能。有些在 Qlik Sense 中不受支援。其他項目受支援,但需要手動設定,或運作方式有所不同。
| 屬性 | 描述 |
|---|---|
| 區段存取 | 列層級安全性已啟用。Qlik Sense 支援區段存取,但語法不同。 |
| 動態資料更新 | 已啟用動態資料更新。在 Qlik Sense 中不支援。 |
| Direct Discovery 模式 | Direct Query 模式是在文件層級啟用。在 Qlik Sense 中不支援。 |
| 警示 | 警示定義已存在。Qlik Sense 不支援警示。 |
| 文件開啟時動作 | 已定義文件層級的 OnOpen 觸發程序動作。需要手動重新建立。 |
| 文件 OnPostReload 動作 | 已定義文件層級的 OnPostReload 觸發程序動作。需要手動重新建立。 |
| 文件延伸 | 文件擴充功能已安裝。不支援 QVAccessibility 以外的擴充功能。 |
欄位屬性
QV2QS 會偵測已啟用 一律選取一個 屬性的欄位。此屬性是引擎層級的設定,無法透過 JSON 建置輸出套用。部署後,必須在 Qlik Sense 應用程式編輯器中手動套用該屬性。
VBA 巨集
QV2QS 會從 PRJ 資料夾讀取 Module.txt,並剖析所有 VBA Sub 與 Function 定義。針對每個巨集,分析會報告名稱、類型 (Sub 或 Function) 以及行數。
QV2QS 也會透過掃描每個物件 XML 檔案與 DocProperties.xml 來尋找叫用巨集的動作觸發程序,以交叉參照巨集叫用。交叉參照可指出哪些物件會叫用哪些巨集,以及這些物件所在的工作表。已定義但從未叫用的巨集會標記為未使用。
集合分析中的運算式引號
QV2QS 會掃描所有物件運算式(維度、量值、顯示條件、色彩運算式、文字運算式)與變數定義,以尋找在 Qlik Sense 中運作方式不同的集合分析引號模式。QlikView (2017 年 11 月之前) 將集合修飾詞中的單引號值視為不區分大小寫的搜尋,與雙引號值相同。Qlik Sense 會將單引號括起的值視為區分大小寫的常值。
以下是偵測到的模式:
| 模式 | 規則 | 可能性 | 描述 | 修復 |
|---|---|---|---|---|
單引號萬用字元 ('*US*', 'A?', '^abc') |
單引號內的萬用字元 | 高 | 萬用字元 *、? 以及 ^ 字詞邊界錨點在 Qlik Sense 中會解譯為原義文字,而非搜尋模式。 |
將單引號取代為雙引號,以還原搜尋行為。 |
單引號比較 ('>=5', '<2020') |
單引號中的比較 | 高 | 比較運算子 >、>=、<、<= 在 Qlik Sense 中會被解讀為常值文字,而非數值搜尋。 |
將單引號取代為雙引號,以還原數值比較。 |
單引號模糊搜尋 ('~company') |
單引號中的模糊搜尋 | 高 | ~ 前置詞會觸發雙引號中的模糊比對。在單引號中,Qlik Sense 會將其視為常值字串。 |
將單引號取代為雙引號,以恢復模糊搜尋。 |
單引號運算式搜尋 ('=Sum(Sales)>100') |
單引號內的運算式搜尋 | 高 | = 前置詞會觸發雙引號內的運算式搜尋。在單引號中,Qlik Sense 會將其視為常值字串。 |
將單引號取代為雙引號以還原運算式搜尋。 |
單引號搜尋修飾詞 ('+abc', '-solution') |
單引號內的搜尋修飾詞 | 高 | +(必須包含)和 -(不得包含)修飾詞可在雙引號中運作。在單引號中,Qlik Sense 會將其視為常值字串。 |
將單引號取代為雙引號以還原修飾詞行為。 |
單引號複合搜尋 ('(1|2|3)', '(*ABC*&?*Inc*)') |
單引號中的複合搜尋 | 高 | 使用邏輯運算子 | (OR)、& (AND)、^ (XOR) 的複合搜尋可在雙引號中運作。在單引號中,Qlik Sense 會將其視為常值字串。 |
將單引號替換為雙引號以恢復複合搜尋。 |
數值欄位上的單引號值(日期或數值欄位上的 '2020') |
數值欄位上的單引號 | 高 | 以單引號括住的值符合 Qlik Sense 中的文字表示法。在數值或雙重欄位中,文字表示法可能與儲存的值不符,導致型別不相符。 | 請改用未加引號的數值或雙引號。 |
未加引號的裸字串 ({USA,France}) |
未加引號的裸值 | 低 | Qlik Sense 接受未加引號的值,但在包含空格、運算子或特殊字元時,其行為容易出錯。 | 將值用單引號括起來以進行字面比對。 |
裸欄位參照 (<Field1=Field2>) |
裸欄位參照 | 高 | QlikView 允許 <Field1=Field2> 在欄位之間轉移選取項目。Qlik Sense 不支援在集合修飾詞中使用直接欄位對欄位參照。 |
取代為 <Field1=P(Field2)> 以使用 P() 元素函式。 |
未加大括號的裸值 (<Country=USA>) |
未加大括號的裸值 | 高 | 集合修改器指派右側不帶大括號的裸值。視上下文而定,QlikView 可能會將該值解譯為常值或欄位參照。Qlik Sense 要求值必須放在大括號內。 | 用大括號括起來:<Country={USA}> 或 <Country={'USA'}>。 |
文字欄位中以單引號括住的純文字值(例如 'USA')不會被標記。這些值在 Qlik Sense 中可正確作為區分大小寫的常值運作。
QV2QS 支援在集合修飾詞指派的左側使用以方括號括起 ([Invoice Number])、以雙引號括起 ("Invoice Number") 以及以反引號括起 (`Invoice Number`) 的欄位名稱。在掃描與修復期間,皆可辨識所有三種引號樣式。
依預設,QV2QS 會在轉換期間自動修正物件運算式與變數定義中的單引號搜尋值。包含搜尋語法(萬用字元、比較、模糊搜尋、運算式搜尋、搜尋修飾詞或複合搜尋運算子)且以單引號括住的值會轉換為雙引號。數值欄位中不包含搜尋語法的單引號值會被標記以供手動檢閱,但不會自動修正。針對未加引號的純字串值,另外也提供了實驗性修正,但預設為停用 — 傳遞 --fixUnquotedSetValues 即可啟用。修正僅透過集合修飾詞值清單內的位置取代來套用 — 欄位名稱、函數名稱和其他運算式文字絕不會遭到修改。每個修正項目都有獨立的切換開關 (--noFixSingleQuotedSearch, --fixUnquotedSetValues)。如需詳細資訊,請參閱 引數參考。
結果會顯示在主控台摘要的 Expression quoting findings 區段、高階主管摘要儀表板的 Expression 子索引標籤,以及 Excel 報告的 Expression_Findings 工作表中。每項調查結果都包含一個 狀態 指標:已自動修正(於轉換期間修正)、需要審查(需要手動處理)或 無可用修正(不支援的功能)。執行摘要儀表板提供篩選切換開關,可隱藏已自動修正的資料列,讓您專注於仍需處理的項目。如需有關集合分析語法差異的詳細資訊,請參閱 Qlik Cloud 說明中的 集合分析。
不支援的圖功能
QV2QS 會掃描所有物件運算式 (維度、量值、顯示條件、色彩運算式、文字運算式) 與變數定義,以找出 Qlik Sense 不支援的 QlikView 圖函數。掃描器會比對函式呼叫,且函式名稱與左括號之間可包含選用的空白或換行符號。字串常值內的函式名稱已排除。
偵測到下列函式:
| 函數 | 描述 |
|---|---|
| GetCurrentField | 傳回目前物件中的作用中欄位名稱。在 Qlik Sense 中不受支援。請參閱 Qlik Cloud 中的 欄位函數 以取得支援的替代方案。 |
| GetExtendedProperty | 擷取連結物件中繼資料。在 Qlik Sense 中不受支援。請參閱 Qlik Cloud 中的 欄位函數 以取得支援的替代方案。 |
| 輸入 | 擷取使用者輸入的欄位值。在 Qlik Sense 中不支援。 |
| InputAvg | 計算輸入欄位值的平均值。在 Qlik Sense 中不支援。 |
| InputSum | 計算輸入欄位值的總和。在 Qlik Sense 中不支援。 |
| MsgBox | 顯示一個對話方塊。在 Qlik Sense 中不支援。 |
| NoOfReports | 回傳報表物件的數量。在 Qlik Sense 中不支援。 |
| ReportComment | 傳回報表註解。在 Qlik Sense 中不支援。 |
| ReportId | 傳回報表識別碼。在 Qlik Sense 中不支援。 |
| ReportName | 傳回報表名稱。在 Qlik Sense 中不支援。 |
| ReportNumber | 回傳報告編號。在 Qlik Sense 中不支援。 |
不支援的函數發現項目會與集合分析引號發現項目一同顯示在 Expression_Findings 工作表以及主控台摘要的 潛在運算式問題 區段中。
開發人員書籤
QV2QS 會讀取 DocInternals.xml 並列出所有由開發人員建立的書籤。針對每個書籤,分析會回報欄位選取項目、範圍 (全域或工作表特定),以及是否已儲存版面配置狀態。書籤必須在 Qlik Sense 中手動重新建立。
伺服器層級書籤 (共用和私人) 無法從 PRJ 資料夾中偵測到。
SaaS 規格估算
QV2QS 會讀取 QVW 二進位檔案,以預估應用程式的基本 RAM 佔用量。此預估是根據內嵌於資料表和欄位描述中的 ByteSize 中繼資料。
ByteSize 中繼資料僅在以 QlikView 12.30 或更新版本 (2018 年 11 月) 儲存的 QVW 檔案中提供。如果中繼資料不存在,規模層級將回報為 Unknown。
QV2QS 根據基礎 RAM 佔用空間將應用程式分類為下列層級之一。
| 層級 | 閾值 | 動作 |
|---|---|---|
| 標準 | 最多 5 GB | 不需要採取特殊動作。 |
| 大型應用程式 | 最多 50 GB | 部署至已啟用大型應用程式支援的空間。 |
| 需要最佳化 | 超過 50 GB | 在移轉前,請諮詢 Qlik 管理員或 Qlik 合作夥伴。 |
Analysis 工作表中的大小詳細資料表格也會回報資料表與欄位的數量 (不包含系統資料表與欄位)。如需詳細的欄位基數、資料表資料列數以及每個物件的位元組大小,請參閱 Excel 報表中的 Data_Model_Fields 和 Data_Model_Tables 工作表。
信心水準
每個載入指令碼發現項目都包含一個信賴度等級,指出確實存在相容性問題的可能性。
- 高 — 此模式具體明確。此檢查結果極可能是真正的相容性疑慮。
- 中等 — 此模式可能會比對到不相關的程式碼。手動驗證。
- 低 — 此模式範圍較廣。檢閱已標記的行以確認相關性。
文件屬性結果與巨集結果沒有信賴等級,因為這些結果是以明確的 XML 旗標為依據,而非模式比對。
分析限制
分析僅會掃描 PRJ 資料夾和 QVW 二進位檔案。載入指令碼掃描器會偵測 LoadScript.txt 中不支援的陳述式與函式。載入指令碼掃描器不會檢查圖運算式。
運算式掃描器會檢查圖運算式 (維度、度量、顯示條件、色彩運算式、文字運算式和變數定義) 中的集合分析引號模式與不支援的函式呼叫。運算式掃描器不會偵測圖運算式中的其他不相容性類別。
存在於 QlikView Server 層級的項目不會被偵測到。未偵測到的項目包括伺服器書籤、伺服器物件、叢集設定、警示條件、報告定義以及工作階段使用資料。