CRM 2011 Merging records using dialog - dialog

Morning guys. I will try to be as short as possible.
We are using CRM 2011 on premises. Currently the way data flow works is that we have two systems (system X and System Y). System X have all customer information regarding purchase and System Y have all the information regarding customer's subscription choice. (news letter etc)
We bring these two database together and merge it in to one and then using thirdparty service, push it in to the CRM. (we process these data that's de-dups rows, checks for data quality etc)
PROBLEM start when the third type of data gets entered in by customer service. This guys uses Outlook to push data in to CRM (this are the only data that goes directly in to CRM)
This last method creates lots of duplicates and makes it imposible to use this data for better customer service and reporting.
Few important info: over 99% of data (in form of cases) entered in to CRM by customer service are of customers who already exist in CRM (These are the data that came from System X and System Y). The existing data have all the details (email, postal address etc..) but duplicate data that is entered by Customer service only have basic info like Firstname, Lastname and Email address.
what is the best solution to 1. merge these datas? and 2. Avoid duplicates when entered by customer services? I tried using dialog but it's asking end user (in customer service) to manually pick details they want to keep from each row. Some time these rows are more then 2-3.
I am sorry for making it so long but this issue seems to not going away. I am not looking for full on solution from you guys but any tips, link or if you have tried some thing like this before.
Many thanks for your time.

Have you looked at duplicate detection rules?
E.g. CRM Duplicate Detection Part 1: Configure Settings and Create Rules

Related

Preventing overwriting of specific worksheet cell through the MS Graph API

I'm building a device reservation system, and was instructed to do so via Microsoft Sharepoint (to save on server hassle / cost). As such, I plan to create a daemon consuming the MS Graph API to programmatically update some Excel workbook, which will contain individual reservations (simplified example below):
Person
Device
Alice
1
Bob
2
3
However, I'm not sure how I'll address data races, since SharePoint isn't intended to work as a classic database. To illustrate this point:
Both Charlie and Eve read the workbook 'database', and sees that device 3 is available for reservation.
Charlie clicks the 'reserve' button, and his name goes to cell A3.
According to Eve, device 3 is still not reserved. She clicks the 'reserve' button.
Charlie's name gets overwritten.
I'm trying to avoid point #4 from happening, while still sticking to the desired remote Excel / Graph API combination. However, I'm struggling to come up with a solution given what I've read up on in the documentation. My thoughts have been:
Check out and check in the 'database' drive file. However, this introduces unnecessary, potentially long wait times for the 100+ other people who may be reserving the devices.
Protect / unprotect the workbook. Yet there's another relatively large drawback — as far as I understand from the documentation, the Graph API only supports protecting entire sheets, so this would require the dynamic creation / deletion of perhaps dozens of workbook worksheets, and lead to a rather complex 'database' structure.
Are there any other viable methods to dealing with potential user data writing races, without locking all the data? Or maybe some Graph API route that I'm overlooking?

Is there any harm in Converting all Customers to Vendors automatically?

I understand that Acumatica treats Customers and Vendors differently, and if you require a customer to also be a Vendor (which is often the case for us) and vice a versa, then you have convert the the Customer to a Vendor (or Vendor to a Customer). We often use the convert to vendor code on git (https://github.com/Acumatica/Acumatica-ExtendToCustomerVendorDuringImport). But my question is, is there any harm or reason not to just convert all vendors to customers and vice a versa to save our users the headache of doing this for each one later on?
There's a general answer to those types of questions. If the operation can be done in the UI by a user then it's assumed there's no harm in doing so. When an operation can't be done in UI due to a validation error it's assumed that making that change would corrupt the data.
Once the operation is confirmed to be working in the UI you can work on an automation script. These can be done with a Customization Plugin that runs when the customization project is published.
You should always do the operation using the PXGraph classes of Acumatica. For example, if you need to confirm shipments in a script you create the SOShipmentEntry graph, set the current document of the graph and invoke the confirm shipment action.
Regarding the GitHub project, I don't think it's officially maintained so you'll need to test it. One possible issue you might encounter with conversion is that you can't re-convert the vendor back to a customer once he has started making sales transactions.

Leave Management System in SharePoint 2013

I am developing Leave Management System in SharePoint 2013. Employees can apply for leaves and Manager can either approve or reject it.
I have accomplished this by creating a new list - "Leaves" and starting a workflow when a new item gets added. Workflow sends an email to Manager and creates a task item for him to be able to approve or reject it.
However, I would like to know if this approach is preferable in real time scenario. Suppose for organization of 500 employees, can a single list hold so many records for all employees. What are possible ways here to utilize the features in SharePoint and also create a scalable application.
Also, I am also planning to develop a new Add-in in SharePoint 2013 since for applying new leave, we need to display additional information such as available leaves and do some custom validations which are not provided by default SharePoint list. I will be adding the new item to the SharePoint list from the custom developed page so that the workflow still is intact and I am still utilizing out-of-box SharePoint features. Is this the way to go for enterprise level application or there are any other alternatives. Please suggest.
SharePoint Lists are capable of holding that much data. I don't see a problem if you use a single list to hold leave request of 500 employees.
Assume a worst case scenario that all of the 500 employee apply 25 leaves individually in a year, then the item count would be (500*25= 12500) which is not bad.
You will need to take care of the List Threshold error, because data is greater than 5000. For this you can create views which always bring out results less than 5000.
Now lets say you have plan for 5 years, so each year you will add 12500 items which at the end of 5 years will be 12500*5 = 62500 items
Here you can think of 2 options
You can create a list for each year, i.e. Leaves2016, Leaves2017 etc.
In a single list create folders of year, and inside them add all leave datas.
Note: The only major thing you need to take care of List view threshold problem. Which can be tackled with intelligently designing
views
For your second question.
I agree that the OOB SharePoint List form will not cater your requirements. So creating a custom page an add in or something else is a way to go. As far as your data is getting inserted into a list and eventually activating a workflow there is no harm in it.

Remote Access To Excel-database - Excel

In my company we have all products in an Excel-database. When a customer (shops) wants to place an order, they fax a form with item No etc. The order is entered through a VBA form, returning info about "in stock" etc, and the order is subtracted from the stock and placed in worksheet.
Now I would like to know, if its possible - without too much fuss, to do this from the www, so a customer can access the database and see if the item is in stock (which is not the hard part) - AND place the order so the database is updated in our local workbook.
I'm not asking for actual code, but ideas to a general approach.
Is it possible to run VBA forms from a remote computer?
Will XML, ASP etc be the answer?
Other ideas?
I'll appreciate any help.
This is all fairly easy to do if you have a proper database, there are all kinds of reasons not to use Excel.
Your best approach would likely be to build a web system around a database and move all application logic there.
But in your specific case it might be easier to build it around Sharepoint.

Dynamics CRM 2011: custom entity fields that calculate something

I need certain custom entity fields to calculate and display values based on operations on the data in the system.
For example an a booking system implementation with contacts and custom entity: tickets. There is a one-many relationship between contact and tickets.I would like to create a field that calculates and displays in the contact form:
frequent flyers: more than 10 tickets bought.
a field that displays yes or no based on whether a first class ticket has ever been purchased. Ticket ref would start with say, FCxxx
If this isn't possible perhaps someone could suggest an alt method for displaying this info?
This is possible and you have some ways to do that: Workflow or Plug-in.
If you make a lot of calculations i think the best way is doing a plug-in. You can register in post create event of tickets entity and there you can make all this calculations and update the custom fields of contact entity.
You can check some tutorials about developing a plug-in:
http://mscrmshop.blogspot.pt/2010/10/crm-2011-plugin-tutorial.html
http://msdn.microsoft.com/en-us/library/gg695782.aspx
http://crmconsultancy.wordpress.com/2010/10/25/plugins-in-crm-2011/
Specific information about registering a plug-in:
http://msdn.microsoft.com/en-us/library/hh237515.aspx
In SDK you can find more examples.
As far I'm aware, it's not possible to achieve without coding. So, if you're looking for a way to customize it by mousing, you might be just out of luck.
If you wish to display that information upon retrieval of the a customer, it's probably fastest to get it using JavaScript. You can add a custom script to onload event. However, that means that you'll have to write JavaScript so if you're not into coding you'll have problems.
If you do know how to code, perhaps creating a plugin with C# is the most preferred way (that's what I'd do at least). The advantage of that lies in extensibility, should you realize that you wish to perform more operations.
Also, if you wish to store the computed values, you'll have to go with a plugin. Otherwise, only GUI operations will perform the computations. If a program will enter/retrieve data in the background, you can't rely that the values will be computed, unless you listen to the messages of Retrieve, Create etc.

Resources