Поиск по этому блогу

среда, 9 марта 2016 г.

DocsVision 4,5 - изменение фактической даты чего - либо

Давно не наполнял свой блог новыми знаниями. Было лень и было много работы.
В данный период моей жизни я работаю с DocsVision. Пишу скрипты для бизнес - процессов.
Данная запись - шпаргалка. Чтобы не забыть как делалось.
Суть такова - нужно изменить в основной части карточки бизнес - процесса поле "фактическая дата загрузки". Поле может называться и по другому. Главное чтобы оно находилось на вкладке Основное(Основная) в карточке.



using System;
using System.Xml;

// подключение библиотек СУБП
using DocsVision.Platform.ObjectManager;
using DocsVision.Workflow.Objects;
using DocsVision.Workflow.Runtime;
using DocsVision.Workflow.Gates;
using DocsVision.Platform.HelperAPI;

using ProcessInfo = DocsVision.Workflow.Runtime.ProcessInfo;

namespace DVScriptHost
{
    class DVScript
    {
        public void Execute(ProcessInfo process, PassState passInfo)
        {
            try
            {
                ProcessVariable CurrentEndDate = process.GetVariableByName("Фактическая дата загрузки");
                ProcessVariable oCard = process.GetVariableByName("Счёт");
                
                if(!CurrentEndDate.IsNull)
                {
                    process.LogMessage("CurrentEndDate = " + CurrentEndDate.Value.ToString());
                    DVGate gate = (DVGate)process.Gates[DVGate.GateID];
                    UserSession session = gate.Session;
                    
                    
                    
                    CardData cardData = session.CardManager.get_CardData(oCard.Value.ToString());
                    
                    RowData cardMain = cardData.Sections[cardData.Type.Sections.GetByAlias("MainInfo").ID].FirstRow;
                    
                    cardMain.set_Value("ControlDate", CurrentEndDate.Value);
                    
                    process.LogMessage("PayDate  = "+cardMain.get_Value("ControlDate").ToString());
                    
                }else process.LogMessage("CurrentEndDate IsNull");
            }
            catch (Exception ex)
            {
                // запись в журнал ошибки исполнения
                process.LogMessage("Ошибка выполнения скрипта:" + ex.ToString());
            }
            return;
        }
    }
}

Комментариев нет:

Отправить комментарий