General Functional Discussions for Service

Get Involved. Join the Conversation.


  • Sebastiaan Draaisma

    I think this could be done with a report variable in where you ask the user to enter the id (for ex 30219)
    Then your filter would look like this

    if(CO$Product_Sold.SAP_Code = $myVar & incidents.ProdDetails$SAP_Code = $myVar, 1,0)

    Replace myVar with the name of your variable capturing the user input

  • Mohamed Hossam

    I typed it as below and it was accepted 

    if(CO$Product_Sold.SAP_Code=incidents.ProdDetails$SAP_Code | CO$Product_Sold.SAP_Code=$a,1,0)

    but the main requirement here is I need to choose for example the code 30219 in CO$Product_Sold.SAP_Code and I there are some incidents the have the field incidents.ProdDetails$SAP_Code and the value 30219 so I want to map.

    By default and as I created the CO$Product_Sold as a root then incidents as a child so I get the data of codes that fill into CO$Product_Sold.SAP_Code as below 

    I need when I choose the CO$Product_Sold.SAP_Code for example 30219 to get the data which filled in incidents for incidents.ProdDetails$SAP_Code  30219 

  • Sebastiaan Draaisma
  • Jagdish Verma

    The Link above does not work -

  • Sebastiaan Draaisma

    You filter looks wrong and should look similar to this

    if(CO$Product_Sold.SAP_Code=incidents.ProdDetails | CO$Product_Sold.SAP_Code$SAP_Code=$a,1,0)



  • Mohamed Hossam

    Dear Ross,

    I followed the steps and created custom report variable $a which is ad hoc variable and the integer 30219 is one of our codes then I tried to add filter which includes the criteria:


    but got an error as below

    so I couldn`t map any value to the parallel one.

    the error is 



  • Sebastiaan Draaisma

    Another alternative (not exactly what you requested) is to only use the count in your report and link to a report that will filter on the queue so you see the items from that role-up as if it was a drill down
    (no custom script required)

  • Sebastiaan Draaisma

    Got to think of an alternative.

    You would basically do it in reverse.
    Have a count column on which you sort (no other row data). This way lowest will be on top and retrieve the data through ROQL that you insert into your roll-up. You can modify the roll-up header which is the more complex part but not impossible.


  • Sebastiaan Draaisma

    I tried a custom script which gave me the correct count but at that point the sorting no longer works as the report has already been generated. I have no other idea...

    SELECT Count(Incident.ID) AS qCount FROM Incident WHERE Incident.Queue = 6

    qCount.xml (14KB)
  • Mohamed Hossam

    That`s a great idea, but the issue here is I cannot get the equation that count them in group 

    As I use count(*)  but I cannot get the group count ....

  • Sebastiaan Draaisma

    I think you can do it by having an extra column in your report in which you replicate the count and sort on that column. The column can be made hidden and just serve as a sorting column.

  • Colby Ross

    I believe if you are updating the sales product with a new price the system will add a new price list entry based on the start date. The start date is the key for the list entry. In the console, if a new price is added, and the start date is the same as the price before it, then the system will identify this as an error and won't allow you to save your changes. I would check the entry dates to see if the Start Date is different on all the entries your are referencing; they should be since you stated, "When we update the price list using API with a different date for the items those are not getting updated rather its getting created as a new line item".


    If a consumer registers a product based on a particular Date Purchased, the system will reference the price schedule for that data and list the price the customer actually paid for that item during that date. This way if they paid $39.99 on 11/01 but then the price jumped back up to $59.99 on 11/03, if the product was added as a asset in OSvC on 11/04 with a purchase date of 11/01, the customer is not getting credit for paying $59.99, rather the system will see the price of the product on 11/01 was $39.99 and that is was will be associated to the registered product. Now if you agent goes to do a refund for the product, they can reference that price and only refund $39.99 instead of $59.99.

    This also helps with quotes because when a quote is done, the price from this list for that date is generated in the Original Price field. 

  • Colby Ross

    I like Sebastiaan's idea if you are wanting to write the Product_Code to both objects. (ie. On save, you want to write Product_Code to both the incident field and the custom object field).

    If you are just trying to get this in reporting and don't want to write the value to both fields, then I would create a adhoc custom report variable. This way when you run the report you could put in 1000 or whatever product code you want. You then would add filters in your report to look at this variable. Example: CustomObject.Product_Code = $CustomVariable OR Incidents.Product_Code = $CustomVariable. You'd want to make sure your incidents to custom objects join is an outer join. 

    If you have any other questions about this, just let us know. Hopefully one of these solutions work for you. 

  • Sebastiaan Draaisma

    There are different ways to do this:

    1. Workspace rules (1 rule per option)
    2. Business rules (1 rule per option)
    3. JavaScript API (Browser component loading in the background)
    4. CPM (custom objects receives the id after the incident is saved)

    I would go for nr 4 or nr 3 if you need to have this dynamic.

  • Cosimo Galasso

    Probably I was too brief in the explanation :-)
    In OSvC there is a functionality called 'Advanced Routing'.

    Please refer to the follwing complete documentation:

    Using Advanced Routing it is possible to route incidents based on 'Skills'.
    Skills are assigned at the Profile level, but what is most important is that Skils can be assigned at the Agent Level.
    So the idea is that adjusting individual skills it should be possible to decide whether or not to rout incidents of a specific queue to a specific Agent.