&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure /*------------------------------------------------------------------------ File : Purpose : Syntax : Description : Author(s) : Created : Notes : ----------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* *************************** Definitions ************************** */ DEFINE VARIABLE cUser AS CHARACTER NO-UNDO. DEFINE VARIABLE lBatch AS LOG NO-UNDO INIT TRUE . DEFINE VARIABLE cLogName AS CHARACTER NO-UNDO. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO. DEFINE VARIABLE lAnmeldung AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE cPasswort AS CHARACTER NO-UNDO. DEFINE VARIABLE cMandant AS CHARACTER NO-UNDO. DEFINE STREAM LogStream. { super/funktionen.i } { incl/windefinition.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE Procedure &Scoped-define DB-AWARE no /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &IF DEFINED(EXCLUDE-getIsWorkingFlag) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getIsWorkingFlag Procedure FUNCTION getIsWorkingFlag RETURNS LOGICAL ( ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF &IF DEFINED(EXCLUDE-getLogfileName) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLogfileName Procedure FUNCTION getLogfileName RETURNS CHARACTER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF &IF DEFINED(EXCLUDE-setIsWorkingFlag) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setIsWorkingFlag Procedure FUNCTION setIsWorkingFlag RETURNS LOGICAL ( ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: Procedure Allow: Frames: 0 Add Fields to: Neither Other Settings: CODE-ONLY COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW Procedure ASSIGN HEIGHT = 15 WIDTH = 60. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure /* *************************** Main Block *************************** */ DEFINE VARIABLE cRetVal AS CHARACTER NO-UNDO. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO. Progname = ENTRY(1, THIS-PROCEDURE:NAME, '.'). ETIME(TRUE). RUN ANMELDEN. IF NOT lAnmeldung THEN QUIT. cLogName = DYNAMIC-FUNCTION ('getLogfileName':U) NO-ERROR. SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR. IF SAktiv = ? THEN SAktiv = FALSE. IF NOT sAktiv THEN DO: cMessage = 'Anmeldung nicht möglich / nicht geklappt '. RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR. QUIT. END. AdFirma = DYNAMIC-FUNCTION('getAdMandant':U) NO-ERROR. FBFirma = DYNAMIC-FUNCTION('getFBMandant':U) NO-ERROR. Firma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR. cUser = DYNAMIC-FUNCTION('getBenutzer') NO-ERROR. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR. cMessage = SUBSTITUTE('Programm &1 gestartet', ProgName). RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR. lRetVal = DYNAMIC-FUNCTION ('setIsWorkingFlag':U). DO WHILE TRUE: PAUSE 5 NO-MESSAGE. lRetVal = DYNAMIC-FUNCTION ('getIsWorkingFlag':U). IF NOT lRetVal THEN LEAVE. iAnz = iAnz + 1. IF iAnz MOD 5 > 0 THEN NEXT. OS-COMMAND '..\BatchTasks\kill_taskjob_batchdruck-control.cmd'. PAUSE 15 NO-MESSAGE. OS-COMMAND '..\BatchTasks\start_taskjob_batchdruck-control.cmd'. cMessage = SUBSTITUTE('Programm nach einer Laufzeit von &1 Sekunden beendet', ETIME / 1000 ). RUN writeLogfile.p ( ProgName, cLogName, cMessage ) NO-ERROR. LEAVE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &IF DEFINED(EXCLUDE-getIsWorkingFlag) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getIsWorkingFlag Procedure FUNCTION getIsWorkingFlag RETURNS LOGICAL ( ): /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE BUFFER bTabel FOR Tabel. FIND Tabel NO-LOCK WHERE Tabel.Firma = Firma AND Tabel.Recart = 'BATCHDRUCK' AND Tabel.CodeC = 'LAGER' AND Tabel.CodeI = 0 AND Tabel.Sprcd = 0 NO-ERROR. IF NOT AVAILABLE Tabel THEN RETURN FALSE. RETURN (IF Tabel.Flag_1 = FALSE THEN FALSE ELSE TRUE). END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF &IF DEFINED(EXCLUDE-getLogfileName) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLogfileName Procedure FUNCTION getLogfileName RETURNS CHARACTER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE cPath AS CHARACTER NO-UNDO. cPath = DYNAMIC-FUNCTION ('getLogFilePfad':U) NO-ERROR. cPath = cPath + Progname + '_' + REPLACE(STRING(TODAY,'99.99.9999'), '.', '') + '.Log'. RETURN cPath. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF &IF DEFINED(EXCLUDE-setIsWorkingFlag) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setIsWorkingFlag Procedure FUNCTION setIsWorkingFlag RETURNS LOGICAL ( ): /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE BUFFER bTabel FOR Tabel. FIND Tabel NO-LOCK WHERE Tabel.Firma = Firma AND Tabel.Recart = 'BATCHDRUCK' AND Tabel.CodeC = 'LAGER' AND Tabel.CodeI = 0 AND Tabel.Sprcd = 0 NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: REPEAT TRANSACTION ON ERROR UNDO, LEAVE: CREATE Tabel. ASSIGN Tabel.Firma = Firma Tabel.Recart = 'BATCHDRUCK' Tabel.CodeC = 'LAGER' Tabel.CodeI = 0 Tabel.Sprcd = 0 Tabel.Flag_1 = TRUE Tabel.Flag_2 = FALSE. RELEASE Tabel. LEAVE. END. RETURN TRUE. END. REPEAT TRANSACTION ON ERROR UNDO, LEAVE: FIND bTabel WHERE RECID(bTabel) = RECID(Tabel). ASSIGN bTabel.Flag_1 = TRUE . RELEASE bTabel. LEAVE. END. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF /* ********************** Internal Procedures *********************** */ &IF DEFINED(EXCLUDE-ANMELDEN) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANMELDEN Procedure PROCEDURE ANMELDEN: /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. cLogName = SUBSTITUTE('&1&2', SESSION:TEMP-DIRECTORY, Progname + '.log'). DO WHILE TRUE: IF ENTRY(1, SESSION:PARAMETER, ';') <> 'batch' THEN LEAVE. ASSIGN cBenutzer = '' cPasswort = '' cMandant = ''. DO ix = 1 TO NUM-ENTRIES(SESSION:PARAMETER, ';'): CASE ix: WHEN 2 THEN cBenutzer = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR. WHEN 3 THEN cPasswort = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR. WHEN 4 THEN cMandant = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR. WHEN 5 THEN lBatch = FALSE NO-ERROR. END CASE. END. DYNAMIC-FUNCTION('setBatch':U, lBatch) NO-ERROR. FIND FIRST Benutzer NO-LOCK USE-INDEX Benutzer-k1 WHERE Benutzer.Benutzer = cBenutzer AND Benutzer.Kennwort = cPasswort NO-ERROR. IF NOT AVAILABLE Benutzer THEN DO: cString = SUBSTITUTE('Benutzer &1 mit Kennwort &2 ungültig', cBenutzer, cPasswort). RUN writeLogFile.p (Progname, cLogName, cString) NO-ERROR. LEAVE. END. FIND Mandant NO-LOCK USE-INDEX Mandant-k1 WHERE Mandant.Firma = cMandant NO-ERROR. IF NOT AVAILABLE Mandant THEN DO: cString = SUBSTITUTE('Mandat &1 ungültig', cMandant). RUN writeLogFile.p (Progname, cLogName, cString) NO-ERROR. LEAVE. END. cString = cBenutzer + CHR(01) + cPasswort + CHR(01) + cMandant. RUN ANMELDUNG ( INPUT cString ). RUN AUFTRAGFUNKTIONENINIT. lAnmeldung = TRUE. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF