1、安装Nuget包 "WF.Engine.DbModels"
var builder = WebApplication . CreateBuilder ( args ) ;
//数据库字符串
var dbConnectString = "server=127.0.0.1;" +
"database=Test-Engine-0320-1;" +
"user id=postgres;password=12345678" ;
//自动创建数据库
var autoCreateDb = true ;
//工作流引擎GRPC地址,如果空,则启用内置
var engineGrpcAddress = string . Empty ;
//添加数据库上下文和工作流引擎接口
builder . Services . AddEngineDbContextAndGrpcClient ( dbConnectString ,
autoCreateDb ,
engineGrpcAddress ) ;
//添加完成任务回调
builder . Services . AddEngineUserTaskJobs ( TimeSpan . FromSeconds ( 60 ) , true ) ;
builder . Services . AddEngineUserTaskJobsEvent < MyCompleteUserTaskEvent > ( ) ;
引擎数据库 (导出Camunda所有表 ): EngineDbContext engineDbContext
引擎数据库工厂(导出Camunda所有表): IDbContextFactory< EngineDbContext > dbContextFactory
Grpc客户端:ProcessService. ProcessServiceClient processServiceClient
/// <summary>
/// 获取待办任务数量
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
[ HttpGet ( "todo-count" ) ]
public async Task < int > GetTodoCount ( string userId )
{
var list = await engineDbContext . ActRuTasks . AsNoTracking ( )
. CountAsync ( e => e . Assignee == userId ) ;
return list ;
}
//发起流程
var req = new StartProcessRequest
{
AuthenticatedUserId = value . UserId ,
BusinessKey = Guid . NewGuid ( ) . ToString ( ) ,
ProcessDefinitionKey = value . ProcessDefinitionKey
} ;
StartProcessReply res = await processServiceClient . StartProcessAsync ( req ) ;
//完成任务
var body = new CompleteTaskRequest
{
TaskId = value . UserTaskId ,
} ;
var res = await processServiceClient . CompleteUserTaskAsync ( body ) ;
引擎Web 5003 (camunda设计器、后台)