Solved

help with form request and return result

Posted on 2011-02-21
14
1,599 Views
Last Modified: 2013-12-11
So I have to finish someones project and he left no documentation on what was going on.  He also apparently didnt read all of the details involved in the project.
I have a form where a user can input up to 8 item # and item codes.  When the user submits the information it should send a message thru MQ to our ERP system the ERP system should return XML with item, item code, price and error flag (if there is an error).
The situation I am in is that there is no dev environment so I have to push this directly to the staging enviornment.  So I was hoping to get someone to look at what I have an point out what I am missing or any issues that might come up.  
message sent
<?xml version="1.0" encoding="UTF-8"?>
<xxxItemPrice>
<SourceCode>LOL</SourceCode><SKU>12345</SKU>
<SourceCode>XXX</SourceCode><SKU>6789</SKU>
<SourceCode>QFT</SourceCode><SKU>12311</SKU>
<SourceCode>WTF</SourceCode><SKU>B4532</SKU>
</xxxItemPrice>

message returned
<?xml version="1.0" encoding="UTF-8"?>

<xxxItemPrice>
<SourceCode="LOL" SKU="12345" Price="228.00" ErrorFlag=" " />
<SourceCode="XXX" SKU="6789" Price="44.95" ErrorFlag="X" />
<SourceCode="QFT" SKU="12311" Price="29.95" ErrorFlag=" " />
<SourceCode="WTF" SKU="B4532" Price="168.00" ErrorFlag="X" />
</ItemPrice>

Open in new window

/*
 * Created on 
 */
package com.xxx.commerce.messaging.commands;

import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.ibm.commerce.command.TaskCommandImpl;
import com.ibm.commerce.exception.ECException;
import com.ibm.commerce.messaging.commands.SendMsgCmd;
import com.ibm.commerce.datatype.TypedProperty;
import com.ibm.commerce.command.ControllerCommandImpl;
import com.ibm.commerce.ras.ECTrace;
import com.ibm.commerce.datatype.CommandProperty;
import com.ibm.commerce.order.utils.ResolveParameter;
import com.ibm.commerce.programadapter.messagemapper.MessageMapperGroup;
import com.ibm.commerce.command.CommandFactory;
import com.xxx.commerce.messaging.commands.xxxItemPriceCmd;
import com.ibm.commerce.exception.ParameterNotFoundException;
import com.xxx.commerce.messaging.beans.xxxItemPriceVO;
import com.xxx.commerce.util.logging.xxxLog;

/**
 * @author 
 */
public class xxxItemPriceCmdImpl extends ControllerCommandImpl implements xxxItemPriceCmd {

	private List sourceSku = null;
	private ArrayList retrievedItems = new ArrayList();
	private xxxItemPriceVO valueObject = null;
	private Hashtable sourceCodes = null;
	private Hashtable items = null;
	
	private boolean itemPriceAvailable = false;
	private SendMsgCmd sendToMQ;
	private TypedProperty responseFromMQ;
	private static final String FIELD2 = "field2";
	private static final String FIELD2_PROP = "field2_";
	private static final String PART_NUMBER = "partNumber";
	private static final String PART_NUMBER_PROP = "partNumber_";
	private static final String QUANTITY = "quantity";
	private static final String QUANTITY_PROP = "quantity_";
	private static final String ITEM_PROP = "item_";
	private static final String SOURCE_CODE_PROP = "sourceCode_";
	private static final String MSG_TYPE = "xxxItemPrice";
	private static final String VIEW_NAME = "xxxItemPrice";
	private static final String RESULT_KEY = "sourceSkuVector";
	private static final String SOURCE_CODE="SourceCode";
	private static final String FLAG="ErrorFlag";
	private static final String SKU="SKU";
	private static final String PRICE="Price";
	public static final String CLASSNAME = "com.xxx.commerce.messaging.commands.xxxItemPriceCmdImpl";
	public static final Logger xxxItemPriceLogger = xxxLog.getLogger(xxxItemPriceCmdImpl.class.getName());

	public xxxItemPriceCmdImpl() {
		super();

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ibm.websphere.command.Command#reset()
	 */
	public void reset() {
		super.reset();
		sourceSku = null;
		sendToMQ = null;
		this.sourceCodes = null;
		this.items = null;
		this.valueObject = null;
		this.retrievedItems = new ArrayList();
		//responseFromMQ = null;
		itemPriceAvailable = false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ibm.websphere.command.TargetableCommand#performExecute()
	 */
	
	private void createOutBoundMessage() throws ECException {
		TypedProperty addressTypedProperty = new TypedProperty();
		addressTypedProperty.put("sourceSku", getSourceSku());
		sendToMQ.compose(VIEW_NAME, getCommandContext(), addressTypedProperty);
		sendToMQ.setCommandContext(getCommandContext());
		xxxItemPriceLogger.log(Level.FINEST,"Sending request Message to MQ backend.");
		sendToMQ.sendReceiveImmediate();
		sendToMQ.execute();	
	}
	
	public void setRequestProperties(TypedProperty aRequestProperties)throws ECException {
		ECTrace.entry(3L, CLASSNAME, "setRequestProperties");
		super.setRequestProperties(aRequestProperties); //need to assign TypedProperty here
		items = ResolveParameter.resolveValues("item", aRequestProperties, false);
		sourceCodes = ResolveParameter.resolveValues("sourceCode", aRequestProperties, false);
		Hashtable temp = null;
		Object [] old = null;
		temp = ResolveParameter.resolveValues(PART_NUMBER, aRequestProperties, false);

		if (temp != null && !temp.isEmpty()) {
			old = temp.keySet().toArray();
			if (old != null && old.length > 0 ) { 
				for (int i = 0; i < old.length; i++, aRequestProperties.remove(PART_NUMBER_PROP + i)) {}
			}
		}
		temp = ResolveParameter.resolveValues(FIELD2, aRequestProperties, false);
		if (temp != null && !temp.isEmpty()) {
			old = temp.keySet().toArray();
			if (old != null && old.length > 0 ) { 
				for (int i = 0; i < old.length; i++, aRequestProperties.remove(FIELD2_PROP + i)) {}
			}
		}
		temp = ResolveParameter.resolveValues(QUANTITY, aRequestProperties, false);
		if (temp != null && !temp.isEmpty()) {
			old = temp.keySet().toArray();
			if (old != null && old.length > 0 ) { 
				for (int i = 0; i < old.length; i++, aRequestProperties.remove(QUANTITY_PROP + i)) {}
			}
		}
		if (sourceCodes == null) {
			sourceCodes = new Hashtable(); 
		}
		if (items == null) {
			items = new Hashtable();
		}
		
		ECTrace.exit(3L, CLASSNAME, "setRequestProperties");
	}
	
	public void performExecute() throws ECException {
		super.performExecute();
		final String METHODNAME = "performExecute";
		ECTrace.entry(4L, CLASSNAME, METHODNAME);
		try {
			sendToMQ = (com.ibm.commerce.messaging.commands.SendMsgCmd) CommandFactory
					.createCommand(
							"com.ibm.commerce.messaging.commands.SendMsgCmd",
							getStoreId());
		} catch (ECException ce) {
			setitemPriceAvailable(false);
			ECTrace.trace(4L, CLASSNAME, METHODNAME, ce
					.getMessage());
			xxxItemPriceLogger.log(Level.SEVERE,"Error occured when trying to connect to MQ	:"+ce
					.getMessage());
			return;
		}
		sendToMQ.setMsgType(MSG_TYPE);
		sendToMQ.setStoreID(getStoreId());
		byte[] resultMessage;
		if (sourceSku == null || sourceSku.size() == 0) {
			setitemPriceAvailable(true);
		} else {
			try {
				int notOkCount = 0;
				createOutBoundMessage();
				resultMessage = sendToMQ.getResult();
				if(resultMessage!=null || resultMessage.length!=0)
				{	
				String xmlResponse = new String(resultMessage);
				int subLength=xmlResponse.indexOf("<");
				if(subLength!=-1)
				{	
				xmlResponse=xmlResponse.substring(subLength);
				xxxItemPriceLogger.log(Level.FINEST,"Reply Message accquired from MQ is: \n"+xmlResponse);
				MessageMapperGroup mapper = new MessageMapperGroup() ;
				CommandProperty cmd = MessageMapperGroup.getObjectForMessage(xmlResponse,"WCS.INTEGRATION");
				if(cmd !=null)
				{
				TypedProperty resultProperty = cmd.getRequestProperties();
				Vector sourceSkuVector = (Vector) resultProperty.get(RESULT_KEY);
				for (int i = 0; i <= sourceSkuVector.size() - 1; i++) {
					Map nextSourceSku = (Map) sourceSkuVector.get(i);
					xxxItemPriceVO temp = this.getsourceSku(i);
					String sourceCode = (String) nextSourceSku.get(SOURCE_CODE);
					String sku = (String) nextSourceSku.get(SKU);
					String price = (String) nextSourceSku.get(PRICE);
					String flag = (String) nextSourceSku.get(FLAG);
					
				}
				
				setitemPriceAvailable(true);
				if (notOkCount == sourceSkuVector.size()) {
					//setNoneChanged(true);
				}
				}
				else
				{
					setitemPriceAvailable(false);
				}
			}
			
				else
				{
					xxxItemPriceLogger.log(Level.FINEST,"No Reply Message from backend obtained" );
					setitemPriceAvailable(false);
				}
				}
				else
				{
					xxxItemPriceLogger.log(Level.FINEST,"No Reply Message from backend obtained" );
					setitemPriceAvailable(false);
				}
			}
			catch (ParameterNotFoundException pnf)
			{
				ECTrace.trace(4L, CLASSNAME, METHODNAME,pnf.getMessage());
				xxxItemPriceLogger.log(Level.SEVERE,"Parameter not found exception occured	:"+pnf.getMessage());
			}
			catch (ECException e) {
				setitemPriceAvailable(false);
				ECTrace.trace(4L, CLASSNAME, METHODNAME, e.getMessage());
				xxxItemPriceLogger.log(Level.SEVERE,"EC exception occured	:"+e.getMessage());
			}
			
			catch (Exception ex) {
				setitemPriceAvailable(false);
				ECTrace.trace(4L, CLASSNAME, METHODNAME, ex.getMessage());
				xxxItemPriceLogger.log(Level.SEVERE,"Exception occured	:"+ex.getMessage());
			}
			ECTrace.exit(4L, CLASSNAME, METHODNAME);
			
		}
		xxxItemPriceLogger.log(Level.FINEST,"Address Verify perform execute completed");
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.xxx.commerce.messaging.commands.xxxItemPriceCmd#getsourceSku()
	 */
	private xxxItemPriceVO getsourceSku(int i) {
		return (xxxItemPriceVO) sourceSku.get(i);
	}

	/*
	 * @return a list of xxxItemPriceVO objects
	 * 
	 * @see com.xxx.commerce.messaging.commands.xxxItemPriceCmd#getsourceSku()
	 */
	public List getsourceSku() {
		return sourceSku;
	}

	/**
	 * @param sourceSku
	 *            The sourceSku to set.
	 */
	public void setsourceSku(List sourceSku) {
		this.sourceSku = sourceSku;
	}

	/**
	 * @return Returns the itemPriceAvailable.
	 */
	public boolean isitemPriceAvailable() {
		return itemPriceAvailable;
	}

	/**
	 * @param itemPriceAvailable
	 *            The itemPriceAvailable to set.
	 */
	private void setitemPriceAvailable(
			boolean itemPriceAvailable) {
		this.itemPriceAvailable = itemPriceAvailable;
	}

	/**
	 * @return Returns the noneChanged.
	 */
	public boolean isNoneChanged() {
		return true;
	}

	/**
	 * @param noneChanged
	 *            The noneChanged to set.
	 */
	private void setNoneChanged(boolean noneChanged) {
		//this.noneChanged = noneChanged;
	}

}

Open in new window

/*
 * Created on
 *
 * A values object used to retrieve prices considering the source code pricing allowed 
 */
package com.xxx.commerce.messaging.beans;

import java.io.Serializable;

/**
 * @author
 * 
 */
public class xxxItemPriceVO implements Serializable {
	
	private String field2 = null; 			// source code stored as field2
	private String partnumber = null; 		// partnumber to lookup
	private String name = null; 			// item description
	private String currentPrice = null; 	// available price
	private boolean newPrice = false;		// indicator if the source code price was unavailable
	private boolean itemFound = false;		// indicator if the part number can be found
	private String quantity;				// quantity of this item for adding to cart
	private String message;					// message to display in the name column.
	private boolean itemAvailable = true;   // indicator if the part number/source code item lookup is available for sale
	
	
	/**
	 * @param field2
	 * @param partnumber
	 */
	public xxxItemPriceVO(String field2, String partnumber) {
		this.field2 = field2;
		this.partnumber = partnumber;
	}
	
	
	/**
	 * 
	 */
	public xxxItemPriceVO() {
	}
	
	
	/**
	 * @return Returns the currentPrice.
	 */
	public String getCurrentPrice() {
		return currentPrice;
	}
	/**
	 * @param currentPrice The currentPrice to set.
	 */
	public void setCurrentPrice(String currentPrice) {
		this.currentPrice = currentPrice;
	}
	/**
	 * @return Returns the field2.
	 */
	public String getField2() {
		return field2;
	}
	/**
	 * @param field2 The field2 to set.
	 */
	public void setField2(String field2) {
		this.field2 = field2;
	}
	/**
	 * @return Returns the name.
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name The name to set.
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return Returns the newPrice.
	 */
	public boolean isNewPrice() {
		return newPrice;
	}
	/**
	 * @param newPrice The newPrice to set.
	 */
	public void setNewPrice(boolean newPrice) {
		this.newPrice = newPrice;
	}
	/**
	 * @return Returns the partnumber.
	 */
	public String getPartnumber() {
		return partnumber;
	}
	/**
	 * @param partnumber The partnumber to set.
	 */
	public void setPartnumber(String partnumber) {
		this.partnumber = partnumber;
	}
	
	/**
	 * @return Returns the itemFound.
	 */
	public boolean isItemFound() {
		return itemFound;
	}
	/**
	 * @param itemFound The itemFound to set.
	 */
	public void setItemFound(boolean itemFound) {
		this.itemFound = itemFound;
	}
	/**
	 * @return Returns the quantity.
	 */
	public String getQuantity() {
		return quantity;
	}
	/**
	 * @param quantity The quantity to set.
	 */
	public void setQuantity(String quantity) {
		this.quantity = quantity;
	}
	/**
	 * @return Returns the message.
	 */
	public String getMessage() {
		return message;
	}
	/**
	 * @param message The message to set.
	 */
	public void setMessage(String message) {
		this.message = message;
	}
	
	
	/**
	 * @return Returns the itemAvailable.
	 */
	public boolean isItemAvailable() {
		return itemAvailable;
	}
	/**
	 * @param itemAvailable The itemAvailable to set.
	 */
	public void setItemAvailable(boolean itemAvailable) {
		this.itemAvailable = itemAvailable;
	}
/*	
	public String toString() {
		return "Source (field2)=" + getField2() +
			", Item=" + getPartnumber() + 
			", Name=" + getName() +
			", Current Price=" + getCurrentPrice() +  
			", New Price=" + isNewPrice() + 
			", Item Found=" + isItemFound() +
			", Item Available=" + isItemAvailable() +
			", Quantity=" + getQuantity() + 
			", Message=" + getMessage();
	}
*/	
}

Open in new window

package com.xxx.commerce.messaging.commands;

//import java.util.List;

import com.ibm.commerce.command.ControllerCommand;

/**
 * @
 *  */
public interface xxxItemPriceCmd extends ControllerCommand {
	final public static String CLASSNAME = "com.xxx.commerce.source.commands.xxxItemPriceCmdImpl";
	final public static String NAME = "com.xxx.commerce.source.commands.xxxItemPriceCmd";
	final public static String defaultCommandClassName = "com.xxx.commerce.source.commands.xxxItemPriceCmdImpl";
	
	//public ArrayList getRetrievedPrices();
}

Open in new window

0
Comment
Question by:iceman19330
  • 9
  • 3
  • 2
14 Comments
 
LVL 34

Expert Comment

by:Gary Patterson
Comment Utility
iceman,

Not sure I understand what your question is.

Does this code you are showing us work?  If not, where does it fail, and what is the error message or incorrect results you are experiencing?

If you don't have a development environment, I'd suggest your first step should probably be to create one.  You can get Websphere loaded on your own PC if you have to.

So you have some unfinished, undocumented code that you already know doesn't meet requirements written by someone that left the company, and it just amounts to the little bit of code you posted above?  Personally, I'd just scrap it and start over fresh.  If you have some parts that are good, copy them over, but why waste a lot of time trying to fix someone else's incomplete, non-compliant code.

Now if it was 50K lines of code, I might suggest a different alternative, but this looks like a few hours of work to re-create from the ground up.

Just my opinion, of course.

-Gary Patterson
0
 
LVL 5

Expert Comment

by:lgacs
Comment Utility
Interfaces used here are NOT MQ interfaces, they are belong (very probably) to
WebSphere Commerce Server Java API.

Try to add the proper tags to your request.and/or move it to other zone.
0
 

Author Comment

by:iceman19330
Comment Utility
Well here is an error message:

The following section is intended to aid store developers in debugging problems in the sample store.
Error information is listed below.  For further details, increase the  logging for your WebSphere Commerce system, and check the log file.

Exception Type:      1
Message Key: _ERR_CMD_CMD_NOT_FOUND
Message: CMN3101E The system is unavailable due to "CMN0203E".
System Message: Command not found: "com.xxx.commerce.source.commands.xxxItemPriceCmd".
Originating Command:
Corrective Action:

I have corrected all of the areas where it was appearing, dumb typos.  So struts, acp file, cmdreg and the above file where the typo appears.  I have done another acpload, applied the new files and done a complete restart and still I get the error message with the typo.
0
 
LVL 34

Expert Comment

by:Gary Patterson
Comment Utility
What "typo" are you referring to?

From the error, it looks to me like the com.xxx.commerce.source.commands.xxxItemPriceCmd command (Java Bean) isn't found.  Does it exist, and is it properly registered?  

http://publib.boulder.ibm.com/infocenter/wchelp/v5r6m1/index.jsp?topic=/com.ibm.commerce.base.doc/messages/rgx_ecsymptomdb.htm

- Gary Patterson

0
 

Author Comment

by:iceman19330
Comment Utility
The typo was that there is no command named that.  So I fixed the instance of the typo but it keeps coming up.  Hoping this next change fixes that.
0
 

Author Comment

by:iceman19330
Comment Utility
So now I get which is something i have been getting all along.

system.out
StrutsViewExecUnit StrutsViewExecUnit CMN0203E: Command not found: "xxxItemPrice".

genericerror.jsp
Message Key: _ERR_CMD_CMD_NOT_FOUND
Message: CMN3101E The system is unavailable due to "CMN0203E".
System Message: Command not found: "com.xxx.commerce.source.commands.xxxItemPriceCmd".

I have entries in CMDREG, MSGTYPES, struts-ext, have a acpolicy which has run.

So the issue is that I had mistyped com.xxx.commerce.source.commands.xxxItemPriceCmd where it should have been com.xxx.commerce.messages.commands.xxxItemPriceCmd.  I have corrected all of the areas where source was at so that they are now messages.

So I attached the cmdreg entries, struts snippets and the acpolicy xml file I dont know if I am missing something where there is somewhere else that this didnt get updated, but I have gone over the files again and again and I cannot see where this is going wrong.

//acpolicy
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> 
<!DOCTYPE Policies SYSTEM "../dtd/accesscontrolpolicies.dtd">

<Policies>
	<!-- ************************************************************* -->
	<!-- BEGIN: Access control for commands and views -->
	
	<Action Name="xxxShopByItemNumber" CommandName="xxxShopByItemNumber" />
	<Action Name="xxxDisplayCatalogPrices" CommandName="xxxDisplayCatalogPrices" />
	<Action Name="xxxItemPrice" CommandName="xxxItemPrice" />

	<ActionGroup Name="AllSiteUsersViews" OwnerID="RootOrganization">
		<ActionGroupAction Name="xxxShopByItemNumber"/>
		<ActionGroupAction Name="xxxDisplayCatalogPrices"/>
		<ActionGroupAction Name="xxxItemPrice"/>
 	</ActionGroup>
 	
	<Action Name="ExecuteCommand" CommandName="Execute" />

	<ResourceCategory Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" 
	    ResourceBeanClass="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd">
		<ResourceAction Name="ExecuteCommand"/>
	</ResourceCategory>
	
	<ResourceGroup Name="AllSiteUserCmdResourceGroup" OwnerID="RootOrganization">
		<ResourceGroupResource Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" />
	</ResourceGroup>

	<!-- END: Access control for commands and views -->
	<!-- ************************************************************* -->
 	
</Policies>

Open in new window

// struts config
<forward name="xxxItemPrice/0/-4" 
path="/Messages/xxxItemPriceView.jsp"
className="com.ibm.commerce.struts.ECActionForward" >
<set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
<set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
</forward>

<action path="/xxxShopByItemNumber" type="com.ibm.commerce.struts.BaseAction" />
<action path="/xxxDisplayCatalogPrices" type="com.ibm.commerce.struts.BaseAction" />
<action path="/xxxItemPriceReply" type="com.ibm.commerce.struts.BaseAction" 
parameter="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd" >
<set-property property="authenticate" value="0:0"/>
</action>
<action path="/xxxItemPrice" type="com.ibm.commerce.struts.BaseAction" />

Open in new window

//cmdreg
STOREENT_ID	INTERFACENAME	DESCRIPTION	CLASSNAME	PROPERTIES	LASTUPDATE	TARGET	OPTCOUNTER
10001	com.xxx.commerce.messaging.commands.xxxItemPriceCmd	MQ Price Inquiry MQ response message	com.xxx.commerce.messaging.commands.xxxItemPriceCmdImpl			Local           	
STOREENT_ID	INTERFACENAME	DESCRIPTION	CLASSNAME	PROPERTIES	LASTUPDATE	TARGET	OPTCOUNTER
0	com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd	Dummy placeholder for the inbound MQ Price Inquiry MQ response message	com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmdImpl			Local

Open in new window

0
 
LVL 34

Expert Comment

by:Gary Patterson
Comment Utility
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:iceman19330
Comment Utility
Yeah sorry forgot to mention the tables that it suggests to check do not exist and havent existed.
0
 

Author Comment

by:iceman19330
Comment Utility
Here is an error I get when I turn up the logging.

Explanation: The command factory cannot create a new instance of {0} for a command interface {1}. \n Possible problem :\n (1) Either command implementation class name {0} is incorrect or it does not implement the interface {1}.\n (2) The class is not loaded properly\n
Action:Verify that the class name {0} is correct and it implements the interface {1} and that it is included in the classpath.

Kinda looks the same.  Any thoughts?
0
 
LVL 5

Accepted Solution

by:
lgacs earned 500 total points
Comment Utility
If you read the original error message, not just the general explanation with {x} parameters, you will get some hint what class/interface might have typos.

Tip 2:
Have you defined also com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmdImpl, which is not listed here ?
0
 

Author Comment

by:iceman19330
Comment Utility
I probably should have done this earlier but I am just going to clear everything that I can and re do it step by step and see if there was something not getting overwritten or just something not put in correctly.
0
 

Author Comment

by:iceman19330
Comment Utility
Error messages are improving.
accessControlCheck The user does not have the authority to run this command
0
 

Author Comment

by:iceman19330
Comment Utility
So let me ask something.  the xxxItemPrice cmd isnt ment to be seen its to forward on to another template.  should I be worried about the access control?  or since its saying it cant run then it wont forward so I need to worry about it.

@lgacs - yes Reply is  defined, its a placeholder for the MQ reply message.
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> 
<!DOCTYPE Policies SYSTEM "../dtd/accesscontrolpolicies.dtd">

<Policies>
	<!-- ************************************************************* -->
	<!-- BEGIN: Access control for commands and views -->
	
	<Action Name="xxxShopByItemNumber" CommandName="xxxShopByItemNumber" />
	<Action Name="xxxDisplayCatalogPrices" CommandName="xxxDisplayCatalogPrices" />
	<Action Name="xxxItemPrice" CommandName="xxxItemPrice" />

	<ActionGroup Name="AllSiteUsersViews" OwnerID="RootOrganization">
		<ActionGroupAction Name="xxxShopByItemNumber"/>
		<ActionGroupAction Name="xxxDisplayCatalogPrices"/>
		<ActionGroupAction Name="xxxItemPrice"/>
 	</ActionGroup>
 	
	<Action Name="ExecuteCommand" CommandName="Execute" />

	<ResourceCategory Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" 
	    ResourceBeanClass="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd">
		<ResourceAction Name="ExecuteCommand"/>
	</ResourceCategory>
	
	<ResourceGroup Name="AllSiteUserCmdResourceGroup" OwnerID="RootOrganization">
		<ResourceGroupResource Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" />
	</ResourceGroup>

	<!-- END: Access control for commands and views -->
	<!-- ************************************************************* -->
 	
</Policies>

Open in new window

0
 

Author Comment

by:iceman19330
Comment Utility
looks as if acpload is borked.  I queried the db and no action name, etc.
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

I had a project requirement for a displaying a user workbench .This workbench would consist multiple data grids .In each grid the user will be able to see a large number of data. These data grids should allow the user to 1. Sort 2. Export the …
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now