Help us shape the future of Go! Take the 2026 Go Developer Survey

flow

package
v0.68.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const NAME = "Flow"

Variables

This section is empty.

Functions

This section is empty.

Types

type ActionCall

type ActionCall struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Description           *TextLiteral           `xml:"description"`
	Name                  ElementName            `xml:"name"`
	Label                 struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	ActionName struct {
		Text string `xml:",chardata"`
	} `xml:"actionName"`
	ActionType string `xml:"actionType"`
	Connector  *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	FlowTransactionModel *struct {
		Text string `xml:",chardata"`
	} `xml:"flowTransactionModel"`
	InputParameters []struct {
		ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
		Name                  struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"inputParameters"`
	NameSegment *struct {
		Text string `xml:",chardata"`
	} `xml:"nameSegment"`
	OutputParameters []struct {
		AssignToReference struct {
			Text string `xml:",chardata"`
		} `xml:"assignToReference"`
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
	} `xml:"outputParameters"`
	StoreOutputAutomatically *struct {
		Text string `xml:",chardata"`
	} `xml:"storeOutputAutomatically"`
	VersionSegment *struct {
		Text string `xml:",chardata"`
	} `xml:"versionSegment"`
}

type Assignment

type Assignment struct {
	Description *struct {
		Text string `xml:",chardata"`
	} `xml:"description"`
	Name  ElementName `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	AssignmentItems []struct {
		AssignToReference string `xml:"assignToReference"`
		Operator          string `xml:"operator"`
		Value             *Value `xml:"value"`
	} `xml:"assignmentItems"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
}

type CollectionProcessor added in v0.45.3

type CollectionProcessor struct {
	Description *TextLiteral `xml:"description"`
	Name        struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	ElementSubtype struct {
		Text string `xml:",chardata"`
	} `xml:"elementSubtype"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	AssignNextValueToReference struct {
		Text string `xml:",chardata"`
	} `xml:"assignNextValueToReference"`
	CollectionProcessorType struct {
		Text string `xml:",chardata"`
	} `xml:"collectionProcessorType"`
	CollectionReference struct {
		Text string `xml:",chardata"`
	} `xml:"collectionReference"`
	ConditionLogic struct {
		Text string `xml:",chardata"`
	} `xml:"conditionLogic"`
	Conditions  []Condition  `xml:"conditions"`
	Formula     *TextLiteral `xml:"formula"`
	Limit       *IntegerText `xml:"limit"`
	SortOptions []SortOption `xml:"sortOptions"`
	Connector   struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
}

CollectionProcessor is a Collection Filter or Collection Sort element, distinguished by CollectionProcessorType. A filter keeps the members of CollectionReference that satisfy Conditions (or Formula); a sort orders them by SortOptions and keeps at most Limit of them.

type Condition added in v0.45.3

type Condition struct {
	LeftValueReference string `xml:"leftValueReference"`
	Operator           string `xml:"operator"`
	RightValue         *Value `xml:"rightValue"`
}

Condition is one condition an element evaluates. Decision rules and Collection Filters share the shape.

type CustomError added in v0.45.2

type CustomError struct {
	Description *TextLiteral `xml:"description"`
	Name        struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	CustomErrorMessages []CustomErrorMessage `xml:"customErrorMessages"`
}

CustomError is a Custom Error element. It ends the path it sits on and blocks the save, reporting each of its messages against either the record or a named field.

type CustomErrorMessage added in v0.45.2

type CustomErrorMessage struct {
	ErrorMessage struct {
		Text string `xml:",chardata"`
	} `xml:"errorMessage"`
	FieldSelection *struct {
		Text string `xml:",chardata"`
	} `xml:"fieldSelection"`
	IsFieldError BooleanText `xml:"isFieldError"`
}

CustomErrorMessage is one message a Custom Error element reports. FieldSelection names the field the message attaches to and is set only when IsFieldError is true.

type Decision

type Decision struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Description           *TextLiteral           `xml:"description"`
	Name                  ElementName            `xml:"name"`
	Label                 struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	DefaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"defaultConnector"`
	DefaultConnectorLabel struct {
		Text string `xml:",chardata"`
	} `xml:"defaultConnectorLabel"`
	Rules []Rule `xml:"rules"`
}

type ElementName

type ElementName string

type Field

type Field struct {
	ProcessMetadataValues []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"processMetadataValues"`
	Name                           *string  `xml:"name"`
	ChoiceReferences               []string `xml:"choiceReferences"`
	DataType                       *string  `xml:"dataType"`
	DefaultSelectedChoiceReference *struct {
		Text string `xml:",chardata"`
	} `xml:"defaultSelectedChoiceReference"`
	DefaultValue     *Value `xml:"defaultValue"`
	DataTypeMappings []struct {
		TypeName struct {
			Text string `xml:",chardata"`
		} `xml:"typeName"`
		TypeValue struct {
			Text string `xml:",chardata"`
		} `xml:"typeValue"`
	} `xml:"dataTypeMappings"`
	ExtensionName   *string      `xml:"extensionName"`
	FieldText       *TextLiteral `xml:"fieldText"`
	FieldType       string       `xml:"fieldType"`
	Fields          []Field      `xml:"fields"`
	InputParameters []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"inputParameters"`
	HelpText *struct {
		Text string `xml:",chardata"`
	} `xml:"helpText"`
	InputsOnNextNavToAssocScrn *struct {
		Text string `xml:",chardata"`
	} `xml:"inputsOnNextNavToAssocScrn"`
	IsDisabled *struct {
		ElementReference *struct {
			Text string `xml:",chardata"`
		} `xml:"elementReference"`
		BooleanValue *BooleanText `xml:"booleanValue"`
	} `xml:"isDisabled"`
	IsRequired *struct {
		Text string `xml:",chardata"`
	} `xml:"isRequired"`
	StoreOutputAutomatically *struct {
		Text string `xml:",chardata"`
	} `xml:"storeOutputAutomatically"`
	Scale *struct {
		Text string `xml:",chardata"`
	} `xml:"scale"`
	ValidationRule *struct {
		ErrorMessage struct {
			Text string `xml:",chardata"`
		} `xml:"errorMessage"`
		FormulaExpression TextLiteral `xml:"formulaExpression"`
	} `xml:"validationRule"`
	OutputParameters []struct {
		AssignToReference struct {
			Text string `xml:",chardata"`
		} `xml:"assignToReference"`
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
	} `xml:"outputParameters"`
	RegionContainerType *struct {
		Text string `xml:",chardata"`
	} `xml:"regionContainerType"`
	VisibilityRule *struct {
		ConditionLogic struct {
			Text string `xml:",chardata"`
		} `xml:"conditionLogic"`
		Conditions []struct {
			LeftValueReference struct {
				Text string `xml:",chardata"`
			} `xml:"leftValueReference"`
			Operator struct {
				Text string `xml:",chardata"`
			} `xml:"operator"`
			RightValue *Value `xml:"rightValue"`
		} `xml:"conditions"`
	} `xml:"visibilityRule"`
	ObjectFieldReference *struct {
		Text string `xml:",chardata"`
	} `xml:"objectFieldReference"`
}

type Flow

type Flow struct {
	metadata.MetadataInfo
	XMLName     xml.Name     `xml:"Flow"`
	Xmlns       string       `xml:"xmlns,attr"`
	Xsi         string       `xml:"xmlns:xsi,attr,omitempty"`
	ActionCalls []ActionCall `xml:"actionCalls"`
	ApiVersion  *struct {
		Text string `xml:",chardata"`
	} `xml:"apiVersion"`
	Assignments []Assignment `xml:"assignments"`
	Choices     []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		ChoiceText struct {
			Text string `xml:",chardata"`
		} `xml:"choiceText"`
		DataType struct {
			Text string `xml:",chardata"`
		} `xml:"dataType"`
		Value *Value `xml:"value"`
	} `xml:"choices"`
	CollectionProcessors []CollectionProcessor `xml:"collectionProcessors"`
	CustomErrors         []CustomError         `xml:"customErrors"`
	CustomProperties     []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"customProperties"`
	Constants []struct {
		Description *TextLiteral `xml:"description"`
		Name        struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		DataType struct {
			Text string `xml:",chardata"`
		} `xml:"dataType"`
		Value Value `xml:"value"`
	} `xml:"constants"`
	Decisions         []Decision   `xml:"decisions"`
	Description       *TextLiteral `xml:"description"`
	DynamicChoiceSets []struct {
		Description *TextLiteral `xml:"description"`
		Name        struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		CollectionReference *struct {
			Text string `xml:",chardata"`
		} `xml:"collectionReference"`
		DataType struct {
			Text string `xml:",chardata"`
		} `xml:"dataType"`
		DisplayField struct {
			Text string `xml:",chardata"`
			Nil  string `xml:"xsi:nil,attr,omitempty"`
		} `xml:"displayField"`
		FilterLogic *string `xml:"filterLogic"`
		Filters     []struct {
			Field struct {
				Text string `xml:",chardata"`
			} `xml:"field"`
			Operator struct {
				Text string `xml:",chardata"`
			} `xml:"operator"`
			Value *Value `xml:"value"`
		} `xml:"filters"`
		Limit *struct {
			Text string `xml:",chardata"`
		} `xml:"limit"`
		Object struct {
			Text string `xml:",chardata"`
			Nil  string `xml:"xsi:nil,attr,omitempty"`
		} `xml:"object"`
		OutputAssignments *struct {
			AssignToReference struct {
				Text string `xml:",chardata"`
			} `xml:"assignToReference"`
			Field struct {
				Text string `xml:",chardata"`
			} `xml:"field"`
		} `xml:"outputAssignments"`
		PicklistField *struct {
			Text string `xml:",chardata"`
		} `xml:"picklistField"`
		PicklistObject *struct {
			Text string `xml:",chardata"`
		} `xml:"picklistObject"`
		SortField *struct {
			Text string `xml:",chardata"`
		} `xml:"sortField"`
		SortOrder *struct {
			Text string `xml:",chardata"`
		} `xml:"sortOrder"`
		ValueField *struct {
			Text string `xml:",chardata"`
		} `xml:"valueField"`
	} `xml:"dynamicChoiceSets"`
	Environments *struct {
		Text string `xml:",chardata"`
	} `xml:"environments"`
	Formulas []struct {
		ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
		Description           *TextLiteral           `xml:"description"`
		Name                  struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		DataType struct {
			Text string `xml:",chardata"`
		} `xml:"dataType"`
		Expression *TextLiteral `xml:"expression"`
		Scale      *struct {
			Text string `xml:",chardata"`
		} `xml:"scale"`
	} `xml:"formulas"`
	InterviewLabel *struct {
		Text string `xml:",chardata"`
	} `xml:"interviewLabel"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	Loops []struct {
		Description *TextLiteral `xml:"description"`
		Name        struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Label struct {
			Text string `xml:",chardata"`
		} `xml:"label"`
		LocationX struct {
			Text string `xml:",chardata"`
		} `xml:"locationX"`
		LocationY struct {
			Text string `xml:",chardata"`
		} `xml:"locationY"`
		AssignNextValueToReference *struct {
			Text string `xml:",chardata"`
		} `xml:"assignNextValueToReference"`
		CollectionReference struct {
			Text string `xml:",chardata"`
		} `xml:"collectionReference"`
		IterationOrder struct {
			Text string `xml:",chardata"`
		} `xml:"iterationOrder"`
		NextValueConnector struct {
			TargetReference ElementName `xml:"targetReference"`
		} `xml:"nextValueConnector"`
		NoMoreValuesConnector *struct {
			TargetReference ElementName `xml:"targetReference"`
		} `xml:"noMoreValuesConnector"`
	} `xml:"loops"`
	ProcessMetadataValues []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"processMetadataValues"`
	ProcessType struct {
		Text string `xml:",chardata"`
	} `xml:"processType"`
	RecordCreates   []RecordCreate   `xml:"recordCreates"`
	RecordDeletes   []RecordDelete   `xml:"recordDeletes"`
	RecordLookups   []RecordLookup   `xml:"recordLookups"`
	RecordRollbacks []RecordRollback `xml:"recordRollbacks"`
	RecordUpdates   []RecordUpdate   `xml:"recordUpdates"`
	RunInMode       *struct {
		Text string `xml:",chardata"`
	} `xml:"runInMode"`
	Screens               []Screen            `xml:"screens"`
	OrchestratedStages    []OrchestratedStage `xml:"orchestratedStages"`
	Stages                []Stage             `xml:"stages"`
	Start                 *Start              `xml:"start"`
	StartElementReference *struct {
		Text string `xml:",chardata"`
	} `xml:"startElementReference"`
	Status *struct {
		Text string `xml:",chardata"`
	} `xml:"status"`
	Subflows []struct {
		Description *TextLiteral `xml:"description"`
		Name        struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Label struct {
			Text string `xml:",chardata"`
		} `xml:"label"`
		LocationX struct {
			Text string `xml:",chardata"`
		} `xml:"locationX"`
		LocationY struct {
			Text string `xml:",chardata"`
		} `xml:"locationY"`
		Connector *struct {
			IsGoTo *struct {
				Text string `xml:",chardata"`
			} `xml:"isGoTo"`
			TargetReference ElementName `xml:"targetReference"`
		} `xml:"connector"`
		FlowName struct {
			Text string `xml:",chardata"`
		} `xml:"flowName"`
		InputAssignments []struct {
			Name struct {
				Text string `xml:",chardata"`
			} `xml:"name"`
			Value Value `xml:"value"`
		} `xml:"inputAssignments"`
		OutputAssignments []struct {
			AssignToReference struct {
				Text string `xml:",chardata"`
			} `xml:"assignToReference"`
			Name struct {
				Text string `xml:",chardata"`
			} `xml:"name"`
		} `xml:"outputAssignments"`
		StoreOutputAutomatically *struct {
			Text string `xml:",chardata"`
		} `xml:"storeOutputAutomatically"`
	} `xml:"subflows"`
	TextTemplates []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		IsViewedAsPlainText struct {
			Text string `xml:",chardata"`
		} `xml:"isViewedAsPlainText"`
		Text TextLiteral `xml:"text"`
	} `xml:"textTemplates"`
	TriggerOrder *struct {
		Text string `xml:",chardata"`
	} `xml:"triggerOrder"`
	Transforms []Transform `xml:"transforms"`
	Variables  []Variable  `xml:"variables"`
	Waits      []Wait      `xml:"waits"`
}

func Open

func Open(path string) (*Flow, error)

func (*Flow) SetMetadata

func (c *Flow) SetMetadata(m metadata.MetadataInfo)

func (Flow) Tidy

func (f Flow) Tidy()

func (*Flow) Type

func (c *Flow) Type() metadata.MetadataType

type OrchestratedStage added in v0.54.0

type OrchestratedStage struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Description           *TextLiteral           `xml:"description"`
	Name                  ElementName            `xml:"name"`
	Label                 struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	ExitActionInputParameters  []StageStepParameter       `xml:"exitActionInputParameters"`
	ExitActionName             *TextLiteral               `xml:"exitActionName"`
	ExitActionOutputParameters []StageStepOutputParameter `xml:"exitActionOutputParameters"`
	ExitActionType             *TextLiteral               `xml:"exitActionType"`
	ExitConditionLogic         *TextLiteral               `xml:"exitConditionLogic"`
	ExitConditions             []StageStepCondition       `xml:"exitConditions"`
	RunAsUser                  *BooleanText               `xml:"runAsUser"`
	StageSteps                 []StageStep                `xml:"stageSteps"`
}

OrchestratedStage is a stage of a flow orchestration or flow approval process (processType Orchestrator or ApprovalWorkflow). A stage holds the steps that run while the orchestration is in it and connects to the next element once it completes.

type ProcessMetadataValue

type ProcessMetadataValue struct {
	Name  string `xml:"name"`
	Value Value  `xml:"value"`
}

type RecordCreate

type RecordCreate struct {
	Description *TextLiteral `xml:"description"`
	Name        struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	AssignRecordIdToReference *struct {
		Text string `xml:",chardata"`
	} `xml:"assignRecordIdToReference"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	InputReference *struct {
		Text string `xml:",chardata"`
	} `xml:"inputReference"`
	InputAssignments []struct {
		Field struct {
			Text string `xml:",chardata"`
		} `xml:"field"`
		Value *Value `xml:"value"`
	} `xml:"inputAssignments"`
	Object *struct {
		Text string `xml:",chardata"`
	} `xml:"object"`
	StoreOutputAutomatically *struct {
		Text string `xml:",chardata"`
	} `xml:"storeOutputAutomatically"`
}

type RecordDelete

type RecordDelete struct {
	Name  ElementName `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	FilterLogic *string `xml:"filterLogic"`
	Filters     []struct {
		Field    string `xml:"field"`
		Operator string `xml:"operator"`
		Value    *Value `xml:"value"`
	} `xml:"filters"`
	Object         *string `xml:"object"`
	InputReference *struct {
		Text string `xml:",chardata"`
	} `xml:"inputReference"`
}

type RecordLookup

type RecordLookup struct {
	Description *struct {
		Text string `xml:",chardata"`
	} `xml:"description"`
	Name  ElementName `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	AssignNullValuesIfNoRecordsFound BooleanText `xml:"assignNullValuesIfNoRecordsFound"`
	Connector                        struct {
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	FilterLogic *string `xml:"filterLogic"`
	Filters     []struct {
		Field    string `xml:"field"`
		Operator string `xml:"operator"`
		Value    *Value `xml:"value"`
	} `xml:"filters"`
	GetFirstRecordOnly *BooleanText `xml:"getFirstRecordOnly"`
	Object             string       `xml:"object"`
	OutputReference    *struct {
		Text string `xml:",chardata"`
	} `xml:"outputReference"`
	QueriedFields []struct {
		Text string `xml:",chardata"`
	} `xml:"queriedFields"`
	OutputAssignments []struct {
		AssignToReference struct {
			Text string `xml:",chardata"`
		} `xml:"assignToReference"`
		Field struct {
			Text string `xml:",chardata"`
		} `xml:"field"`
	} `xml:"outputAssignments"`
	SortField *struct {
		Text string `xml:",chardata"`
	} `xml:"sortField"`
	SortOrder *struct {
		Text string `xml:",chardata"`
	} `xml:"sortOrder"`
	StoreOutputAutomatically *BooleanText `xml:"storeOutputAutomatically"`
}

type RecordRollback

type RecordRollback struct {
	Name struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
}

type RecordUpdate

type RecordUpdate struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Description           *struct {
		Text string `xml:",chardata"`
	} `xml:"description"`
	Name struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	FilterLogic *string `xml:"filterLogic"`
	Filters     []struct {
		ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
		Field                 struct {
			Text string `xml:",chardata"`
		} `xml:"field"`
		Operator struct {
			Text string `xml:",chardata"`
		} `xml:"operator"`
		Value *Value `xml:"value"`
	} `xml:"filters"`
	InputAssignments []struct {
		ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
		Field                 struct {
			Text string `xml:",chardata"`
		} `xml:"field"`
		Value *Value `xml:"value"`
	} `xml:"inputAssignments"`
	Object *struct {
		Text string `xml:",chardata"`
	} `xml:"object"`
	InputReference *struct {
		Text string `xml:",chardata"`
	} `xml:"inputReference"`
}

type Rule

type Rule struct {
	Name struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	ConditionLogic string      `xml:"conditionLogic"`
	Conditions     []Condition `xml:"conditions"`
	Connector      *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	DoesRequireRecordChangedToMeetCriteria *struct {
		Text string `xml:",chardata"`
	} `xml:"doesRequireRecordChangedToMeetCriteria"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
}

type Screen

type Screen struct {
	Description *TextLiteral `xml:"description"`
	Name        ElementName  `xml:"name"`
	Label       struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	AllowBack struct {
		Text string `xml:",chardata"`
	} `xml:"allowBack"`
	AllowFinish BooleanText `xml:"allowFinish"`
	AllowPause  struct {
		Text string `xml:",chardata"`
	} `xml:"allowPause"`
	BackButtonLabel *struct {
		Text string `xml:",chardata"`
	} `xml:"backButtonLabel"`
	Connector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	Fields                  []Field      `xml:"fields"`
	HelpText                *TextLiteral `xml:"helpText"`
	NextOrFinishButtonLabel *struct {
		Text string `xml:",chardata"`
	} `xml:"nextOrFinishButtonLabel"`
	PausedText *struct {
		Text string `xml:",chardata"`
	} `xml:"pausedText"`
	ShowFooter struct {
		Text string `xml:",chardata"`
	} `xml:"showFooter"`
	ShowHeader struct {
		Text string `xml:",chardata"`
	} `xml:"showHeader"`
	StageReference *struct {
		ElementReference struct {
			Text string `xml:",chardata"`
		} `xml:"elementReference"`
	} `xml:"stageReference"`
}

type SortOption added in v0.45.3

type SortOption struct {
	DoesPutEmptyStringAndNullFirst BooleanText `xml:"doesPutEmptyStringAndNullFirst"`
	SortField                      struct {
		Text string `xml:",chardata"`
	} `xml:"sortField"`
	SortOrder struct {
		Text string `xml:",chardata"`
	} `xml:"sortOrder"`
}

SortOption is one level of a Collection Sort's ordering, applied in the order the options appear.

type Stage added in v0.50.1

type Stage struct {
	Description *TextLiteral `xml:"description"`
	Name        ElementName  `xml:"name"`
	IsActive    BooleanText  `xml:"isActive"`
	Label       struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	StageOrder struct {
		Text string `xml:",chardata"`
	} `xml:"stageOrder"`
}

Stage is a flow stage resource: one step of the flow's screen progress indicator, referenced by screens through stageReference.

type StageStep added in v0.54.0

type StageStep struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Description           *TextLiteral           `xml:"description"`
	Name                  ElementName            `xml:"name"`
	ActionName            struct {
		Text string `xml:",chardata"`
	} `xml:"actionName"`
	ActionType string `xml:"actionType"`
	Assignees  []struct {
		Assignee     *Value `xml:"assignee"`
		AssigneeType struct {
			Text string `xml:",chardata"`
		} `xml:"assigneeType"`
	} `xml:"assignees"`
	CanAssigneeEdit             *BooleanText               `xml:"canAssigneeEdit"`
	DebugSimulateStep           *BooleanText               `xml:"debugSimulateStep"`
	EntryActionInputParameters  []StageStepParameter       `xml:"entryActionInputParameters"`
	EntryActionName             *TextLiteral               `xml:"entryActionName"`
	EntryActionOutputParameters []StageStepOutputParameter `xml:"entryActionOutputParameters"`
	EntryActionType             *TextLiteral               `xml:"entryActionType"`
	EntryConditionLogic         *TextLiteral               `xml:"entryConditionLogic"`
	EntryConditions             []StageStepCondition       `xml:"entryConditions"`
	ExitActionInputParameters   []StageStepParameter       `xml:"exitActionInputParameters"`
	ExitActionName              *TextLiteral               `xml:"exitActionName"`
	ExitActionOutputParameters  []StageStepOutputParameter `xml:"exitActionOutputParameters"`
	ExitActionType              *TextLiteral               `xml:"exitActionType"`
	ExitConditionLogic          *TextLiteral               `xml:"exitConditionLogic"`
	ExitConditions              []StageStepCondition       `xml:"exitConditions"`
	InputParameters             []StageStepParameter       `xml:"inputParameters"`
	Label                       struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	OutputConfigParams []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"outputConfigParams"`
	OutputParameters        []StageStepOutputParameter `xml:"outputParameters"`
	RequiresAsyncProcessing *BooleanText               `xml:"requiresAsyncProcessing"`
	RunAsUser               *BooleanText               `xml:"runAsUser"`
	ShouldLock              *BooleanText               `xml:"shouldLock"`
	StepSubtype             *TextLiteral               `xml:"stepSubtype"`
}

StageStep is one step of an OrchestratedStage: a background step runs an autolaunched flow, an approval step assigns an approval work item, and an interactive step assigns a screen flow to a user, group, or queue.

type StageStepCondition added in v0.54.0

type StageStepCondition struct {
	ConditionType      *TextLiteral `xml:"conditionType"`
	LeftValueReference string       `xml:"leftValueReference"`
	Operator           string       `xml:"operator"`
	RightValue         *Value       `xml:"rightValue"`
}

StageStepCondition is an entry or exit condition of a stage or step. It carries a conditionType the decision Condition type does not.

type StageStepOutputParameter added in v0.54.0

type StageStepOutputParameter struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	AssignToReference     struct {
		Text string `xml:",chardata"`
	} `xml:"assignToReference"`
	Name struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
}

StageStepOutputParameter maps an output of a stage step's flow onto a flow resource.

type StageStepParameter added in v0.54.0

type StageStepParameter struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Name                  struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	Value *Value `xml:"value"`
}

StageStepParameter is an input parameter of a stage step or of a stage or step entry/exit evaluation flow.

type Start

type Start struct {
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	Connector *struct {
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	DoesRequireRecordChangedToMeetCriteria *struct {
		Text string `xml:",chardata"`
	} `xml:"doesRequireRecordChangedToMeetCriteria"`
	FilterLogic   *string      `xml:"filterLogic"`
	FilterFormula *TextLiteral `xml:"filterFormula"`
	Filters       []struct {
		Field struct {
			Text string `xml:",chardata"`
		} `xml:"field"`
		Operator struct {
			Text string `xml:",chardata"`
		} `xml:"operator"`
		Value *Value `xml:"value"`
	} `xml:"filters"`
	Object            *string `xml:"object"`
	RecordTriggerType *struct {
		Text string `xml:",chardata"`
	} `xml:"recordTriggerType"`
	Schedule *struct {
		Frequency struct {
			Text string `xml:",chardata"`
		} `xml:"frequency"`
		StartDate struct {
			Text string `xml:",chardata"`
		} `xml:"startDate"`
		StartTime struct {
			Text string `xml:",chardata"`
		} `xml:"startTime"`
	} `xml:"schedule"`
	ScheduledPaths []struct {
		Name *struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Connector struct {
			IsGoTo *struct {
				Text string `xml:",chardata"`
			} `xml:"isGoTo"`
			TargetReference ElementName `xml:"targetReference"`
		} `xml:"connector"`
		Label *struct {
			Text string `xml:",chardata"`
		} `xml:"label"`
		MaxBatchSize *struct {
			Text string `xml:",chardata"`
		} `xml:"maxBatchSize"`
		OffsetNumber *struct {
			Text string `xml:",chardata"`
		} `xml:"offsetNumber"`
		OffsetUnit *struct {
			Text string `xml:",chardata"`
		} `xml:"offsetUnit"`
		PathType    *string `xml:"pathType"`
		RecordField *string `xml:"recordField"`
		TimeSource  *struct {
			Text string `xml:",chardata"`
		} `xml:"timeSource"`
	} `xml:"scheduledPaths"`
	TriggerType *string `xml:"triggerType"`
}

type Transform added in v0.49.0

type Transform struct {
	Description *TextLiteral `xml:"description"`
	Name        struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	ElementSubtype *TextLiteral `xml:"elementSubtype"`
	ApexClass      *TextLiteral `xml:"apexClass"`
	Connector      *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	// DataType and ObjectType describe what the transform produces: an
	// ObjectType is present only when DataType is SObject.
	DataType                 *TextLiteral     `xml:"dataType"`
	ObjectType               *TextLiteral     `xml:"objectType"`
	IsCollection             *BooleanText     `xml:"isCollection"`
	Scale                    *TextLiteral     `xml:"scale"`
	StoreOutputAutomatically *BooleanText     `xml:"storeOutputAutomatically"`
	TransformValues          []TransformValue `xml:"transformValues"`
}

Transform is a Transform element. It either maps a source collection onto a new collection, one output member per source member, or reduces a collection to a single value; IsCollection tells the two apart. The output is stored automatically under the element's own name.

type TransformValue added in v0.49.0

type TransformValue struct {
	Name                  *TextLiteral           `xml:"name"`
	Label                 *TextLiteral           `xml:"label"`
	TransformValueActions []TransformValueAction `xml:"transformValueActions"`
}

TransformValue groups the actions that produce one output value of a Transform.

type TransformValueAction added in v0.49.0

type TransformValueAction struct {
	// OutputFieldApiName is empty when the transform produces scalars rather
	// than records.
	OutputFieldApiName *TextLiteral `xml:"outputFieldApiName"`
	TransformType      *TextLiteral `xml:"transformType"`
	Value              *Value       `xml:"value"`
	InputParameters    []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"inputParameters"`
}

TransformValueAction produces one output of a Transform. A Map action names the expression it maps from in Value, and the field it lands on in OutputFieldApiName when the output is a record. An aggregate action (Count, Sum) carries no Value: it names the collection it reduces through an InputParameters entry called aggregationValues.

type Value

type Value struct {
	ElementReference *struct {
		Text string `xml:",chardata"`
	} `xml:"elementReference"`
	StringValue   *TextLiteral `xml:"stringValue"`
	DateValue     *TextLiteral `xml:"dateValue"`
	DateTimeValue *TextLiteral `xml:"dateTimeValue"`
	NumberValue   *struct {
		Text string `xml:",chardata"`
	} `xml:"numberValue"`
	BooleanValue *BooleanText `xml:"booleanValue"`
	// An action input that takes a collection lists its members as
	// collectionElements, each a literal or an element reference.
	CollectionElements []Value `xml:"collectionElements"`
	// A Transform maps its output through a formula rather than a literal or
	// a reference, carrying the expression and its result type in the value.
	FormulaDataType   *TextLiteral `xml:"formulaDataType"`
	FormulaExpression *TextLiteral `xml:"formulaExpression"`
}

func (Value) String

func (v Value) String() string

type Variable

type Variable struct {
	Description *struct {
		Text string `xml:",chardata"`
	} `xml:"description"`
	Name      string `xml:"name"`
	ApexClass *struct {
		Text string `xml:",chardata"`
	} `xml:"apexClass"`
	DataType     string      `xml:"dataType"`
	IsCollection BooleanText `xml:"isCollection"`
	IsInput      BooleanText `xml:"isInput"`
	IsOutput     BooleanText `xml:"isOutput"`
	ObjectType   *struct {
		Text string `xml:",chardata"`
	} `xml:"objectType"`
	Scale *struct {
		Text string `xml:",chardata"`
	} `xml:"scale"`
	Value *Value `xml:"value"`
}

type Wait added in v0.45.4

type Wait struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Name                  struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	ElementSubtype struct {
		Text string `xml:",chardata"`
	} `xml:"elementSubtype"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	LocationX struct {
		Text string `xml:",chardata"`
	} `xml:"locationX"`
	LocationY struct {
		Text string `xml:",chardata"`
	} `xml:"locationY"`
	DefaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"defaultConnector"`
	DefaultConnectorLabel struct {
		Text string `xml:",chardata"`
	} `xml:"defaultConnectorLabel"`
	FaultConnector *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"faultConnector"`
	TimeZoneId *struct {
		Text string `xml:",chardata"`
	} `xml:"timeZoneId"`
	WaitEvents []WaitEvent `xml:"waitEvents"`
}

Wait is a Wait element. Each wait event whose conditions are met is armed and pauses the interview until its event (e.g. a time-based alarm) fires; when no event arms, the default connector runs immediately.

type WaitEvent added in v0.45.4

type WaitEvent struct {
	ProcessMetadataValues []ProcessMetadataValue `xml:"processMetadataValues"`
	Name                  struct {
		Text string `xml:",chardata"`
	} `xml:"name"`
	ConditionLogic struct {
		Text string `xml:",chardata"`
	} `xml:"conditionLogic"`
	Conditions []Condition `xml:"conditions"`
	Connector  *struct {
		IsGoTo *struct {
			Text string `xml:",chardata"`
		} `xml:"isGoTo"`
		TargetReference ElementName `xml:"targetReference"`
	} `xml:"connector"`
	EventType struct {
		Text string `xml:",chardata"`
	} `xml:"eventType"`
	InputParameters []struct {
		Name struct {
			Text string `xml:",chardata"`
		} `xml:"name"`
		Value *Value `xml:"value"`
	} `xml:"inputParameters"`
	Label struct {
		Text string `xml:",chardata"`
	} `xml:"label"`
	Offset struct {
		Text string `xml:",chardata"`
	} `xml:"offset"`
	OffsetUnit struct {
		Text string `xml:",chardata"`
	} `xml:"offsetUnit"`
}

WaitEvent is one event a Wait element can pause on. Conditions (combined per ConditionLogic) decide whether the event arms; EventType names the event kind (AlarmEvent, DateRefAlarmEvent, platform event API name); InputParameters carry the alarm's offset definition.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL