BP调用时,如果BPAgetn的返回的oChannel为空时
protected override object InvokeImplement<T>(T oChannel) { IContext context = ContextManager.Context; IGetBillSrcBusinessType channel = oChannel as IGetBillSrcBusinessType; if (channel != null) { return channel.Do(context, out returnMsgs, docNo, aPOrAR); } return null; }
先确定BP脚本已经执行,如果还是为null,那就是BP没有通过组装工具发布造成的。
也可以用以下脚本把BP发布到数据库
declare @Component nvarchar( 50) -- 设置组件名称 set @Component = ' xxx.dll ' declare @Application int -- 设置组件所在模块 set @Application = 3001 DELETE FROM UBF_Assemble_AppComponents WHERE Component = @Component; declare @SNIndex bigint if object_id( ' InnerAllocSerials ') is null exec [ dbo ]. [ AllocSerials ] @AllocCount = 1, @StartSN = @SNIndex output else exec [ dbo ]. [ InnerAllocSerials ] @AllocCount = 1, @StartSN = @SNIndex output INSERT INTO UBF_Assemble_AppComponents (ID,CreatedOn,CreatedBy,ModifiedOn,ModifiedBy,SysVersion,Component,ComponentID,ComponentType,Application) values( @SNIndex, GETDATE(), ' ufsoft ', GETDATE(), ' ufsoft ', 0, @Component, ' a91a413b-e43a-432d-84b2-c601af8d1c89 ', ' BP ', @Application)