on 02-24-2014 7:50 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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
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
Neha,
I am looking into this for you with the java programmer who coded that logic.
Jason Latko - Senior Product Developer at SAP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.