unit MAILSERVICEFUNC;
interface
uses
Business.System, Business.Model, Business.Forms, Business.Data, SYSTEMUTILS,
SystemCore, JUSTEPMAIL;
type
TMAILSERVICEFUNC = class(TFunc)
private
FRunMailMethod: TRunMailMethod;
protected
procedure DoRun; override;
procedure DoTerminate; override;
end;
TRunMailMethod = class(TBusinessRuntimeServerMethod)
function GetName: string; override;
function Invoke(var Params: array of object): object; override;
end;
implementation
procedure TMAILSERVICEFUNC.DoRun;
begin
inherited;
FRunMailMethod := TRunMailMethod.Create;
BizRtSrvr.BusinessRuntimeServer.RegisterMethod(FRunMailMethod);
end;
procedure TMAILSERVICEFUNC.DoTerminate;
begin
BizRtSrvr.BusinessRuntimeServer.UnregisterMethod(FRunMailMethod);
FRunMailMethod.Free;
inherited;
end;
{ TRunMailMethod }
function TRunMailMethod.GetName: string;
begin
Result := 'OpenMail';
end;
function TRunMailMethod.Invoke(var Params: array of object): object;
var
I: Integer;
S, lMailGUID: string;
lFunc: TFunc;
lFuncIsRunning: Boolean;
begin
lMailGUID := Params[0] as System.String;
S := 'Biz:\COLLABORATION\JustepMail.Func';
for I := 0 to TSystemCore.FuncManager.RunningFuncCount - 1 do
if SysUtils.UpperCase(TSystemCore.FuncManager.RunningFuncs[I].BizClassURL.BizURL.URL) = SysUtils.UpperCase(S) then
begin
lFuncIsRunning := True;
break;
end
else
lFuncIsRunning := False;
if lFuncIsRunning then//.RunningFuncs[I].BizClassURL.BizURL.URL = 'Biz:\COLLABORATION\JustepMail.Func' then
TJUSTEPMAIL(TSystemCore.FuncManager.RunningFuncs[I]).OpenMsgMail(lMailGUID)
else
TSystemCore.FuncManager.RunFunc(TSystemCore.Operator.Context,
'Biz:\COLLABORATION\JustepMail.Func',
'Biz:\COLLABORATION\JustepMail.Func',
'-f收件箱' + ' ' + '-l' + lMailGUID,
nil, False);
end;
end. |