how to decode the trigger name from the table : WM_IDR_MSG_HST in IS Internal Schema.

how to decode the trigger name from the table : WM_IDR_MSG_HST in IS Internal Schema. ?

I have a requirement to find the message UUID’s belonging to a particular trigger name,but the above product table form IS internal schema is storing the trigger name encoded.

Its has the colums: TRIGGERNAME ,UUID , P_STATE ,EXP_TIME.

Sample data looks like below.

TRIGGERNAME UUID

lmmCyLjUFAkDQ/HoXgHNMt3b0uQ= ID:cde50b7a-cb6b-4efc-ae0d-d83c89941947-2997
p07n368jSkkOOxZe8O+2MExMraA= 10b2bca09b321e059bb9fb80281483a1414D5120484B43414F4D5031202020205CF18A9D27008C33
p07n368jSkkOOxZe8O+2MExMraA= 10b2bca09b321e059bb9fb80281483a1414D5120484B43414F4D5031202020205CF18A9D27008C34
CPJ9aHnfYaIrxYLdsUIa0/r244Q= ID:dace1186-8ee7-4a01-82a8-7827db74b46d-3002
CPJ9aHnfYaIrxYLdsUIa0/r244Q= ID:9969c1d2-ffac-4ebf-abd4-3d79369ebd2d-9688
lmmCyLjUFAkDQ/HoXgHNMt3b0uQ= ID:cde50b7a-cb6b-4efc-ae0d-d83c89941947-3009

I think this is not possible as it uses MD5 hash algorithm and if you find a way let me know. Here is the code used to create the above encrypted string.

import com.wm.data.*;
import com.wm.util.Values;
import com.wm.app.b2b.server.Service;
import com.wm.app.b2b.server.ServiceException;
import com.wm.util.Base64;
import com.wm.security.Util;

public final class getTriggerName_SVC

{

	/** 
	 * The primary method for the Java service
	 *
	 * @param pipeline
	 *            The IData pipeline
	 * @throws ServiceException
	 */
	public static final void getTriggerName(IData pipeline) throws ServiceException {
		// pipeline
		IDataCursor pipelineCursor = pipeline.getCursor();
			String	triggerName = IDataUtil.getString( pipelineCursor, "triggerName" );
			
		
		    String myString= null;
		   
		      byte[] encodedHash;
			try {
				encodedHash = Base64.encode(Util.getDigest(triggerName.getBytes()));

				myString= new String(encodedHash);
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		      
		
		  
		
		IDataUtil.put( pipelineCursor, "outString", myString);
		pipelineCursor.destroy();
			
	}

Thanks Mahesh,even i tried decoding but no luck,if i get a way i post back.

This unique ID in column TRIGGERNAME is stored in node.ndf file. One easy way is to search this string in your file system.

1 Like

In addition to the above code, reading from node.ndf file solution looks nice as you can leverage the below services directly and build a custom flow logic.

wm.server.triggers:getTriggerReport (get all native triggers)
wm.server.ns:getNode (get node/trigger/uniqueId)

Let us know which path you take or if you have any other options on hand.