May 11

This is the second “Tip and Trick” from my “Dreamforce 2 You” presentation. This tip came out of two questions and comments that I have heard a lot.

  1. How can I see my Accounts without Opportunities?
  2. There are too many fields to select for reports and I don’t want my users seeing all the fields

Both of these items can be fixed by creating a Custom Report Type. Let’s start from the beginning; To create a custom report type you will need to go to Setup>Create>Report Types and then follow the wizard.

  1. To see Accounts without Opportunities you will need to use Accounts as the Primary Object and Opportunities as the “B” Object. On the “B” object, make sure you select the second option – “A” records may or may not have related “B” records. This will allow you to see all accounts regardless if they have an opportunity or not. Something else I like to do with a parent-child outer join (what you just created) is add a Roll-up Summary field to count the number of child records, then use that field as criteria for your report, i.e.: Show me all Accounts where “Count of Opportunities = 0.”

  2. To solve the problem of too many fields, follow the steps above. Instead of using the outer join, recreate the standard report. Use Opportunities and click “Save”. This will take you to the next screen where you will see the section named, “Fields Available for Reports”. Click on the “Edit” button and now you can start taking fields away.


    Make sure your users have access to the new report type and now the user experience is much better! No need to feel overwhelmed or worried with your users creating a report, you are in control of what they see and have access to! Training is much easier, and you get to keep your secrets!
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Apr 4

A couple of weeks ago I was lucky to attend and present at the, “Dreamforce 2 You” Event that was put on by the Orlando and Tampa User Groups. This was the second year of the event and it doubled in every way (tripled in some ways too – from 2 sessions to 6)! There will be more postings to come out of this event, but I wanted to start with some helpful information from my presentation about Reporting.

In my presentation I shared two tips that I always rely on. I will focus on the first one today – using custom formula fields for reports/dashboards. Before you were able to add columns to a table on a dashboard (or now, overcoming the limitations), we needed another way of displaying more information while keeping a dashboard easy to read. Instead of just seeing the Opportunity Name with the Amount field, let’s use a custom formula field to concatenate some other valuable information.

For this example, I was presented with a business case that the VP of a division wanted to see what new opportunities entered the funnel this week. This person wanted to see the 2 amount fields, the account, the owner, and the opportunity name (what the project is). 5 fields to display on a table. I knew I could formula field some of them together and now only display 3 fields. Here is the formula I used to combine three fields into one for a more detailed view – Account Name, Opportunity Name and Opportunity Owner.

Account.Name &" - "& Name &" - "& CreatedBy.FirstName &" "& CreatedBy.LastName

Simple right? Now you can have a dashboard that looks like:

Stop causing yourself a headache with reporting and stop thinking that a formula field is only for calculations. Using a formula field for reporting purposes can solve many problems and make your dashboards more detailed while still being easy to understand.

Finally, a brief, “Thank You!” to @CRMJen, @jhoskins and @jackieforce for all their hard work for putting this event on. I would also like to thank Ingo Fochler from The New York Times Company for teaming up with me for this presentation. I will blog more about this event and my second tip shortly.

*Disclaimer – This was just one example of using a formula field for reporting/dashboard purposes. The field does not have to be on the page layout to work, but make sure you set up the field with the proper field-level security so that it is visible to your users.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Oct 8

First off, let me say what I have told many people already, Watch the DEV401 podcasts on iTunes. They are extremely valuable and a great and simple introduction to Visualforce (at least for non-programmers).

I was meeting with a client the other day and a request was made to have a place where support users can go to see cases in the support queue. Simple right? Click on the Cases tab, change the view to “Support Queue”, click Go. The client understood but wasn’t completely happy – too many clicks.

Light bulb goes off in my head and I say to myself, “I think I can do this using Visualforce!” Except it wasn’t in my head, it was aloud and now the project started.

I gathered my courage and began working. I created the page and opened the page editor. I thought about what I was doing and stared at the “Congratulations” for a couple of minutes. Then I got started.

I updated the page to use the “Case” standard controller. Small Victory! Now I needed to show the queue. At this point I was feeling stressed – how do I write code? How can I display “Show me all cases in the Support Queue”? I knew I could create a view. I then thought, could it be that easy?

The next thing I added was the enhancedList tag. From there I added the required attributes and populated the listid with the view id. Apple-S and done. Now that the page was done, I created a Visualforce tab. Now all the user will have to do is click on the “Support Queue” tab to see all the cases. The client thought is was great and I was relieved.

Here is the point – with the little knowledge that I knew about Visualforce and the helpfulness of the page editor and the Component Reference, I created a Visualforce page. 3 lines of code and I had a solution. I am excited to continue developing more – I play around with a test page and see what the page editor gives me as I type and add spaces and save.

My advice – If I can do it, anyone can do it. Try and you will be impressed as to how far you can go. If you don’t believe me, check out my 3 line solution!

<apex:page standardController="Case" showHeader="true" >
<apex:enhancedList id="View_Name" listId="View_ID" type="Case" height="650"/>
</apex:page>

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 30

Welcome to my monthly “Things I didn’t know that I know now” review. Since I started this blog I have been keeping track of every word, process and acronym that I have ran into and not known. I am hoping that as time goes on, this list will keep getting shorter and shorter. Who am I kidding – the list will keep growing, technology moves so fast and I think that acronyms spawn a minimum of 3 other and new acronyms!

Here is my list for January:

  • SOQLSalesforce Object Query Language – Similar to Structured Query Language (SQL) – used with the Force.com IDE, Apex and Visualforce and it helps to know relationships between objects
  • MVCModel View Controller – In Salesforce the model is the database, or data model, the view would be a page and Visualforce, the controller manages the interactions between the view and the model
  • JDBCJava Database Connectivity -This is the API to the Java language. This means that you can use Java to connect independent databases (it is oriented towards relational databases). This is what would be used to take Salesforce.com and other databases for reporting and integration among other things.
  • AJAXAsynchronous JavaScript and XML – a group of techniques that are used on the client side to develop interactive web applications. This can be used on a Visualforce page because Apex can also handle JavaScript and markup languages.
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 20

I started my C++ book the other day. The book is titled, C++ Programming in Easy Steps. Each page is a lesson and there is sample programs for each lesson. The book is very interesting in the fact that it walks you through what you are doing, how to do it, and the why part comes with writing the code. I did notice myself looking at the inside of the front cover in the beginning but I am starting to memorize what each keyword means. I know that some people won’t like the fact that the book doesn’t spell out what each keyword does, but I like learning by doing and it has been great for me. The more I read of this book, the more excited I am getting for the Java books.

The 4 chapters that I have read have covered:

  1. Introduction – compiling and running programs, creating variables, and a little on arrays
  2. Performing operations – Arithmetic, assigning values, logic, conditions, data types
  3. Making statements – Branching with If, looping for, looping while, functions
  4. Handling strings – Creating string variables, join and compare strings, copy and swap strings, substrings

It is starting to get a lot more complicated and I am spending more time on each new lesson but it is a great feeling once it clicks. I am starting to see how knowing this language will be helpful for my future use with APEX, VF, and even how to better use custom formulas. The syntax and keywords of each language are different but I can start to see a pattern emerge in all of it. I can see myself getting buying a programming theory/architecture book in the near future to confirm my theory and gain more insight into the how and why. I am hoping to finish a couple more chapters by the end of the week and write up my first comprehension review.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 17

In a previous post, (JavaScript != Java)… I had covered what JavaScript can do for a webpage and thanks to a great comment from @apexsutherland I now know the answers to the questions that I posed. Thanks again Alex! This post will be brief and cover the syntax of JavaScript.

I have started the book on C++ and that has greatly helped with my understanding of JavaScript (FYI: I will be posting again about the start of the C++ book and probably more on JavaScript as I learn more). Syntax to remember:

  • Composed of statements that end can end with a ; or a line break
  • Be mindful of capitalization because it is a case-sensitive language
  • Single line comments start with //
  • Multiple line comments start with /* and end with */
  • Read the “=” as “is set to”
  • Example : if (test condition) {value if true; value if false;} Note: does not have to have a value for a false return. Note: This is helpful for making sure web-to lead forms are completely and correctly filled out
  • I need more time before I completely understand arrays – I see how they are set-up and know they are very important (saw them in action at Dreamforce with help from @jhoskins). Any suggestions?

To me, the syntax seemed very similar to C++. Now that I have started to learn about C++ it is greatly helping my comprehension of JavaScript and vice-versa for that matter! I am hoping it will help with arrays!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 12

Welcome to cheat sheet #1. I am writing this to review what I have learned about HTML, XHTML, and CSS. Most of this is syntax that I needed to write down to help me remember!

HTML and XHTML:

  • Elements:
    • Identify parts of HTML using tags
    • Tags come in pairs, start with <tag> and end with </tag>
    • Elements that insert something look like <tag … />
  • Anchor Elements:
    • Inline elements, typically used for links… <a href=”link”>text</a>
    • You can use the target attribute to tell the browser how to display the link; target= “_blank”
  • Attributes:
    • Information about an specific element
    • Located within a tag and specify a value and look like this: attribute=”value” and can be in any order
  • Comments:
    • Start with <!- – and end with – – >
  • Tag examples:
    • <head>, </head>; <body>, </body>; <hn>, </hn>; <p>, </p>;
      <meta (name” “)…(content” “)/>; <title>, </title>

CSS:

  • Separates style from the structure of a webpage and keeps the style of a website consistent
  • They can occur on the page (internal) on in a text file (external) that has to be referenced using the <link rel(relative- resides on your site) or href (not on your site) /> or you can use
    the @import “link”; after the <style> but before any style rule
  • Syntax looks like , selector {property: value;} and you can include more than one property with a value as long as they maintain the structure of property: value;
  • Can create a style class and they are written like this: element.class attribute (if associated with an element) or .class attribute if not
  • Inheritence. Parent elements find their way to child elements – if you say the in the body tag that the text is blue, it will be blue unless it is changed using inline style changes
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 7

You heard it here first – ok, so not first… not even close to first.

JavaScript:

Before I started on this journey my logic would have told me that JavaScript and Java are either: the same language, based off the same language, or an evolution of the same language. And how wrong I would have been! JavaScript is the code that you can use to turn a website from a static page to a dynamic and interactive one. It runs on the browser side and not the server side.

So why is JavaScript called JavaScript if it has nothing to do with Java? Check out what Wikipedia has to say…

Forms:

This is exactly what it sounds like. You have the ability to create a form on a web page. You name the type of data, the format of the data and what to do with the data. You can use JavaScript to interact with the user. For example: Check for form completeness before submitting. Seems straightforward right? It is for the most part, although it does lead me to some questions relating to Salesforce.com.

Looking at a landing page on my company site, I noticed (and knew before) that the oid, campaignid (if you have campaigns), lead source, are all hidden. I also noticed that there is no Salesforce code for each field, like first name. Here are my questions:

  1. When a user hits submit, how does it get to Salesforce?
  2. Am I missing code when I look at the page?
  3. If a field( eg. firstname) doesn’t have a Salesforce ID, how does it match?
  4. Last question: JavaScript can validate a form, such as if all fields are filled in, can it also dictate the format of the data or would you use XHTML?

I will be looking these up and posting the answers once I find them.

HTML, XHTML & CSS for Dummies is finished. Great information and I am surprised how much more I understand web design and coding. I understand the source code to web pages I look at.

I would recommend reading this book if you are starting off, it was easy to understand and a quick read. It does not go into depth by any means, but gives the reader the background to be able to go out on their own to find the resources they need. It lays the ground work for what is to come. I feel like this is a great start…

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 6

CSS gives you control over a web page and the website. Most importantly it allows for consistency throughout a website without defining formatting in HTML or XHTML. Using style rules, I can define how I want my text to look once in CSS and not have to code it each time. You can write a .css file and reference it for every web page on a site. This theme has a .css file that determines how everything I type right now looks – not matter what computer I am on, what time of day it is, or where the text comes from – because of CSS I don’t have to make sure each post looks the same, it is done automatically.

For practice today I changed the color of <div class = “description”> to white on the each page of my blog – the previous color, grey, was hard to see. I found the class in the .css file and changed what I needed. No coding on the page itself and if I change the text, I won’t have to worry about formatting the new text to match. Fantastic!

I also checked the CSS on my company’s website. Now that I know how CSS works, the structure and syntax, and how to write CSS, selectors and declarations, it is easy to see how it was applied to the company website and how to define and maintain our brand in every page.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Jan 5

I am halfway through the HTML book. So far, it has been an easy read and some information I already knew. To me, the nice part about it is the “why” behind the language. To me, knowing the why makes understanding, fixing, and starting from scratch much easier. So far the book covered the basics of HTML and XHTML structure. I will go over some of my key takeaways below:

  1. XHTML and HTML tell the browser how to display the page
  2. Both have 3 types of components – Elements, Attributes, and Entities
  3. DOCTYPE specifies what markup language is used for the page
  4. For XHTML you need to add a namespace
  5. Metadata: Keywords, description/information of the page. Has it’s own element and attributes – name and content
  6. Learned about formatting – headings, blockquote, paragraph, ordered lists, unordered lists, list elements, definition lists, anchor element, alignment, images, links
  7. More specific formatting and styling is saved for the CSS portion

If there is something that I have missed or haven’t said correctly, please feel free to correct me.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)