发布网友
共2个回答
热心网友
三种方式实现workflow的触发调用:
1:使用WorkflowInvoker类中的InVoke静态方法-->WorkflowInvoker.Invoke(myWF); //myWF为自定义的workflow实例
【这种方式可以像一个函数一样顺序执行我们的工作流程,非常简单,但是在工作流执行过程中,不能与工作流实现数据的交换】
2:调用WorkflowApplication实例的Run方法-->WorkflowApplication wfApp = new WorkflowApplication(myWF); wfApp.Run(); //myWF为自定义的workflow实例
【可以控制工作流实例长时间运行,可以在运行过程中和实例进行数据交换。但是只能执行一个的工作流实例。】
3:使用WorkflowServiceHost类host起来一个服务,然后在客户端声明一个ServiceClient类的实例,用这个实例通过WCF与之前host起来的服务进行通信完成workflow的触发调用。
【WorkflowServiceHost是一个最主要的工作流主机类。可以同时管理多个工作流实例,同时控制实例的激活等操作。
支持WCF,和3.5相比有更强大的消息关联功能。当然WorkflowServiceHost也支持持久化(Persistence)和跟踪(Tracking)等功能。】
热心网友
*Compare object key
asset_key-company_code = '0001'.
asset_key-asset_no = '000000123456'.
asset_key-sub_no = '0100'.
object_key = asset_key.
*Trigger the event
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
object = 'BUS1002'
objkey = object_key
event = 'CHANGED'
TABLES
event_container = evt_container
EXCEPTIONS
OTHERS = 01.
IF sy-subrc NE 0.
* Do you own error handling
...
ENDIF.
或者用
* set the import parameter for flow Z00MSIPROC1
* first: create object reference (runtime handle)
SWC_CREATE_OBJECT OBJECT 'Z00MARA' OBJKEY.
* second: write reference to work item container using parameter def
SWC_SET_ELEMENT WI_CONTAINER 'MaterialMaster' OBJECT.
* third: convert references in container from runtime handle to
* persistent object reference
SWC_CONTAINER_TO_PERSISTENT WI_CONTAINER.
* start the workflow via the function API
CALL FUNCTION 'SWW_WI_START_SIMPLE'
EXPORTING
* CREATOR = ' '
* PRIORITY = NO_PRIO
TASK = TASK
* CALLED_IN_BACKGROUND = ' '
* DEADLINE_DATA = ' '
IMPORTING
WI_ID = WI_ID
* WI_HEADER =
* RETURN =
* WI_RESULT =
TABLES
AGENTS= AGENTS " not needed here
* DEADLINE_AGENTS =
* DESIRED_END_AGENTS =
* LATEST_START_AGENTS =
* EXCLUDED_AGENTS =
* NOTIFICATION_AGENTS =
* SECONDARY_METHODS =
WI_CONTAINER = WI_CONTAINER
EXCEPTIONS
ID_NOT_CREATED = 1
READ_FAILED = 2
IMMEDIATE_START_NOT_POSSIBLE = 3
EXECUTION_FAILED = 4
INVALID_STATUS = 5
OTHERS = 6.
IF SY-SUBRC NE 0. " error message
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE. " success message
MESSAGE ID 'WZ' TYPE 'S' NUMBER '703' WITH WI_ID.
ENDIF.