...

Перестал работать morpher

Тема в разделе "Проблемы/ошибки", создана пользователем sanches, 9 ноя 2017.

  1. sanches

    sanches New Member

    Доброго утра коллеги. Перестал работать morpher. У меня версия express, купленна.
    Сценарий такой:
    Код:
    using EleWise.ELMA.Model.Scripts.morpher;
    
    namespace EleWise.ELMA.Model.Scripts
    {
        public partial class P_OutgoingLetter_Scripts : EleWise.ELMA.Workflow.Scripts.ProcessScriptBase<Context>
        {
            /// <summary>
            /// docGenerate
            /// </summary>
            /// <param name="context">Контекст процесса</param>
            public virtual void docGenerate (Context context)
            {
                context.Roditeljnyy = "";
                context.Dolzhnostj = "";
                context.Initials = "";
                if (context.OutgoingLetter.Contact != null) {
                    EleWise.ELMA.Model.Scripts.morpher.GetXmlResult send = new EleWise.ELMA.Model.Scripts.morpher.GetXmlResult ();
                    EleWise.ELMA.Model.Scripts.morpher.WebService b = new EleWise.ELMA.Model.Scripts.morpher.WebService ();
                    try {
                        send = b.GetXml (context.OutgoingLetter.Contact.Surname);
                        context.Roditeljnyy = send.Д;
                    }
                    catch {
                        context.Roditeljnyy = context.OutgoingLetter.Contact.Surname;
                    }
                    try {
                        send = b.GetXml (context.OutgoingLetter.Contact.Position);
                        context.Dolzhnostj = send.Д;
                    }
                    catch {
                        context.Dolzhnostj = context.OutgoingLetter.Contact.Position;
                    }
                    if (context.OutgoingLetter.Contact.Firstname == null || context.OutgoingLetter.Contact.Middlename == null) {
                        context.Initials = "";
                    }
                    else {
                        if (context.OutgoingLetter.Contact.Firstname.Length > 1) {
                            context.Initials = context.OutgoingLetter.Contact.Firstname.Remove (1) + ".";
                        }
                        else {
                            context.Initials = context.OutgoingLetter.Contact.Firstname + ". ";
                        }
                        if (context.OutgoingLetter.Contact.Middlename.Length > 1) {
                            context.Initials += context.OutgoingLetter.Contact.Middlename.Remove (1) + ".";
                        }
                        else {
                            context.Initials += context.OutgoingLetter.Contact.Middlename + ".";
                        }
                    }
                } 
    Всё сохраняется в переменные контекста для дальнейшей работы с этими переменными для генерации исходящего письма из шаблона.
     
  2. pushkarev

    pushkarev Active Member

    Поясните, что значит перестал работать morpher?
    Судя по коду вы пользуетесь не встроенной в ELMA библиотекой, а используете web сервис в интеренете, может быть от перестал отвечать, но я не понимаю почему просто не использовать встроенную библиотеку? Она встроена в поставку начиная с версии 3.10 (https://www.elma-bpm.ru/journal/index.php?ELEMENT_ID=6355). Рекомендую использовать ее.
    Кроме того вы можете не генерировать заранее значения для подстановки в документ, а использовать функции морфера прямо в шаблоне документа. В статье (https://www.elma-bpm.ru/kb/article-927.html) в описании версии 3.10 описаны возможности использования этой библиотеки в системе ELMA.
     
    1 это нравится

Поделиться: