From f40f7600f792766065eb515fce113fa8ce4b2b7e Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Wed, 5 Feb 2025 13:28:05 +0800 Subject: [PATCH] Integrate complete_if_empty (#1722) --- skyvern/forge/sdk/workflow/models/block.py | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/skyvern/forge/sdk/workflow/models/block.py b/skyvern/forge/sdk/workflow/models/block.py index e306c045..7af69901 100644 --- a/skyvern/forge/sdk/workflow/models/block.py +++ b/skyvern/forge/sdk/workflow/models/block.py @@ -1005,15 +1005,26 @@ class ForLoopBlock(Block): block_type=self.block_type, workflow_run_id=workflow_run_id, num_loop_over_values=len(loop_over_values), + complete_if_empty=self.complete_if_empty, ) await self.record_output_parameter_value(workflow_run_context, workflow_run_id, []) - return await self.build_block_result( - success=False, - failure_reason="No iterable value found for the loop block", - status=BlockStatus.terminated, - workflow_run_block_id=workflow_run_block_id, - organization_id=organization_id, - ) + if self.complete_if_empty: + return await self.build_block_result( + success=True, + failure_reason=None, + output_parameter_value=[], + status=BlockStatus.completed, + workflow_run_block_id=workflow_run_block_id, + organization_id=organization_id, + ) + else: + return await self.build_block_result( + success=False, + failure_reason="No iterable value found for the loop block", + status=BlockStatus.terminated, + workflow_run_block_id=workflow_run_block_id, + organization_id=organization_id, + ) if not self.loop_blocks or len(self.loop_blocks) == 0: LOG.info(