How to Get Permission to Create Scenarios in ACC

This is Happening without your Permission

Sometimes you will find that you cannot create or duplicate scenarios.  You keep clicking on the grayed out New Scenario button and right-clicking on scenarios you want to duplicate but nothing happens.

Fortunately the solution is rather simple and is alluded to in the ATG Personalization Programming Guide – Configuring the Process Editor Server.

First you create a scenarioManager.xml file in your <ATG>/home/localconfig/atg/scenario directory like the following.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<process-manager-configuration>

  <process-editor-server>
    <server-name>foobar:8850</server-name>
  </process-editor-server>

</process-manager-configuration>

Next you replace foobar:8850 with the value of /atg/dynamo/service/ServerName.serverName.  You may want to configure the serverName value to something you want because sometimes it might change if for example when you connect via VPN.

Then you restart ATG and reconnect or restart the ACC and you should be able to create and duplicate scenarios.

(Note that when you create the workflowProcessManager.xml file in your <ATG>/home/localconfig/atg/epub/workflow/process directory it can have the exact same contents as the scenarioManager.xml file.)

Fixing IllegalArgumentException in ACC

Recently I was unable to create an item using the ACC because of an IllegalArgumentException.

java.lang.IllegalArgumentException:  Attempt to set
property named view (ContentList:800007)  with value =
moduleTemplate:2200004 (class=class atg.adapter.gsa.GSAItem).
This property  failed due to a property type specific test.
Enable loggingDebug for  details.

It turned out to be a simple issue of the wrong case. The repository path for the ContentList view item was:

/Betweengo/repository/Portal

when it should have been

/betweengo/repository/Portal.

This is certainly not obvious from the exception.

Content Repository in ACC

To display a content repository in the ACC it must be listed in the initialRepositories property of the /atg/registry/ContentRepositories component.

For example:

initialRepositories+=\
       /betweengo/repository/Portal

From the ATG Repository Guide > 12. SQL Repository Reference > Configuring the SQL Repository Component > Registering a Content Repository:

Content repositories must be added to the list of repositories in the initialRepositories property of the /atg/registry/ContentRepositories component. This also causes the new repository to show up in the Content window of the ATG Control Center.

Slot not global warnings in ATG logs

In the ATG logs you may see warnings about a slot being session scoped not global.

[STDOUT] Invalid attempt to resolve component /atg/registry/Slots/ActivationFlowSlot in scope global. It is defined in scope session 

Most of the time you can safely ignore these warnings because these warnings are most likely coming from the ACC.

When browsing slots using the ACC the ACC tries to look up the slot as a global component and complains it’s a session scoped component.  In other words it’s an ACC bug that will probably never be fixed since ATG is moving away from the ACC.

Persisting Orders

When troubleshooting orders it is really helpful to be able to view the order in the ACC.

By default orders are saved because persistOrders property of the /atg/commerce/ShoppingCart component is set to true. If you don’t see incomplete orders being saved then this means this property is not set to true.

More information on Troubleshooting Order Problems can be found in the ATG Commerce Programming Guide.

Viewing Expert-Level Information in the ACC

William T. Sherman | FlickrSome information, such as properties and item descriptors, are marked as expert (i.e. expert=true) so that they are not displayed in the ACC unless you are an expert user.

For example:

<property name="type" data-type="enumerated" expert="true"/>

To display expert-level information in the ACC go to Tools > Preferences and select the "Show expert-level information" box.

ATG ACC Preferences

Note that this is not a "sticky" preference, i.e. you have to set it every time you restart the ACC.

ACC not connecting

If you cannot connect to a site using the ACC try the following.

  1. use the host name instead of the IP address
  2. check that you are using the correct RMI port
  3. telnet to the site using the RMI port and see if you can connect
  4. check the ACC output window to see if there were any exceptions. if there was an UnknownHostException then try adding the host to your hosts file to fix the problem

Note: The host name you use should be the same as the java.rmi.server.hostname Java argument that is set in the server’s postEnvironment.sh.
JAVA_ARGS="${JAVA_ARGS} -Djava.rmi.server.hostname=kimcityqa"

user-defined property type gotcha’s

When you create a user-defined property type there are two things to keep in mind.

  1. The user-defined property should be transient.
  2. The user-defined property must have a data-type defined or the item that contains this property will not be displayable in the ACC.

Here is an example of a user-defined property type.

<item-descriptor name="foo" display-property="name" display-name="Foo">
  
 <property name="bar" property-type="com.betweengo.Bar" data-type="string"/>
 
 <table name="foo" type="primary" id-column-names="id">
  <property name="id" data-type="string"/>
  <property name="name" column-names="name" data-type="string"/>
 </table>
 
</item-descriptor>

To learn more, User-Defined Property Types. Note that in the ATG documentation the example for the user-defined property does not define a data-type. This is probably a documentation bug.