I have the following function that creates a share to a custom object:
public static Order_Request__Share generateOrderRequestShare(Id orderRequestID, Id userId, Boolean readOnly){
System.debug('generateOrderRequestShare');
Order_Request__Share shareTmp = new Order_Request__Share();
if (!readOnly){
shareTmp.AccessLevel = 'Edit';
} else {
shareTmp.AccessLevel = 'Read';
}
shareTmp.ParentId = orderRequestID;
shareTmp.RowCause = 'Manual';
shareTmp.UserOrGroupId = userId;
return shareTmp;
}
i want to do the same function, but for the object "SBQQ__Quote__Share", but i don't want to have the exact same function again. like this:
public static Order_Request__Share generateOrderRequestShare(Id orderRequestID, Id userId, Boolean readOnly){
System.debug('generateOrderRequestShare');
Order_Request__Share shareTmp = new Order_Request__Share();
if (!readOnly){
shareTmp.AccessLevel = 'Edit';
} else {
shareTmp.AccessLevel = 'Read';
}
shareTmp.ParentId = orderRequestID;
shareTmp.RowCause = 'Manual';
shareTmp.UserOrGroupId = userId;
return shareTmp;
}
public static SBQQ__Quote__Share generateQuoteShare(Id quoteId, Id userId, Boolean readOnly){
SBQQ__Quote__Share shareTmp = new SBQQ__Quote__Share();
if (!readOnly){
shareTmp.AccessLevel = 'Edit';
} else {
shareTmp.AccessLevel = 'Read';
}
shareTmp.ParentId = quoteId;
shareTmp.RowCause = 'Manual';
shareTmp.UserOrGroupId = userId;
return shareTmp;
}
Is there a way i can create a generic function that will return a different object every time?
getDescribe
apex. Here is a sample code. Replace Account with your object. In the newAccount instance, you just need to donewObject.put('AccessLevel', 'Edit');
Schema.SObjectType objectType = Schema.getGlobalDescribe().get('Order_Request__Share');
SObject newObject = objectType.newSObject();
– Kevan Mar 3 '19 at 16:00