QBXML - Query Customer ID - quickbooks

I am working on a qbxml application with PHP, and looking for some advice. The application will be pulling information from a ecommerce system, and allowing a sync over to quickbooks. I need to be able to query quickbooks for an existing customer, and then either create an invoice for that customer or create a new customer.
I have the process down for creating a new customer, I'm just trying to figure out what the best way is to query QuickBooks for existing customers and retrieve back that customer ID during the web connector update process.
So I have a couple questions:
1) From what i've read, there is no way to query on email like quickbooks online, but the only via the name. Is that correct?
2) Is the correct approach for the first qbxml request to query the customer, and then based on what is found, send another request back as part of that response? Does that type of chaining work correctly?
Thanks in advance for any assistance!

1) From what i've read, there is no way to query on email like quickbooks online, but the only via the name. Is that correct?
Yes, that's correct.
2) Is the correct approach for the first qbxml request to query the customer, and then based on what is found, send another request back as part of that response? Does that type of chaining work correctly?
Yes, that works.
Another potential option - on every Web Connector connection, grab all customers that have changed since the last sync. Cache those in your web app.
Check the cached data for the email address.

Related

OData in Datafactory

I have a task toget some data from an external supplier.
They have a Rest OData API. I have to connect using a subscription-key(APIKey).
When creating the OData LService, I add an Auth Header: "subscription-key" and in the Value field, I enter my key. After saving, I create a new dataset, and the OData LinkedService, provides me with the remote tables. I can choose the table I want and after that I create a pipeline to copy data from that table to my Azure SQL server.
This works fantastic :-)
However, after closing my browser and re-open it, the subscription key that I have entered earlier on the linked service, is now replaced with stars as it is a securestring. When I now run my pipeline, it will think that my key is the ten stars that have replaced my real key.
What am I doing wrong here ?
Also I would prefer to get my value from the KeyVault, but it seems that this is not possible on ODat connections....
Hope someone is able to provide some insight here :-)
BR Tom
From my testing I did not get any error on re-running. However coming to dynamic keys - I was not able to achieve it using the ODATA linked service.
Alternatively, if you can hit the ODATA endpoint with REST / HTTP Connector
You could - have a Web Activity to get the keys from the Key Vault and Set in the Variable.
WEB Activity URL : https://<your-keyvalut-name>.vault.azure.net/secrets/<your-secret-name>;
You could access the output of the web Activity using : #activity('Web1').output.value & Store in a variable.
You can reference this variable as the SUBSCRIPTION KEY for the subsequent steps in the REST/HTTP dataset.
You could pass it along the additional headers

Returning employeeId of a user through MS Graph API

I've been trying to return the employeeId of a user through the Microsoft Graph API but so far haven't had much luck.
I'm assuming this is probably because it doesn't exist in the metadata for the user in the Graph API so makes sense.
However, the property is populated in Azure AD. If I use the AZ command prompt to query the user I can see the property. Likewise, if I query the old Active Directory Graph API endpoint I can even see it there.
For example, querying
https://graph.windows.net/{tennant}/users/{upn}?api-version=1.6 directly I receive the employeeId as part of the response (using the ActiveDirectoryClient however seems to ignore this property and doesn't store it anywhere).
Is there any reason for this? Wouldn't it make sense to have it returned as an additional property? I've also looked into extensions, but as it's not an extension isn't returned there.
Any help would be appreciated. I can get the information I need by querying the old endpoint directly, but this seems like a complete backwards step and involves multiple queries to get the information I need - including having to use multiple end points (one of which I assume will be deprecated and removed soon).
EmployeeId is currently a beta feature and is only available in the beta endpoint of the Graph API.
So if you want to access the beta endpoint you just have to change the version to beta in your url. For example:
https://graph.microsoft.com/beta/me/
https://graph.microsoft.com/beta/users/{id|upn}/
https://graph.windows.net/{tennant}/users/{id|upn}?api-version=beta
For more information about the user-object in the beta endpoint see: https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/resources/user

Is it possible to create a QBXML VendorMod request for Vendors with a matching Custom Field (DataExt) value?

I'm attempting to update QuickBooks Vendor records using QBXML and Web Connector.
From the system in which I'm generating the QBXML requests, I don't have ready access to the QuickBooks Vendor ListID, but I do have access to a unique identifier that we store in a custom field (DataExt) in the QuickBooks Vendor record. Is it possible to create a VendorMod request that will update the Vendor record(s) that have this unique value in a custom field?
I've scoured the OSR and the SDK guide to no avail.
And if the answer is no, then what's the best way to proceed? Start with a VendorQuery request, sort through the Vendors in the response, then create a VendorMod request using the ListID of the matching Vendor?
Is it possible to create a VendorMod request that will update the Vendor record(s) that have this unique value in a custom field?
No, this is not possible.
And if the answer is no, then what's the best way to proceed?
Since QuickBooks won't let you query based on the custom field value, your best bet is probably to:
Change your application so you can store the ListID value
Do a one-time migration process that pulls all the Vendors from
QuickBooks, and stores their ListIDs
Move forward using the ListID
values to do the VendorMod requests

how to send and accept friend request using Signal R

I managed to create a chat application using SignalR and Asp.NET.
My next objective is to send and accept friend request.
Could anyone suggest some good sites/forums where I can get help regarding this.
Thanks
You need to think about this from a system design standpoint prior to approaching a solution directly with ASP.NET and SignalR. Some of the things you need to consider and decide on are:
How will one user be associated to another user in order to create a friendship? (ex: new table to group two users)
How should friend requests be made?
How will friend request denials work?
Once you start brainstorming on how you would want this all to work, you can then build it out on the server side prior to ever getting into SignalR. Assure all areas of functionality work appropriately and then you can expose these method calls to your clients front-end through SignalR.
The key is to break down each part of the process into components and working on it one step at a time.
to send friend request to specific user use hub method
Clients.Client(toConnectTo).sendRequest(currentname+" SentYouFriendRequest");
and call it on client
chat.client.sendRequest = function (msg) {
$('#sentmsg').append('<li>'+msg+'</li>');
};

How Can I close the service for a specific user in Exchange Server 2007

I am new to Exhange Server2007 programming. My scenario is to read mails from more than one user account at a time. Now I am reading information of one user but not for the second user at same time. Can an anybody help me to get this. I am assuming that how I can close the service for a specific user and continue for the other user with the same service.
It's a deadline situation. Immediate response can be greately helped.
Thanks in advance.
Assuming you are using the Exchange Web Services or EWS Managed API, you don't need to close anything.
Given the appropiate permissions (this is what you really need), just open the other users mailbox by specifying the users primary email address in the Bind operation:
var folder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, new Mailbox("someone#company.local")));

Resources