Menu

Helpdesk: Select Org_ID based on entered Caller_ID

Rob Harvey
2014-04-02
2014-04-03
  • Rob Harvey

    Rob Harvey - 2014-04-02

    The Helpdesk module is completely backwards from my point of view.

    I want to be able to enter the caller_id (we actually use a 4 digit unique identifier - or email address in our current systems) and have the caller's organisation auto-completed.

    Currently you have to enter the org_id - which to be honest, most users don't know which business unit they belong to, let alone those of us on the helpdesk - and then select a caller_id from a drop down list.

    Is it possible to reverse that so I can enter the caller_id without knowing the organisation?

    The only other option I can think of is to remove all of our business units and limit the organisational hierarchy to one or two levels. This would mean some "organizations" would have hundreds of people to choose from though and would also limit the usefulness of any reports. Sure I'd know which Division of our organisation was generating the most calls but I'd have no easy way of drilling down into individual business units.

     
  • Miguel Turrubiates

    Hello Rob

    I found myself with the same issue. The workaround I found was de create a custom extension in which I redefine the definition for the caller_id and org_id fields for the ticket class (incidents, requests, changes and problems).
    In the datamodel file I specify the following:

    <class id="Ticket">
      <parent>cmdbAbstractObject</parent>
      <fields>
        <field id="org_id" xsi:type="AttributeExternalKey" _delta="redefine">
          <filter><![CDATA[SELECT Organization AS o JOIN Person AS p ON p.org_id = o.id WHERE p.id=:this->caller_id ]]></filter>
          <dependencies>
            <attribute id="caller_id"/>
          </dependencies>
          <sql>org_id</sql>
          <target_class>Organization</target_class>
          <is_null_allowed>false</is_null_allowed>
          <on_target_delete>DEL_AUTO</on_target_delete>
        </field>
        <field id="caller_id" xsi:type="AttributeExternalKey" _delta="redefine">
          <filter><![CDATA[SELECT Person WHERE status = 1 ]]></filter>
          <sql>caller_id</sql>
          <target_class>Person</target_class>
          <is_null_allowed>true</is_null_allowed>
          <on_target_delete>DEL_AUTO</on_target_delete>
        </field>
      </fields>
    

    Hope this helps, it had worked fine for me.

    Regards

     
  • Rob Harvey

    Rob Harvey - 2014-04-03

    Brilliant! Thanks Miguel. That worked like a charm.

    I went one step further and changed the presentation so that caller id is shown before organisation ... just because that is more humanly acceptable!

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.