共用方式為


更新 Power App 所使用的流程時的最佳做法

本文說明在Power Apps中執行Microsoft流程時減輕常見錯誤的最佳做法和步驟。

適用於: Power Apps
原始 KB 編號: 4477072

Flow 執行時發生錯誤碼 “InvokerConnectionOverrideFailed”

某些流程無法在Power Apps 中執行。 在 Flow 執行歷程記錄或 Power Apps 遙測中,您可能會收到類似下列的錯誤:

    { 
        "code": "InvokerConnectionOverrideFailed", 
        "message": "Failed to parse invoker connections from trigger 'manual' outputs. Exception: Could not find any valid connection for connection reference name '<some_connection>' in APIM tokens header." 
    }

注意

當您在 Common Data Service 上呼叫 install API 時,也會發生此錯誤,但回應是一般錯誤「安裝流程失敗」。

原因

之所以發生此問題,是因為流程已更新為使用新的連線,但應用程式仍會使用舊的流程元數據。 更新流程不會更新使用流程的應用程式。 若要解決此問題,您必須手動更新應用程式,讓變更反映在應用程式中,以及讓流程能夠運作。

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

  1. 使用最新版本的Power Apps Studio 開啟應用程式以進行編輯
  2. 從應用程式 移除流程(從 Power Automate 索引卷標移除流程)。
  3. 將流程重新新增至應用程式。
  4. 儲存並重新發佈應用程式。

流程執行時發生錯誤碼 “ConnectionAuthorizationFailed”

    { 
        "code": "ConnectionAuthorizationFailed", 
        "message": "The caller with object id '{user_id}' does not have the minimum required permission to perform the requested operation on connection '{some_connection_id}' under API '{some_connection_api}'." 
    }

原因

此錯誤表示,雖然製作者具有流程的許可權,但製作者沒有流程動作中所使用之相依聯機的許可權。 這是 Power Apps 和 Flow 整合的限制。

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

此緩和措施是讓流程中的所有連線都由單一使用者擁有,然後讓該使用者將流程新增至應用程式。

Flow 執行時發生錯誤碼 “WorkflowTriggerIsNotEnabled”

    { 
        "code": "WorkflowTriggerIsNotEnabled", 
        "message": "Could not execute workflow '<GUID>' trigger 'manual' with state 'Disabled': trigger is not enabled."  
    } 

原因

此錯誤表示流程已關閉。

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

緩和措施是 開啟流程

Flow 執行時的內部錯誤碼 “ResponseTimeout”

        {
            "error": {
            "code": 504,
            "source": "<api hub source>",
            "clientRequestId": "<GUID>",
            "message": "BadGateway",
            "innerError": {
                "error": {
                    "code": "ResponseTimeout",
                    "message": "The server did not receive a timely response from the upstream server. Request tracking id '<some_tracking_id>'."
                    }
                }
            }
        } 

原因

此錯誤表示同步流程需要超過120秒(2分鐘)才能完成,導致其逾時。 深入了解輸出同步要求的逾時限制。

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

緩和措施是尋找哪一個流程執行花費太長的時間,並使用針對緩慢執行流程進行疑難解答中所提供的解決方案,在兩分鐘內優化執行。

在 Flow 執行時,錯誤碼 “0x80040265” 或 “0x80048d0b”

    {

        "code": " 0x80040265", 
        "message": "Failed to install the flow."  

    }  
    {

        "code": " 0x80048d0b", 
        "message": "Failed to install the flow."  

    } 

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

請嘗試下列其中一個錯誤碼所述的解決方案:

Flow 執行時發生錯誤碼 “MissingConnectionReference”

    { 
        "code": " MissingConnectionReference' ", 
        "message": " Connection reference '<connection name>' was not given by invoker."
    } 

範例錯誤:

叫用者未提供連線參考 『<connection name>』。

原因

基本上,應用程式和流程元數據必須同步處理。 對流程所做的任何變更都需要應用程式製作者使用流程編輯應用程式,並移除或重新新增變更的流程。

針對解決方案應用程式或流程,應用程式可能會成功叫用來源環境中的流程,然後在目標環境中失敗,並出現此錯誤訊息:

未為此服務設定連線。

原因是目標環境中的流程可能會有所變更,但來源環境中並不存在。

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

  1. 在來源環境中,編輯應用程式。 拿掉 ,然後將流程重新新增至應用程式。 儲存並發佈變更。

  2. 在目標環境中,移除應用程式和流程上的所有非受控層。

  3. 匯出解決方案,並將其匯入目標環境。

    注意

    流程或應用程式上都沒有任何非受控層,因為這可能會導致與流程連線的問題。

Flow 執行時發生錯誤碼 “NotAllowedConnectionReferenceon”

    {
        "code": " NotAllowedConnectionReference", 
        "message": "Connection reference '<connection name>' was not given by invoker."
    }

範例錯誤:

叫用者未提供連線參考 『<connection name>』。

原因

此錯誤表示應用程式具有流程元數據,指定安裝時需要 SQL 連線,但實際的流程元數據不同。

風險降低步驟

注意

請務必在來源或開發環境中執行下列步驟,並更新解決方案。 更新解決方案之後,請將它匯入至所有目標或生產環境。

風險降低選項 1

  1. 在來源環境中,編輯應用程式。 拿掉 ,然後將流程重新新增至應用程式。 儲存並發佈變更。

  2. 在目標環境中,移除應用程式和流程上的所有非受控層。

  3. 匯出解決方案,並將其匯入目標環境。

    注意

    流程或應用程式上都沒有任何非受控層,因為這可能會導致與流程連線的問題。

風險降低選項 2

  1. 將連線從 Embedded 變更為 Invoker
  2. 流覽至流程入口網站以編輯和更新流程設定。
  3. 在流程詳細資料頁面的僅限執行使用者區段中,選取編輯
  4. 若要將流程連線來源更新為 Invoker,請選取 [僅執行使用者 提供],然後儲存。
  5. 若要將流程連線來源更新為 Embedded,請選取 [ 使用此連線 並儲存]。
  6. 藉由觸發流程來驗證。 您會看到「安裝流程網路」呼叫現在成功。

其他徵兆

更新流程之後,從 Power Apps 呼叫該流程就會開始失敗。

  • 如果在未更新 Power App 的情況下將新的輸入新增至流程,流程將會失敗,並出現類似下列的錯誤訊息:

    無法在 '1' 行和數據行 '1900' 的動作 'Send_me_a_mobile_notification' 輸入中處理範本語言表達式:無法評估範本語言表達式 'triggerBody()['Sendmeamobilenotification_Text']'',因為無法選取屬性 'Sendmeamobilenotification_Text'。 如需使用量詳細數據,請參閱 https://aka.ms/logicexpressions 。』。

    將新輸入新增至流程而不更新Power App時的錯誤訊息螢幕快照。

  • 如果執行流程變更所需的連線,應該會出現抱怨連線的錯誤:

    在 Power Apps 中,它看起來可能像:

    抱怨Power Apps 中連線的錯誤訊息螢幕快照。

    或者,在 Flow 中,它看起來可能像:

    無法在行 '1' 和數據行 '1899' 的 'Send_an_email' 輸入中處理範本語言表達式:'範本語言表達式 'json(decodeBase64(triggerOutputs(.headers['X-MS-APIM-Tokens']))['$connections']['shared_office365']['connectionId']' 無法評估,因為屬性 'shared_office365' 不存在, 可用的屬性為 「shared_flowpush」。 如需使用量詳細數據,請參閱 https://aka.ms/logicexpressions 。』。

    錯誤訊息的螢幕快照,其中抱怨 Flow 中的連線。

  • 如果移除響應輸出,Power Apps 會將值視為空白,且 Power App 的行為會非預期。

原因

若要從Power Apps叫用流程,Power Apps 必須知道流程需要哪些輸入、要提供給流程的連線,以及流程將傳回哪些輸出。 Power Apps 會將這項資訊儲存在 Power App 的定義中,這會在 Power App 版本與其中所使用的流程之間建立系結。 變更流程這三個層面中的任何一個,可能會中斷所有與該流程整合的舊版 Power Apps。 若要修正受影響的Power App或使用其中一個流程變更,必須更新Power App。

最有可能中斷 Power Apps 呼叫流程能力的變更類型包括:

  • 在 Power Apps 令牌中新增 Ask。

    在 Power Apps 令牌中新增 Ask 的螢幕快照。

  • 新增連線。 例如,藉由從之前不像 SharePoint 連接器使用的連接器新增動作。

    此螢幕快照顯示新增連線的範例。

  • 變更現有的連線。 例如,將現有的連接變更為新的連接。

    變更 Flow 中現有連線的螢幕快照。

  • 從 [回應 Power Apps] 動作中移除輸出。

    從 [回應 Power Apps] 動作移除輸出的螢幕快照。

對輸入或輸出的其他變更不會中斷 Power Apps 與 Flow 之間的整合,但會要求更新 Power App,才能使用它們。

解決方法

變更即時 Power 應用程式

發佈 Power App 之後,一律建議建立 Power Apps 用來進行任何更新的流程複本。 即時 Power App 所參考之流程的任何更新都有可能中斷現有的使用者。 請勿刪除或關閉現有的流程,直到所有使用者都升級至新發佈的Power App 版本為止。

螢幕快照,選取 [另存新檔] 選項,以建立Power App所使用的流程複本。

在新版本的 Power App 中,參考新的流程。 發行新版本的 Power App 時,使用者將會開始使用具有正確輸入、輸出和連線的新流程。 這可防止新版 Power Apps 的流程更新影響現有版本的使用者。

變更Power App 開發版本

開發 Power App 時,對即時版本的 Power App 未使用的流程進行變更很容易。 對非已發佈流程的輸入、輸出或連接進行變更之後,請從 [流程 ] 窗格重新選取流程。

在Power Apps中更新流程定義的螢幕快照。

它會更新Power App 中流程的定義,以驗證Power App 中使用正確的輸入、輸出和連線。

Power App 的用戶在發佈 Power App 之前,不會開始使用新的流程。 因此,更新現有的流程是可以的,直到其由Power App的即時版本使用為止。