function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
bhagibhagi 

how we assign a task to profiless

Hi all,

      when i share something in chatter free user it automatically creats a task  to standard platform user profile

i write the trigger its save but its not creating a task to standard platform user

 

List<User> users = [SELECT Id FROM User where Profile.Name = 'Standard Platform User' Limit 1];
        if(users.size() > 0){
            User usr = users.get(0);
        for(FeedItem fItem : fItems){
if(fItem.Body != null && groups.size() > 0 && (fItem.Body.toUpperCase().Contains('*')) || (fItem.Body.toUpperCase().Contains('#HOS'))){
                Task newTask = new Task();
                newTask.OwnerId =usr.Id;
                if(fItem.Body.toUpperCase().Contains('*')){
                    newTask.Subject = groupMap.get(fItem.ParentId)+' * '+userInfo.getFirstName();
                    newTask.Description = fItem.Body.subString(4,fItem.Body.length());
                    newTask.ActivityDate = System.today()+ 2;
                }else if(fItem.Body.toUpperCase().Contains('#HOS')){
                    newTask.Subject = groupMap.get(fItem.ParentId)+' #HOS '+userInfo.getFirstName();
                    newTask.Description = fItem.Body.subString(4,fItem.Body.length());
    }                newTask.ActivityDate = System.today()+ 2;

can you suggest me anyone??

 

Thanks&Regards

bhagi

Jia HuJia Hu

add:

insert newTask;

bhagibhagi

hi jia hu

 

Still its not created...can we assign a task to standard platform user through chatter free user..i posted the my code..but its not create a tsk for standard platform user...

 

can u suggest me please

 

Thanks&Regards

bahgi

Jia HuJia Hu
Did you get any error in the debug log?
bhagibhagi

Error:insert failed. First exception on row 0; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, You do not have permission to share files.: []

And here is my code

trigger CFU on FeedItem (after insert) {
    List<FeedItem> fItems = new List<FeedItem>();
    List<Task> tasks = new List<Task>();
    Set<String> Ids = new Set<String>();
    Map<String,String> groupMap = new Map<String,String>();
    Boolean validUser;
    User u = [select id, profile.Name from User where id =: UserInfo.getUserId() Limit 1];
    system.debug('@@@@ User Profile = '+u.Profile.Name);
    if(u.Profile.Name =='Chatter Free User' || u.Profile.Name == 'Chatter External User'){
        validUser = true;
    }else{
        //Invalid user. Unable to share a document.
        validUser = false;
    }
for(FeedItem fItem: trigger.new){
        //System.debug('@@@@ feed item content File name = '+ fItem.ContentFileName);
        System.debug('@@@@ feed item body = '+ fItem.body);
        if(fItem.Body != null && (fItem.Body.Contains('*') )){
            if(!validUser && fItem.Body != null){
                fItem.addError('You do not have permission to share files.');
            }else{
                fItems.add(fItem);
            }
        }
    }
    List<User> users = [SELECT Id FROM User where Profile.Name = 'System Adminstrator' Limit 1];
        if(users.size() > 0){
            User usr = users.get(0);
    for(FeedItem fItem : fItems){
            Ids.add(fItem.ParentId);
            if(u.Profile.Name =='Chatter Free User' || u.Profile.Name == 'Chatter External User'){
          Task newTask = new Task();
                newTask.OwnerId =usr.Id;
                if(fItem.Body.Contains('*')){
                    newTask.Subject = groupMap.get(fItem.ParentId)+' * '+userInfo.getFirstName();
                    newTask.Description = fItem.Body.subString(4,fItem.Body.length());
                    newTask.ActivityDate = System.today()+ 2;
                    newTask.Status = 'In Progress';
                    newTask.IsReminderSet = true;
                    newTask.ReminderDateTime = System.now().addHours(12);
                                    tasks.add(newTask);
  
}           
}
}
    if(tasks.size() > 0){
        insert tasks;
        system.debug('@@@@ task created = '+tasks.get(0).Id);
    }
}
}
 
can you suggest me please??


Jia HuJia Hu
List<User> users = [SELECT Id FROM User where Profile.Name = 'System Adminstrator' Limit 1];
has a spelling mistake, should be 'System Administrator', you can not select a user to insert a Task with current SOQL.
bhagibhagi

Hi Jiahu

  As you said i made the changes..but still the task is not created to System Adiministrator..

 

 

Thanks&Regards

Bhagi