Customer Portal

Get Involved. Join the Conversation.


  • ashish bodhale

    can anybody take a look at this?

  • Tushar Gupta

    Hi Chidambaran,

    Glad to know you got it working. Please mark this answer as solved.


  • chidambaram CT

    Working code is below


    initConnectAPI('Username', 'Password');//AD credentials goes here
    $incidentid = ***;
    $incident = RNCPHP\Incident::fetch($incidentid);
    for ($k = 0; $k < count($incident->FileAttachments); $k++) {
    echo '<a href="'. $incident->FileAttachments[$k]->getAdminURL().'">'. $incident->FileAttachments[$k]->FileName.'</a><br>';
    $file_id1 = $incident->FileAttachments[$k]->ID;
    $fileName = $incident->FileAttachments[$k]->FileName;
    $contentType = $incident->FileAttachments[$k]->ContentType;
  • chidambaram CT

    Hi Tushar,

    Great working fine thank you so much.


  • Tushar Gupta

    Hi Chidambaran,

    This would help you:

              initConnectAPI('Username', 'Password');
              for ($i = 0; $i < count($result); $i++) {
                $orn1 = 123456;
                $opp = RightNow\Connect\v1_3\Opportunity::fetch($orn1);

                for ($k = 0; $k < count($opp->FileAttachments); $k++) {
                  $file_id = $opp->FileAttachments[$k]->ID;
                  $file1 = $result[$i]["File Attachment ID"];
                  if ($file_id == $file1) {
                    $url = $opp->FileAttachments[$k]->getAdminURL();
                    $file_id1 = $opp->FileAttachments[$k]->ID;
                    $fileName = $opp->FileAttachments[$k]->FileName;
                    $contentType = $opp->FileAttachments[$k]->ContentType;
              <?php } ?>

     This would give you all the attachments for the Opportunity.

  • chidambaram CT

    Hi Tushar,

    Can you please provide any example code.


  • Dev Aditya

    Thanks Jessica! I am aware that Oracle Service Cloud does not provide any such API, however, my idea is to use chat_landing page as a platform to call external system chat API. i.e. setup completely custom chat environment on chat_landing page, that will be triggered on conclusion of Rightnow chat and connect the currently chatting customer with new system .

    I tried to call chat session ID of one OSvC system on chat_landing page of another OSvC instance, and I was able to get the response. So, we can built custom UI on the page.

    Does this sound feasible?




  • Tushar Gupta


    User Authentication is required. Pass Username and Password in the below before fetching the attachments:

    initConnectAPI(Username, Password);


  • Jessica Bradley

    Hi Dev,

    I've checked with my chat developers and we are not aware of anything within our Chat APIs that would route a chat to another external system. There is an add-in on the console side that allows a .NET client to use the UQ SOAP API, which would give you the ability to route an engagement to another agent or to another queue, but not to an external system/application.

  • Andrew Fandre

    Thank you Rhianna! Super helpful as always!

  • Gursimran Singh Saini

    Chat Launch page doesn't work that way.

    Quoting from this article:

    The ONLY contact fields that will work on the chat launch page and the mobile chat launch page are the contacts first name, last name, and email address. All other fields used on the chat launch page must be incident fields.

    A possible workaround, if you want to add additional information to your chat launch page (ie: contacts phone number), you can create an incident custom field and can then store the entered information (ie: phone number) into the created custom field. You would then need to use a Custom Process or a different customization to copy the incident field over to the contact field.

  • JustRhianna

    I think it was developed a long time ago with the functionality that was provided. I would ask how often people are really using the typeahead if that is that part that is causing trouble and would recommend looking at bringing it back to out of the box widget and see if users can co-exist with it that way. Feel free to email me if you want to discuss further

  • Robert North

    Hello Gursimran,

    No, I have not used AJAX. What I did was specify the column in the parent report to be output in URL format & appended the ID to the URL as a parameter. So when as user clicks the link in the report it's a full page load. The child report gets the ID from the URL parameter as a static filter. 

    But the search/FilterDropdown widget used by the parent report appends URL parameters st/1/page/1/<filter field>/12. So when I click a link in the parent, the page is fully reloaded displaying the child details but resetting the parent table (as the URL parameters are wiped). I also see the issue where child records persist when no ID in URL for soem reason.

    This approach did not require any customisation of the parent (grid) report widget.  So I'm thinking that I'm going to have to customise the grid widget to capture the ID onclick, then trigger AJAX request of the child report using event listener & pass the ID in.  I've not done this type of customisation with report widget previously so any thoughts on best approaches would be welcome?

    Many Thanks, Rob


  • Gursimran Singh Saini

    I'm assuming you are fetching child records through Ajax?

    And the problem comes when you refresh the page?

    How about you set some URL Parameters?
    When a filter is applied, set the URL parameter.
    When you drill down to a child, set the URL parameter.

    When you refresh the page, the same filters / drill downs will be applied.

  • Andrew Fandre

    Hi Rhianna,

    We're on 18A (build 322 SP5, CP 322), we haven't had new development in years. Oracle has given us until March to upgrade, so we're shooting for 3.3.

    The dropdown Prodcat widget that Shiloh developed has serious problems beyond 3.2. The new ProductCategorySearchFilter has a tiered AJAX interface instead of a single list. Flattening the tree would require many nested AJAX requests, which might not be possible, and even if, would probably be a very slow user experience. Any suggestions on how to tackle that?