# 執行指令碼

執行載入指令碼，以使用來自資料來源的最新資料匯出資料。

Qlik Cloud 分析 中的指令碼不會自動執行以更新輸出。執行指令碼會再次執行載入指令碼，以從指令碼的資料來源載入最新資料，然後匯出。指令碼執行可以手動或透過排程進行。

關於哪些使用者可以載入資料的資訊，請參閱：

* [在共用空間中管理權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/managing-shared-spaces.htm)

* [在受管理空間中管理權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/managing-managed-spaces.htm)

您可以檢查指令碼的執行狀態。這可以是成功、載入中或失敗。

* 在指令碼的清單檢視中，按一下上次修改欄中的值。
* 在載入歷史記錄中。
* 在為指令碼的排程載入設定之任務的排程對話方塊中 (僅顯示由任務發起的執行狀態)。

資訊備註指令碼的最大執行時間為三小時。若指令碼執行時間比此更久，這將會失敗，且您將會收到訊息。

## 排程指令碼執行

建立任務，以排程指令碼的執行。該排程可以使用基於時間或基於事件的觸發條件。

資訊備註特定動作會造成任務的擁有權變更。如需詳細資訊，請參閱[任務的擁有權](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ScriptEditor/reloading-scripts.htm#Ownershi)。

若要建立任務：

1. 執行下列其中一個動作：

   * 在活動中心內，按一下指令碼上的 the 執行 icon，並選取 &gt; 排程。

   * 在指令碼中，開啟概述區段並按一下 the 更多動作 icon &gt; 排程。

2. 按一下建立新任務。

3. 對於任務名稱，輸入任務的名稱。

4. 也可以選擇新增說明。

5. 在基於之下，選取任務的觸發條件。您有下列選項：

   * 基於時間：安排在特定時間點進行重新整理。然後，使用該觸發條件的相關設定來設定任務。如需詳細資訊，請參閱[基於時間的排程](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ScriptEditor/reloading-scripts.htm#TimeBased)。

     可以使用以下基於時間的觸發條件：

     * 每日

     * 每週

     * 每月

     * 每年

   * 基於事件：安排在特定事件發生時開始重新整理。如需詳細資訊，請參閱[基於事件的排程](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ScriptEditor/reloading-scripts.htm#EventBased)。

     可以使用以下基於事件的觸發條件：

     * 另一項工作成功：在選取的工作成功執行時開始重新整理。

     * 另一項工作失敗：當選取的工作失敗時開始重新整理。

     * 另一項工作完成：在所選工作執行完畢時開始重新整理，無論其結束時為成功或失敗。

     資訊備註使用基於事件的觸發條件，以建立用於重新整理資料的任務鏈。如需進一步說明，請參閱 [建立資料重新整理任務鏈](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Refresh/task-chains-for-refresh.htm)。

6. 完成後，請按一下儲存。

### 基於時間的排程

建立基於時間的排程時，您可以選擇：

* 重新整理的頻率和間隔

* 時區和一天中的時間

* 排程效期

可按照下列間隔設定重複重新整理：

* 每日：設定每日次數、時區和一天中的時間。

* 每週：設定星期幾、每日次數、時區和一天中的時間。

* 每月：設定日期、每日次數、時區和一天中的時間。

* 每年：設定月份、日期、每日次數、時區和一天中的時間。

對於每天以任何間隔執行多次的排程，您也可以定義一天中執行排程的間隔小時數。指定排程在該日開始的特定時間。

依照預設，排程將會連續執行，沒有結束日期。您可以選擇設定開始日期、結束日期或僅執行兩個日期之間的排程。

### 基於事件的排程

基於事件的排程可讓您將不同應用程式、指令碼、資料流程和表格配方的任務鏈結在一起。這對於這些資產的連續重新整理很實用。

如需詳細資訊，請參閱[建立資料重新整理任務鏈](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Refresh/task-chains-for-refresh.htm)。

### 管理任務

如果您有權限，可以管理現有任務。

若要檢視並管理任務：

1. 執行下列其中一個動作：

   * 在活動中心內，按一下指令碼上的 the 執行 icon，並選取 &gt; 排程。

   * 在指令碼中，開啟概述區段並按一下 the 更多 icon &gt; 排程。

2. 按一下任務旁邊的 the 更多 icon，然後選取任何可用選項。或者，切換到歷史記錄索引標籤，以檢視任務執行時的詳細歷史記錄。

如需詳細資訊，請參閱[管理資料重新整理任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Refresh/refresh-manage-tasks.htm)。

### 限制和考慮事項

* 若重新整理資料任務連續五次都無法執行，就會停用該任務。如果您擁有該任務，則發生這種情況時，您將收到通知。可以為單一應用程式、一個空間中的所有應用程式或一個租用戶中的所有應用程式自訂通知設定。如需詳細資訊，請參閱[任務的擁有權](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ScriptEditor/reloading-scripts.htm#Ownershi)。

* 若任務擁有者離開或從租用戶遭到刪除，另一個使用者必須擁有任務，或是刪除並重新建立任務。否則，排程的重新整理將會失敗。如需有關如何變更此擁有權的資訊，請參閱[任務的擁有權](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ScriptEditor/reloading-scripts.htm#Ownershi)。

* 若您有大量已排入佇列以及在執行中的資料重新整理流程 (以及其他並行的 CPU 和記憶體密集型流程)，您可能會注意到有些重新整理流程在執行，在某些情況下於排程開始時間之後尤其明顯。

* 已發佈的指令碼副本不包含重新整理資料任務。已發佈的指令碼必須在受管理空間中的版本上重新設定其任務。

* 如果您的指令碼具有重新整理資料任務，而且您在空間 (個人或共用空間) 之間移動指令碼，則會停用這些任務。準備好繼續進行排程的重新整理時，您可以重新啟用。請參閱 [啟用和停用任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Refresh/refresh-manage-tasks.htm#Activating)。

### 任務的擁有權

資料重新整理任務代表擁有該任務的使用者執行，而不是代表應用程式、指令碼、資料流程或表格配方的擁有者。為了成功執行任務，任務擁有者對於應用程式、指令碼、資料流程或表格配方及其資料來源仍必須有正確的存取權限。特定動作將會改變任務的擁有者。任務擁有者由下列規則決定：

* 當您建立用於執行指令碼的任務時，您就成為該任務的擁有者。

* 如果另一個使用者編輯或儲存現有任務，他們將成為該任務的新擁有者。

* 如果另一個使用者修改了指令碼的載入指令碼，他們將成為該指令碼的所有排程執行任務的新擁有者。

* 將指令碼發佈或重新發佈到受管空間，不會變更已發佈副本中任何現有任務的擁有者。

如需更多關於共同開發指令碼資料模型的資訊，請參閱 [在共用空間中共同開發資料載入指令碼](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/script-codevelopment.htm)。

### 管理重新整理資料任務

租用戶管理員和分析管理員可以編輯和刪除排程資料重新整理任務。這在 管理 活動中心進行。如需詳細資訊，請參閱：

* [管理租用戶和分析管理員的應用程式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-apps.htm)

* [管理租用戶和分析管理員的指令碼](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-scripts.htm)

## 手動執行指令碼

您可以手動執行指令碼。

請執行下列動作：

* 執行下列其中一個動作：
  * 在您的活動中心內，按一下指令碼上的 the 執行 icon，並選取 &gt; 立即執行。
  * 在開啟的指令碼中，按一下 立即執行。

## 檢視指令碼的執行歷史記錄

載入歷史記錄包含所選指令碼的執行歷史記錄。用來協助解決排程執行問題。您可以檢視指令碼過去和目前執行的狀態、開始和結束時間以及持續期間。您也能檢視並下載對應的記錄檔。

有兩種檢視指令碼載入歷史記錄的方式。

* 在指令碼的概述中，按一下載入歷史記錄。
* 在 分析 活動中心內指令碼的清單檢視畫面中，按一下上次修改欄中的日期並選取檢視載入歷史記錄。

指令碼的載入歷史記錄

指令碼的載入歷史記錄

指令碼的載入歷史記錄 ![指令碼編輯器的載入歷史記錄索引標籤的螢幕擷取畫面。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_script-editor-reload-history-rev.png)

在載入歷史記錄頁面上，按一下檢視按鈕以檢視執行摘要。或者您也可以下載詳細記錄檔。達到記錄儲存數量限制後，新的記錄將會以先前先出的原則取代最舊的記錄。

若執行時間太長或指令碼已透過新的資料更新，您可能會想要取消指令碼執行，並且想要開始新的執行。若要取消執行，前往載入歷史記錄，並按一下取消。

您可以在載入歷史記錄中查看已取消的執行。

### 檢視任務歷史記錄

除了載入歷史記錄檢視畫面，您也可以檢視專門顯示為指令碼的排程載入建立之任務的執行歷史記錄。如需詳細資訊，請參閱[檢視任務的重新整理歷史記錄](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Refresh/refresh-manage-tasks.htm#TaskHistory)。

## 理解時間戳記：已更新、修改日期和上次載入日期

您可以在顯示於指令碼圖磚的該已更新時間戳記中檢視時間資訊。您也可以按一下指令碼以開啟概述，藉此查看此資訊。這會作為修改日期列於摘要。日期格式可能會不同；例如，若指令碼最近更新，指令碼圖磚上的已更新值可能會顯示如下：已在 15 分鐘前更新。

您可以選取指令碼上的 the 詳細資訊 icon，然後選取，以檢視上次載入日期。此值只會在指令碼資料更新時更新。執行也會變更已更新和修改日期時間戳記。

指令碼詳細資訊中的修改日期和上次載入日期欄位

指令碼詳細資訊中的修改日期和上次載入日期欄位

指令碼詳細資訊詳細資訊中的修改日期修改日期和上次載入日期上次載入日期欄位 ![詳細資訊檢視顯示上次載入日期和修改日期時間戳記](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_ScriptsUpdatedModifiedLastReload-rev.png)

下表列出重新整理已更新 (與修改日期相同) 和上次載入日期時間戳記的操作：

重新整理已更新已更新和上次載入日期上次載入日期值的操作

| 操作 | 已更新、修改日期 | 上次重新載入日期 |
| --- | --- | --- |
| 執行 (重新載入) | 是 | 是 |
| 變更名稱 | 是 | 否 |
| 變更描述 | 是 | 否 |
| 發佈指令碼 | 是 | 否 |
| 變更擁有者 | 是 | 否 |
| 變更指令碼 | 是 | 否 |