Custom VF Email Template is not recognizing my custom visualforce component as global - email

Hi All and thank you for taking the time to look at my question!
I created a custom vf component to query some information and send an email to a lead. Here is the component tag:
<apex:component access="global" controller="My_Component_Name">
Please note the attribute access="global".
In my VF Email Template I include the component as follows:
<c:My_Component_Name cust_field="{!relatedTo.Custom_Field__c}">
</c:My_Component_Name>
However, when I try to include this component in a VF Email Template, I get the following error:
Error: <messaging:emailTemplate> can only contain components with an access
level of global. <c:my_component_name> is not valid.
I tried waiting, in case there was a time lag, I tried deleting the content and resaving, I even tried cloning the component and including the cloned version. Nothing helps.
Does anyone have any ideas what I can do?
*I changed the names of the components and fields, so please don't comment on possible typos in the names.

Well, this is VERY embarrassing, but just in case someone else makes this mistake I will admit it:
I was working in two different orgs at the same time :( My component with access="global" was in sandbox and the VF template was in Prod.

Related

Adding block feature using swift and parse server

So I'm dealing with app rejection "Guideline 1.2 - Safety - User Generated Content" and one of the features app want me to implement is "- A mechanism for users to block abusive users" Im not sure exactly how to put the code into action but know what i have to do which is
Step 1. Create class in Parse for blocked users, like: "Blocked"
Step 2. Create columns of type [String]: blockedBy & username (user is blocked)
Step 3. Query only users if current user is not in blocked list
Step 4. Add button to send PFObject to block a User
If someone can help i can provide info from my project. It would be much appreciated because I've been struggling with this for weeks.
Check out https://www.raywenderlich.com/98831/parse-tutorial-getting-started-web-backends tutorial. Great help, shows how to setup the local environment, the MongoDB, how to create a class within the local parse environment ran from the terminal, shows how to query, etc. Let me know if you have more specific questions I can help resolve.

realurl prevar language and get parameter

I have a strange problem:
TYPO3 7.6 with realul 2.2.1
I got a page with a form. One field of the form gets prefilled via get-parameter (sysid=xxxxx).
The site is multilanguage: german->0, english->1, mapped via prevars '' and en.
When I call the page via www.domain.tld/form-page/?sysid=xxxxx I can fetch the get parameter and fill the field.
When I call the page via www.domain.tld/en/form-page/?sysid=xxxxx I get a 404. That's weired because www.domain.tld/en/form-page/ works without any problems.
I tried several settings (e.g. exclude sysid from chash generation) but nothing worked.
Any hints what I could do?
One additional note: the getvar links are not generated in TYPO3, the are called via barcodes.
I cannot reproduce your problem on the same versions of T3 and realurl.
And I guess (wild guess), it is not a realurl problem, but a TYPO3-core problem.
Could you try calling the page via:
www.domain.tld/index.php?id=XX&L=1&sysid=xxxxx
Furthermore investigate and tell us your settings of
[FE][pageNotFound_handling] and according (installtool/LocalConfiguration).
Nevermind. Error occured because I didn't adjust the realurl-setting for the domain after moving to live. Therefore automatic configuration took place and that didn't work. With manual conf it works.

IBM Watson Conversation : Intent is not triggering the dialog, all user inputs lead to anything_else

I'm a complete newb in this field, so started with the tutorial in the documentation. This is the page where I'm having problem.
I'm able to create the welcome dialog, and changes in the anything_else dialog are reflecting fine. But when I create a new dialog and set the trigger to the intent, it does not work. I've tried typing in the name, copy pasting it, clicking on (create new condition) and not. Tried different browsers and restarted project too.
There is a dropdown on the text that I type in the bot panel that says choose intent name and gives the list of two intents I've made. When I try clicking on the intent it's supposed to be in, I get this error :
Unable to change the intent. Error: Unique Violation: The value "good morning" already exists
I don't know what I'm doing wrong and googling it gives no result! Comment sections on different websites too seem to be having no problem with it as well.
Any help is appreciated!
Edit : JSON as downloaded from the project menu:
{"name":"Car tutorial","created":"2017-04-30T16:42:55.215Z","intents":[{"intent":"greeting","created":"2017-04-30T17:50:08.575Z","updated":"2017-04-30T17:50:08.575Z","examples":[{"text":"Good afternoon","created":"2017-04-30T17:50:08.575Z","updated":"2017-04-30T17:50:08.575Z"},{"text":"Good evening","created":"2017-04-30T17:50:08.575Z","updated":"2017-04-30T17:50:08.575Z"},{"text":"Good morning","created":"2017-04-30T17:50:08.575Z","updated":"2017-04-30T17:50:08.575Z"},{"text":"Hello","created":"2017-04-30T17:50:08.575Z","updated":"2017-04-30T17:50:08.575Z"},{"text":"Hi","created":"2017-04-30T17:50:08.575Z","updated":"2017-04-30T17:50:08.575Z"}],"description":null},{"intent":"turn_on","created":"2017-04-30T17:49:26.312Z","updated":"2017-04-30T17:49:26.312Z","examples":[{"text":"Air on please","created":"2017-04-30T17:49:26.312Z","updated":"2017-04-30T17:49:26.312Z"},{"text":"I need lights","created":"2017-04-30T17:49:26.312Z","updated":"2017-04-30T17:49:26.312Z"},{"text":"Listen to some music","created":"2017-04-30T17:49:26.312Z","updated":"2017-04-30T17:49:26.312Z"},{"text":"Play some tunes","created":"2017-04-30T17:49:26.312Z","updated":"2017-04-30T17:49:26.312Z"},{"text":"Turn on the headlights","created":"2017-04-30T17:49:26.312Z","updated":"2017-04-30T17:49:26.312Z"}],"description":null}],"updated":"2017-04-30T17:56:05.345Z","entities":[{"entity":"appliance","values":[{"value":"air conditioning","created":"2017-04-30T17:51:41.232Z","updated":"2017-04-30T17:51:41.232Z","metadata":null,"synonyms":["air"]},{"value":"headlights","created":"2017-04-30T17:51:41.232Z","updated":"2017-04-30T17:51:41.232Z","metadata":null,"synonyms":["lights"]},{"value":"music","created":"2017-04-30T17:51:41.232Z","updated":"2017-04-30T17:51:41.232Z","metadata":null,"synonyms":["radio"]}],"created":"2017-04-30T17:51:41.232Z","updated":"2017-04-30T17:51:41.232Z","metadata":null,"description":null},{"entity":"genre","values":[{"value":"classical","created":"2017-04-30T17:52:56.711Z","updated":"2017-04-30T17:52:56.711Z","metadata":null,"synonyms":["symphonic"]},{"value":"rhythm and blues","created":"2017-04-30T17:52:56.711Z","updated":"2017-04-30T17:52:56.711Z","metadata":null,"synonyms":["r&b"]},{"value":"rock","created":"2017-04-30T17:52:56.711Z","updated":"2017-04-30T17:52:56.711Z","metadata":null,"synonyms":["pop"]}],"created":"2017-04-30T17:52:56.711Z","updated":"2017-04-30T17:52:56.711Z","metadata":null,"description":null}],"language":"en","metadata":null,"description":"","dialog_nodes":[{"go_to":null,"output":{"text":{"values":["Hi! What can I do for you?"],"selection_policy":"sequential"}},"parent":null,"context":null,"created":"2017-04-30T17:55:24.851Z","updated":"2017-04-30T17:55:48.868Z","metadata":null,"conditions":"#greeting","description":null,"dialog_node":"node_3_1493574922154","previous_sibling":"node_1_1493574794528"},{"go_to":null,"output":{"text":{"values":["I'm sorry, I don't understand. Please try again."],"selection_policy":"sequential"}},"parent":null,"context":null,"created":"2017-04-30T17:53:39.404Z","updated":"2017-04-30T17:56:05.345Z","metadata":null,"conditions":"anything_else","description":null,"dialog_node":"node_5_1493574962852","previous_sibling":"node_3_1493574922154"},{"go_to":null,"output":{"text":{"values":["Welcome to the car demo!"],"selection_policy":"sequential"}},"parent":null,"context":null,"created":"2017-04-30T17:53:17.084Z","updated":"2017-04-30T17:53:57.004Z","metadata":null,"conditions":"welcome","description":null,"dialog_node":"node_1_1493574794528","previous_sibling":null}],"workspace_id":"2b6d0fdd-c04f-40e0-9310-0bba1ad38cef","counterexamples":[]}
Based on attached JSON, your problem is that Watson conversation is stuck in the training process (if the pink message is showing a long time, that means he stuck).
I cannot explain why it happened. But I know the solution, just use "conversation_start" instead of "welcome" trigger
Most probably, you placed "anything_else" node above your intent node.
Anything_else should be the latest node, because watson is executing it sequentional, once he will find match, it will go into.
Be sure, that you have the same order:

CRM 2016-Plugin Registring New Step

I am very new to MSCRM, so requesting for help. I am using Office365, i.e. MSCRM online organisation.
Here, I have written a plugin which should be fired when, in an Account entity, user uploads his image, the plugin stores the image as an attachment, in notes.
The plugin works fine, when I tested it by writing a console application.
I have registered the plugin and believe it will work fine here too. The only problem is I am unable to register the plugin new step.
The problem is in Filtering Attributes , I am unable to get entityimage attribute, even if i select/check All attributes.
Please suggest how should I proceed.
In this scenario you can write plugin on "Create" message of "Annotation" entity. And create message does not have any filtered attributes.
As you wrote and tested using Console Application, while converting it to plugin make sure that you are checking created note contains data into "FileName" and "DocumentBody" attribute. Along with you can also check whether this note is created against "Account" entity. This two conditions will narrow your scope, limited to notes created against account having some attachment. In plugin execution context you'll get above mentioned attributes.

How do I use the Groups.pm in Request Tracker?

In lib\RT\CustomFieldValues\ there is the groups.pm file which is supposed to be an example of how to get data into a custom field, but how do I actually use that once I have written it? Does anyone have any documentation or a sample of this?
I have finally figured it out, to use the Groups.pm module you need to go to /opt/rt3/etc and edit the RT_SiteConfig.pm and add the line
Set(#CustomFieldValuesSources, "RT::CustomFieldValues::Groups");
Restart Apache and it will be available as a new field source.
I have written a blog post on doing this which also includes details on how to build your own module in case anyone is interested in doing this: AD Lookup Control in Request Tracker