https://www-01.ibm.com/marketing/iwm/iwm/web/pickUrxNew.do?source=swg-wmbfd&transactionid=451565821
Thursday, 17 January 2019
Sort the Alphabet or String In ESQL
InPutMessage :
<Roots>
<Names>
<Name>Venkat</Name>
</Names>
<Names>
<Name>Krishna</Name>
</Names>
<Names>
<Name>Rathod</Name>
</Names>
</Roots>
ESQL LOGIC :
CREATE COMPUTE MODULE AlphabetSorting_MF_LogicTOSortAlphabet
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
DECLARE Names INTEGER 1;
DECLARE rInputMessage REFERENCE TO InputRoot.XMLNSC.Roots.Names[1];
WHILE LASTMOVE(rInputMessage) DO
SET Environment.Variables.Names[Names] = rInputMessage.Name;
SET Names = Names +1;
MOVE rInputMessage NEXTSIBLING REPEAT TYPE NAME;
END WHILE;
DECLARE n INTEGER CARDINALITY(Environment.Variables.Names[]);
DECLARE i INTEGER 1;
DECLARE temp CHARACTER;
WHILE i < n DO
SET i = i +1;
DECLARE j INTEGER 1;
WHILE j < n DO
SET j = j + 1;
DECLARE IntName1 CHARACTER UPPER(Environment.Variables.Names[j-1]);
DECLARE IntName2 CHARACTER UPPER(Environment.Variables.Names[j]);
DECLARE NameConstatnt INTEGER;
IF IntName1 = IntName2 THEN
SET NameConstatnt = 0;
ELSEIF IntName1 > IntName2 THEN
SET NameConstatnt = 1;
ELSEIF IntName1 < IntName2 THEN
SET NameConstatnt = -1;
END IF;
IF (NameConstatnt > 0 ) THEN
SET temp = Environment.Variables.Names[j-1];
SET Environment.Variables.Names[j-1] = Environment.Variables.Names[j];
SET Environment.Variables.Names[j] = temp;
END IF;
END WHILE;
END WHILE;
END;
END MODULE;
<Roots>
<Names>
<Name>Venkat</Name>
</Names>
<Names>
<Name>Krishna</Name>
</Names>
<Names>
<Name>Rathod</Name>
</Names>
</Roots>
ESQL LOGIC :
CREATE COMPUTE MODULE AlphabetSorting_MF_LogicTOSortAlphabet
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
DECLARE Names INTEGER 1;
DECLARE rInputMessage REFERENCE TO InputRoot.XMLNSC.Roots.Names[1];
WHILE LASTMOVE(rInputMessage) DO
SET Environment.Variables.Names[Names] = rInputMessage.Name;
SET Names = Names +1;
MOVE rInputMessage NEXTSIBLING REPEAT TYPE NAME;
END WHILE;
DECLARE n INTEGER CARDINALITY(Environment.Variables.Names[]);
DECLARE i INTEGER 1;
DECLARE temp CHARACTER;
WHILE i < n DO
SET i = i +1;
DECLARE j INTEGER 1;
WHILE j < n DO
SET j = j + 1;
DECLARE IntName1 CHARACTER UPPER(Environment.Variables.Names[j-1]);
DECLARE IntName2 CHARACTER UPPER(Environment.Variables.Names[j]);
DECLARE NameConstatnt INTEGER;
IF IntName1 = IntName2 THEN
SET NameConstatnt = 0;
ELSEIF IntName1 > IntName2 THEN
SET NameConstatnt = 1;
ELSEIF IntName1 < IntName2 THEN
SET NameConstatnt = -1;
END IF;
IF (NameConstatnt > 0 ) THEN
SET temp = Environment.Variables.Names[j-1];
SET Environment.Variables.Names[j-1] = Environment.Variables.Names[j];
SET Environment.Variables.Names[j] = temp;
END IF;
END WHILE;
END WHILE;
END;
END MODULE;
Tuesday, 15 January 2019
Aggreegation - ParallelCall
If we are using queue prefixes then we can use the below command to create the Configurable service:
mqsicreateconfigurableservice IB9NODE -c Aggregation -o myAggregationService
-n queuePrefix,timeoutSeconds -v AGGRPOC,60
1.myAggregationService : This is name where we need to provide for AggregateControl and AggregateReply Node property
2. AGGRPOC : This is the queue name where we need to create the new system queue .
SYSTEM.BROKER.AGGR.AGGRPOC.CONTROL
SYSTEM.BROKER.AGGR.AGGRPOC.REPLY
SYSTEM.BROKER.AGGR.AGGRPOC.REQUEST
SYSTEM.BROKER.AGGR.AGGRPOC.UNKNOWN
SYSTEM.BROKER.AGGR.AGGRPOC.TIMEOUT
1.Aggregation_FanOut_MF.msgflow
Before or AFter AggregateControlNode :
SET OutputRoot.XMLNSC = InputRoot.XMLNSC;
CREATE LASTCHILD OF Environment NAME 'Variables';
DECLARE rEnv REFERENCE TO Environment.Variables;
SET rEnv.HTTPRequestIdentifier = InputLocalEnvironment.Destination.HTTP.RequestIdentifier;
SET rEnv.transactionId = InputRoot.XMLNSC.*:membershipRequest.*:eieHeader.*:transactionID;
SET OutputRoot.HTTPInputHeader = NULL;
SET OutputRoot.HTTPRequestHeader = NULL;
SET OutputRoot.HTTPResponseHeader = NULL;
SET OutputRoot.MQMD = NULL;
SET OutputRoot.Properties = InputRoot.Properties;
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
SET OutputRoot.MQMD.Format = 'MQRFH2 ';
CREATE NEXTSIBLING OF OutputRoot.MQMD DOMAIN 'MQRFH2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR ';
SET OutputRoot.MQRFH2.psc.HTTPRequestIdentifier = rEnv.HTTPRequestIdentifier;
SET OutputRoot.MQRFH2.psc.TransactionIdentifier = rEnv.transactionId;
SET OutputRoot.MQRFH2.psc.inputmsg = InputRoot.XMLNSC.*:membershipRequest;
RETURN TRUE;
--Backend Call Flow
1st Compute node before WS call
CREATE FIELD Environment.Variables;
DECLARE rEnv REFERENCE TO Environment.Variables;
SET rEnv.Properties = InputRoot.Properties;
SET rEnv.MQMD = InputRoot.MQMD;
SET rEnv.MQRFH2 = InputRoot.MQRFH2;
SET rEnv.HTTPRequestIdentifier = InputRoot.MQRFH2.psc.HTTPRequestIdentifier;
SET rEnv.TransactionIdentifier = InputRoot.MQRFH2.psc.TransactionIdentifier;
SET rEnv.inputmsg = InputRoot.MQRFH2.psc.inputmsg;
SET OutputRoot.Properties = InputProperties;
-- SET OutputLocalEnvironment = InputLocalEnvironment;
SET OutputRoot.HTTPRequestHeader.Host = 'abc.xyz.com';
SET OutputRoot.HTTPRequestHeader."Accept-Encoding" = 'gzip';
SET OutputRoot.HTTPRequestHeader."Content-Type" = 'application/xml';
SET OutputRoot.XMLNSC = NULL;
Construct the request message as per requirement
2nd ComputeNode After WS call :
DECLARE rEnv REFERENCE TO Environment.Variables;
SET OutputLocalEnvironment = InputLocalEnvironment;
SET OutputRoot.MQMD = rEnv.MQMD;
SET OutputRoot.MQMD.CorrelId = rEnv.MQMD.MsgId;
SET OutputRoot.MQRFH2 = rEnv.MQRFH2;
SET OutputRoot.MQRFH2.psc.HTTPRequestIdentifier = rEnv.HTTPRequestIdentifier;
SET OutputRoot.MQRFH2.psc.TransactionIdentifier = rEnv.TransactionIdentifier;
SET OutputRoot.MQRFH2.psc.inputmsg = rEnv.inputmsg;
--SET OutputRoot.MQRFH2.psc.Accesstoken = Environment.Variable.AccessToken;
SET OutputRoot.XMLNSC = InputRoot.XMLNSC;
RETURN TRUE;
AggregateFanIn Flow :
After AggreegateReply an Before HTTPreply Node:
SET OutputRoot.Properties = InputProperties;
SET OutputRoot.Properties.ReplyProtocol = '';
SET OutputRoot.Properties.Encoding = 546;
SET OutputRoot.Properties.CodedCharSetId = 1208;
SET OutputRoot.Properties.Transactional = false;
SET OutputRoot.Properties.Persistence = false;
SET OutputRoot.Properties.ReplyProtocol = 'SOAP-HTTP';
SET OutputLocalEnvironment = InputLocalEnvironment;
SET Environment.HTTPRequestIdentifier = InputRoot.ComIbmAggregateReplyBody.Request1.MQRFH2.psc.HTTPRequestIdentifier;
SET OutputRoot.Properties.ReplyIdentifier = CAST(Environment.HTTPRequestIdentifier AS BLOB);
SET OutputRoot.Properties.ContentType = 'application/xml';
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier = CAST(Environment.HTTPRequestIdentifier AS BLOB);
SET OutputRoot.XMLNSC.FinalResponse.IMI = InputRoot.ComIbmAggregateReplyBody.Request1.XMLNSC.*:GetIndividualDetailsRes;
SET OutputRoot.XMLNSC.FinalResponse.CommunicationPreference = InputRoot.ComIbmAggregateReplyBody.Request2.XMLNSC;
Subscribe to:
Posts (Atom)