Wednesday, August 20, 2014

Automatic determination of your organizational data in the IC webclient

(eg. kill the popup)

This is Kate, a very skilled call center agent.

For our story, let’s assume you are Kate. You are working on three different departments; in the morning, your working in the front office. In the afternoon, you serve the back office while you handle hard cases for the 'Special Cases team' ad hoc.

If you are assigned to multiple positions in the organizational model of SAP CRM, you might run into some very annoying popup’s when creating a transaction. The system needs to know, to which organizational unit you are assigned so it can determine the organizational data, used for billing, reporting and assignment of its transactions.

Say, you are assigned to the following org units / positions:

If you login, you have to choose which position you want to fullfil:

Then you create a transaction which uses a standard partner function.

This function has an org unit determination rule, so you will be asked which of the units you want to use for your determination.

This does not really make sense, since you have already chosen this at the login screen.

Especially when you have multiple partner functions with such a rule, you will get annoyed quite quickly. Next to that, data entry will be error prone, as you can select a org unit to which you are not working for at that time.

Fortunately this problem can be solved.

You can use a global system attribute which is available at any time by using class CL_CRM_IC_SERVICES. While logging in, this attribute is filled and can then be used for further processing. For instance, by using it in a partner function that replaces the standard.

  • Create an access sequence as a copy of the standard org unit determination and fill it with custom coding (copy FM CRM_ORGMAN_ORGOBJECTS_FIND_3):

  • Determine what position was chosen during login :
                DATA: lv_login_ou TYPE crmt_ic_org_unit.
                lv_login_ou = cl_crm_ic_services=>get_org_unit( ).

  • Convert the outcome of lv_login_ou to organizational unit  (RH_STRUC_GET) and match it with the already found business partners of CRM_ORGMAN_ORGOBJECTS_FIND_3 .  This should give you a unique result that can be used directly in the access sequence.

Result = no annoying pop-ups.