Cannot associate records via subgrid without create privileges - dynamics-crm-2013

The documentation for the Dynamics security model (msdn.microsoft.com/.../gg334673.aspx & msdn.microsoft.com/.../gg328567.aspx) states that in order to relate two records together a user needs Append To and Read privileges on the parent Entity and Append and Read permission on the child Entity.
In practice it seems like a Dynamics CRM 2013 subgrid will not let a user relate records unless they also have at least user level Create privileges on the child Entity. Using the Dynamics SDK to relate two records together works as expected, however when in the Dynamics UI, clicking on the '+' button to begin in a subgrid to relate two records together does nothing unless the user has Create privileges.
Curiously I've also noticed that while clicking on the '+' button does nothing, if I refresh the page afterwards I always get one of those "Dynamics has encountered an error" popups, perhaps this is a bug with Dynamics?
At any rate this is a pretty breaking problem for us as we have plenty of “reference data” Entities in an N:N relationship that users should be able to relate existing records with, but not create new records.
Is anyone else aware of this problem? Is there some kind of workaround or setting that I'm missing?
(Link to issue on Dynamics CRM forums: https://community.dynamics.com/crm/f/117/t/119729.aspx)

When you click on the "+" on the sub-grid your sub-grid may create a new record or may give you an option to associate a record, depending on how your child entity is configured. For completeness, I'll detail how to either get the option to associate or to create a new record.
To Give an Option to Associate
On the child (e.g. Contact) The look-up to the parent record (e.g Account) cannot be required. If the look-up is required CRM will automatically create a new form (Contact in this example) and pop it into a new tab/window. If this is your issue and you need the look-up to the parent to be required, you may want to make the look-up to the parent non-required and then require the field using on-load javascript.
To Create New Record & Pop into new Tab / Window
Require the look-up to the parent on the child account, or;
Hide the "Add Existing" button on the child record using your ribbon editor of choice

I raised this issue with Microsoft and they have formally recognized it as a bug. The fix is due to be released in Update Rollup 2.

It's a known bug and already fixed in update rollup 2

Related

How to remove business process flow

Accordint to this blog one can hide the business process flows. I'm trying to follow it but there's no flows defined for my opportunity (according to the list).
I'd like to "delete" the flow for Opportunity entity (or at least affect it somehow to display different steps/different number of steps). The reason is that we'll be migrating from an older version and they've got a picklist with percentages of the deal being done. Not sure how to map it onto the Opportunity in 2013 and even if, I'm not sure the client'd like it.
Is it at all possible to remove business process flow from Opportunity in CRM 2013?
When I do follow the guide and fool around with all flows, I get to remove the one for Opportunity but then I'm shown the error message as in the image below. So I'm assuming that it's not the correct approach. Or did the blogger referred to in the first paragraph cheat and took his screenshot after closing the warning? :)
The blogger in the blog is using the earlier version of Dynamics CRM than yours. Newer versions of Dynamics CRM will show the above warning.
Beside one way in the blog, there are a couple of way to show/hide Business Process Flow:
use Javascript to set the display attribute of process bar element:
function hideBusinessProcessFlow()
{
document.getElementById('header_process_d').style.display = "none";
}
function showBusinessProcessFlow()
{
document.getElementById('header_process_d').style.display = "block";
}
Reference: https://community.dynamics.com/crm/b/misscrm360exploration/archive/2014/07/24/show-and-hide-business-process-flow-in-crm-2011-2013.aspx
Please note that this is unsupported customization.
Update processid and stageid fields of the record. Use update these fields with Javascript or writing a plugin/workflow to do this.
Have a look at this solution: http://code.msdn.microsoft.com/Change-Dynamics-CRM-2013-a6beb85e
In your case, you just need to update processid and stageid fields to null, then the annoying warning will disappear.
Good luck!
Are you looking at the complete list of Processes under Customisations? If you're looking at an unmanaged solution it won't appear unless it's been added to that solution. It's in there OOB and called Opportunity Sales Process, I just deactivated it on a clean org. No need to delete it, just deactivate it or edit as required.
There are two things that can be done for any business process flow in MS CRM:
Deactivate BPF
Delete BPF
In order to remove Business Process Flow (BPF) from existing records, it is not enough to just deactivate BPF. Even when we deactivate BPF, records that are associated with it will still show BPF with warning message that it is deactivated.
It is true, if you delete BPF from Processes in MS Dynamics CRM, they will be removed (not showed) from the records that were associated with that BPF. However, what if you do not want to delete default BPFs, like those related to sales process on system entities (Leads, Opportunities and Accounts)? What if you want to hide these default system BPF from default system entity (i.e. Opportunity)?
In this case you need to write plugin/workflow activity to remove association of the entity record from BPF.
See my GitHub example how to do this
This MS CRM community post is also useful:
Remove business Process Flow from Account

What's the optimal way to filter a set of entities in a lookup?

I've got a lookup field on Account entity called something. Each such Something has a reference to an account. When my users click the magnifying glass, I want them to see a list of available Something records but filtered to view only such instances that link to the currently treated entity.
Also, I'll need to design such a filtration for Contact instances to only show the Something records that are related to the account that the currently regarded contact is a member of.
I can't decide between a plugin on Retrieve and some JS in OnLoad registering a fetchXML. All such operations will be done client-side. The solution needs only to work in CRM13 (and if possible apply some cool functionality in that version).
Suggestions?
JavaScript & FetchXml are your best option here as with a Retrieve plugin you're taking the performance hit of executing on every retrieve regardless of whether the entity is being retrieved for the lookup. A filtered lookup in JS only applies for those scenarios that require a change to the field on Account.
Another other good reason for using a filtered lookup in Js is they are now a supported feature in CRM 2013 as opposed to the "hack" that was required in 2011.
Some more info on addPreSearch and addCustomFilter can be found on MSDN and there's a decent blog post providing examples here.

How to show all mails with no restriction of user?

I am in need of showing "All Mails" that have been transacted in OpenERP 7 with no restrictions.
There seems to be some restrictions done when records are fetched from Database(postgresql).
Is there a way to show all the records available in postgresql directly?
Their are several ways, you can use any of below:
You can create Separate menu without any domain on mail.message object which will show you all the messages.
Also you can create the postgres view report for more statistical information on mail.message object this will be tricky and long but informative in future.
Or Even you can remove the Domain from the existing Email menu action to show all the record without any restriction.
Thank You

dynamics crm contact fullname for custom entities

Im using dynamics CRM 2011.
I took a look at the entity called contact.
This entity has a fullname primary field that is automatically populated.
This field is not visible to the crm user when creating a new contact.
I was wondering how do I achieve the same with custom entities?
Do I use workflow to update the primary key field and hide the field from the crm users?
Thanks
That would be one (and the easiest) way to do it, stick a workflow on the create and update of the relevant fields - though users would have to wait a couple of minutes to see the change.
Other options could be a plugin if you want the field to be updated synchronously, or you could use JavaScript to show the field before the record is saved.
You could use the a AutoNumber Plugin here, there is one on CodePlex (I havent used it myself): http://crm2011autonumber.codeplex.com/

Display custom fields in assignment block (SAP CRM 7.0)

I tried to post this on the SDN forums (SAP forums) with very very very little help...seems like anytime I post an SAP topic no one can help :(. So I decided to post on stackoverflow and can only hope there must be some SAP CRM gurus on here...
Here was the origional link I posted on the SAP Forums, so maybe the little help I did get on the sap forums someone can follow along by clicking the link:
http://forums.sdn.sap.com/thread.jspa?threadID=1802454&start=0&tstart=0
And here is the description:
We are running SAP CRM 7.0. We are using the opportunity module as well as "Create Follow Up" (Sales Order / Quotation) so that you have a one to many relationship (1 opportunity may contain many sales orders). I have 2 custom fields inside the Sales Cycle (Quotation) module "Actual Sales Order Value" and "Current Points".
What I am trying to do is take these 2 custom fields and add them to the assignment block called "Linked Transactions" in the Opportunities module. But when I look at all the available fields for this assignment block these 2 custom fields are nt available.
I do not see any way of adding these 2 fields to this assignment block. The only thing I see is "Create NEw Field". But I do not want to create a new field I just want to reference 2 fields from the Sales Cycle module inside of this assignment block.
Does anyone knowif it is possible to add 2 custom created fields that are i the Sales cycle module to add them to the opportunities assignment block that is called linked transactions ?
Thanks,
Jon
I finally got this. I had to use the GENIL_MODEL_BROWSER to see the relationships between these components. The assignment block was the component BTDOCFLOW so I had to enhance this and the view and the context node.
Then in the folder attributes for this context node i had to add a new attribute (right click add). I used the GENIL_MODEL_BROWSER to start at the BTOrder relationship to get to BTOrderHeader to finally get to BTAdminH. I then referenced these fields and generated getter / setter methods. In the get method I had to change my code a bit to start at BTOrder component.
Reference this link for more information: http://forums.sdn.sap.com/thread.jspa?threadID=1875030&tstart=0