Documentation ¶
Index ¶
- Constants
- func ApplyExecOptions(instance *IndependentInstance, execOptions *ExecOptions)
- func DefaultConfig() *util.ServiceConfig
- func GetFlowIOMetadata(flowURI string) (*data.IOMetadata, error)
- func NewFixedTaskScope(refAttrs map[string]*data.Attribute, task *definition.Task, isInput bool) data.Scope
- func NewWorkingDataScope(parentScope data.Scope, workingData map[string]*data.Attribute) data.Scope
- func StartSubFlow(ctx activity.Context, flowURI string, inputs map[string]*data.Attribute) error
- type ActivityEvalError
- type AttributeChange
- type ChgType
- type ExecOptions
- type FixedTaskScope
- type IDGenerator
- type IDResponse
- type IndependentInstance
- func (inst *IndependentInstance) ApplyInterceptor(interceptor *support.Interceptor)
- func (inst *IndependentInstance) ApplyPatch(patch *support.Patch)
- func (inst *IndependentInstance) DoStep() bool
- func (inst *IndependentInstance) GetChanges() *InstanceChangeTracker
- func (inst *IndependentInstance) HandleGlobalError(containerInst *Instance, err error)
- func (inst *IndependentInstance) MarshalJSON() ([]byte, error)
- func (inst *IndependentInstance) ResetChanges()
- func (inst *IndependentInstance) Restart(id string, manager *support.FlowManager) error
- func (inst *IndependentInstance) Start(startAttrs map[string]*data.Attribute) bool
- func (inst *IndependentInstance) StepID() int
- func (inst *IndependentInstance) UnmarshalJSON(d []byte) error
- type Instance
- func (inst *Instance) AddAttr(attrName string, attrType data.Type, value interface{}) *data.Attribute
- func (inst *Instance) FindOrCreateLinkData(link *definition.Link) (linkInst *LinkInst, created bool)
- func (inst *Instance) FindOrCreateTaskData(task *definition.Task) (taskInst *TaskInst, created bool)
- func (inst *Instance) FlowDefinition() *definition.Definition
- func (inst *Instance) FlowURI() string
- func (inst *Instance) GetAttr(attrName string) (value *data.Attribute, exists bool)
- func (inst *Instance) GetResolver() data.Resolver
- func (inst *Instance) GetReturnData() (map[string]*data.Attribute, error)
- func (inst *Instance) ID() string
- func (inst *Instance) IOMetadata() *data.IOMetadata
- func (inst *Instance) MarshalJSON() ([]byte, error)
- func (inst *Instance) Name() string
- func (inst *Instance) Reply(replyData map[string]*data.Attribute, err error)
- func (inst *Instance) ReplyHandler() activity.ReplyHandler
- func (inst *Instance) Return(returnData map[string]*data.Attribute, err error)
- func (inst *Instance) SetAttrValue(attrName string, value interface{}) error
- func (inst *Instance) SetResultHandler(handler action.ResultHandler)
- func (inst *Instance) SetStatus(status model.FlowStatus)
- func (inst *Instance) Status() model.FlowStatus
- func (inst *Instance) TaskInstances() []model.TaskInstance
- func (inst *Instance) UnmarshalJSON(d []byte) error
- func (inst *Instance) UpdateAttrs(attrs map[string]*data.Attribute)
- func (inst *Instance) WorkingData() data.Scope
- type InstanceChange
- type InstanceChangeTracker
- func (ict *InstanceChangeTracker) AttrChange(subFlowId int, chgType ChgType, attribute *data.Attribute)
- func (ict *InstanceChangeTracker) MarshalJSON() ([]byte, error)
- func (ict *InstanceChangeTracker) ResetChanges()
- func (ict *InstanceChangeTracker) SetState(subFlowId int, state int)
- func (ict *InstanceChangeTracker) SetStatus(subFlowId int, status model.FlowStatus)
- func (ict *InstanceChangeTracker) SubFlowChange(parentFlowId int, chgType ChgType, subFlowId int, taskID string)
- type LinkInst
- type LinkInstChange
- type RecordSnapshotReq
- type RecordStepReq
- type RemoteStateRecorder
- func (sr *RemoteStateRecorder) Enabled() bool
- func (sr *RemoteStateRecorder) Name() string
- func (sr *RemoteStateRecorder) RecordSnapshot(instance *IndependentInstance)
- func (sr *RemoteStateRecorder) RecordStep(instance *IndependentInstance)
- func (sr *RemoteStateRecorder) Start() error
- func (sr *RemoteStateRecorder) Stop() error
- type RunOptions
- type SimpleReplyHandler
- type StateRecorder
- type SubFlowChange
- type TaskInst
- func (ti *TaskInst) ActivityHost() activity.Host
- func (ti *TaskInst) AddWorkingData(attr *data.Attribute)
- func (ti *TaskInst) EvalActivity() (done bool, evalErr error)
- func (ti *TaskInst) EvalLink(link *definition.Link) (result bool, err error)
- func (ti *TaskInst) FlowDetails() activity.FlowDetails
- func (ti *TaskInst) FlowReply(replyData map[string]*data.Attribute, err error)
- func (ti *TaskInst) FlowReturn(returnData map[string]*data.Attribute, err error)
- func (ti *TaskInst) GetFromLinkInstances() []model.LinkInstance
- func (ti *TaskInst) GetInitValue(key string) (value interface{}, exists bool)
- func (ti *TaskInst) GetInput(name string) interface{}
- func (ti *TaskInst) GetOutput(name string) interface{}
- func (ti *TaskInst) GetSetting(setting string) (value interface{}, exists bool)
- func (ti *TaskInst) GetToLinkInstances() []model.LinkInstance
- func (ti *TaskInst) GetWorkingData(key string) (*data.Attribute, bool)
- func (ti *TaskInst) HasActivity() bool
- func (ti *TaskInst) HasWorkingData() bool
- func (ti *TaskInst) InputScope() data.Scope
- func (ti *TaskInst) MarshalJSON() ([]byte, error)
- func (ti *TaskInst) Name() string
- func (ti *TaskInst) OutputScope() data.Scope
- func (ti *TaskInst) PostEvalActivity() (done bool, evalErr error)
- func (ti *TaskInst) Resolve(toResolve string) (value interface{}, err error)
- func (ti *TaskInst) SetOutput(name string, value interface{})
- func (ti *TaskInst) SetStatus(status model.TaskStatus)
- func (ti *TaskInst) Status() model.TaskStatus
- func (ti *TaskInst) Task() *definition.Task
- func (ti *TaskInst) TaskName() string
- func (ti *TaskInst) UnmarshalJSON(d []byte) error
- func (ti *TaskInst) UpdateWorkingData(key string, value interface{}) error
- type TaskInstChange
- type WorkItem
- type WorkItemQueueChange
- type WorkingDataScope
Constants ¶
const ( OpStart = iota // 0 OpResume // 1 OpRestart // 2 )
Variables ¶
This section is empty.
Functions ¶
func ApplyExecOptions ¶
func ApplyExecOptions(instance *IndependentInstance, execOptions *ExecOptions)
ApplyExecOptions applies any execution options to the flow instance
func DefaultConfig ¶
func DefaultConfig() *util.ServiceConfig
func GetFlowIOMetadata ¶ added in v0.5.2
func GetFlowIOMetadata(flowURI string) (*data.IOMetadata, error)
func NewFixedTaskScope ¶
func NewFixedTaskScope(refAttrs map[string]*data.Attribute, task *definition.Task, isInput bool) data.Scope
NewFixedTaskScope creates a FixedTaskScope
func NewWorkingDataScope ¶
NewFixedTaskScope creates a FixedTaskScope
Types ¶
type ActivityEvalError ¶
type ActivityEvalError struct {
// contains filtered or unexported fields
}
func NewActivityEvalError ¶
func NewActivityEvalError(taskName string, errorType string, errorText string) *ActivityEvalError
func (*ActivityEvalError) Error ¶
func (e *ActivityEvalError) Error() string
func (*ActivityEvalError) TaskName ¶
func (e *ActivityEvalError) TaskName() string
func (*ActivityEvalError) Type ¶
func (e *ActivityEvalError) Type() string
type AttributeChange ¶
AttributeChange represents a change to an Attribute
type ExecOptions ¶
type ExecOptions struct { Patch *support.Patch Interceptor *support.Interceptor }
ExecOptions are optional Patch & Interceptor to be used during instance execution
type FixedTaskScope ¶
type FixedTaskScope struct {
// contains filtered or unexported fields
}
FixedTaskScope is scope restricted by the set of reference attrs and backed by the specified Task
func (*FixedTaskScope) GetAttr ¶
func (s *FixedTaskScope) GetAttr(attrName string) (attr *data.Attribute, exists bool)
GetAttr implements Scope.GetAttr
func (*FixedTaskScope) SetAttrValue ¶
func (s *FixedTaskScope) SetAttrValue(attrName string, value interface{}) error
SetAttrValue implements Scope.SetAttrValue
type IDGenerator ¶
type IDGenerator interface { //NewFlowInstanceID generate a new instance ID NewFlowInstanceID() string }
IDGenerator generates IDs for flow instances
type IDResponse ¶
type IDResponse struct {
ID string `json:"id"`
}
IDResponse is a response object consists of an ID
type IndependentInstance ¶ added in v0.5.2
type IndependentInstance struct { *Instance ChangeTracker *InstanceChangeTracker // contains filtered or unexported fields }
func NewIndependentInstance ¶ added in v0.5.2
func NewIndependentInstance(instanceID string, flowURI string, flow *definition.Definition) *IndependentInstance
New creates a new Flow Instance from the specified Flow
func (*IndependentInstance) ApplyInterceptor ¶ added in v0.5.2
func (inst *IndependentInstance) ApplyInterceptor(interceptor *support.Interceptor)
func (*IndependentInstance) ApplyPatch ¶ added in v0.5.2
func (inst *IndependentInstance) ApplyPatch(patch *support.Patch)
func (*IndependentInstance) DoStep ¶ added in v0.5.2
func (inst *IndependentInstance) DoStep() bool
func (*IndependentInstance) GetChanges ¶ added in v0.5.2
func (inst *IndependentInstance) GetChanges() *InstanceChangeTracker
GetChanges returns the Change Tracker object
func (*IndependentInstance) HandleGlobalError ¶ added in v0.5.2
func (inst *IndependentInstance) HandleGlobalError(containerInst *Instance, err error)
HandleGlobalError handles instance errors
func (*IndependentInstance) MarshalJSON ¶ added in v0.5.2
func (inst *IndependentInstance) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default MarshalJSON for FlowInstance
func (*IndependentInstance) ResetChanges ¶ added in v0.5.2
func (inst *IndependentInstance) ResetChanges()
ResetChanges resets an changes that were being tracked
func (*IndependentInstance) Restart ¶ added in v0.5.2
func (inst *IndependentInstance) Restart(id string, manager *support.FlowManager) error
// Restart indicates that this FlowInstance was restarted
func (*IndependentInstance) Start ¶ added in v0.5.2
func (inst *IndependentInstance) Start(startAttrs map[string]*data.Attribute) bool
func (*IndependentInstance) StepID ¶ added in v0.5.2
func (inst *IndependentInstance) StepID() int
StepID returns the current step ID of the Flow Instance
func (*IndependentInstance) UnmarshalJSON ¶ added in v0.5.2
func (inst *IndependentInstance) UnmarshalJSON(d []byte) error
UnmarshalJSON overrides the default UnmarshalJSON for FlowInstance
type Instance ¶
type Instance struct {
// contains filtered or unexported fields
}
func (*Instance) AddAttr ¶
func (inst *Instance) AddAttr(attrName string, attrType data.Type, value interface{}) *data.Attribute
AddAttr add a new attribute to the instance
func (*Instance) FindOrCreateLinkData ¶ added in v0.5.2
func (inst *Instance) FindOrCreateLinkData(link *definition.Link) (linkInst *LinkInst, created bool)
FindOrCreateLinkData finds an existing LinkInst or creates ones if not found for the specified link the task environment
func (*Instance) FindOrCreateTaskData ¶ added in v0.5.2
func (inst *Instance) FindOrCreateTaskData(task *definition.Task) (taskInst *TaskInst, created bool)
FindOrCreateTaskData finds an existing TaskInst or creates ones if not found for the specified task the task environment
func (*Instance) FlowDefinition ¶
func (inst *Instance) FlowDefinition() *definition.Definition
FlowDefinition returns the Flow definition associated with this context
func (*Instance) GetResolver ¶ added in v0.5.2
func (*Instance) GetReturnData ¶
func (*Instance) IOMetadata ¶ added in v0.5.2
func (inst *Instance) IOMetadata() *data.IOMetadata
IOMetadata get the input/output metadata of the activity host
func (*Instance) MarshalJSON ¶
MarshalJSON overrides the default MarshalJSON for FlowInstance
func (*Instance) ReplyHandler ¶
func (inst *Instance) ReplyHandler() activity.ReplyHandler
ReplyHandler returns the reply handler for the instance
func (*Instance) SetAttrValue ¶
SetAttrValue implements api.Scope.SetAttrValue
func (*Instance) SetResultHandler ¶ added in v0.5.2
func (inst *Instance) SetResultHandler(handler action.ResultHandler)
InitActionContext initialize the action context, should be initialized before execution
func (*Instance) SetStatus ¶ added in v0.5.2
func (inst *Instance) SetStatus(status model.FlowStatus)
func (*Instance) Status ¶
func (inst *Instance) Status() model.FlowStatus
Status returns the current status of the Flow Instance
func (*Instance) TaskInstances ¶ added in v0.5.2
func (inst *Instance) TaskInstances() []model.TaskInstance
TaskInstances get the task instances
func (*Instance) UnmarshalJSON ¶
UnmarshalJSON overrides the default UnmarshalJSON for FlowInstance
func (*Instance) UpdateAttrs ¶
UpdateAttrs updates the attributes of the Flow Instance
func (*Instance) WorkingData ¶ added in v0.5.2
type InstanceChange ¶
type InstanceChange struct { SubFlowID int Status model.FlowStatus AttrChanges []*AttributeChange SubFlowChg *SubFlowChange State int // contains filtered or unexported fields }
InstanceChange represents a change to the instance
func (*InstanceChange) MarshalJSON ¶ added in v0.5.2
func (ic *InstanceChange) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default MarshalJSON for InstanceChangeTracker
type InstanceChangeTracker ¶
type InstanceChangeTracker struct {
// contains filtered or unexported fields
}
InstanceChangeTracker is used to track all changes to an instance
func NewInstanceChangeTracker ¶
func NewInstanceChangeTracker() *InstanceChangeTracker
NewInstanceChangeTracker creates an InstanceChangeTracker
func (*InstanceChangeTracker) AttrChange ¶
func (ict *InstanceChangeTracker) AttrChange(subFlowId int, chgType ChgType, attribute *data.Attribute)
AttrChange is called to track a status change of an Attribute
func (*InstanceChangeTracker) MarshalJSON ¶
func (ict *InstanceChangeTracker) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default MarshalJSON for InstanceChangeTracker
func (*InstanceChangeTracker) ResetChanges ¶
func (ict *InstanceChangeTracker) ResetChanges()
ResetChanges is used to reset any tracking data stored on instance objects
func (*InstanceChangeTracker) SetState ¶
func (ict *InstanceChangeTracker) SetState(subFlowId int, state int)
SetStatus is called to track a state change on an instance
func (*InstanceChangeTracker) SetStatus ¶
func (ict *InstanceChangeTracker) SetStatus(subFlowId int, status model.FlowStatus)
SetStatus is called to track a status change on an instance
func (*InstanceChangeTracker) SubFlowChange ¶ added in v0.5.2
func (ict *InstanceChangeTracker) SubFlowChange(parentFlowId int, chgType ChgType, subFlowId int, taskID string)
AttrChange is called to track a status change of an Attribute
type LinkInst ¶ added in v0.5.2
type LinkInst struct {
// contains filtered or unexported fields
}
LinkInst represents data associated with an instance of a Link
func NewLinkInst ¶ added in v0.5.2
func NewLinkInst(inst *Instance, link *definition.Link) *LinkInst
NewLinkInst creates a LinkInst for the specified link in the specified task environment
func (*LinkInst) Link ¶ added in v0.5.2
func (ld *LinkInst) Link() *definition.Link
Link returns the Link associated with ld context
func (*LinkInst) MarshalJSON ¶ added in v0.5.2
MarshalJSON overrides the default MarshalJSON for LinkInst
func (*LinkInst) SetStatus ¶ added in v0.5.2
func (ld *LinkInst) SetStatus(status model.LinkStatus)
SetStatus sets the current state indicator for the LinkInst
func (*LinkInst) Status ¶ added in v0.5.2
func (ld *LinkInst) Status() model.LinkStatus
Status returns the current state indicator for the LinkInst
func (*LinkInst) UnmarshalJSON ¶ added in v0.5.2
UnmarshalJSON overrides the default UnmarshalJSON for LinkInst
type LinkInstChange ¶ added in v0.5.2
LinkInstChange represents a change to a LinkInst
func (*LinkInstChange) MarshalJSON ¶ added in v0.5.2
func (li *LinkInstChange) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default MarshalJSON for TaskInst
type RecordSnapshotReq ¶
type RecordSnapshotReq struct { ID int `json:"id"` FlowID string `json:"flowID"` State int `json:"state"` Status int `json:"status"` SnapshotData *IndependentInstance `json:"snapshotData"` }
RecordSnapshotReq serializable representation of the RecordSnapshot request
type RecordStepReq ¶
type RecordStepReq struct { ID int `json:"id"` FlowID string `json:"flowID"` //todo should move to the "stepData" State int `json:"state"` Status int `json:"status"` //todo we should have initial "init" to associate flowURI with flowID, instead of at every step FlowURI string `json:"flowURI"` StepData *InstanceChangeTracker `json:"stepData"` }
RecordStepReq serializable representation of the RecordStep request
type RemoteStateRecorder ¶
type RemoteStateRecorder struct {
// contains filtered or unexported fields
}
RemoteStateRecorder is an implementation of StateRecorder service that can access flows via URI
func NewRemoteStateRecorder ¶
func NewRemoteStateRecorder(config *util.ServiceConfig) *RemoteStateRecorder
NewRemoteStateRecorder creates a new RemoteStateRecorder
func (*RemoteStateRecorder) Enabled ¶
func (sr *RemoteStateRecorder) Enabled() bool
func (*RemoteStateRecorder) Name ¶
func (sr *RemoteStateRecorder) Name() string
func (*RemoteStateRecorder) RecordSnapshot ¶
func (sr *RemoteStateRecorder) RecordSnapshot(instance *IndependentInstance)
RecordSnapshot implements instance.StateRecorder.RecordSnapshot
func (*RemoteStateRecorder) RecordStep ¶
func (sr *RemoteStateRecorder) RecordStep(instance *IndependentInstance)
RecordStep implements instance.StateRecorder.RecordStep
func (*RemoteStateRecorder) Start ¶
func (sr *RemoteStateRecorder) Start() error
Start implements util.Managed.Start()
func (*RemoteStateRecorder) Stop ¶
func (sr *RemoteStateRecorder) Stop() error
Stop implements util.Managed.Stop()
type RunOptions ¶
type RunOptions struct { Op int ReturnID bool FlowURI string InitialState *IndependentInstance ExecOptions *ExecOptions }
RunOptions the options when running a FlowAction
type SimpleReplyHandler ¶
type SimpleReplyHandler struct {
// contains filtered or unexported fields
}
SimpleReplyHandler is a simple ReplyHandler that is pass-thru to the action ResultHandler
func (*SimpleReplyHandler) Reply ¶
func (rh *SimpleReplyHandler) Reply(code int, replyData interface{}, err error)
Reply implements ReplyHandler.Reply
type StateRecorder ¶
type StateRecorder interface { // RecordSnapshot records a Snapshot of the FlowInstance RecordSnapshot(instance *IndependentInstance) // RecordStep records the changes for the current Step of the Flow Instance RecordStep(instance *IndependentInstance) }
StateRecorder is the interface that describes a service that can record snapshots and steps of a Flow Instance
type SubFlowChange ¶ added in v0.5.2
InstanceChange represents a change to the instance
type TaskInst ¶ added in v0.5.2
type TaskInst struct {
// contains filtered or unexported fields
}
func NewTaskInst ¶ added in v0.5.2
func NewTaskInst(inst *Instance, task *definition.Task) *TaskInst
func (*TaskInst) ActivityHost ¶ added in v0.5.2
func (*TaskInst) AddWorkingData ¶ added in v0.5.2
func (*TaskInst) EvalActivity ¶ added in v0.5.2
EvalActivity implements activity.ActivityContext.EvalActivity method
func (*TaskInst) EvalLink ¶ added in v0.5.2
func (ti *TaskInst) EvalLink(link *definition.Link) (result bool, err error)
EvalLink implements activity.ActivityContext.EvalLink method
func (*TaskInst) FlowDetails ¶ added in v0.5.2
func (ti *TaskInst) FlowDetails() activity.FlowDetails
DEPRECATED
func (*TaskInst) FlowReply ¶ added in v0.5.2
FlowReply is used to reply to the Flow Host with the results of the execution
func (*TaskInst) FlowReturn ¶ added in v0.5.2
FlowReturn is used to indicate to the Flow Host that it should complete and return the results of the execution
func (*TaskInst) GetFromLinkInstances ¶ added in v0.5.2
func (ti *TaskInst) GetFromLinkInstances() []model.LinkInstance
GetFromLinkInstances implements model.TaskContext.GetFromLinkInstances
func (*TaskInst) GetInitValue ¶ added in v0.5.2
GetInitValue implements activity.Context.GetInitValue
func (*TaskInst) GetSetting ¶ added in v0.5.2
GetSetting implements activity.Context.GetSetting
func (*TaskInst) GetToLinkInstances ¶ added in v0.5.2
func (ti *TaskInst) GetToLinkInstances() []model.LinkInstance
GetToLinkInstances implements model.TaskContext.GetToLinkInstances,
func (*TaskInst) GetWorkingData ¶ added in v0.5.2
func (*TaskInst) HasActivity ¶ added in v0.5.2
HasActivity implements activity.ActivityContext.HasActivity method
func (*TaskInst) HasWorkingData ¶ added in v0.5.2
func (*TaskInst) InputScope ¶ added in v0.5.2
InputScope get the InputScope of the task instance
func (*TaskInst) MarshalJSON ¶ added in v0.5.2
MarshalJSON overrides the default MarshalJSON for TaskInst
func (*TaskInst) OutputScope ¶ added in v0.5.2
OutputScope get the InputScope of the task instance
func (*TaskInst) PostEvalActivity ¶ added in v0.5.2
EvalActivity implements activity.ActivityContext.EvalActivity method
func (*TaskInst) SetStatus ¶ added in v0.5.2
func (ti *TaskInst) SetStatus(status model.TaskStatus)
SetStatus implements flow.TaskContext.SetStatus
func (*TaskInst) Status ¶ added in v0.5.2
func (ti *TaskInst) Status() model.TaskStatus
Status implements flow.TaskContext.GetState
func (*TaskInst) Task ¶ added in v0.5.2
func (ti *TaskInst) Task() *definition.Task
Task implements model.TaskContext.Task, by returning the Task associated with this TaskInst object
func (*TaskInst) TaskName ¶ added in v0.5.2
TaskName implements activity.Context.TaskName method Deprecated
func (*TaskInst) UnmarshalJSON ¶ added in v0.5.2
UnmarshalJSON overrides the default UnmarshalJSON for TaskInst
func (*TaskInst) UpdateWorkingData ¶ added in v0.5.2
type TaskInstChange ¶ added in v0.5.2
TaskInstChange represents a change to a TaskInst
func (*TaskInstChange) MarshalJSON ¶ added in v0.5.2
func (ti *TaskInstChange) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default MarshalJSON for TaskInst
type WorkItem ¶
type WorkItem struct { ID int `json:"id"` TaskID string `json:"taskID"` SubFlowID int `json:"subFlowId"` // contains filtered or unexported fields }
WorkItem describes an item of work (event for a Task) that should be executed on Step
func NewWorkItem ¶
NewWorkItem constructs a new WorkItem for the specified TaskInst
type WorkItemQueueChange ¶
WorkItemQueueChange represents a change in the WorkItem Queue
type WorkingDataScope ¶
type WorkingDataScope struct {
// contains filtered or unexported fields
}
WorkingDataScope is scope restricted by the set of reference attrs and backed by the specified Task
func (*WorkingDataScope) GetAttr ¶
func (s *WorkingDataScope) GetAttr(attrName string) (attr *data.Attribute, exists bool)
GetAttr implements Scope.GetAttr
func (*WorkingDataScope) SetAttrValue ¶
func (s *WorkingDataScope) SetAttrValue(attrName string, value interface{}) error
SetAttrValue implements Scope.SetAttrValue