Restrict the views available to users on the case/incident page - plugins

I have a modified CRM 4 application that uses cases as the main enitity. In the application we have a number of teams setup and a number of queues that correspond to each team. I have written a plugin that restricts the queues a user can see depending on whether or not they are a member of the corresponding team (on the retrievemultiple event of queue)
What I would like to know is if it is possible to restrict the views a user has access to when they navigate to the main cases page. I would like to hide the default public view for every user, and for there only to be a set number of views available that correspond to the team that the user belongs to.

Yes, you can register a plugin for the RetrieveMultiple message on the savedquery entity. Then you'll have the QueryExpression used to retrieve the views. Just check that it's for the entity you're trying to filter, then add a few conditions to the query based on what you'd like to hide from the end user (savedquery.name != "View to Hide" or whatever).

Related

How to add notify me functionality on pdp page in demandware

Hello I am new to demandware just worked on few POC's and I need to create a notify button on pdp page if a product is out of stock then on clicking this button a pop up window will open which will ask for email id that should be saved in a custom object and the user should be alerted when the product comes in stock via email that has been saved in custom object
Generally you should rely on a third party system (usually the OMS or some other back-end system) to store and send notifications. The mechanism I've seen used most often to achieve this is to record the product ID, customer email address, and timestamp into a Custom Object. Periodically these Custom Objects should be exported to the third party system via a job and then deleted from the Demandware system. Deletion is important because of system quotas limiting the total number of Custom Objects than can be stored.
The third party system would periodically look at the the products that have been 'subscribed' to, if they have inventory, then email the people who wanted to be notified.
What you can do is create a simple button on PDP upon clicking which, a popup box is shown which contains a form with hidden pid field and a text box for entering user's email, and a submit button to submit this information.
Use jQuery and AJAX to get the form data (pid & email), pass this on to Controller, store the data into custom object, get the response back from the Controller, and show the response back on the popup or in any other way you feel fit.
You'd need to create custom object to store this data, wherein your unique key would be combination of email and pid (encryption recommended).

VSTS: Query based on observing user

I am working on some simple queries for Visual Studio Team Services. Is there a way to change the query result based on which user views it?
I know about the #Me operator but for this specific case I want to look for unassigned work items and filter them by current user.
There are 3 backlogs, and user A,B and C. User A is responsible to assign tasks for backlog1, user B for backlog2. I want to have a single dashboard with a query showing the unassigned task. So if user A opens the dashboard it should show all unassigned tasks for backlog1 and for user B all tasks from backlog2.
Microsoft has recently added the #Me token to all fields related to users.
This enables creating queries for the observing user - and in extension - personalised queries on the dashboard.
Additional info and the related docs can be found here

Using SmartSheet API for "Smarter" email notifications

Currently in SmartSheet, users are able to assign email notifications to users, which are triggered when "Anything Changes" or a pre-specified column changes in a sheet.
While this is useful, there is a common business case where a sheet administrator needs to notify users based on the contents of a cell. For example, if the drop down option in Column A is set to Option A, User A gets notified, or if set to Option B, User B gets notified, etc.
Is this sort of conditional notification logic possible in the SmartSheet API v2.0?
The Smartsheet API doesn't currently support creating or managing alerts (i.e., notifications and reminders). So, to achieve the type of scenario you've described, you'd need to create an integration that:
is able to know when the specified changes occur in the Sheet (ex: Column A is set to Option A for any row)
contains the logic to determine which user(s) to email (ex: if Column A is set to Option A for any row, then email User A)
sends the email(s)
At a high level, you have a couple of different options for accomplishing what I've outlined above:
Poll Smartsheet periodically (ex: hourly) to determine if the Sheet has changed (Get Sheet Version) and if it has changed, evaluate sheet data (Get Sheet); if data meets your criteria for sending email(s), then send email(s).
Alternatively, you could use "Smartsheet Webhooks" such that your integration will be notified when changes occur in the Sheet, then react to such notifications by subsequently using the API to evaluate sheet data (Get Sheet or Get Row); if data meets your criteria for sending email(s), then send email(s). Smartsheet Webhooks are currently in Private Beta -- if you'd like to be considered for the private beta, you can apply by completing this web form.

How do I view the invoices for a specific account through a URL in Microsoft Dynamics CRM?

I'm trying to add an iframe into the form for viewing accounts that will display all the invoices that are connected to that account. I've read this MSDN page about accessing specific forms through a URL, which I can achieve, but copying the URL generated into an iframe I have created on my form produces an error message.
I'd like to know whether what I'm trying to accomplish is possible and if so, how I should format the URL so that only the invoices connected to the user account being opened will be displayed. I'll add more details later if I can.
I think what you actually want to do is add a sub-grid. This is different from an iFrame, an iFrame generally contains web resources, or links to pages on the web. A sub-grid specifically exists to show related records - e.g. to show the left hand relationships links on the body of the form.
I think this article should show you what to do.
Edit - based on Jacks comment:
So Crm can't handle this situation quite so easily with out of the box features. But you do have a couple of options. I dont think any of these are perfect solutions, so I'll let you choose.
A sub-grid effectively just runs some FetchXml, you can change this FetchXml with JavaScript, so you could alter the view to return the records not directly related. Green Bible has an example, though this doesnt look like its supported.
Use a report in an iFrame.
Use a plugin, I havnt done this myself, but a colleague told me it was possible to stick a plugin on the retrieve message and basically change the query or results which is used by the view.
Create a second relationship between the invoice and the account. Then whenever you link an invoice to an account, also populate this new relationship (a workflow will do) with the account, and whenever an invoice linked to a contact is created, populate the new relationship with the parent account of the contact (again a workflow will do). Then just base your sub-grid on this new relationship. This approach isnt the cleanest but its probably the quickest and easiest to implement.

friend-selector : get user ID of the selected friend

I need to create a graphical interface that displays the current user's friends and when you click one of these users need to receive in return the ID of the user so they can perform some processing based on business rule of my application. I wonder if there is any component that offers this functionality (click on a friend and get the id of my friend).
When I say "component" I mean the UI's such as friend-selector: http://developers.facebook.com/docs/reference/fbml/friend-selector/
Thanks
There are NO official plugin to do this. You need to:
Build your own (won't be hard at all)
Try googling for existing ones