Tag Archives: Salesforce

New RIO Inventory 3.5

We are pleased to announce our newest release of RIO Inventory version 3.5 to the Appexchange. Our new features include:

  • Lightning Styled Pages (Compatible with Lightning Experience and Salesforce1).
  • The Opportunity Tracking Number field now fits 18 characters
  • Assignment Page Lines are now sorted by Batch and Serial Numbers.

Check out this Page  for more details on RIO Inventory and our new documentation site. If you are new to RIO Inventory you can always install the app  and experience the new lightning styled pages.

Want new features that you think will benefit RIO Inventory? Please tell us your suggestions at support@wdcigroup.net.

Rostering and Calendar Functions in Salesforce with RIO Plan

RIO_Plan_icon_280

Streamline your business with a calendar-based planning tool providing:
– Staff Scheduling (Rostering) functions
– Resource Booking (Rooms, Equipment)
– Activity management and Time Tracking
– Multi-location capabilities
– Mobile interface

Staff Management and Rostering including:
– Resources grouped by type
– Plans (Rosters) with specific roles
– Allocations (Shifts) by role that can be then linked to individual resources
– Viewable in mobile friendly calendar

Alerting for resource conflicts:
– Alerting for double booked resources
– Alerting for incorrect resource type allocation
– Alerts in reports/dashboards or real time in calendar view

Mobile interface and extensive user support:
– Mobile / Lightning-enabled
– Community Users supported

Check out RIO Plan now

Wedid: Using Salesforce in a Residential Care Environment

Challenges

The main business requirement for the aged care facility was streamlining all the information to a single point of data entry as well as providing transparent updates to the residents.  Optimal care of the resident is enhanced when all data is stored in a single system.

Data such as medical records, progressive monitoring and the sharing of social updates as well as picture sharing among family members accessible via mobile.

Ability to grow as the facility increased the number of residents. The ability to provide a secure data store with access restricted based on users and information type.

Solution:

  1. Gather all data and understand the origin and process involved
  2. Design the data model and to ensure a single point of data but ensure that security will not be compromised
  3. Leverage Salesforce Customer Community to provide updates on the residents to family members

Related Objects Lead, Account (Person), Contact, Other Custom Objects
Components Data modelling, Customer Community, Visualforce Page, Apex Trigger
Complexity Medium

Wedid: Campaign Response Tracking

Challenges

Faced with some restrictions using Enterprise Edition this client requested multiple automatons in regards to tracking their clientele responses for running campaigns targeting existing clients response on prospective products being added to the Product List (assessing product validity) using the campaign object.

Solution:

By creating a custom object and reusing the same process builder where applicable around the campaign object, the limitations within Enterprise edition were able to be maintained, from creating child records to assigning tasks to the different account owners, campaign member status update, updating and closing all tasks associated once the information had been collected.

Related Objects Campaign, Campaign Members, Custom Collection Object
Components Process Builder, Enterprise Limitations
Complexity Medium

The New RIO Inventory 3.2

Hello folks, thanks for your support with RIO Inventory all these years. We are pleased to present to you our latest release, version 3.2. You asked and we delivered, this release now has the following important features:

  • Inventory batching
  • Serialised inventory
  • Picking slips
  • Ability to transfer inventory between warehouses

These features allow you to manage your inventory better in Salesforce, especially when it comes to multiple warehouses inventory management. Feel free to take a look at this page for more details on how this can help with your daily inventory management.

If you are new, don’t worry. You can always install the app into your sandbox or developer instance via AppExchange and feel the zen.

For more other goodies in 3.2, please visit our release notes.  Want new features?  Please let us know, you can contact us at support@wdcigroup.net.

Wedid:BCI Data Modelling in Salesforce

Challenges

Data intelligence and leads coming from BCI are the core sales opportunity in the business of our chemical construction site service customer.

These leads are externally provisioned through CSV files and it needs to be tracked in Salesforce so that it can blend into other business data. The convergence of these data will help the customer form a powerful source of report in the forecast and finance area.

The current challenge is these data are residing out of Salesforce system.

Solution:

  1. Review through the files given by BCI and review the data that need to be in Salesforce
  2. Identified the core objects – Project, Firm, Contact, Contact Role
  3. Work through a model to connect these objects as part of Standard/Custom object and link with Opportunity to track any finance information
Related Objects Account, Contact, Project (CO), Opportunity, Opportunity Contact Role
Components Data modelling
Complexity Low

Salesforce: Check Null/Empty Value of A Field

In Salesforce, it is very common that we build formula field, validation rule or workflow rules to act on the data of a field and sometimes we would like to validate on an empty value. In Salesforce formula editor, there are two functions: ISBLANK() and ISNULL(). The question here is, which is the correct one that we should use?

ISNULL()

This is an old function that works with most of the field types except Text, Text Area and Long Text. (reference)

ISBLANK()

This is a new function that Salesforce introduce to support the empty field validation on Text fields. It also works with other field types. According to Salesforce documentation, it is recommended to use this function instead. (reference)

Please note that if you are referencing a formula field with the option “Treat blank fields as zeroes”, the formula field will give value zero and won’t be considered as null.

Above is how you can validate an empty field in formula editor. How can we achieve the same in Apex?

Text Fields

There are a few options to validate empty text fields in Apex:

Use String.isBlank() method. This will return true if the text field is empty.
Compare the text field to an empty string, e.g, Account.Name == ”. You shouldn’t use NULL as text field in Salesforce is never considered NULL. Note that String variable can still be considered NULL.

Checkbox Fields

This can be compared by using TRUE or FALSE. This is because an unchecked checkbox field is considered as FALSE instead of NULL.

Other Fields

You should compare the field value to a NULL.

CASE STUDY: Sales and Asset Tracking

Waringa Distribution (http://www.agrispread.com.au/ and http://www.elmersmfg.com)    imports, sells and distributes the Agri-Spread range of Spreaders and Elmer’s range of Chaser Bins and Transfer Tracks.

1600 Bushel HaulMaster Agrispreader256

Challenges

There was a requirement to implement a solution that met the following criteria:

  1. Ability to retire the excel based and access based solution that was in place.
  2. A cloud solution accessible from anywhere.
  3. Ability to track Agri Spreaders and Chaser Bins that are sold by Distributors or sold directly – in multiple countries.
  4. Ability to track machine level detail, including location and warranty details.

Solution

Waringa Distribution chose to implement Salesforce.  WDCi was engaged to customise Salesforce to store the above information and provide reporting information on the data in Salesforce.

The recent upgrade to licensing for Professional Edition also allowed for the ability to use record types to segregate sales for AgriSpreaders and Chaser Bins.

The components of the solution were:

  • Salesforce Professional Edition.
  • Customisations to store detailed Machine and Distributor information.
  • The build of a configuration tool to configure the spreader to customer requirements.
  • Tracking of orders from manufacturer to consumer.
  • Asset information, including the tracking of  warranty status for the asset.  
  • Case management to track warranty issues.

Lyndon Crudeli, General Manager of Waringa Distribution noted that “Implementing Salesforce has enabled Waringa Distribution to continue to expand our business and provide a platform that will enable continuous growth to happen.”

Salesforce: Visualforce CommandButton to Bypass Validation/Required Fields

In Visualforce apex:CommandButton component, there is an attribute called “immediate” that allows us to invoke the controller action bypassing the validation rules associated with the fields (especially those that mark with required=”true”) in a visualforce page. I have been using this attribute alongside with the cancel button which does not required any input from users. Until recently, I noticed that the attribute no longer working as expected in one of my visualforce page development. For example:

<apex:page standardController="Account" extensions="AccountExt" standardStylesheets="true" applyBodyTag="false" docType="html-5.0" title="My Wizard">
	<apex:form id="theform" >
		<apex:pageBlockButtons >
			<apex:commandButton value="Cancel" action="{!cancel}" immediate="true"/>
			<apex:commandButton value="Search" action="{!doSearch}" />
		</apex:pageBlockButtons >
		
		<apex:pageBlockSection title="Test">
			<apex:inputfield value="{!account.Type__c}" required="true"/>
		</apex:pageBlockSection>
	</apex:form>
</apex:page>

After some research, I realised this is actually related to the behavior in HTML 5 (doctType=”html-5.0″) where it will automatically validate all the required fields that I have in a form. So, how can we overcome this?

Option 1 (Form level)

You can set an HTML 5 attribute called html-novalidate=”novalidate” at the form level. However, this will disable the validation for all buttons. You should only use this if you have your own validation logic implementation in the controller/extension class.

<apex:form id="theform" html-novalidate="novalidate" >

Option 2 (Button level)

You can have the similar attribute next to the command button to disable the validation on the button specifically.

<apex:commandButton value="Cancel" action="{!cancel}" immediate="true" html-formnovalidate="formnovalidate" />

This is a better option to go for as we do not need to worry about implementing the additional logic to validate the user input.

Triggering Salesforce Workflow/Process Builder when record is deleted

As of to date, Salesforce does not provide an object’s isDeleted flag as a filter criteria through workflow rule or process builder. This may lead to the option of utilising Apex Triggers if a requirement is to perform certain action when a record is deleted.

However, triggering a process builder/workflow is still possible when a record is deleted. Please consider the following criteria prior to designing your workflow or process builder in this case:-

  • the target object (to update field or to do something about it) is a parent to the deleted record
  • the target object and the deleted record is in master-detail relationship
  • the target object has capacity for additional roll-up summary field

Take Account-Opportunity for example. You may want to perform an action (i.e. update a field, send email alert, etc.) on the account where when one of its opportunity is deleted. As an alternative to utilise Apex Triggers, following are the steps that you may consider as a workaround to utilise Salesforce workflow/process builder instead:

  1. Create a roll-up summary field in account that counts the total opportunities which the account belongs to. In this example, we call it “Total_Opportunities__c”
  2. Define a workflow or process builder and utilise the evaluation criteria of “created, and every time it’s edited”
  3. Use the rule criteria of “Formula evaluates to true”
  4. Compile a formula which compares if the current “Total_Opportunities__c” is lower than the priorvalue. For example ${the_Roll_Up_Summary_Field} < PRIORVALUE(${the_Roll_Up_Summary_Field})
  5. Followed by the intended actions at the parent level