Как добавить шаблон уведомления об активности электронной почты через код Acumatica - PullRequest
1 голос
/ 05 мая 2020

Требование пользователя - создать новую кнопку действия для отправки электронной почты с экрана заказа на продажу, когда пользователь нажимает кнопку отправки электронной почты, мы перенаправляем на экран активности электронной почты, а для тела мне нужно передать шаблон уведомления через код также, когда я сохраняю это действие электронной почты, то это действие должно быть создано на экране контактов на вкладке действий.

почему экран контактов находится в заказе на продажу, у нас есть настраиваемое поле как Контакт, и это обязательно, поэтому пользователь хочет создать это действие на экране контактов i был код до создания активности для контакта, но для добавления деталей заказа на продажу, поскольку шаблон уведомления не работает, когда я добавляю этот шаблон вручную, я вижу пустые значения в теле bcz, это действие создается под контактами, поэтому я получаю пробелы для заказа шаблон уведомления, ниже мой код

public PXAction<SOOrder> createBSEmail;
        [PXUIField(DisplayName = "Send Email", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
        [PXButton]
        public void CreateBSEmail()
        {
            ProcessBSEmail();
        }

        private void ProcessBSEmail()
        {
            if (Base.Document.Current != null)
            {
                SOOrderExt rowext = Base.Document.Current.GetExtension<SOOrderExt>();
                if (rowext != null)
                {
                    var targetGraph = PXGraph.CreateInstance<CREmailActivityMaint>();
                    var message = targetGraph.Message.Insert();
                    if (rowext.UsrKWContactID != null)
                    {                        
                        Contact con = PXSelectReadonly<Contact, Where<Contact.contactID, Equal<Required<Contact.contactID>>>>.Select(Base, rowext.UsrKWContactID);
                        if (con != null)
                        {                            
                            message.RefNoteID = con.NoteID;
                            message.BAccountID = con.BAccountID;
                            message.ContactID = con.ContactID;
                            //message.NoteID = con.NoteID;
                            message.IsIncome = false;
                            message.Subject = "Test Subjext";
                            message.MailTo = con.EMail != null ? con.EMail : string.Empty;
                                targetGraph.Message.Update(targetGraph.Message.Current);
                                throw new PXRedirectRequiredException(targetGraph, true, "Email") { Mode = PXBaseRedirectException.WindowMode.NewWindow };
}
                    }
                }
            }
        }


Also, here if i pass salesorder noteid then i am able to get the values for the order notification template when i add it, but then the activity is creating for the order not to the contact.

So how i can resolve this i need to create the activity for the contact and through code i need to pass order details using notification template.


Thanks in advance.
...