• Mark Williamson
  • NEWBIE
  • 0 Points
  • Member since 2014

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies
Hi All,

I'm torn between two options of how to architect a fairly straight-forward service request app. The service request entity is an IT request that is created by an end user (technical or non-technical). We have identified roughly 100 different service requests across about 10 groupings or categories. An example of a service request in the 'network' category could be 'create employee network account'. An example of a service request in the 'applications' category could be 'new application installation'. The service requests will also have approval processes and workflow.

My two options of consideration are:
1) Create one custom object that holds all fields and create one page layout per individual service request. With this option I'm worried about this object getting far too 'busy' with fields, page layouts and validation rules.
2) Create one custom object as a service request header and create separate objects per category (connected by lookup). This cleans things up a bit but now I have to worry about coordination between lookup child and lookup parent.

I wish to use as much out-of-the-box as possible but using apex and VF is an option for us.

Any thoughts on this as to best practices?

​Mark
 

Facing a issue with Queue assignment as approver. As we can not dynamically assign queues in Approval Process we are first assigning it to a general user and reassigning it to a queue thru code. But while doing this, only if the current user is with Admin profile it is allowing to assign to a user and then reassign to a queue dynamically. but with restricted profiles(Without Modify All profile Permission) it is not happening. Finer details given below.  

 

Approval Process is on child object(Approval__c -with Public Read/Write setting) of Opportunity(Master detail relationship )

Using Without Sharing in Controller .

 

Code Snippet:

--------------------------------

 

 id QueueId;
    QueueId = [Select queueid from QueueSobject q where SobjectType = 'Approval__c' and q.Queue.Name = :queuename Limit 1].queueid;
    
       
    try
    {
    ProcessInstanceWorkItem workItemList = [Select p.ProcessInstance.Status, p.ProcessInstance.TargetObjectId,p.ProcessInstanceId,p.OriginalActorId,p.Id,p.ActorId From ProcessInstanceWorkitem p where p.ProcessInstance.TargetObjectId =:app and p.actorid=:DGSystemUserId order by createddate desc limit 1];
    workItemList.ActorId = QueueId;
    update workItemList;
    }

 

 

Appreciate your valuable response

  • April 22, 2013
  • Like
  • 0