Подшивка и backup проектов в автоматическом ре

 
Parents
  • Вот что уменя получилось используя инфу с сайта авевы:
    Я тут посмотрел что есть у Авевы на русском сайте, в итоге получил вот такое:

    - Локальные папки на сервере, куда будем отчет формировать
    !folders[1]='d:\log\night\database\'
    !folders[1]='d:\log\night\piping\'
    do !x from 1 to !folders.Size(
    !fo = object file(‘$!folders[$!x]‘)
    if (!fo.Exists().Not()) then
    !comm = |SYSCOM ‘MKDIR $!folders[$!x]‘|
    $!comm
    endif
    enddo
    –Блок 1. EXPUNGE ALL CLAMILISTS/USERS BEFORE
    –(УБРАТЬ ИЗ ПРОЕКТА ВСЕХ ПОЛЬЗОВАТЕЛЕЙ ПЕРЕД ПРОДОЛЖЕНИЕМ)
    –Переходим в модуль Admin
    ADMIN
    –выполняем команду удаления
    EXPUNGE
    –проходим по всем базам данных и удаляем из клеймлистов
    VAR !DBS COLLECT ALL DB
    do!x from 1 to !DBS.Size()
    !DBNA = !DBS[!X].Dbref().Name.After(‘/*’)
    EXPUNGE DB $!DBNA
    HANDLE (1,271)(1,273)
    –если база не-MULTIWRITE или FOREIGN
    ENDHANDLE
    ENDDO

    –Блок 2. CHECK DATABASES
    –ПРОВЕРКА БАЗ ДАННЫХ
    -собираем все базы и конструируем лог-файл
    VAR !DBS COLL ALL DB
    !outputLOG = object array()
    !outputLOGFILE = object file(‘$!folders[1]‘ + ‘!TotalLOG-DB.log’)

    VAR !mdbn MDB
    –команда задания опций проверки
    CHECKOPTION EXT CHECK PREF $!mdbn

    do !x from 1 to !DBS.Size()
    –пропускаем если база является Foreign
    skip if (!DBS[!x].DbRef().Fore EQ ‘FOREIGN’)
    !dbName = !DBS[!x].DbRef().Name

    !nfile = ‘$!folders[1]‘ & !DBS[!x].DbRef().Name.After(‘/*’).Replace(‘/’,'!’) & ‘.txt’

    ALPHA LOG/$!nfile OVER
    !dbN = !DBS[!x].DbRef().Name.After(‘/*’)
    –выполняем команду причем результаты будут записаны в спец.файл (первый лог)
    CHECK DB $!dbN
    ALPHA LOG END

    –проверяем получившийся лог-файл
    –на предмет нахождения фатальных ошибок
    !logfile = object file(!nfile)
    !logfileRead = !logfile.ReadFile()
    if (!logfileRead[!logfileRead.Size() - 1].Matchwild(‘*Database has no structural errors*’).Not()) then
    !outputLOG.Append(‘DBS $!dbName : обнаружены несоответствия.. Необходима проверка…’)
    endif
    do !y from 1 to !logfileRead.Size()
    if (!logfileRead[!y].Matchwild(‘*invalid*’) OR !logfileRead[!y].Matchwild(‘*unknown*’)) then
    !outputLOG.Append(‘DBS $!dbName : обнаружены несоответствия.. Необходима проверка…’)
    SKIP
    endif
    enddo
    enddo
    –выводим результыта проверки первого лог-файла во второй лог файл
    !outputLOGFILE.WriteFile(‘OVERWRITE’,!outputLOG)

    –Блок 3. Подшивка сессий
    –Не использовать если в проекте используется механизм работы с сессиями
    –для анализа изменений, возврата, контроля работы пользователей или Global
    –использовать только при необходимости уменьшения физического
    –объема данных проекта на жестком диске)
    ADMIN
    VAR !DBS COLL ALL DB
    do !x from 1 to !DBS.Size()
    skip if (!DBS[!x].DbRef().Fore EQ ‘FOREIGN’)
    !mergewhere = !DBS[!x].DbRef().Name.After(‘/*’)
    MERGE CHAN $!mergewhere
    HANDLE (1,18)(1,293)
    –FOR FOREIGN
    ENDHANDLE
    enddo
    finish

    После всего этого планирую запускать архивацию батником.
Reply
  • Вот что уменя получилось используя инфу с сайта авевы:
    Я тут посмотрел что есть у Авевы на русском сайте, в итоге получил вот такое:

    - Локальные папки на сервере, куда будем отчет формировать
    !folders[1]='d:\log\night\database\'
    !folders[1]='d:\log\night\piping\'
    do !x from 1 to !folders.Size(
    !fo = object file(‘$!folders[$!x]‘)
    if (!fo.Exists().Not()) then
    !comm = |SYSCOM ‘MKDIR $!folders[$!x]‘|
    $!comm
    endif
    enddo
    –Блок 1. EXPUNGE ALL CLAMILISTS/USERS BEFORE
    –(УБРАТЬ ИЗ ПРОЕКТА ВСЕХ ПОЛЬЗОВАТЕЛЕЙ ПЕРЕД ПРОДОЛЖЕНИЕМ)
    –Переходим в модуль Admin
    ADMIN
    –выполняем команду удаления
    EXPUNGE
    –проходим по всем базам данных и удаляем из клеймлистов
    VAR !DBS COLLECT ALL DB
    do!x from 1 to !DBS.Size()
    !DBNA = !DBS[!X].Dbref().Name.After(‘/*’)
    EXPUNGE DB $!DBNA
    HANDLE (1,271)(1,273)
    –если база не-MULTIWRITE или FOREIGN
    ENDHANDLE
    ENDDO

    –Блок 2. CHECK DATABASES
    –ПРОВЕРКА БАЗ ДАННЫХ
    -собираем все базы и конструируем лог-файл
    VAR !DBS COLL ALL DB
    !outputLOG = object array()
    !outputLOGFILE = object file(‘$!folders[1]‘ + ‘!TotalLOG-DB.log’)

    VAR !mdbn MDB
    –команда задания опций проверки
    CHECKOPTION EXT CHECK PREF $!mdbn

    do !x from 1 to !DBS.Size()
    –пропускаем если база является Foreign
    skip if (!DBS[!x].DbRef().Fore EQ ‘FOREIGN’)
    !dbName = !DBS[!x].DbRef().Name

    !nfile = ‘$!folders[1]‘ & !DBS[!x].DbRef().Name.After(‘/*’).Replace(‘/’,'!’) & ‘.txt’

    ALPHA LOG/$!nfile OVER
    !dbN = !DBS[!x].DbRef().Name.After(‘/*’)
    –выполняем команду причем результаты будут записаны в спец.файл (первый лог)
    CHECK DB $!dbN
    ALPHA LOG END

    –проверяем получившийся лог-файл
    –на предмет нахождения фатальных ошибок
    !logfile = object file(!nfile)
    !logfileRead = !logfile.ReadFile()
    if (!logfileRead[!logfileRead.Size() - 1].Matchwild(‘*Database has no structural errors*’).Not()) then
    !outputLOG.Append(‘DBS $!dbName : обнаружены несоответствия.. Необходима проверка…’)
    endif
    do !y from 1 to !logfileRead.Size()
    if (!logfileRead[!y].Matchwild(‘*invalid*’) OR !logfileRead[!y].Matchwild(‘*unknown*’)) then
    !outputLOG.Append(‘DBS $!dbName : обнаружены несоответствия.. Необходима проверка…’)
    SKIP
    endif
    enddo
    enddo
    –выводим результыта проверки первого лог-файла во второй лог файл
    !outputLOGFILE.WriteFile(‘OVERWRITE’,!outputLOG)

    –Блок 3. Подшивка сессий
    –Не использовать если в проекте используется механизм работы с сессиями
    –для анализа изменений, возврата, контроля работы пользователей или Global
    –использовать только при необходимости уменьшения физического
    –объема данных проекта на жестком диске)
    ADMIN
    VAR !DBS COLL ALL DB
    do !x from 1 to !DBS.Size()
    skip if (!DBS[!x].DbRef().Fore EQ ‘FOREIGN’)
    !mergewhere = !DBS[!x].DbRef().Name.After(‘/*’)
    MERGE CHAN $!mergewhere
    HANDLE (1,18)(1,293)
    –FOR FOREIGN
    ENDHANDLE
    enddo
    finish

    После всего этого планирую запускать архивацию батником.
Children
No Data