I am a GP and eConnect noob. Please to not run away ;o)
After inheriting .NET create Sales Invoice in GL 2010 Single Use batches, I have been tasked with applying a custom price tiering structure and variable pricing based on various conditions such as employee count, time of day, favorite color, etc...
The Invoice and Single Use Sales Batch creation works fine from C# using eConnect assemblies. I have never used GP before, however I've been granted access to the GP server via the GP client and have learned quite a bit by experimentation. The previous programmer calculates line item unit pricing for a particular type of sales and passes that in to the invoce as it created programmatically. I just discovered no matter what unit price is placed on the line item GP will override this with whatever values it contains for the given ItemKey ID. So, essentially we are wasting our time calculating these values.
My preference is to implement all of the price tiering logic and variable pricing rules in GP because we still perform manual Invoice creation via the GP client in addition to external automated Invoice creation. By keeping these "rules" in GP there is less of a likelihood we would end up with automated vs manual Invoice pricing errors or inconsistancies resulting from human error.
So...assuming we do not want to buy a GP plug-in that does this, and this functionality does not exist out of the box, I am attempting to force the Invoice to use the line item unit pricing I pass to it. I have had zero luck so far. I've decided to read the Invoice from GP just after creating it and programmatically changing the line item unit pricing values and then updating the Invocie document ByKey. This is slow and clunky...and does not seem to work. The line item unit pricing is being enforced by GP regardless of how I attempt to update it via eConnect.
Here are my questions:
Is it possible to submit my own Sales Invoice line item unit price values to GP via eConnect?
If so, is there some sort of GP business entity based Policy modification I need to establish before this can happen?
Do I need to define a specific Item Class or ID in GP of which will allow external assignment of Inventory Unit Pricing?
Should I not be considering implementing tiered and variable pricing on my own (of which implies that I will have to build an external pricing system) or should I buy a plug-in?
Many thanks for anyone who can give me a shove in the right direction.
Don
*This post is locked for comments
Hi Don,
You are right you need to change Calculate Unit Price Behavior Policy to 'Not Calculate' . I think that should have resolve you issue.
Let me know how it goes.
Thanks
Sandip
Hi Sandip. That is correct. GP is essentially "ignoring" my Unit Price override. However, I've been reading and have discovered that there are Policies of which are configured at the web service level that govern certain capabilities of GP. As understand, I need to logon to the machine hosting the GP webservice and launch the Security Console and change the setting for "Calculate Unit Price" ... I believe. Once this is done, I should be able to override the GP derrived Sales Unit Prices.
Once I actually gain access to this machine and affect this change, I will post my results.
Thank you!
Don
No web service not unknown as eConnect it is called 'Dynamics GP WebServices'. EConnect is different API to integrate transactions.
I saw your web service code and it look good where you pass price. Are you sure when you pass $1.00 as price and it get integrate sucessfully but when you check in GP it is different price?
Thanks
Sandip
Oops! I may not be using eConnect. I'm a noob. I am using a .NET web reference to a Dynamics GP web service (DynamicsGPWebServices). If this uses eConnect on the back end, I would be unaware of that. If this web service is "known as" eConnect, I would also be unaware of that.
Thank you very much for your feedback Sandip. However, I may have not properly described the Line Item Unit Price issue I am experiencing.
Using the .NET eConnect wrapper, I am able to create a Sales Batch and insert one or more Sales Invoices into the batch. And, I can verify everything looks correct using the GP thick client. The problem I am having is GP is overriding my externally supplied (external from GP) Unit Price Value and I am 100% certain this is due to the Unit Price details associated with the ItemKey ID (see “SAMPLE” in the code fragment below) I am using to code the Line Item.
I have included a code fragment below of which represents our new Sales Invoice Line Item insertion.
.
. .
. . .
unitPrice = new MoneyAmount();
unitPrice.Currency = "USD";
unitPrice.DecimalDigits = 2;
unitPrice.Value = 1.00M;
itemKey = new ItemKey();
itemKey.Id = "SAMPLE";
salesInvoiceLine = new SalesInvoiceLine();
salesInvoiceLine.ItemKey = itemKey;
salesInvoiceLine.ItemDescription = "Look Ma! No Hands!!)";
salesInvoiceLine.UnitPrice = unitPrice;
invoiceCount = new Quantity();
invoiceCount.Value = 1;
salesInvoiceLine.Quantity = invoiceCount;
. . .
. .
.
With that said, I am not a Finance guy. So, there may be operations not allowed/performed in GP or any properly written accounting pacakge for very specific business reasons. I am guessing Prices and Pricing Variations based on Time Periods and/or Customers need to be defined in GP before they can be used in GP (whatever they may be defined as). This does make sense to me if it is the case. This would allow GP to deal with ItemKey ID versioning as far a Pricing is concerned, and other modifications that would make reconciliation impossible if performed outside of GP.
Given that I am a GP noobie, I am probably asking silly questions and I apologize for that. Perhaps if I rephrased my initial question like this:
What considerations would need to be taken when programmatically generating a Sales Invoice of which contains a non-predetermined set of Invoice Line Items of a given type, and the unit price of that type will vary depending on various influences (such as a Company’s employee count, the number of times a Company calls for technical support, the time of day, etc…). Should "any price" regardless of it's short term life span (including sing use) be created and defined in GP? Or, are totally dynamic "miscellaneous" type Unit Prices allowable?
Again…thank you kindly for your feedback!
Don
Don,
Is it possible to submit my own Sales Invoice line item unit price values to GP via eConnect?
Yes it ispossible. Here is eConnect Sales Line Item schema details :
http://msdn.microsoft.com/en-us/library/bb625316.aspx
SOP order Processing
http://msdn.microsoft.com/en-us/library/bb625183.aspx
If so, is there some sort of GP business entity based Policy modification I need to establish before this can happen?
If your inserting new invoice then you don't have to any extra things. But updating or adding new line items existig invoice then you need to Update logic - like
UpdateIfExists=1
Do I need to define a specific Item Class or ID in GP of which will allow external assignment of Inventory Unit Pricing?
Please check 'Item Price List Maintenace' screen to enter different price range like if customer is buying 1 to 10 then price is $10.00
if 11 to 20 then price is 9.50 something like that.
I don't know how eConnect will handle price automatically base on Item Price List you need to check. But again you can find table and input your own item Price.
Should I not be considering implementing tiered and variable pricing on my own (of which implies that I will have to build an external pricing system) or should I buy a plug-in?
I think it should be easy to build your own pricing system if you have any spcial pricing method and it won't go with 'Item Price List' logic. I don't know wny plug in is available or not.
Let me know how it goes.
Thanks
Sandip Jadhav
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 291,240 Super User 2024 Season 2
Martin Dráb 230,149 Most Valuable Professional
nmaenpaa 101,156