Could not execute specified command - Not able to add customer record in Quickbooks - ado.net

We are trying to query Customer Master for "TEST CUSTOMER", But Quickbooks is returning an error saying "The name "[TEST CUSTOMER]" of the list element is already in use."
We tried searching customer master for the above customer, but could not find it in QB. We searched the entire list of customer which includes inactive as well but no luck.
We are using RSSBUS ADO.Net Provider for integration. When we communicated to them, they said, there might me issue with the Company File.
Can you please help us resolve the issue, or tell us the cause of the issue?
-Santosh

QuickBooks has a UNIQUE constraint across the combination of (vendors, customers, employees, "other names").
So, it could be that a vendor or employee already exists with that name.
You might also check to see if the customer is marked inactive (inactive customers don't show up in default queries).

Related

Magneto2 NO customer order history on frontend under My Account, orders only visible from Admin?

Testing our Magento 2.3.1 site after migration and new development completed. We are about to go live then I saw a problem with viewing the customer order history under My Account > My Orders. Shows the following message "You have placed no orders."
I can view this test customers orders in Admin, all old orders and new orders show up normally. This lack of order history happens with old and newly created customers.
I feel there is something weird going on with how the customer account relates/configured to the store. If so where in the DB should I be looking to validate this hunch?
Has anyone seen anything like this, Thanks for your help!
I have tested this using old imported customers from 1.9.4 and new customers. No change in order history shown.
I expect to see the full history of my customers orders. instead, I'm greeted with a "You have placed no orders." message.

Dynamics CRM Workflow: Verifying that Item is assigned to a User (vs. Team) Before Sending Notification

I have reviewed all the past questions as well as scoured google results, but I can't find a good answer to this.
In our MS Dynamics CRM 2016 Cloud implementation, we have added email notifications to the owner of a Lead, or Opportunity, based on certain events. Sometimes the owner is a Team, and in those cases, we want to avoid sending to the team (it causes the workflow to get stuck in "waiting for retry based on error").
I added a qualification to all the workflows to say: If OwningUser.PrimaryEmail Contains Data ...
My theory was that if a user were associated with the Owner field, this would pass (all of our users have primary emails except service accounts), and if a team were associated, it would fail. However, that is not happening - it is still trying to send the email and failing.
I was concerned that it could be an issue if no user were assigned and the system tried to reference a null value.
However, I can't see another way to do this and no one I've talked to seems to know either.
Try adding a condition like this. This should hopefully tell you if the owner is populated with a team record, if not then you are safe to send the email.

How to get customer id KUNNR of current Launchpad user?

I am writing a custom Fiori to access sales data from an SAP ERP backend system using a Gateway.
The use case is "customer logs in launchpad, opens Fiori app and sees all his/hers sales items based on the customer id". The customer id is stored in kna1-kunnr and has to be included in a select on the vbak table in SAP. Nothing fancy.
Now I ask myself: how do I get the customer id / kunnr? What do I get at all from the currently logged in user? When debugging my Gateway project code, is it actually the name stored in sy-uname or can I get something better?
How should I continue to get the customer id / kunnr? Are there some function modules like GET_CUSTOMER_ID_OF_USER to call in the SAP ERP?
Or are the actually other / better ways to get the sales documets for one user?
Update
Thank you for your answers so far. I am going to check the default Fiori implementations to get some inside. But, since we are already here, I want to specify my question a little bit more:
Giving I create an OData model in my Component.js like that:
var oModel = new sap.ui.model.odata.ODataModel("[...]/sap/opu/odata/sap/Z_MYODATA_SRV/",
false, "user", "password" );
user and password are supposed to be the ones currently entered as user credentials in the Fiori Launchpad. How can I access those? Are there some SAPUI5 api like getCurrentUser or getCurrentSession ? Do I actually have to do this user check?
You are correct that to identify all of the sales orders for a customer you need to read them from VBAK (or use BAPI_SALESORDER_GETLIST, etc).
The relationship between logged in user and customer is not something that's the same in every SAP ECC system. You may find that the logged in user is the same as the customer number, but with a prefix - for example, logged in user C12345678 for customer 0012345678. Or there may be some other type of relationship that's store in a custom field on the customer master itself. The best option is to check with the person responsible for the configuration in Sales and Distribution. Only then can you know how to determine the customer for a logged in customer user.
Answering your question
Now I ask myself: how do I get the customer id / kunnr? What do I get at all from the currently logged in user?
It is done on backend with standard customizing, not via OData methods like you intend to do it.
Mikael gave you the rough idea, but didn't finished it so I will give a more comprehensive answer.
We need to differentiate between front-end and back-end authorizations, for Fiori app functioning you need to types of roles/authorizations:
The SAP Fiori roles that define which Fiori apps are displayed to the user
Launchpad authorizations
General OData authorizations
Trusted RFC back-end connectivity authorizations
Back-end authorizations and roles which contain authorizations to display the related business data
This concept is depicted on this figure:
The assignment of the front-end is described here and is out of scope now. Now we are focusing on bullet 2.
Every Fiori app has its role model and one should follow the implementation given in app description. Let's consider how it is done based on Sales Order creation app (F0018) sample:
OData service that returns business-data is SRA017_SALESORDER_CREATE_SRV, so to run it one needs frontend role SAP_SD_BCR_FIELDSALESREP_X1 and backend role SAP_SD_SO_CRE_APP
Also app description give us the following prerequisits:
Before implementing the Create Sales Order app, you must ensure the following:
That an employee master record is created with the following attributes:
If you have implemented SAP ERP HCM and maintained employees in the HCM personnel records, ensure that the employee personnel record has the infotype Communication, with a subtype of System User Name (SY-UNAME) (Infotype 0105, Subtype 0001).
If you have not implemented SAP ERP HCM, implement the Sales and Distribution configuration around Use Sales Employees with HR (Tcode: PULT). This IMG setting copies the appropriate HCM tables from the 000 Client and allows the setup of the employee record with the Infotype Communication and a Subtype of System User Name (SY-UNAME) (Infotype 0105, Subtype 0001).
It associates the USERID of the employee with the personnel number assigned as a partner function sales employee in the customer master.
After implementing the above customer SAP user id will be bound to his employee ID (PERNR), and his employee ID consequently will be bound to partner function in XD02.
And that's not all, what comes next?
THe following order parameters should be maintained in in SIMGH tcode in order customer to see his orders and can create the new ones.
Call transaction SIMGH to open the Create Sales Orders node and configure user information in Customizing activity Define Configuration Parameters using the parameters listed below. For more information, see the documentation available for the Customizing activity.
Document Type (DOCTYPE)
By default, the app uses the standard order document type (technical key TA resp. OR). Changing this to something other than a sales order may significantly impact the functionality of the application.
Order Period (ORDPERIOD)
This defines how many days into the past sales orders are retrieved. The suggested value is 30 days.
Search Period (SEAPERIOD)
This defines how many days into the past a search must look for sales orders that match the search criteria. The suggested value is 90 days.
Ship To Party (SHIP_TO/PARTNER_ROLE)
This defines which partner role in the customer master is used for the ship-to party. The suggested value is WE.
Forwarding Agent (FORWARDING_AGENT/PARTNER_ROLE)
This defines which partner role in the customer master is used for the forwarding agent. The suggested value is SP.
and even that's not all
App description gives the following BADIs to implement in order to enable such linking
Implement the following BAdIs:
Customer Association to Employee
You can use this BAdI to associate employees with specific customers.
Only after all the above steps the customer will be able to order and/or view his sales items.
The moral: always check the app description thoroughly because the role model varies per-app.
Have a look at the standard Fiori applications. For example, in Create Sales Order, there is a BADI provided to implement the relation you are looking for (but for an employee to a customer). In the standard setup, the partner functions of the customer master is used to map what customers are visible to an employee.
Most likely, you have a similar setup already in place if your customers actually have user accounts in your system. If could be as a parameter of the user or as a (custom?) partner role.
http://help.sap.com/saphelp_fiorierpx1_100/helpdata/en/6d/135652f9c21457e10000000a445394/content.htm

Certain invoices missing from the "All Invoices" API response

We use the Intuit API V2 to import Invoices from QuickBooks Desktop.
At one point we imported a few invoices that no longer show up in the list of "all invoices".
But if we request the invoices "by id" (one at a time) we do get them. They still have an open balance > 0.
Is there a reason why these invoices don't show up in the "all invoices" list? We did request all the pages.
Something that we noticed is that the problematic invoices all have Lines with SalesTaxCodeId 2 and seem to be "Tax returns".
Florin,
I have answered this question many times on Stackoverflow. You need to review the Sync Activity and Sync Status for any error the object may have encountered while syncing from Intuit to the customer's desktop QuickBooks file.
Objects that encounter an error are flagged and no longer appear in a query unless you set a filter to retrieve errored objects.
Lastly, you should always post your xml requests one for the query all and one for the individual.
For your reference:
http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncActivity
http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncStatus
http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0100_Calling_Data_Services/0015_Retrieving_Objects#Objects_in_Error_State

Setting IDs for JournalEntry or Invoice

I am trying to insert an invoice, credit memo, and invoice using IPP.Net. How do I know what the AccountID, ClassID, or EntityID is? When I used the Web Connector to write a previous interface, I was able to specify these things by FullName. Do I need to do some type of query to get all of the IDs for future use? If I do that, will the IDs ever change through any processes, such as re-indexing, or is the ID permanent?
If you're integrating with QuickBooks Online:
Yes, the IPP APIs for QuickBooks Online only accept Id values. You will have to query for the objects so that you can get their Id values to use them in future invoice/credit memo add requests.
If you're integrating with QuickBooks for Windows:
The IPP APIs for QuickBooks desktop for Windows can accept either Name values, or Id values. So you could either query to get the Id values, or just use the Names like you do in the SDK.
A few things worth noting:
The next version of data services Intuit is releasing (v3) will likely be released summer/fall 2013. v3 data services will only accept Id values like QuickBooks Online does in v2. So, if you want to plan ahead for the future, start querying. :-)
Regarding this:
If I do that, will the IDs ever change through any processes, such as re-indexing, or is the ID permanent?
The Id values are permanent - they should never change. The one exception to this is if something gets really fubar'd on Intuit's end and they reset someone's Sync Manager to force QuickBooks to sync to a new online realm. But this generally shouldn't happen in production.
I tried a few things, and I seem to have found the answer. The Id property does not bind on its own through Autogenerate of the gridview. That seems to be because it is a class and not a simple property. You have to specifically bind Id.value.