start_batch.p 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
  2. &ANALYZE-RESUME
  3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  4. /*------------------------------------------------------------------------
  5. File :
  6. Purpose :
  7. Syntax :
  8. Description :
  9. Author(s) :
  10. Created :
  11. Notes :
  12. ----------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress AppBuilder. */
  14. /*----------------------------------------------------------------------*/
  15. /* *************************** Definitions ************************** */
  16. { v8/globvar.i "NEW" "GLOBAL" "SHARED" }
  17. { v8/debivar.i "NEW" "GLOBAL" "SHARED" }
  18. { v8/artivar.i "NEW" "GLOBAL" "SHARED" }
  19. { v8/contvar.i "NEW" "GLOBAL" "SHARED" }
  20. DEFINE VARIABLE lBatch AS LOG INIT TRUE NO-UNDO.
  21. DEFINE VARIABLE cBatch AS CHARACTER NO-UNDO.
  22. DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO.
  23. DEFINE VARIABLE cPasswort AS CHARACTER NO-UNDO.
  24. DEFINE VARIABLE cMandant AS CHARACTER NO-UNDO.
  25. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO.
  26. DEFINE VARIABLE cProgName AS CHARACTER NO-UNDO.
  27. DEFINE VARIABLE cLogName AS CHARACTER NO-UNDO.
  28. DEFINE VARIABLE cParam AS CHARACTER NO-UNDO EXTENT.
  29. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  30. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  31. DEFINE STREAM LogStream.
  32. /* _UIB-CODE-BLOCK-END */
  33. &ANALYZE-RESUME
  34. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  35. /* ******************** Preprocessor Definitions ******************** */
  36. &Scoped-define PROCEDURE-TYPE Procedure
  37. &Scoped-define DB-AWARE no
  38. /* _UIB-PREPROCESSOR-BLOCK-END */
  39. &ANALYZE-RESUME
  40. /* ************************ Function Prototypes ********************** */
  41. &IF DEFINED(EXCLUDE-getLogName) = 0 &THEN
  42. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLogName Procedure
  43. FUNCTION getLogName RETURNS CHARACTER
  44. ( /* parameter-definitions */ ) FORWARD.
  45. /* _UIB-CODE-BLOCK-END */
  46. &ANALYZE-RESUME
  47. &ENDIF
  48. &IF DEFINED(EXCLUDE-writeLogFile) = 0 &THEN
  49. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD writeLogFile Procedure
  50. FUNCTION writeLogFile RETURNS LOGICAL
  51. ( ipMessage AS CHARACTER ) FORWARD.
  52. /* _UIB-CODE-BLOCK-END */
  53. &ANALYZE-RESUME
  54. &ENDIF
  55. /* *********************** Procedure Settings ************************ */
  56. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  57. /* Settings for THIS-PROCEDURE
  58. Type: Procedure
  59. Allow:
  60. Frames: 0
  61. Add Fields to: Neither
  62. Other Settings: CODE-ONLY COMPILE
  63. */
  64. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  65. /* ************************* Create Window ************************** */
  66. &ANALYZE-SUSPEND _CREATE-WINDOW
  67. /* DESIGN Window definition (used by the UIB)
  68. CREATE WINDOW Procedure ASSIGN
  69. HEIGHT = 15
  70. WIDTH = 60.
  71. /* END WINDOW DEFINITION */
  72. */
  73. &ANALYZE-RESUME
  74. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  75. /* *************************** Main Block *************************** */
  76. { super/funktionen.i }
  77. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  78. DO WHILE TRUE:
  79. IF ENTRY(1, SESSION:PARAMETER, ';') <> 'batch' THEN LEAVE.
  80. ASSIGN
  81. cBenutzer = ''
  82. cPasswort = ''
  83. cMandant = ''
  84. cProgramm = ''
  85. cProgName = 'start_batch' NO-ERROR.
  86. cLogName = DYNAMIC-FUNCTION('getLogName':U) NO-ERROR.
  87. DO ix = 1 TO NUM-ENTRIES(SESSION:PARAMETER, ';'):
  88. CASE ix:
  89. WHEN 2 THEN
  90. cBenutzer = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR.
  91. WHEN 3 THEN
  92. cPasswort = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR.
  93. WHEN 4 THEN
  94. cMandant = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR.
  95. WHEN 5 THEN
  96. cProgramm = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR.
  97. WHEN 6 THEN
  98. cBatch = ENTRY(ix, SESSION:PARAMETER, ';') NO-ERROR.
  99. WHEN 7 THEN
  100. LEAVE.
  101. END CASE.
  102. END.
  103. IF cBatch BEGINS 'n' THEN lBatch = FALSE.
  104. ELSE lBatch = TRUE.
  105. IF ix = 7 THEN
  106. DO:
  107. i1 = NUM-ENTRIES(SESSION:PARAMETER, ';') - 6.
  108. EXTENT(cParam) = i1.
  109. i1 = 0.
  110. DO ix = 7 TO NUM-ENTRIES(SESSION:PARAMETER, ';'):
  111. i1 = i1 + 1.
  112. cParam[i1] = ENTRY(ix, SESSION:PARAMETER, ';').
  113. DYNAMIC-FUNCTION('writeLogFile':U, cParam[i1]) NO-ERROR.
  114. END.
  115. END.
  116. FIND FIRST Benutzer NO-LOCK USE-INDEX Benutzer-k1
  117. WHERE Benutzer.Benutzer = cBenutzer
  118. AND Benutzer.Kennwort = cPasswort NO-ERROR.
  119. IF NOT AVAILABLE Benutzer THEN
  120. DO:
  121. cString = SUBSTITUTE('Benutzer &1 mit Kennwort &2 ungültig', cBenutzer, cPasswort).
  122. DYNAMIC-FUNCTION('writeLogFile':U, cString) NO-ERROR.
  123. LEAVE.
  124. END.
  125. FIND Mandant NO-LOCK USE-INDEX Mandant-k1
  126. WHERE Mandant.Firma = cMandant NO-ERROR.
  127. IF NOT AVAILABLE Mandant THEN
  128. DO:
  129. cString = SUBSTITUTE('Mandat &1 ungültig', cMandant).
  130. DYNAMIC-FUNCTION('writeLogFile':U, cString) NO-ERROR.
  131. LEAVE.
  132. END.
  133. IF cProgramm = '' THEN
  134. DO:
  135. DYNAMIC-FUNCTION('writeLogFile':U, 'Kein Programm als Parameter vorhanden') NO-ERROR.
  136. LEAVE.
  137. END.
  138. cString = cBenutzer + CHR(01) + cPasswort + CHR(01) + cMandant.
  139. RUN ANMELDUNG ( INPUT cString ).
  140. RUN AUFTRAGFUNKTIONENINIT.
  141. cString = SUBSTITUTE('Programm &1 wird von Benutzer &2 gestartet', cProgramm, cBenutzer).
  142. DYNAMIC-FUNCTION('writeLogFile':U, cString) NO-ERROR.
  143. DYNAMIC-FUNCTION('setBatch':U, lBatch) NO-ERROR.
  144. RUN VALUE(cProgramm) (INPUT cParam) NO-ERROR.
  145. IF ERROR-STATUS:ERROR THEN
  146. DO:
  147. cString = SUBSTITUTE('Programm &1 mit Fehler &2 beendet', cProgramm, ERROR-STATUS:GET-MESSAGE(1)).
  148. DYNAMIC-FUNCTION('writeLogFile':U, cString) NO-ERROR.
  149. LEAVE.
  150. END.
  151. cString = SUBSTITUTE('Programm &1 beendet', cProgramm).
  152. DYNAMIC-FUNCTION('writeLogFile':U, cString) NO-ERROR.
  153. LEAVE.
  154. END.
  155. QUIT.
  156. /* _UIB-CODE-BLOCK-END */
  157. &ANALYZE-RESUME
  158. /* ************************ Function Implementations ***************** */
  159. &IF DEFINED(EXCLUDE-getLogName) = 0 &THEN
  160. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLogName Procedure
  161. FUNCTION getLogName RETURNS CHARACTER
  162. ( /* parameter-definitions */ ) :
  163. /*------------------------------------------------------------------------------
  164. Purpose:
  165. Notes:
  166. ------------------------------------------------------------------------------*/
  167. DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
  168. GET-KEY-VALUE SECTION 'GrundEinstellungen'
  169. KEY 'Ge_MIS_TEMP'
  170. VALUE cPath.
  171. IF cPath = '' OR
  172. cPath = ? THEN cPath = SESSION:TEMP-DIRECTORY.
  173. IF SUBSTRING(cPath, LENGTH(cPath), 01) <> '/' AND
  174. SUBSTRING(cPath, LENGTH(cPath), 01) <> '\' THEN cPath = cPath + '\'.
  175. cPath = cPath
  176. + cProgName
  177. + '-'
  178. + REPLACE(STRING(TODAY,'99.99.9999'), '.', '')
  179. + '.Log'.
  180. RETURN cPath.
  181. END FUNCTION.
  182. /* _UIB-CODE-BLOCK-END */
  183. &ANALYZE-RESUME
  184. &ENDIF
  185. &IF DEFINED(EXCLUDE-writeLogFile) = 0 &THEN
  186. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION writeLogFile Procedure
  187. FUNCTION writeLogFile RETURNS LOGICAL
  188. ( ipMessage AS CHARACTER ) :
  189. /*------------------------------------------------------------------------------
  190. Purpose:
  191. Notes:
  192. ------------------------------------------------------------------------------*/
  193. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  194. cString = SUBSTITUTE('&1 &2 -> &3', STRING(TODAY,'99.99.9999'), STRING(TIME,'HH:MM:SS'), ipMessage).
  195. OUTPUT STREAM LogStream TO VALUE(cLogName) APPEND.
  196. PUT STREAM LogStream CONTROL cString CHR(10).
  197. OUTPUT STREAM LogStream CLOSE.
  198. RETURN TRUE.
  199. END FUNCTION.
  200. /* _UIB-CODE-BLOCK-END */
  201. &ANALYZE-RESUME
  202. &ENDIF