APIs

Seamless Async CPM Updates

Async CPM jobs are processed by Oracle's SPM queue, but the actual PHP code runs on any number of utility servers (likely based on some load-balancing logic for the pod). The custom CPM code itself runs in a looping PHP process that executes jobs from the queue, which means that the code stays in memory for a period of time. (To my knowledge, Oracle hasn't published any information as to exactly how long these processes run, however.) This causes two important results:

Important August 2017 SOAP API endpoint change

CX Version: 

Warning: August 2017 SOAP API change

With the August 2017 release of Oracle Service Cloud, the SOAP API endpoint has been changed AND the old WSDL URL is NOT backwards compatible. This quiet, instant and important change can cause some chaos and broken integrations depending upon your tools and set-up.

What does "Invalid SAML assertion in security header" mean?

Tags: 

If a profile doesn't have Session Authentication checked and an add-in tries to make a SOAP request (using a connection prepared with session authentication), an error reading "Invalid SAML assertion in security header" will be shown and the request will fail.

Abusable Functions in CP, CPMs, and Custom Scripts

When calling create and update functions from within Customer Portal code, the system requires the use of checks via the RightNow\Libraries\AbuseDetection library method isAbuse(), to ensure the CP endpoint is not under a DOS or similar attack. This is helpful, in theory at least, because it ensures that your CP site is mostly protected from these sorts of attack, but this can cause major headaches when building out more complex solutions. 3 out of 4 scenarios below require some level of workaround, depending on your use-case:

cURL and Async CPMs

CX Version: 

If you are using cURL in an asynchronous CPM to post data to an external endpoint, beware. Calling the \load_curl() method will usually load the cURL library, unless the back-end SPM process that runs your particular instance of the CPM already loaded the library! In this case the CPM will fail, in what appears to be an inconsistently reproducible way.

Get in the habit of wrapping your \load_curl() method like this:

if (!function_exists("\curl_init"))
{
    \load_curl();
}

Quick Tip: Encrypted Pass Through Authentication (EPTA) Initialization Vectors

When setting up Encrypted PTA, configuring the correct Initialization Vector in the PTA_ENCRYPTION_IV configuration setting can be confusing. I find the setting documentation misleading unless you really understand what it is asking for.

Per the field documentation:

Duplicate Contacts and Unique Fields

In order to reduce duplicate contact records, it would be useful to be able to specify unique contact fields (such as mobile phone number, or a particular custom field), similar to how email addresses are handled as unique identifiers. If the client needs a full-fledged solution for this across their entire system, this is difficult to do from a purely technical level. Most clients simply train their agents to first search for existing contacts and have a business process for merging duplicate contacts when manually found in the system, which is good enough for most.

Fun with Cloud9 IDE and CP3

Today I had a bit of fun with Cloud9 IDE, which is one of the better cloud-based IDEs I've found. It is geared mostly towards front-end web development but has a fully functional Ubuntu OS underneath running in a Docker instance, so you can pretty much do anything.

Mobile Client Considerations

More and more often, clients look for a way to integrate their mobile and web applications with their RightNow instance. The ability to connect end-users directly to the support infrastructure is powerful, but the standard tools RightNow provides don't quite fit the bill.

CPMs: Custom Process Management

Custom Process Models are perhaps some of the most useful features released for developers since custom objects in the Nov '10 release. We now have the ability to run server 'events' on both standard and custom objects. But when you start working with the Process Designer (under Site Configuration in the console) you will notice that the UI and deployment process is extremely clunky. This article describes how to setup a standard CP development cycle to upload code via WebDAV that is directly run in your CPM.

Pages

Zircon - This is a contributing Drupal Theme
Design by WeebPal.