Category Archives: Uncategorized

RIO Inventory Solution: Batching your inventory in food production

Using Salesforce and wondering how RIO Inventory can help in the Food Production Industry?  Look no further!

We have created a Demo exploring what RIO Inventory can do to help your business while exploring the Batch Feature!

Using RIO Inventory, “Acme Biscuits” can now track their food production in batch and dispatch stock based on earliest expiry date.

Click here to explore a Demo of how inventory can be Batched. 

Move inventory into your Salesforce Cloud.

Already using Salesforce to manage your Sales and Marketing?  You need to consider many business applications have a SAAS cloud offering which compliments Salesforce – why not consider putting your inventory management functions into the cloud as well?

I want to give you 4 good reasons why this should be a serious consideration for any business

  1. Save time for more important things

Most business owners are time poor,  spending time on non-core functions takes away from time that could be spent on growing the business or servicing the customer.  It makes sense to select best practice tools such as RIO inventory – and put the running of those tools in the cloud.

2. Get Better flexibility from your IT spend

A cloud-based inventory application like RIO inventory provides the flexibility for you to be able to react to business needs anywhere at anytime. Interfacing with your inventory on mobile devices means if something goes wrong you are only moments away from addressing.

3. Best practice Security

Security needs are regularly ranked as a high priority for all businesses.  Building this capability from the ground up is costly and can be outdated quickly.  Placing your inventory into the cloud using a tool like RIO inventory means you can benefit from best practice cloud-based security

4. Have better options on how you spend your IT budget

You obviously want performance which is stable and delivers predictable service.  The traditional way of doing things means large amounts of your IT budgets it tied up just keeping the lights on.  Consider moving away from owning and running infrastructure,  and put functions like inventory management into the cloud. This will free up IT budget to either be saving on your bottom line or redeployed to help grow the business.

Are you ready for the Lightning Experience?

It’s slick, it’s fast, your users will love it but are you ready to make the jump from Salesforce Classic to the Lightning Experience?There are a few basic steps we can recommend before taking the leap. Firstly make sure you check your instance readiness – you need to be aware of elements such as custom components, Visualforce pages, and custom buttons. This is really important to ensure your transition to Lightning Experience is smooth and flawless.

How do I know what is ready and what’s not?
Salesforce offers you an excellent “Check Readiness” feature! Salesforce will generate a Readiness report which when run can be sent to your Email as well as saved in your Salesforce Files.

Running the check Readiness feature is very straightforward all you need to do is, navigate to Setup | Lightning Experience Migration Assistant | Get Started | Check Readiness | Check Readiness

Here are some of the items the readiness report checks for you

  • Tabs, Objects and Related Lists – Such as Documents, Lookup filter, and Opportunity Partners
  • Standard/Custom Buttons/Links – URL buttons, Javascript buttons, “Sharing” buttons
  • Email templates
  • Lookup filters
  • Third Party Apps

Below are examples of the report results look like:

Results on Tabs, Objects, and Related Lists

Results on Standard/Custom Buttons/Links

So Salesforcers follow these steps and get yourself Lightning ready today!

Tip of the Week – Dell Boomi Connector Design

Looking at developing a Dell Boomi Connector?  here’s our tips to get you started:

  1. Understand what type of Web Services API the app is using. For example: REST or SOAP, etc. What about the supported document format? XML or JSON?
  2. Most applications have an authentication layer. Some authenticate using BasicAuth, some  use an API Key in the HTTP Request Header, some use OATH. This information should ideally be captured in the Connector Connection. It is highly recommended to encode any password related field for security best practice.
  3. Decide the supported operations. Does the API support QUERY? UPDATE? CREATE?
  4. The browser and schema generation. A Boomi Connector is capable of generating the schema each operation supports. Some applications provide a metadata API that you can connect to and describe the schema on the fly. Some  use a fixed schema.
  5. The final step is to design the Operation. When your Connector receives a response from the API, how do you want to process it? Serve it raw as is or does it need any further manipulation. Error handling should also be considered here.

Salesforce: How to Setup Lightning Sync for Google (Beta)


To sync email from Gmail to Salesforce, use the Lightning for Gmail feature. If you require to sync events from Google Calendar to Salesforce, you will be required to setup Lightning Sync.

See steps below.

Setup Guide

This video will show the step by step to setup Lightning for Google –

Note: Make sure you are using Google Enterprise & you are the admin of the enterprise account.

5 Setup steps –

Lightning Sync for Google (Beta) –

What you need

The below links will need to be opened on your browser:

  1. Salesforce Setup
  2. Gmail Admin Console –
  3. Google API Console –


Prepare Google Account

Step 1: Enable Google API

  1. Go to Google API Console > Create new project. (You can call it Lightning Sync)
  2. Enable Calendar API & Contact API:-
    – Google App API > Calendar API > Enable
    – Google App API > Contact API > Enable
  3. Click on Credential on right panel
    – New Service Account
    – Service Account Name – Company Name
    – Role – Owner
    – Key Type – JSON
    Note: Keep the downloaded JSON file.
  4. Credential > Manage Service Account
    – Company Name > Edit
    – Enable Domain Y Delegation
    – Configure Consent Screen > Fill in anything relevant. Leave optional blank if unsure.

Step 2: Setup Google Admin Console

  1. Go to Gmail Admin Console
  2. Click More Control > Security > Show More > Advance Setting > Manage API Client Access
    – Client Name = Client ID (From Google API Service Account)
    – One or More API Scope =,, > Authorize


Enable Lightning Sync in SF

  1. Go to Salesforce Setup >Quick Find > Lightning Sync Setup > Enable
  2. On the Upload Your Google Private Key section > Click Update > Upload JSON file
    Note: Test connection using Connection Test: Fill in your user email. You will see success message once connected
  3. Setup sync setting
    – Go to Setup > Quick Find > Sync Configuration
    – Create New (You can name it Default)
    – Configure Sync setting on the Data Setting section
  4. Check sync Status
    – Go to Setup > Quick Find > Sync Status
    Note: You can see summary of sync records here

Install Lightning for Gmail extension

  1. Go to this link –
  2. Click Add To Chrome
  3. See this documentation for how to use –

Visualforce: Button Action With Javascript Not Compatible in Lightning

Recently, we were working on a project to convert the existing visualforce page to support the Lightning experience. An issue that I encountered was the command button with javascript action was no longer working in the Lightning experience mode. This was due to the change mentioned in this post. Below is an example:

    <apex:actionFunction action="{!doPassParam}" name="passparam" rerender="mypanel" status="status">
        <apex:param name="selectedRecordId" value="" assignTo="{!selectedRecordId}"/>
    <apex:commandButton value="Submit" action="javascript:passparam('{!recordId}')" rerender="mypanel" style="margin-left: 5px" styleClass="slds-button slds-button--neutral slds-not-selected"/>

The code above shows that we would like to pass a parameter to the controller via actionFunction when the user clicks the button. This will allow it to work in classic mode. However, it will throw an error saying “The page is not supported in Lightning experience” when we try to repeat in the Lightning experience mode.

To get around this issue, use javascript to set the value to a hidden input field. The hidden input field will act as a place holder to submit the value to the controller.

    <script type="text/javascript">
        function setField(fieldId, fieldValue){
            document.getElementById(fieldId).value = fieldValue;
    <apex:commandButton value="Next Level" action="{!doPassParam}" onclick="setField('{!$Component.hiddenvaluefield}', '{!recordId}')" rerender="mypanel" style="margin-left: 5px" styleClass="slds-button slds-button--neutral slds-not-selected" status="reloadStatus"/>
    <apex:inputHidden value="{!selectedRecordId}" id="hiddenvaluefield" />

Note that now the command button will invoke the onclick function first before invoking the doMyAction action.

WDCi Christmas Charity 2016

On 16th and 17th December, our team in Kuala Lumpur has organised a charity event. We have visited an old folks home and a few orphanages. The purpose of this event is to make them feel warmth and love in this Christmas season. We have taken some footages of us preparing for the charity and spending great time with everyone from the homes.

Enjoy and Merry Christmas 😀

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

Oracle RightNow: Retrieving Country and Province IDs

The Country and Province in the address field are entered by IDs via API. Here is how we can retrieve the Country/Province values and their IDs in RightNow interface.

Retrieving Country IDs

  1. Go to Configuration > Databases > Data Dictionary.
  2. Look for Countries in the Tables list.
  3. In the table information, click on the country_id index.


Retrieving Province IDs

  1. Go to Configuration > Databases > Data Dictionary.
  2. Look for Provinces in the Tables list.
  3. In the table information, click on the prov_id index.


Wedid: Dynamic Quote Form Generation based on Record Type


Our customer sends out different types of quote form to the clients based on the type of order (ex. Direct Sales, Booking Order, Rental, etc.). Now, they are moving their business process into Salesforce. In order to meet the requirements on the quote form generation, we have to design an automated process to do so. Based on the type of order record the sales rep created, when he/she generate the quote, the quote form will be uniquely generated based on the record type.


When the user click the button to generate a quote form, it will automatically generate a specified quote form based on the record type specified.

Related Objects Opportunity/Quote
Components Quote
Complexity Moderate