| 
			
			 | 
		#1 | 
| 
			
			 китайский стажер 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Нужен отчетик по тому, какие объекты менялись, когда, кем и желательно знать с каким проектом это связано. 
		
		
		
		
		
		
		
	Интернет на эту тему молчит (или ищу плохо...). Единственное упоминание: здесь, но я пока не понимаю как он это сделал. Может кто-нибудь даст дельный совет? Спасибо!  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Мрачный тип 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А он там ничего и не сделал вообще-то ... 
		
		
		
		
		
		
			Наивный чукотский мальчик из отсюда попытался logging включить на файле пользовательского слоя и с его помощью отследить изменения на этом файле и строить отчет по этим изменениям. Ему невдомек , что файл в хранилище приложения может изменяться не сразу, как нажали кнопку "сохранить". Плюс отсуствие инфы о пользователе, сделавшем изменение, в принципе имеет место быть - менять будет AOS, запущенный под специальной учеткой. Тупиковый вариант, без вариантов. Вот если бы класс TreeNode не был закрыт, то модифицировав его методы по работе с AOT можно было бы вести некое журналирование. Но в нашей ситуации - IMHO нерешаемо 
				__________________ 
		
		
		
		
		
			Мы летаем, кружимся, нагоняем ужасы ... Последний раз редактировалось TasmanianDevil; 17.07.2008 в 08:55.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
каждое изменение объектов будет проходить процедуру checkin/checkout в VSS. В 4ке реализовано не очень хорошо. В 5ке развили эту идею.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Qaz Qwerty (1). | |
| 
			
			 | 
		#4 | 
| 
			
			 китайский стажер 
		
			
	 | 
	
	
	
		
		
		
		 
			
			mazzy, спасибо, появился повод посмотреть в сторону VSS... Пока ничего не понятно, но может шеф даст указ разобраться. 
		
		
		
		
		
		
		
	Пока получился вот такое текст: X++: UtilElements _UtilElements;
Issi_utilversionwritetrack tmptable;
treenode node;
TimeOfDay TimeFrom, TimeTo;
;
    #OCCRetryCount
    if (! this.validate())
        throw error("");
    try
    {
//        ttsbegin;
if ( DateFrom <= str2date('01-01-1901',123) && DateTo <= str2date('01-01-1901',123))
{
    DateFrom = systemdateget();
    DateTo = systemdateget();
    TimeFrom = timenow() - 360;
    TimeTo = timenow();
}
else
{
    TimeFrom = str2time('00:00:00');
  TimeTo = str2time('23:59:59');
}
while select _utilelements where
        ((_utilElements.CreatedDate <= DateTo &&
        _utilElements.CreatedDate >= DateFrom ) &&
        (_utilElements.CreatedTime <= TimeTo &&
        _utilElements.CreatedTime >= TimeFrom  )) ||
        (( _utilElements.ModifiedDate <= DateTo &&
        (_utilElements.ModifiedDate >= DateFrom ) &&
        (_utilElements.ModifiedTime <= TimeTo &&
        _utilElements.ModifiedTime >= TimeFrom ))
        )
{
    tmptable.RecordType = enum2Value(_utilElements.RecordType);
    tmptable.Name = _utilElements.Name;
    tmptable.ParentId = utilElements.ParentId;
    tmptable.parentName = xUtilElements::parentName(_utilElements);
    tmptable.SaveCount = _utilElements.SaveCount;
    tmptable.Version = _utilElements.version;
    tmptable.BaseVersion = _utilElements.baseVersion;
    tmptable.UtilLevel = enum2Value(_utilElements.utilLevel);
    node = xUtilElements::getnode(_utilElements);
    tmptable.Path =  (node)?node.treeNodePath():'';
    if ( _utilElements.ModifiedBy == '')
            tmptable.UtilModifiedBy =  _utilElements.CreatedBy;
    else
        tmptable.UtilModifiedBy = _utilElements.ModifiedBy;
    if ( (_utilElements.ModifiedDate) <= str2date('01-01-1901',123))
            tmptable.UtilModifiedDate = _utilElements.CreatedDate;
    else tmptable.UtilModifiedDate = _utilElements.ModifiedDate;
    if ( (_utilElements.ModifiedTime) == str2time('00:00:00'))
            tmptable.UtilModifiedTime =  _utilElements.CreatedTime;
    else tmptable.UtilModifiedTime =  _utilElements.ModifiedTime;
    tmptable.UtilRecId =  _utilElements.RecId;
    tmptable.insert();
} | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Если о DAX4 и выше, то смотрите в сторону VSS.
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Гость 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 MCT 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			А в какую сторону смотреть в DAX3 ??
		
	 
 | 
| 
	
 | 
| Теги | 
| ax4.0 | 
| 
	
	 | 
	
		
  |