Determine a customer's account balance via eConnect? - dynamics-gp

I work on a web application that uses eConnect to interface with Dynamics GP. Specifically, when orders are processed through our online store we submit invoices into GP using eConnect.
Some of our customers are on account and their account balance is maintained in GP. We'd like to be able to determine a customer's current account balance at the time of purchase so that we can deny the purchase if it would put their account in the red.
Is there a way, using eConnect, to determine a customer's current account balance? I've searched high and low online without much luck.
Thanks!

Although I cannot recommend a way via eConnect, you can access the customer balance via SQL by querying the RM00103 table.
SELECT CUSTBLNC as CustomerBalance
FROM RM00103
WHERE CUSTNMBR = #CustomerNo

#Is there a way, using eConnect, to determine a customer's current account balance?
No, there is no eConnect to determine customer current balance.

correct customer number field is CUSTNMBR
SELECT CUSTBLNC as CustomerBalance
FROM RM00103
WHERE CUSTNMBR = 'XYZ'

Related

Get Operational contact for a customer via Netsuite REST API

I'm currently building an integration with Netsuite using the Suitetalk REST API. I would like to retrieve the role of each contact associated with a customer to find the Primary and Operational contacts of the customer.
I have tried querying the customer endpoint:
record/v1/customer/ {customerId} /contact/ {contactId} /contactrole
This query returns Role id 14 which is 'Customer Center' for all customer contact records. This is obviously incorrect as this information is returned for contacts tagged with different roles when I check them via the UI.
I have also tried using Suiteql using the query endpoint with the similar results.
Is the query incorrect or should I be using a different endpoint? I have been stuck for days, so I would appreciate any suggestion.
A long comment. Hopefully it helps focus your search for a solution.
Contact Roles is the subrecord for contacts who have login access to a customer's account. The role listed there is the access role. Customer Center is the default access role in a vanilla Netsuite account.
The Records Catalog has contactList as the joining table for contact to company. I don't see any mention of role there that would correspond to contactrole in the records browser so it appears some documenation is missing.
You'll likely have to play with the SuiteQL queries feature to get this.
See Executing SuiteQL Queries Through REST Web Services in the NS help.
with suiteql you can get primary contact with this
{ "q": "select cus.companyname,cus.contact,cont.entityid from customer cus left outer join contact cont on cus.contact=cont.id where cus.id=<<id of ur customer>>"}

How many users can I create in ADB2C?

I recently started studying ADB2C.
Therefore, I would like to know the maximum number of users I can register with ADB2C.
You can create 50M+ users. You do not need to contact Microsoft. AAD B2C tenants auto scale for number of objects.
You are not charged for users. You are charged for unique authentications per month.
Microsoft will happily bill you for as many users as you want past the 50,000 free threshold. https://azure.microsoft.com/en-us/pricing/details/active-directory/external-identities/

How to avoid duplicated registration securely by people who already registered personally?

We got personal registrations with name, birth date, address from the last 30 years and we have an online system. We want to avoid duplicated registration, since the history of these people is very important from business perspective. Currently by online registration giving the name and birth date is enough to the system to find the personally registered account and let the user set the username, phone number, email address and password. From security perspective this is a huge problem, since everybody can take these accounts by knowing the name and the birth date. Is there a better solution, how to make this system safer?
Let's call these accounts "online" and "offline". I have come up with the following system:
The online and offline accounts are different entities, since the online accounts are identified by username and password, while the offline accounts are currently identified by name and birth date.
There is no 1:1 relation between online and offline accounts, since the names can change. So there is 1:n relation between them.
Customers can attach an offline account to an online account by starting an activation process. Without attaching the accounts, they won't get discounts based on the offline history.
If customers want to do anything personally, they'll need an online account hereafter. If they don't have one, they have to ask an administrator to create one. By creating such an online account personally the administrator should ask whether they have any offline account, so the activation process can be started.
In the activation process the customer must give the identifiers of the online account and the identifiers of the offline account to the administrator. We can use extra verification, for example asking about the offline history, etc... The system should verify whether these accounts are really compatible, e.g. by comparing the birth dates.
On long run we have to get rid of offline accounts and merge their history with the online accounts. So we need a deadline e.g. a few years, and after that deadline we should delete every non-merged offline account and simplify the system.

How to get groupwise Email Ids in google?

We are using Google for corporate since last 5 years. There have been many dozens google groups created by different site/business division/local administrators. Now we need to know, for each employee, which all groups he is a part of. Does google provide any API to fetch this details ?
Yes. The Directory API has a function to Retrieve all groups for a domain or the account. Here's a part in the docs that I think is what you are specifically aiming for:
All groups for the account — Use the customer argument with either my_customer or the account's customerId value. As an account administrator, use the string my_customer to represent your account's customerId. If you are a reseller accessing a resold customer's account, use the resold account's customerId. For the customerId value use the account's primary domain name in the Retrieve all users in a domain operation's request. The resulting response has the customerId value.

Salesforce APEX based sharing. Am I in the right direction?

We have a Salesforce app where we have some custom objects and want to expose the various custom object rcords to customers.
We need to ensure that customers can see only the records belonging to their Account. Because of the way these records are setup(owned by various system users at different levels of processing), we cannot use owner based sharing...and cannot use criteria based sharing since its not dynamic(I cant use criteria based sharing to say "Share this record with all customer portal users who belong to the same Account as the record" at runtime).
So I know I have to use Apex based sharing. I have read up on the sharing objects and the sharing table. But how would I approach this.
I can write a trigger which upon inserting will create a share object and get all userids who belong to the customer portal group and whose account equals the account of the record and associate them with the share object of the record.
But I feel this is overkill correct? Lets say there are 5 users from one of our customers and lets say there are 500 records created a day...that means 2500 share objects a day just for 1 customer...for 10 customers this can go upto 25000...and scale in this way...
Am I right here?
Another problem would be if a new person joined that customer team..unless another process updates the sharing on older records, he/she cannot see the older records.
So is there a better/elegant way to do this? I thought of adding a share object to the group...but there is just one group "Customer portal group" and how do I associate the group with the account of the users?
I will appreciate any thoughts about this.
You should take a look at high-volume customer portal users. They're much cheaper relative to standard customer portal users and should meet your needs. Unlike regular users they have a totally different sharing concept. In a nutshell if they own an object they can see, if not they can't. You can then extend this based on whether a contact or account lookup on the object matches the logged in user.
Read up on this documentation:
License Types (scan to High Volume Customer Portal)
Granting High-Volume Portal Users Access to Records (login required)
You can use groups for sharing to avoid creating so many sharing records. You would have one group per account and one sharing record per account. Instead of managing thousands of sharing records you would have to manage hundreds of groups.
I haven't tried this approach with this many groups, but I read some time ago that it should work (someone posted using a LOT of groups for sharing). If you do try this, please tell us if it worked OK.

Resources