在工作流程建構器中新增 PowerPoint 匯出功能
這工程信箱
第八集:最後一英里
身為系統工程師,我們不時會遇到一些有趣的問題,這些問題往往超出了典型的範疇。JMP用法方面。有時,這個問題本身就很有趣,讓我有機會去探討我們在 JMP 中採用特定做法的深層原因。
這個問題已經被問過無數次了。我沒有相關的郵件可以參考,但我們姑且假設已經收到一些回覆。此外,在……上也有人問過這個問題。JMP社群論壇.我每次做關於這個主題的研討會,我都會不可避免地提到它。
好了,鋪墊就到此為止。今天我們要解決的這個驚天動地的問題是什麼呢?如標題所示,我們要將 PowerPoint 匯出功能整合到 Workflow Builder 中。
這個問題
為了對我來說,這個問題通常是在我展示了 Workflow Builder 的所有強大功能之後出現的。我已經演示過它如何捕獲 Query Builder 的執行過程,如何將冗長繁瑣的資料清理流程簡化為一鍵點擊,以及如何自動產生可能需要提交給決策者的重要報告。然後,我總是會聽到這樣的問題:「如何將其匯出為 PowerPoint 文件?」(或類似的問題)。
答案
到說實話,我對之前對這個問題的回答一直不太滿意。這也是我決定在部落格附上這份小資料的原因之一。親愛的讀者,如果您對我的新答案的具體運作方式不感興趣,只想盡快上手,可以直接跳到博客下方的下載部分,那裡我會教您如何使用博客附帶的下載文件。
我之前對這個問題給出的答案是:“腳本索引中有一個 Save Presentation() 函數的示例,可以將其添加為自定義步驟。”

但那個答案讓我很惱火。我就不贅述原因了,總之,它聽起來不太……嗯……像JMP的風格。總之,前幾天我下定決心,最後一次說出來! ¡ NO MAS!
我這樣做的。
建置 PowerPoint 匯出
在JMP 18 的工作流程建構器新增了對 if/else 語句和訊息的支持,以及其他一些功能。正是這兩項功能,再加上一些晦澀的 JSL 程式碼,讓我得以實現這個功能。 (側邊欄:JMP腳本索引 是你們的朋友,夥伴們! )
我設想這一步驟應該包括匯出新的簡報文件,或使用「儲存簡報()」函數的「追加」選項為現有簡報新增投影片。這意味著兩件事:首先,我需要一個對話框來切換「儲存簡報()」步驟的兩個版本;其次,我需要一種方法來在它們之間切換。
每個步驟的邏輯都很簡單。在工作流程建立器中點擊紅色三角形,從進階選單中新增 if 和 else 步驟,並在步驟操作時間軸的「開始時」槽中為每個步驟新增訊息。接下來,編輯條件腳本,使其與訊息中設定的變數相符。我在下面提供了一個簡短的視頻,演示了每個步驟的具體操作。
設定好 if 和 else 語句後,我們可以回到進階紅色三角形子選單,新增自訂步驟,並將它們移到 if 和 else 步驟中。我在截圖中更改了名稱,以便更清楚地說明每個步驟的功能。

以下是追加步驟中所需自訂流程的螢幕截圖:

以下是新簡報的步驟:


實作通用解決方案的關鍵在於自訂步驟的 JSL 程式碼,特別是 `CurrentReport()` 函數。感謝我早期學習 JSL(特別感謝 JMP 教育團隊的 Di Michelson!),我知道 JMP 會自動對當前視窗或物件執行操作,除非我明確指示。我也知道,除非我的程式碼更改了這一點,否則最後創建的物件始終是當前物件。因此,如果我將正在建置的步驟(即 if/else 語句組)放在建立報表之後,那麼 `CurrentReport` 就是我剛剛建立的報表。 `CurrentReport()` 函數會傳回對該報表的參考。然後,我只需使用儲存報表引用的變量,即可將該引用傳遞給「儲存簡報」步驟。
“選擇檔案()”和“選擇目錄()”函數會自動產生對話方塊並返迴路徑。將這兩個功能結合在「儲存簡報()」參數中,意味著我可以根據工作流程中的步驟位置來確定要操作的報表。我還可以詢問用戶希望我更新哪個演示文稿,或者希望我在哪裡創建一個演示文稿。
使用 PowerPoint 匯出
為了跳過編碼部分的朋友們,歡迎回來!讓我們來看看本文下載部分的壓縮檔案裡有什麼。裡麵包含三個文件:

PowerPointExport 檔案是一個獨立的 Workflow Builder 步驟,可以追加或建立新的簡報檔案。另外兩個步驟則協同工作,用於一個特定場景,我稍後會詳細介紹。首先,我們來看一個簡單的例子。我製作了一個簡短的影片來演示這些步驟:
現在,我們來看另外兩個文件。有時,一個工作流程會產生多個報表。這兩個文件可以協同工作,無需逐一報告地執行提示。 PowerPointCreate 步驟會提示使用者建立簡報文件;它也會將該文件的位置提供給相同工作流程中所有 PowerPointAppend 步驟的實例。這樣,用戶幾乎無需直接輸入任何訊息,即可自動建立完整的幻燈片。以下影片示範如何設定此工作流程以及最終效果:
所以瞧! Workflow Builder 現在支援 PowerPoint,無需任何編碼。只需簡單的點擊操作,就能讓你專注於數據和洞察——這正是 JMP 的精髓所在。 
這是工作流程建構器中「新增 If...」和「新增 Else」選項的絕佳範例!