1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
| procedure ReceptionMsg(PModeCommunication, PNomFile, PServeur, PPort, PFonctionAppelee,
PParametre1, PParametre2, PParametre3, PParametre4, PParametre5, PParametre6, PParametre7, PParametre8, PParametre9, PParametre10,
PParametre11, PParametre12, PParametre13, PParametre14, PParametre15, PParametre16, PParametre17, PParametre18, PParametre19, PParametre20,
PErreur: PAnsiChar); stdcall;
var
Serveur, NomFile, ModeCommunication, FonctionAppelee,
Parametre1, Parametre2, Parametre3, Parametre4, Parametre5, Parametre6, Parametre7, Parametre8, Parametre9, Parametre10,
Parametre11, Parametre12, Parametre13, Parametre14, Parametre15, Parametre16, Parametre17, Parametre18, Parametre19, Parametre20,
Msg, Erreur: String;
Port: Integer;
ListeParametres: TStringList;
begin
ModeCommunication := String(PModeCommunication);
NomFile := String(PNomFile);
Serveur := String(PServeur);
Port := StrToInt(String(PPort));
Erreur := '';
FonctionAppelee := '';
Parametre1 := '';
Parametre2 := '';
Parametre3 := '';
Parametre4 := '';
Parametre5 := '';
Parametre6 := '';
Parametre7 := '';
Parametre8 := '';
Parametre9 := '';
Parametre10 := '';
Parametre11 := '';
Parametre12 := '';
Parametre13 := '';
Parametre14 := '';
Parametre15 := '';
Parametre16 := '';
Parametre17 := '';
Parametre18 := '';
Parametre19 := '';
Parametre20 := '';
if ModeCommunication = 'FileJMS' then
// Communication par file JMS
Msg := LectureMessageJMS(Serveur, Port, NomFile)
else
if ModeCommunication = 'Fichier' then
// Communication par message contenu dans un fichier
Msg := LectureMessageTexte(NomFile)
else
Msg := 'ERREUR (Acgwebutils) : Le mode de communication [' +ModeCommunication+ '] n est pas prise en charge';
if LeftStr(Msg, 6) = 'ERREUR' then
Erreur := Msg
else begin
ListeParametres := TStringList.Create;
ListeParametres.Delimiter := ';';
ListeParametres.StrictDelimiter := True;
ListeParametres.DelimitedText := Msg;
if ListeParametres.Count >= 1 then begin
FonctionAppelee := ListeParametres.Strings[0];
if ListeParametres.Count >= 2 then begin
Parametre1 := ListeParametres.Strings[1];
if ListeParametres.Count >= 3 then begin
Parametre2 := ListeParametres.Strings[2];
if ListeParametres.Count >= 4 then begin
Parametre3 := ListeParametres.Strings[3];
if ListeParametres.Count >= 5 then begin
Parametre4 := ListeParametres.Strings[4];
if ListeParametres.Count >= 6 then begin
Parametre5 := ListeParametres.Strings[5];
if ListeParametres.Count >= 7 then begin
Parametre6 := ListeParametres.Strings[6];
if ListeParametres.Count >= 8 then begin
Parametre7 := ListeParametres.Strings[7];
if ListeParametres.Count >= 9 then begin
Parametre8 := ListeParametres.Strings[8];
if ListeParametres.Count >= 10 then begin
Parametre9 := ListeParametres.Strings[9];
if ListeParametres.Count >= 11 then begin
Parametre10 := ListeParametres.Strings[10];
if ListeParametres.Count >= 12 then begin
Parametre11 := ListeParametres.Strings[11];
if ListeParametres.Count >= 13 then begin
Parametre12 := ListeParametres.Strings[12];
if ListeParametres.Count >= 14 then begin
Parametre13 := ListeParametres.Strings[13];
if ListeParametres.Count >= 15 then begin
Parametre14 := ListeParametres.Strings[14];
if ListeParametres.Count >= 16 then begin
Parametre15 := ListeParametres.Strings[15];
if ListeParametres.Count >= 17 then begin
Parametre16 := ListeParametres.Strings[16];
if ListeParametres.Count >= 18 then begin
Parametre17 := ListeParametres.Strings[17];
if ListeParametres.Count >= 19 then begin
Parametre18 := ListeParametres.Strings[18];
if ListeParametres.Count >= 20 then begin
Parametre19 := ListeParametres.Strings[19];
if ListeParametres.Count >= 21 then begin
Parametre20 := ListeParametres.Strings[20];
end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end;
end;
StrPCopy(PFonctionAppelee, LeftStr(AnsiString(FonctionAppelee), 10));
StrPCopy(PParametre1, LeftStr(AnsiString(Parametre1), 60));
StrPCopy(PParametre2, LeftStr(AnsiString(Parametre2), 60));
StrPCopy(PParametre3, LeftStr(AnsiString(Parametre3), 60));
StrPCopy(PParametre4, LeftStr(AnsiString(Parametre4), 60));
StrPCopy(PParametre5, LeftStr(AnsiString(Parametre5), 60));
StrPCopy(PParametre6, LeftStr(AnsiString(Parametre6), 60));
StrPCopy(PParametre7, LeftStr(AnsiString(Parametre7), 60));
StrPCopy(PParametre8, LeftStr(AnsiString(Parametre8), 60));
StrPCopy(PParametre9, LeftStr(AnsiString(Parametre9), 60));
StrPCopy(PParametre10, LeftStr(AnsiString(Parametre10), 60));
StrPCopy(PParametre11, LeftStr(AnsiString(Parametre11), 60));
StrPCopy(PParametre12, LeftStr(AnsiString(Parametre12), 60));
StrPCopy(PParametre13, LeftStr(AnsiString(Parametre13), 60));
StrPCopy(PParametre14, LeftStr(AnsiString(Parametre14), 60));
StrPCopy(PParametre15, LeftStr(AnsiString(Parametre15), 60));
StrPCopy(PParametre16, LeftStr(AnsiString(Parametre16), 60));
StrPCopy(PParametre17, LeftStr(AnsiString(Parametre17), 60));
StrPCopy(PParametre18, LeftStr(AnsiString(Parametre18), 60));
StrPCopy(PParametre19, LeftStr(AnsiString(Parametre19), 60));
StrPCopy(PParametre20, LeftStr(AnsiString(Parametre20), 60));
StrPCopy(PErreur, LeftStr(AnsiString(Erreur), 256));
end;
function LectureMessageJMS(Serveur: String; Port: Integer; NomFileJMS: String): String;
var
StompClient: IStompClient;
StompFrame: IStompFrame;
begin
Screen.Cursor := crDefault;// crArrow;
try
try
StompClient := StompUtils.NewStomp(Serveur, Port);
if (StompClient <> nil) then begin
StompClient.Subscribe(NomFileJms);
if (StompClient <> nil) then begin
if StompClient.Receive(StompFrame, 2000) then begin
if (Assigned(StompFrame)) then begin
Result := StompFrame.GetBody;
end else
Result := '';
end else
Result := 'ERREUR_RecuperationMsgJms (Acgwebutils) : Impossible de récupérer le message';
end else
Result := 'ERREUR_RecuperationMsgJms (Acgwebutils) : Perte de connexion';
end else
Result := 'ERREUR_RecuperationMsgJms (Acgwebutils) : Impossible d établir une connexion sur le serveur Active MQ [' +Serveur+ ':' +IntToStr(Port)+ ']';
except
on E: Exception do begin
Result := 'ERREUR_RecuperationMsgJms (Acgwebutils) ' +Result+ ' : Erreur réception message sur le serveur Active MQ [' +Serveur+ ':' +IntToStr(Port)+ '] : ' + E.ClassName + sLineBreak + E.Message;
end;
end;
finally
StompClient.Disconnect;
StompClient := nil;
StompFrame := nil;
Screen.Cursor := crArrow;//crDefault;
end;
end; |
Partager