WorkFlow Комплекс АСКОН 2009

Автор l2qwe, 22.02.11, 12:16:55

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

l2qwe

Можно ли сделать так, что бы прикрепленные объекты к бизнес-процессу автоматом прикреплялись и к элементам маршрута бизнес-процесса.
Есть функция GetAttachedObjects, которая возвращает список объектов которые прикрепленные  бизнес-процессу, есть ли процедура которая прикрепляет объекты к элементу маршрута бизнес процесса, или через sql таблицы wf* ?

Кирилл Деулин

нельзя . там много чего нельзя  :)))))

Chaa

Попробуйте методы сервера приложений AddStageDocument и DelStageDocument.

l2qwe

Вот то что получилось


    DCOM := TDCOMConnection.Create(nil);
    DCOM.ComputerName  := C_IP_SERVER;
    DCOM.ServerGUID := '{3D7F4F8F-F8A2-4AC5-B9E7-48CBC7CD2749}';
    DCOM.Open;
    LWFCon := DCOM.GetServer as IWFSystem;
    LDataSet := CreateComObject(CLASS_DataSet) as IDataSet;
    LWFCon.ConnectWorkFlowOnDBEx(FpluginCall.DBName,C_IP_SERVER,'','', inErrCode, stErrMess);

    //Получаем перечень типовых БП
    LDataSet.DATA := (LWFCon.GetTypicalProcessList(1,inErrCode, stErrMess));
    LIDProcess := -1;
    //Ищим типовой БП с именем РЭК
    while not LDataSet.Eof do//Можно было сделать через фильтр
    begin
        if GetValue(LdataSet,'_ROUTENAME','')='РЭК' then begin
          LIDProcess := GetValue(LDataSet,'_ID_ROUTE','');
          break;
        end;
        LDataSet.Next
    end;
    //Если типовой БП существует то создаем элемент РЭК и БП на него
    if LIDProcess > -1 then begin     
      LIDProcess:=LWFCon.CreateNewProcessBy(
        FPluginCall.DBName, // имя базы данных PDM
        idObj, // идентификатор объекта PDM
        'Проверка РЭК '+REKNew.Text, // имя рабочего бизнес-процесса
        LIDProcess // идентификатор типового бизнес-процесса
        ,inErrCode, stErrMess
      );
      LWFCon.AddBPDocument(LIDProcess,idNewObj,0,inErrCode, stErrMess);
      LDataSet.Data := LWFCon.GetFirstItems(LIDProcess, inErrCode, stErrMess);

      while NOT LDataSet.Eof do begin
        QAddDocumentBP(GetValue(LDataSet,'_ID_ITEM',''),idObj);
       
        //Тут можно заполнить необходимые параметры нужным элементам маршрута
       
        LDataSet.Next;
      end;
      LWFCon.SetStateOfProcess(LIDProcess, 1, inErrCode, stErrMess);
    end;
    DCOM.Free;