Monday, October 6, 2014

MQ Publisher: Replace XML data using Pattern Matching

import lrapi.lr;
import java.io.*;
import java.util.*;
import com.ibm.mq.*;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Actions
{

    private MQQueueManager myQueueManager;
    private MQPutMessageOptions myPutMsgOptions;
    private MQQueue myQueue;

    private String xmlStr = null;
    private String finalFileName = null;
    private String xmlDocument = null;
    private Session session = null;
    private MessageProducer producer = null;
    private Connection conn = null;
    private Message message = null;
    private String Formatted_msg = null;


    public int init() throws Throwable {
try {
   MQEnvironment.hostname = "abcd.com";
   MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
   MQEnvironment.channel = "SYSTEM.DEF.SVRCONN";
   MQEnvironment.port = 100;

   myQueueManager = new MQQueueManager("aa.bb.cc.dd");
   int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE | MQC.MQOO_FAIL_IF_QUIESCING;

   myQueue = myQueueManager.accessQueue("DI.DC.WMS.MIF.DISTRIBUTIONORDER", openOptions, null, null, null);

   myPutMsgOptions = new MQPutMessageOptions();
   myPutMsgOptions.options = MQC.MQPMO_NONE;
} catch (Exception e) {
   System.out.println(e);
}
return 0;
    }//end of init

    public int action() throws Throwable {
try {
   MQMessage myPutMessage = new MQMessage();
   myPutMessage.clearMessage();
   myPutMessage.persistence = MQC.MQPER_PERSISTENT;
   myPutMessage.format = MQC.MQFMT_STRING;
         
   FileReader fr = null;
   File f=new File("C:\\AdvXMLs\\<pInputXML>.xml");


   int fileLength = (int) f.length();
   char[] cbuf = new char[fileLength];

 
   try {
     fr = new FileReader(f);
     fr.read(cbuf);
   } catch (FileNotFoundException e) {
     lr.error_message("Could not find data file: " + f);
     lr.abort();
   } catch (IOException e) {
     lr.error_message("Error reading file: " + f);
     lr.abort();
   } finally{
   try{
if(fr!=null){
   fr.close();
}
   }catch(IOException ioe){
     lr.error_message("Error closing file reader: " + ioe);
     lr.abort();
   }
}

 
   new String(cbuf);
            String xmlDocument = String.valueOf(cbuf);
     System.out.println("Read XML:\n" +xmlDocument);

            Pattern pattern1 = Pattern.compile("(<DistributionOrderId>)+(\\d)+(</DistributionOrderId>)");
   Pattern pattern2 = Pattern.compile("(<DistroNumber>)+(\\d)+(</DistroNumber>)");
   Pattern pattern3 = Pattern.compile("(<ARAcctNbr>)+(\\d)+(</ARAcctNbr>)");
   Pattern pattern4 = Pattern.compile("(<PurchaseOrderNbr>)+(\\d)+(</PurchaseOrderNbr>)");
   Pattern pattern5 = Pattern.compile("(<AssortmentNbr>)+(\\d)+(</AssortmentNbr>)");

   Matcher m1 = pattern1.matcher(xmlDocument);
            String str2 = m1.replaceAll("<DistributionOrderId><pOrderId></DistributionOrderId>");

   Matcher m2 = pattern2.matcher(str2);
   str2 = m2.replaceAll("<DistroNumber><pOrderId></DistroNumber>");

   Matcher m3 = pattern3.matcher(str2);
   str2 = m3.replaceAll("<ARAcctNbr><pOrderId></ARAcctNbr>");

   Matcher m4 = pattern4.matcher(str2);
   str2 = m4.replaceAll("<PurchaseOrderNbr><pOrderId></PurchaseOrderNbr>");

   Matcher m5 = pattern5.matcher(str2);
   str2 = m5.replaceAll("<AssortmentNbr><pAssortmentNo></AssortmentNbr>");

   Formatted_msg =  str2;
   System.out.println("str3:\n" +str2);
           
lr.start_transaction("Create_DO");

//      myQueue.put(myPutMessage, myPutMsgOptions);
} catch (Exception e) {
   System.out.println(e);
}
       
lr.end_transaction("Create_DO", lr.AUTO);

return 0;
    }//end of action

    public int end() throws Throwable {
try {
    myQueue.close();
    myQueueManager.disconnect();
} catch (Exception e ) {
   System.out.println(e);
}
return 0;
    }//end of end
}

Tuesday, April 8, 2014

post messages to Active MQ

import lrapi.lr;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import javax.jms.*;

public class Actions
{
    //private static String connectionString ="failover:(ssl://cpliqap0.hoxeepo.com:61625,ssl://cpliqap2.hoxeepo.com:61625)";
    private static String connectionString ="failover:(ssl://cplinpm0.homedepot.com:61625,ssl://cplinpm2.homedepot.com:61625,ssl://cplinpm4.homedepot.com:61625,ssl://cplinpm6.homedepot.com:61625,ssl://cplinpn0.homedepot.com:61625,ssl://cplinpn2.homedepot.com:61625,ssl://cplinpn4.homedepot.com:61625,ssl://cplinpn6.homedepot.com:61625)";
    //private static String connectionString ="failover:(ssl://cplinpm0.homedepot.com:61625)";
    private static String queueName  = "MM.PO.POM.VT.IOSTATUS.VISIBILITY";//dynamicQueues/MM.PO.POM.VT.IOSTATUS.VISIBILITY
    private static String userName = "mmpoUser";
    private static String password = "mmpoP@ssw0rd";
    private String xmlStr = null;
    private String finalFileName = null;
    private String xmlDocument = null;

    private Session session = null;
    private MessageProducer producer = null;
    private Connection conn = null;
    private Message message = null;
    private String Formatted_msg = null;
    private TextMessage messageSend = null;


public int init() throws Throwable {
try{
   ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory();

   cf.setBrokerURL(connectionString);
   cf.setUserName(userName);
   cf.setPassword(password);

   conn = cf.createQueueConnection();
   conn.start();
   session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Destination destination =  session.createQueue(queueName);
   producer = session.createProducer(destination);

}catch(JMSException ex){
                  ex.printStackTrace();
}
return 0;
}//end of init


public int action() throws Throwable {
   FileReader fr = null;
   File f=new File("POMS_1.xml");

   int fileLength = (int) f.length();
   char[] cbuf = new char[fileLength];

 
   try {
     fr = new FileReader(f);
     fr.read(cbuf);
   } catch (FileNotFoundException e) {
     lr.error_message("Could not find data file: " + f);
     lr.abort();
   } catch (IOException e) {
     lr.error_message("Error reading file: " + f);
     lr.abort();
   } finally{
   try{
if(fr!=null){
   fr.close();
}
   }catch(IOException ioe){
     lr.error_message("Error closing file reader: " + ioe);
     lr.abort();
   }
}

 
   new String(cbuf);
            String xmlDocument = String.valueOf(cbuf);
   xmlDocument = xmlDocument.replace("<skuNbr>100013</skuNbr>","<skuNbr><SKUNo></skuNbr>");
   xmlDocument = xmlDocument.replace("<poNbr>42</poNbr>","<poNbr><PONo></poNbr>");
   xmlDocument = xmlDocument.replace("<lastUpdatedTs>2013-07-25T13:00:00</lastUpdatedTs>","<lastUpdatedTs><CurrTimeStamp></lastUpdatedTs>");

   Formatted_msg =  xmlDocument;
   messageSend = session.createTextMessage();
   messageSend.setText(Formatted_msg);

   lr.start_transaction("POMS_01_TIBCO_FEED_1");
//    lr.output_message("**"+ messageSend);
//    lr.output_message("**messageSend.getText()\n"+ messageSend.getText());
                    producer.send(messageSend);
                    lr.end_transaction("POMS_01_TIBCO_FEED_1", lr.AUTO);

return 0;
}//end of action


public int end() throws Throwable {
   session.close();
   conn.close();
return 0;
}//end of end
}

Post Messages to IBM MQ

import lrapi.lr;
import java.io.*;
import java.util.*;
import com.ibm.mq.*;

public class Actions
{

    private MQQueueManager myQueueManager;
    private MQPutMessageOptions myPutMsgOptions;
    private MQQueue myQueue;

    private String xmlStr = null;
    private String finalFileName = null;
    private String xmlDocument = null;
    private String Formatted_msg = null;


    public int init() throws Throwable {
try {
   MQEnvironment.hostname = "CPLIQPDE.homepot.com";
   MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
   MQEnvironment.channel = "SYSTEM.ADMIN.SVRCONN";
   MQEnvironment.port = 17800;

   myQueueManager = new MQQueueManager("QM0.QA.US.CPLIQPDE");
   int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE | MQC.MQOO_FAIL_IF_QUIESCING;

   myQueue = myQueueManager.accessQueue("MM.PO.SCV.APV.IO", openOptions, null, null, null);

   myPutMsgOptions = new MQPutMessageOptions();
   myPutMsgOptions.options = MQC.MQPMO_NONE;
} catch (Exception e) {
   System.out.println(e);
}
return 0;
    }//end of init

    public int action() throws Throwable {
try {
   MQMessage myPutMessage = new MQMessage();
   myPutMessage.clearMessage();
   myPutMessage.persistence = MQC.MQPER_PERSISTENT;
   myPutMessage.correlationId = MQC.MQCI_NONE;
   myPutMessage.messageId = MQC.MQMI_NONE;

   FileReader fr = null;
   File f=new File("IO_3.xml");

   int fileLength = (int) f.length();
   char[] cbuf = new char[fileLength];

 
   try {
     fr = new FileReader(f);
     fr.read(cbuf);
   } catch (FileNotFoundException e) {
     lr.error_message("Could not find data file: " + f);
     lr.abort();
   } catch (IOException e) {
     lr.error_message("Error reading file: " + f);
     lr.abort();
   } finally{
   try{
if(fr!=null){
   fr.close();
}
   }catch(IOException ioe){
     lr.error_message("Error closing file reader: " + ioe);
     lr.abort();
   }
}

 
   new String(cbuf);
            String xmlDocument = String.valueOf(cbuf);
   xmlDocument = xmlDocument.replace("<orderNumber>1268246824</orderNumber>","<orderNumber><pOrderNo></orderNumber>");
   xmlDocument = xmlDocument.replace("<skuNumber>100013</skuNumber>","<skuNumber><pSkuNo></skuNumber>");
   xmlDocument = xmlDocument.replace("<receivingLocationNumber>6158</receivingLocationNumber>","<receivingLocationNumber><pRecvLocNo></receivingLocationNumber>");

   Formatted_msg =  xmlDocument;
   myPutMessage.writeString(Formatted_msg);
//    System.out.println("Formatted_msg:\n" +Formatted_msg);
//    System.out.println("myPutMessage:\n" +myPutMessage);
   myQueue.put(myPutMessage, myPutMsgOptions);
} catch (Exception e) {
   System.out.println(e);
}
return 0;
    }//end of action

    public int end() throws Throwable {
try {
    myQueue.close();
    myQueueManager.disconnect();
} catch (Exception e ) {
   System.out.println(e);
}
return 0;
    }//end of end
}

Thursday, January 2, 2014

Write data to a txt file

// Global Variables
char *filename = "c:\\Data\\myData.txt";
long file;

vuser_init()
{
    (file = fopen(filename, "a+"));
    return 0;
}

Action()
{
    int i;
    for(i = 80000; i <= 99999; i++)
        {
         fprintf (file, "%s,%d\n", lr_eval_string("{Str}"),i);
        }
    return 0;
}

vuser_end()
{
       fclose(file);
return 0;
}