Thursday, April 28, 2011

Service Connect Workflow Designer XML Mapper Shortcut

The following tip can save you a lot of time in the XML Mapping tool, which is part of Epicor's Service Connect Workflow Designer.

When designing a workflow for Service Connect, some of the business object datasets are very wide (a large number of elements). Service Connect's only option for modifying data is to use a Conversion workflow item, which applies an XSLT to the data.

Even if you want to only modify a single value, you are forced to map all other values using XML Mapper, to avoid data being lost. With wide datasets, dragging a connection between each element is laborious.

In the Conversion example below, I only want to update the Name element (using a literal), but want to keep all other values the same.

To automatically map elements to their previous values, hold down Ctrl key while dragging then connection between the parent ComplexType elements, then all child elements are automatically mapped. This can be a real time saver.

The help document explains it as:

"When mapping complex fields of multiple occurrence, the Mapper will not copy child elements automatically unless you hold the Ctrl button while dragging the linking line. You may also force the Mapper to copy all child fields by setting the Deep Copy flag in the Link Properties."

A word of caution however. There is not quick way to unmap the child elements. If you change your mind, you will have to manually select and delete each connection.

Tuesday, April 19, 2011

Epicor 905.602A "Invalid user ID or password."

We have been struggling awhile with the "Invalid user ID or password." issue with Epicor 905.602A.

Every one to two weeks, Epicor refuses to let us log in. The log files show nothing, and Management Console shows the app server running fine. However, if you stop and restart the app server, the problem goes away. Connecting using WCF instead of the Epicor Client returns the same error message.

On our last support call, Epicor Technical support has a possible solution. They believe the issue is with OpenEdge, not Epicor itself. We are running 64-bit OpenEdge on Windows.

To attempt to fix this issue, we are applying HotFix 21 (rl102ASP0321hf-64.EXE), available for download from the Epicor support site (you need an account to login). Because the problem occurs intermittently, I won't know for sure if the fix will work, but it is nice to have a course of action. Here's hoping.

Friday, April 15, 2011

Epicor Customizations and Menu Management

After you create a form customization for Epicor, you may want to set that customization as the default for all your users.

To do this, you use System Management > Utilities > Menu Maintanence to assign your customization to a menu item.

However, many menu items open the same form, and if you want the users to always use your customization, no matter which menu item they select, you manually find and change each menu item.

It is very easy to miss a menu item, and the users will not understand why the customizations does not appear.

I wrote a custom application, called Epicor Menu Manager, which uses Epicor's Web Services (using WCF) to make it easier to manage customizations.

It lets you:

  • search for menu items by name, program, or arguments
  • find all menu items which are eligible, but not currently linked to a customization
  • suggest and update customizations for a menu item

Here's what it looks like:

Above, I have asked to see all menu items eligible for my Sales Region customization. In the tree navigation, it hightlights the path to the found menu items.

I think this application might be userful for others. If you would like to buy a copy, please contact Summa-Tech.

Monday, April 11, 2011

Epicor 9 and User Defined Codes

When customizing Epicor 9, you might find you require additional fields for a given table.

For example, we have a client who organizes sales regions into sales districts. So, on the Sales Region Maintenance screen, we want the user to be able to select a district.



You can customize the form, by adding a TextBox for SalesRegion.Character01 field, but it is better to have the user select from a range of choices.

Previously to accomplish this, you would have to add the sales districts into a user-defined table, and then add a combo box which populates from that table.

The easier way is to use something called User Defined Codes Maintenance.

Step 1 - Define User Codes

Located under System Management -> Utilities -> User Codes, open the "User Defined Codes Maintenance screen".

Create a Code Type, and then assign values (Code, and Code Description). In my case, I created a Code Type called "District", and added 4 codes, with descriptions "Northern District", "Southern District", etc. Each code also has a shorter Code ID.

Step 2 - Associate Field with User Code
Located under System Management -> Utilities -> Extended Properties, open the Extended Properties Maintenance screen.

In my case, I want to associate the district codes with the sales region:

  1. Selected "Region" DataSet Table ID
  2. Selected Fields tab, and selected the Character01 field from the tree view
  3. for the UD Code Type: field, chose "District" from combo box.

Now the system knows that Region.Character01 is associated with User Defined Codes "District".

Step 3 - Form Customization
Now I need to add to the Sales Region form a combo box for the Character01 field.

  1. Turn on Developer Mode (Main Menu -> Options -> Developer MOde)
  2. Open Sales Region
  3. Start Customization (Tools -> Customization)
  4. From Toolbox, add a EpiCombo control to the form
  5. Change the EpiBinding property to Region.Character01

As soon as I select Region.Character01 for the EpiBinding property, the system automatically filled in for me the EpiCombo properties.

And that's it. Now your users can choose from a pre-defined list of values for a user defined field.