Source: {executionData.execution_parent !== null && executionData.execution_parent !== undefined && executionData.execution_parent.length > 0 ?
- Parent Workflow
+ Parent Workflow
:
executionData.execution_source
}
@@ -6744,7 +6766,7 @@ const AngularWorkflow = (props) => {
{data.action.app_name === "shuffle-subflow" ?
{validate.valid && data.action.parameters !== undefined && data.action.parameters !== null ?
- See subflow execution
+ See subflow execution
:
"TBD: Load subexecution result for"
}
@@ -6989,7 +7011,7 @@ const AngularWorkflow = (props) => {
Execution Variable
- Execution Variables are TEMPORARY variables that you can ony be set and used during execution. Learn more here
+ Execution Variables are TEMPORARY variables that you can ony be set and used during execution. Learn more here setNewVariableName(event.target.value)}
color="primary"
@@ -7264,7 +7286,7 @@ const AngularWorkflow = (props) => {
return (
- What is this?
+ What is this?
These are required fields for authenticating with {selectedApp.name}
Name - what is this used for?
diff --git a/functions/onprem/worker/worker.go b/functions/onprem/worker/worker.go
index e09ca874..2773c459 100644
--- a/functions/onprem/worker/worker.go
+++ b/functions/onprem/worker/worker.go
@@ -1235,7 +1235,7 @@ func handleExecutionResult(workflowExecution WorkflowExecution) {
// IF NOT VISITED && IN toExecuteOnPrem
// SKIP if it's not onprem
toRemove := []int{}
- log.Printf("\n\nNEXTACTIONS: %#v\n\n", nextActions)
+ //log.Printf("\n\nNEXTACTIONS: %#v\n\n", nextActions)
for index, nextAction := range nextActions {
action := getAction(workflowExecution, nextAction, environment)
// check visited and onprem
@@ -1698,9 +1698,11 @@ func executionInit(workflowExecution WorkflowExecution) error {
}
}
- log.Printf("\n\n\n[INFO] CHILDREN FOUND: %#v", children)
- log.Printf("[INFO] PARENTS FOUND: %#v", parents)
- log.Printf("[INFO] NEXT ACTIONS: %#v\n\n", nextActions)
+ /*
+ log.Printf("\n\n\n[INFO] CHILDREN FOUND: %#v", children)
+ log.Printf("[INFO] PARENTS FOUND: %#v", parents)
+ log.Printf("[INFO] NEXT ACTIONS: %#v\n\n", nextActions)
+ */
log.Printf("[INFO] Actions: %d + Special Triggers: %d", len(workflowExecution.Workflow.Actions), extra)
onpremApps := []string{}
@@ -2064,7 +2066,10 @@ func handleWorkflowQueue(resp http.ResponseWriter, request *http.Request) {
// return
//}
+ resp.WriteHeader(200)
+ resp.Write([]byte(fmt.Sprintf(`{"success": true}`)))
runWorkflowExecutionTransaction(ctx, 0, workflowExecution.ExecutionId, actionResult, resp)
+
}
func findChildNodes(workflowExecution WorkflowExecution, nodeId string) []string {
@@ -2473,15 +2478,20 @@ func runWorkflowExecutionTransaction(ctx context.Context, attempts int64, workfl
return
}
} else {
- log.Printf("Skipping setexec with status %s", workflowExecution.Status)
+ log.Printf("[INFO] Skipping setexec with status %s", workflowExecution.Status)
+
+ // Just in case. Should MAYBE validate finishing another time as well.
+ // This fixes issues with e.g. Action -> Trigger -> Action.
+ handleExecutionResult(*workflowExecution)
+ //validateFinished(workflowExecution)
}
//if newExecutions && len(nextActions) > 0 {
// handleExecutionResult(*workflowExecution)
//}
- resp.WriteHeader(200)
- resp.Write([]byte(fmt.Sprintf(`{"success": true}`)))
+ //resp.WriteHeader(200)
+ //resp.Write([]byte(fmt.Sprintf(`{"success": true}`)))
}
func getWorkflowExecution(ctx context.Context, id string) (*WorkflowExecution, error) {
@@ -2532,7 +2542,7 @@ func validateFinished(workflowExecution WorkflowExecution) {
}
body, err := ioutil.ReadAll(newresp.Body)
- log.Printf("BACKEND STATUS: %d", newresp.StatusCode)
+ log.Printf("[INFO] BACKEND STATUS: %d", newresp.StatusCode)
if err != nil {
log.Printf("[ERROR] Failed reading body: %s", err)
} else {