help with form request and return result

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

iceman19330Asked:
Who is Participating?
 
lgacsConnect With a Mentor Commented:
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
 
Gary PattersonVP Technology / Senior Consultant Commented:
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
 
lgacsCommented:
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
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
iceman19330Author Commented:
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
 
Gary PattersonVP Technology / Senior Consultant Commented:
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
 
iceman19330Author Commented:
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
 
iceman19330Author Commented:
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
 
Gary PattersonVP Technology / Senior Consultant Commented:
0
 
iceman19330Author Commented:
Yeah sorry forgot to mention the tables that it suggests to check do not exist and havent existed.
0
 
iceman19330Author Commented:
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
 
iceman19330Author Commented:
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
 
iceman19330Author Commented:
Error messages are improving.
accessControlCheck The user does not have the authority to run this command
0
 
iceman19330Author Commented:
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
 
iceman19330Author Commented:
looks as if acpload is borked.  I queried the db and no action name, etc.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.