Показать сообщение отдельно
Старый 13.08.2008, 12:11   #3  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
Я в этот кодеюнит вообще не лазил.....

Код:
Documentation()

OnRun()
BizTalkManagement.GET;
IF (BizTalkManagement."Check BizTalk Suspd. Queue") AND
   (BizTalkManagement."Suspd. Queue Monitor Interval" > 0) THEN BEGIN
  CREATE(SuspQueueTimer);
  SuspQueueTimer.Interval := BizTalkManagement."Suspd. Queue Monitor Interval" * 60000;
  SuspQueueTimer.Enable;
END;

IF BizTalkManagement."Outbnd. Doc. Monitor Interval" > 0 THEN BEGIN
  CREATE(OutboundDocTimer);
  OutboundDocTimer.Interval := BizTalkManagement."Outbnd. Doc. Monitor Interval" * 60000;
  OutboundDocTimer.Enable;
END;

CREATE(TcpCom);

MESSAGE(Text001 + COMPANYNAME);

SubstString(StringToSearch : Text[250];SearchString : Text[250];StringToSub : Text[250]) : Text[250]
res := StringToSearch;

IF (STRLEN(StringToSearch) > 0) AND (STRLEN(SearchString) > 0) THEN BEGIN
  EOS := FALSE;
  inx := 0;
  REPEAT
	inx := inx + 1;
	IF inx <= STRLEN(res) THEN BEGIN
	  TestChar := COPYSTR(res,inx,STRLEN(SearchString));
	  IF TestChar = SearchString THEN
		res := COPYSTR(res,1,inx-1) + StringToSub + COPYSTR(res,inx + STRLEN(SearchString),250);
	END
	ELSE
	  EOS := TRUE;
  UNTIL EOS;
END;

EXIT(res);

StartTcpListen(PortNumber : Integer) ReturnBool : Boolean
IF PortNumber = 0 THEN
  BEGIN
	TcpCom.Cryptography := BizTalkManagement."Use Encryption";
	ReturnBool := TcpCom.TcpListen(BizTalkManagement."Appln. Srv./Broker Port No.");
  END
ELSE
  BEGIN
	TcpCom.Cryptography := BizTalkManagement."Use Encryption";
	ReturnBool := TcpCom.TcpListen(PortNumber);
  END;
EXIT(ReturnBool);

OutboundDocTimer::TimerEvent()
OutboundDocTimer.Disable;
WatchDog.CheckOutbound;
OutboundDocTimer.Enable;

SuspQueueTimer::TimerEvent()
SuspQueueTimer.Disable;
WatchDog.CheckBTSQueue;
SuspQueueTimer.Enable;

TcpCom::DataAvailable(VAR XmlData : Automation "''.IDISPATCH";VAR XmlResponse : Text[1024])
xmlin := XmlData;
CREATE(xmlout);

XMLDocReceive.PutXMLIn(xmlin);
XMLDocReceive.RUN;
COMMIT;

XMLDocReceive.GetXMLOut(xmlout);
XmlResponse := xmlout.xml;

XMLDocReceive.GetInboundDocumentType(DocumentType);
XMLDocReceive.GetInboundDocumentNo(DocumentNo);
XMLDocAccept.Init(DocumentType,DocumentNo);
IF NOT XMLDocAccept.RUN THEN BEGIN
  IF (BizTalkManagement."Send System Error Description") AND
	(BizTalkManagement."System Administrator E-Mail" <> '')
  THEN
	Mail.NewMessage(BizTalkManagement."System Administrator E-Mail",
	  Text002,
	  STRSUBSTNO(Text003,SELECTSTR(DocumentType+1,Text004),DocumentNo),'');
END;

CLEAR(xmlin);
CLEAR(xmlout);