Skip to content

fix: workflow BSON serialization - array markers, parameter binding, outcomes #4

@engalar

Description

@engalar

Summary

Commit 3405dd7 fixes 13 CE errors in workflow BSON serialization, building on a6774ad.

Changes

1. BSON Array Markers (writer_workflow.go)

Fixed incorrect int32(3) to int32(2) for: BoundaryEvents, ParameterMappings, Parameters (StringTemplate).

2. Workflow Parameter Entity Format (writer_workflow.go)

Changed Workflows$Parameter from deleted EntityRef (PartProperty object) to Entity (ByNameReferenceProperty string). Added Name: "WorkflowContext".

3. CallWorkflowActivity ParameterMappings

Added ParameterMappings field to struct, writer serialization, and executor auto-bind with $WorkflowContext.

4. CallMicroflowTask Auto-binding

Added autoBindCallMicroflow(), default VoidConditionOutcome, and sanitizeActivityName().

5. UserTaskOutcome Value Field

Removed incorrect Caption/Name, added required Value field.

CE Errors Fixed

Error Description
CE0117 x8 Wrong array marker
CE1850 Deleted EntityRef format
CE1871 Missing ParameterMappings
CE6685 Missing microflow ParameterMappings
CE6686 Missing default outcome
CE7247 Spaces in Name
CE1864/CE1865 Missing Value field

How to Verify

make build

cat > /tmp/test-wf.mdl << 'MDL'
CREATE WORKFLOW WorkflowBaseline.E2E_TestWorkflow
  PARAMETER $WorkflowContext: WorkflowBaseline.Entity
BEGIN
  PARALLEL SPLIT COMMENT 'First Parallel'
    PATH 1 {
      CALL MICROFLOW WorkflowBaseline.Microflow;
      CALL MICROFLOW WorkflowBaseline.Microflow;
    }
    PATH 2 {
      CALL MICROFLOW WorkflowBaseline.Microflow_3;
    };
  CALL WORKFLOW WorkflowBaseline.Sub_Workflow;
  PARALLEL SPLIT COMMENT 'Second Parallel'
    PATH 1 { CALL WORKFLOW WorkflowBaseline.Sub_Workflow; }
    PATH 2 {
      CALL MICROFLOW WorkflowBaseline.Microflow;
      CALL WORKFLOW WorkflowBaseline.Sub_Workflow;
    };
  WAIT FOR NOTIFICATION COMMENT 'Await Signal';
  CALL MICROFLOW WorkflowBaseline.Microflow;
END WORKFLOW
/
MDL

# Execute, check, describe
./bin/mxcli exec /tmp/test-wf.mdl -p App.mpr
mx check App.mpr                    # expect 0 errors
./bin/mxcli -p App.mpr -c "DESCRIBE WORKFLOW WorkflowBaseline.E2E_TestWorkflow;"
# expect ParameterMappings shown for all CallMicroflow/CallWorkflow

# Cleanup
git -C /path/to/project checkout -- . && git clean -fd mprcontents/

Files Changed

  • sdk/workflows/workflow.go
  • sdk/mpr/writer_workflow.go
  • mdl/executor/cmd_workflows_write.go

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions