cancel
Showing results for 
Search instead for 
Did you mean: 

Query on Service Order Assignment Type in CRM Service Manager

neha_mahanty
Active Participant
0 Kudos

Hi All,

This query is regarding the Service Order Assignment type in CRM Service Manager.

While fetching the service orders from SAP, the ServiceOrderFetchBAPI calls the ServiceOrderAssignmentTypeDelegateFactory class

ServiceOrderAssignmentTypeDelegateFactory class contains {

1.  public static String ASSIGNMENT_TYPE_GLOBAL = "ServiceOrder.AssignmentType";

      public static String SECTION = "APPLICATION_CONFIG";

 

Question 1: Please explain about both the String values, Are these two values being fetched from the sap config panel ? If yes then please elaborate where can I check their respective values in SAP.

2. The method getAssignmentTypeDelegate compares each values and returns the respective assignmentTypes

public static ServiceOrderAssignmentTypeDelegate getAssignmentTypeDelegate(User user, SAPObject sapObject, BAPI bapi)

    throws Exception

  {

    String assigmentType = user.getPropertyValue(SECTION, ASSIGNMENT_TYPE_GLOBAL);

    if (assigmentType.equalsIgnoreCase("1"))

    {

      ServiceOrderAssignmentTypeDelegate assignmentTypeBAPI = new ServiceOrderByResourcePlanning(user, sapObject, bapi);

      return assignmentTypeBAPI;

    }

    if (assigmentType.equalsIgnoreCase("2"))

    {

      ServiceOrderAssignmentTypeDelegate assignmentTypeBAPI = new ServiceOrderByPartnerResponsible(user, sapObject, bapi);

      return assignmentTypeBAPI;

    }

    if (assigmentType.equalsIgnoreCase("3"))

    {

      ServiceOrderAssignmentTypeDelegate assignmentTypeBAPI = new ServiceOrderByMultiResourceScheduling(user, sapObject, bapi);

      return assignmentTypeBAPI;

    }

    if (assigmentType.equalsIgnoreCase("4"))

    {

      ServiceOrderAssignmentTypeDelegate assignmentTypeBAPI = new ServiceOrderByAccount(user, sapObject, bapi);

      return assignmentTypeBAPI;

    }

Based on the values a new class is instantiated and it mentions their filter range to be set in BAPI

For ServiceOrderByResourcePlanning  -

public void setParameters(SAPObject obj)

    throws Exception

  {

    String partnerGUID = this._serviceOrderComponentManager.getPartnerGUID();

    this._bapi.setFilterRange("IT_LRP_RESOURCE_GUID_RA", "I", "EQ", partnerGUID, "");

  }

For ServiceOrderByPartnerResponsible -

public void setParameters(SAPObject obj)

    throws Exception

  {

    String partnerGUID = this._serviceOrderComponentManager.getPartnerGUID();

    this._bapi.setFilterRange("IT_PARTNER_GUID_RA", "I", "EQ", partnerGUID, "");

  }

For ServiceOrderByMultiResourceScheduling -

public void setParameters(SAPObject obj)

    throws Exception

  {

    String partnerGUID = this._serviceOrderComponentManager.getPartnerGUID();

    this._bapi.setFilterRange("IT_LRP_RESOURCE_GUID_RA", "I", "EQ", partnerGUID, "");

  }

For ServiceOrderByAccount -

public void setParameters(SAPObject obj)

    throws Exception

  {

    for (GUID object : this._accounts)

    {

      String guid = object.getGUID();

      this._bapi.setFilterRange("IT_ACCOUNT_GUID_RA", "I", "EQ", guid, "");

    }

  }

Question 2 : Why  the filter range in ServiceOrderByMultiResourceScheduling  (MRS Scheduling engine )  is set as - this._bapi.setFilterRange("IT_LRP_RESOURCE_GUID_RA", "I", "EQ", partnerGUID, "");  ? If we see the ServiceOrderByResourcePlanning  also has the same filter range  -  this._bapi.setFilterRange("IT_LRP_RESOURCE_GUID_RA", "I", "EQ", partnerGUID, "");


If these are two different scheduling engines then the table names should be different both in case of MRS and LRP ? Please clarify and explain

}

Please Explain

Thanks and Regards

Neha Mahanty

Accepted Solutions (1)

Accepted Solutions (1)

jason_latko
Advisor
Advisor
0 Kudos

Neha,

Got these answers back from the programmer:

 

Answer 1: Yes, this is being
fetched from the Mobile application configuration parameters as shown below.
The value is configured by a rule to look up to the Service Order MDO
Assignment type filter.

 

Answer 2: Yes, MRS and LRP are
different scheduling engines, but since the client does not have all the user
information regarding MRS (i.e the resource information), we set the partner
GUID for both. SAP backend ABAP code will determine resource based on the
partner GUID and will call the respective handler for MRS and LRP to retrieve
the service order assignments. Currently Service Manager 4.0 code does not
support MRS with the provided add on.

Jason Latko - Senior Product Developer at SAP

neha_mahanty
Active Participant
0 Kudos

Hi Jason,

Thanks a lot this is really helpful. However I have another query related to this.

As you already mentioned that this code does not support the MRS integration .

Dou you think If we modify the set filter for MRS with MRS specific table and enhance the backend also for MRS . then the code can support MRS integration too?

Please advise.

Thanks

Neha

jason_latko
Advisor
Advisor
0 Kudos

Neha,

I don't know anything about MRS.  When I asked the backend ABAP programmers earlier, they mentioned they would need to make BAPI changes to support this.  Would it be possible for you to make these changes?  I don't see why not.  Eventually the product will support MRS, but I don't know the time table for this.

Jason Latko - Senior Product Developer at SAP

neha_mahanty
Active Participant
0 Kudos

Hi Jason,

Thank you so much , I will try this.

Thanks

Neha

neha_mahanty
Active Participant
0 Kudos

Hi Jason,

I have one more doubt regarding this .

There is a code modification which is required in the Standard Java Code If I want to make any change for MRS.

Now since SAP has stopped providing the Standard Java Code how can I make the modification in the Standard code ?

If I go with Extending the class also lots of classes would needed to be modified. What according to you would be best option for this approach.

Please guide

Thanks and Regards

Neha Mahanty

jason_latko
Advisor
Advisor
0 Kudos

Neha,

Extending the many classes in the correct approach, but doing so without the source would be very difficult.  I believe you can obtain the java source if your customer goes through the correct channels and signs a non-discolsure agreement.  I do not know how to initiate this process though.

Jason Latko - Senior Product Developer at SAP

Former Member
0 Kudos

The request needs to made to the Account Manager.

Stephen

neha_mahanty
Active Participant
0 Kudos

Thanks Jason, Stephen,

We shall ask the customer to follow up on this. Thanks a lot for the help

Regards

Neha Mahanty

Answers (1)

Answers (1)

jason_latko
Advisor
Advisor
0 Kudos

Neha,

I am looking into this for you with the java programmer who coded that logic.

Jason Latko - Senior Product Developer at SAP