eConnect error, but not the real error!

One of my customers is doing some Sales Order Processing integrations with GP2010… and for the most part, when we run into eConnect errors, it pretty much tells you what the issue is, and you fix it and move on.

We ran into one the other day and this error wasn’t even the real error, so it wasn’t until I looked at the XML they were trying to pass did I see what the real issue is.

The Issue

The error message was this:

“Error Number = 67  Stored Procedure= taSopHdrIvcInsert  Error Description = Subtotal does not match the line item totals”

The conversation with the developers went like this:

  • Devs: Hey Jen, we’re getting this error, can you help?
  • Me: Sure. This one sounds like you need to check that the sum of the line items you’re passing in match the Subtotal field you’re passing on the header.
  • Devs: It does match.
  • Me: Well, that’s not possible… it’s saying it doesn’t match. Can you double check?
  • Devs: Already did, it still doesn’t work!
  • Me: I’ll be right over to look at it with you.

Troubleshooting

The first thing we checked was that we were all speaking the same language and that the dollar fields they were passing indeed were the same, so this error text itself wasn’t the “correct” error.

Side note: as painful as it is, when you’re troubleshooting, don’t be afraid to start with the obvious.  Had it been a simple “lines not adding up to the subtotal” error, it wouldn’t have surprised me.  It would not have been the first time I’ve helped a client where there was either a misunderstanding of what I meant or that the most basic of things that they skipped trying to find a “rare” error were actually right there like low hanging fruit.

In this case, I said we need to look at the XML they are passing in the SOP transaction.  In this case, here was a sample of the Header code, where they were receiving the error:

We looked at this and kept looking at the dollar fields, since the message was talking about subtotals not matching lines. It was clear that wasn’t the issue so we then looked at the SOP line XML, and there I saw what the issue was:

For whatever reason, the SOPType on the Header and the Line were being passed two different values.  They were passing SOPTYPE 3 on the line (Invoice) and SOPTYPE 4 on the header (Return).  GP in theory was comparing the dollar values in the context of the document type and realizing they weren’t a match.

Of course the error text REALLY should say “The SOPTYPE on the header does not match the SOPTYPE on the line”, and it would be have all been a little more obvious!

Read the original:
eConnect error, but not the real error!

November 1, 2013 · jen@kuntzconsulting.ca · No Comments
Tags: , , , , , , ,  · Posted in: Blogs I Follow Total Views: 258

Kuntz Consulting Inc. – eConnect error, but not the real error!

Hi, I’m Jen, the owner & chief blogger at Kuntz Consulting Inc. I’m a CGA as well as a Microsoft Certified Professional in the Dynamics GP application. My home base is just Email: info@kuntzconsulting.ca. © Copyright, 2014 

Follow this link:
Kuntz Consulting Inc. – eConnect error, but not the real error!

November 1, 2013 · Jen Kuntz · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 147

Extended Pricing – which Price Sheet Rules?

Client with multiple price sheets per customer, each with different End Dates in the Price Sheet Date Range, was at a loss as to why incorrect pricing was pulling into their sales orders.  Turns out they had a later End Date on the Price Sheets they wanted pricing to pull from than on the other Price Sheets that they didn’t want pricing to pull from.
 
When setting up multiple Price Sheets per customer, remember that the Price Sheet with the earliest End Date rules.
 
 

See more here:
Extended Pricing – which Price Sheet Rules?

October 31, 2013 · Frank Hamelly MCP-GP MCT MVP · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 176

SmartList Builder: Displaying Negative Amounts based on Document Type

Here’s a nugget I picked up at GPUG Summit 2013 Tampa by attending the BDA06 Going Deep with SmartList Builder (Complete survey) session hosted by Nicole Albertson from eOne Business Solutions.

Traditionally, whenever I needed to get, say, return document amounts or credit document amounts in general to show as negative in a SmartList, I would recur to the outdated method of setting up a calculated field based on a T-SQL CASE statement to take the document amount and multiply it by negative 1 (-1). The calculation looked something like this, in the case of a Return document in a Sales Transactions smart list:

Calculated Field for a Negative Value based on Document Type

This method has been used for several years now, but not without its flaws:

1. If you have a large data set, performance can be negatively impacted. Remember, the more calculations, the more pass through SQL that needs to be executed by SmartList Builder. This method in particular, seems fairly complex for a simple arithmetic operation.

2. In retrospect, this method is good if you have a fairly decent understanding of T-SQL, which puts you in the category of a power user or at least an entry level T-SQL developer. But what if you are just the average end-user? – no pun intended.

Simply put, there’s got to be a better way, right?

As it turns out I can simply click on the Document Amount field, then click on the Field Options expansion button to open the Set Field Options window.

Set Field Options window

Once in the Set Field Options window, you just need to click on the Negative Values tab. You will then mark the Display as Negative Value based on Field check mark and choose the table and field that you will use as basis to flip the sign – in the case of a Sales Transaction, that would be the SOP Type field.

Negative Values tab on Set Field Options window

SmartList Builder is “smart” enough to determine the possible values for the field in question – in fact, Yes/No and List Valued fields are usually supported.

Once again, in the case of the SOP Type list valued field, you would select the Return document type as the option to display the document amount as negative.

How handy is this? And the best of all, it required zero code.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/

See more here:
SmartList Builder: Displaying Negative Amounts based on Document Type

October 31, 2013 · Mariano Gomez · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 162

Streamline your Management Reporter installation … – MSDN Blogs

We did do several Dynamics AX integration features with this release but Dynamics GP customers also benefit from these enhancements: • Ability to drill back to your Dynamics ERP from Management Reporter Web Viewer, 

View original post here:
Streamline your Management Reporter installation … – MSDN Blogs

October 30, 2013 · Ryan Sandness · No Comments
Tags: , , , , ,  · Posted in: Blogs I Follow Total Views: 111

All About Listbox, Button Drop Lists, and Drop Down Lists

Patrick Roth - Click for blog homepageIt seems like a trivial subject for our dedicated readers but we had a new customer who is just learning Dexterity and he was having trouble recently trying to select items out of a ListBox.  And just today the issue came up about Drop Down Lists (DDL) and getting the value selected using VBA in a different case.  So this seemed like a good time to put this together.

One thing to note is that while I refer to ListBox here in the example, the same rules apply to a Button Drop List (BDL), Drop Down List (DDL), or ListBox (LB).

So in this case, the customer had 2 listbox controls.

On the left one, he would fill the list with his items from wherever the data comes from.

The intended functionality is that the user would select one and push the button which would remove it from the left Listbox and insert it into the right Listbox to be processed at some point.

 

In my example, the “Fill LB button” adds 5 items in reverse order to ListBox0 but since the listbox is marked as “Sorted” in the static items they show in Sorted order.  I added the items for this in reverse order so you can see that the actual “fill” order doesn’t matter.
 

Fill Button Code Example

I’ll add items E-A in reverse order to a sorted listbox on my window. If you go to the Static items and open it,
you’ll see the Sorted Checkbox is marked by default

clear ‘(L) LeftListBox,'(L) RightListBox';

add item “E”,1 to ‘(L) LeftListBox';
add item “D”,2 to ‘(L) LeftListBox';
add item “C”,3 to ‘(L) LeftListBox';
add item “B”,4 to ‘(L) LeftListBox';
add item “A”,5 to ‘(L) LeftListBox';

redraw ‘(L) LeftListBox';

 

At the end of the code, I redraw the listbox with the redraw statement.  Otherwise the data would remain in the order I added it even with the Sorted checkbox marked.

The reason for this is because if Dexterity would redraw the list after every add/remove, it would impact performance on large lists automatically redrawing every time.  And so it is left for the developer to redraw the list manually when they are finished operating on the listbox.

Also notice after the letter I added, there is a number – 1,2,3,4,5.  This is the “item data” that is associated to the visible item in the ListBox and isn’t displayed to the end user.  It is not the “position” of the data in the listbox – it is just extra data associated with the line.  I chose to use a different number than the position in the list to make it interesting.

Why would we use the item data?  Isn’t position good enough?  Or the letter “B”, “C” etc?

We would use the item data if we have a list of items but couldn’t count on any specific item being in any specific position.  We could perhaps use the name of the item on the selected line, but then you run into the possibility of translation issues whereas the item data (the long integer) shouldn’t ever be changed and would be the same regardless of the position of the item.

A good example of this is the SOP Entry Actions Button.  We fill the actions according to the document & business logic for that document.  Because there could be different items in the list in different positions, we instead use the item data of the Button Drop List (BDL) as the “action” ignoring the position of the selected item or the label used in the UI.

 
In the screenshot above, we see the results of me selecting an item on the Listbox of the left and hitting the >> button to move it to the right Listbox.
 
 

Code Example for the >> Button

local long LBSelectedVal;

local long item_data;

local string sName;

Get the row of the selected item, this is a 1 based list in Dexterity unlike C#
LBSelectedVal = ‘(L) LeftListBox';

if nothing selected, give an error and stop.
if LBSelectedVal = 0 then
   warning “Select an item!”;
   abort script; 
end if;

get the data of the row
item_data = itemdata(‘(L) LeftListBox’,'(L) LeftListBox’);

and the name of the item
sName = itemname(‘(L) LeftListBox’,'(L) LeftListBox’);

now remove the selected row
delete item LBSelectedVal from field ‘(L) LeftListBox';

and add it to the 2nd LB along with the item_data
add item sName, item_data to ‘(L) RightListBox';

make sure that the items in the 2nd listbox draw correctly.  Comment out if we want to leave
the items in the order selected
redraw ‘(L) Listbox1′;

 

 
It is important to note that Dexterity is the only tool to able to do all of this natively.

From a VBA or VSTools perspective, all we know is the position of the item selected.  So in the first screenshot, we see I have “B” selected which is the 2nd item in the list.

From either vba or vstools, that is the only thing I can get from the list.

So given the following GP VBA code when the 2nd item in the listbox is selected (as the first screenshot shows)

VBA Code Example

Dim I as integer

I = ListBox0
Msgbox str(i)

 

The Message Box would show the value “2”.

The syntax of the above using C# in VSTools code would be slightly different but would also return “2”.

From VBA or VSTools we cannot:

  • Add items to a listbox
  • Remove items from a listbox
  • Change items in a listbox
  • Get the “item data” for an item in a listbox
  • Get the name of an item in a listbox

In other words, we can’t do much with a list outside of Dexterity– only get the selected position of an item.

This lack of functionality makes it very difficult when using VBA or VSTools when list types are being used unless the list is “static” and doesn’t change.

I’ve attached a form you can import into your test dictionary to view the Dexterity code directly and test as you like.

As I noted previously, Dexterity is the only language that can natively do most things with our listbox.  That said, from other articles in the this; our readers should be quite familiar with using the Continuum API.  Since the API allows you to execute any sanScript statement – you could do all of this via Continuum as well.

Perhaps I’ll make that the topic of a future article.

Patrick 

Read the original:
All About Listbox, Button Drop Lists, and Drop Down Lists

October 30, 2013 · Patrick Roth · No Comments
Tags: , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 289

GPUG Summit 2013 Tampa Wrap Up

I just got back from GPUG Summit 2013 in Tampa and I have to say it was a very exciting week. With a 4-hour training and 3 sessions over 3 days, reality is time is always of the essence at a conference like this one. If you went to any of my sessions, please fill out the survey as this is how I get invited to these events – seriously!

ITP02: Fun with Microsoft Dynamics GP Administration Tools
Wednesday October 23, 2013 2:00pm – 3:00pm
CPE Eligible
Complete survey

STR04: Web Client Deployment for IT Directors
Thursday October 24, 2013 1:15pm – 2:15pm
CPE Eligible
Complete survey

ITP07: Administering SQL for Microsoft Dynamics GP Administrators
Friday October 25, 2013 9:45am – 10:45am
CPE Eligible
Complete survey

Nonetheless, I got a chance to attend a few sessions where I picked up a few nuggets (blog material for this week) and learned some more about topics I don’t usually get involved with and, boy, it was all worth it! Some of the sessions I attended are as follow:

BIR03: Unlock the Magic of Excel Refreshable Reports
Presenter: MVP Mark Polino
Wednesday October 23, 2013 10:00am – 11:00am
CPE Eligible
Complete survey

PSH05R: Making Microsoft Dynamics GP work Simpler and Easier
Presenter: Mark Rockwell @ Rockton Software.
Thursday October 24, 2013 9:30am – 10:30am
Not CPE Eligible
Complete survey

BDA06: Going Deep with SmartList Builder
Presenter: Nicole Alberson @ eOne Business Solutions.
Thursday October 24, 2013 4:00pm – 5:30pm
CPE Eligible
Complete survey

STR08: Business Portal is Alive and Kicking
Presenter: Tanya Henderson @ S2 Technologies.
Friday October 25, 2013 11:00am – 12:00pm
CPE Eligible
Complete survey

Thanks to Summit sponsors FastPath and Data Masons for hosting the Thursday morning MVP breakfast, attended by MVPs from all ERP and CRM products and a few GPUG All-Star guests – from left to right and front to back, John Lowther (GP), Belinda Allen (GP), Leslie Vail (GP), Mariano Gomez (GP), Zubin Gidwani (GP All-Star), Jon Rivers (Data Mason), Howard Swerdloff (GP All-Star), Gretchen Opferkew (CRM), Claus Lundstrøm (NAV), Per Mogensen (NAV), Mark Polino (GP), Brandon George (AX)

Congratulations to the GPUG Summit 2013 All-Stars, Beat Bucher (@GP_Beat) with Forensic Technologies in Canada, Terry Heley with Microsoft, and Michelle Kocher with Delta Medical Systems.

Michelle, Terry, and Beat joined the “Ask the All-Star” session featuring (from left to right) Zubin Gidwani, Richard Whaley, MVP John Lowther, Bob McAdam, and MVP Mark Polino.

It was also good to catch up with my friends at eOne Business Solutions, Abbey Cooper, Nicole Albertson, and Chris Dew – Martin Olsen behind the camera.

My thoughts in general are:

  • Mark Polino is an Excel diva – enough said!
  • 1 hour sessions are too short. Most presenters I spoke to had a lot more material they would have wanted to present, but time did not allow them to go deeper into the topics.
  • Summit is definitely an event all end-users must attend at least every couple years.
  • Drop the word “optional” from the pre-conference training sessions. When you make something “optional”, people just don’t show up. It was not uncommon to find classrooms with just 2 students and the instructor.
  • Can’t beat the Tampa weather. Should plan to have more summits in this beautiful city.
  • More deep dives please! It should be all about the details for the end-user.
  • From a presenter’s perspective, VPC images were messed up and some were not even ready. Not cool!

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/

Read More:
GPUG Summit 2013 Tampa Wrap Up

October 28, 2013 · Mariano Gomez · No Comments
Tags: , , , , , , ,  · Posted in: Blogs I Follow Total Views: 147