source: trunk/workflow/inc/local/classes/class.wf_natural.php @ 2751

Revision 2751, 3.2 KB checked in by rufino, 14 years ago (diff)

Ticket #1069 - Criado log para tempo de execução de atividades, ajax, e programas natural.

Line 
1<?php
2/**************************************************************************\
3* eGroupWare                                                               *
4* http://www.egroupware.org                                                *
5* --------------------------------------------                             *
6*  This program is free software; you can redistribute it and/or modify it *
7*  under the terms of the GNU General Public License as published by the   *
8*  Free Software Foundation; either version 2 of the License, or (at your  *
9*  option) any later version.                                              *
10\**************************************************************************/
11
12require_once(PHPGW_SERVER_ROOT.SEP.'workflow'.SEP.'inc'.SEP.'natural'.SEP.'class.natural.php');
13
14/**
15 * Mainframe connection to workflow
16 *
17 * TODO - This class should be removed from here. Its based on a not
18 * public protocol, thus cannot be used for everybody.
19 *
20 * @package Workflow
21 * @subpackage local
22 * @license http://www.gnu.org/copyleft/gpl.html GPL
23 * @author Everton Flávio Rufino Seára
24 */
25class wf_natural extends Natural
26{
27
28        /**
29         * @var object Log Object
30         * @access private
31         */
32        private $logger = null;
33
34        function __construct()
35        {
36                parent::Natural();
37
38                $natconf = array(
39                                        'mainframe_ip'                  => '',
40                                        'mainframe_port'                => '',
41                                        'mainframe_key'                 => '',
42                                        'mainframe_password'    => '',
43                                        'mainframe_environment' => ''
44                );
45
46                $nat_conf_values = &Factory::getInstance('workflow_wfruntime')->getConfigValues($natconf);
47
48                $this->setIPAddress($nat_conf_values['mainframe_ip']);
49                $this->setServerPort($nat_conf_values['mainframe_port']);
50                $this->setKey($nat_conf_values['mainframe_key']);
51                $this->setPassword($nat_conf_values['mainframe_password']);
52                $this->setApplication($nat_conf_values['mainframe_environment']);
53
54                $this->logger = &Factory::getInstance('Logger', array('file'));
55        }
56
57        /**
58         * This method MUST be called before using execute method
59         * It specifies the natural sub-program to be accessed.
60         *
61         * @param Object $obj Object that specifies natural sub-program properties
62         * @return void
63         */
64        public function configure($obj)
65        {
66                $this->obj = $obj;
67
68                $this->initialize($obj->name);
69
70                if ($obj->server != NULL){
71                        $this->setIPAddress($obj->server);
72                }
73                if ($obj->port != NULL){
74                        $this->setServerPort($obj->port);
75                }
76                if ($obj->key != NULL){
77                        $this->setKey($obj->key);
78                }
79                if ($obj->password != NULL){
80                        $this->setPassword($obj->password);
81                }
82                if ($obj->environment != NULL){
83                        $this->setApplication($obj->environment);
84                }
85                if ($obj->logon != NULL){
86                        $this->setLogon($obj->logon);
87                }
88                if ($obj->system != NULL){
89                        $this->setSystem($obj->system);
90                }
91                if ($obj->rc != NULL){
92                        $this->setRC($obj->rc);
93                }
94        }
95
96        /**
97         * Method for accessing and retrieving data from mainframe
98         * @return bool
99         */
100        public function execute($inputParams = "")
101        {
102                // execute action and log wasted time
103                $totalTime = microtime(true);
104                $result = parent::execute($inputParams);
105                $totalTime = microtime(time) - $totalTime;
106                $log = sprintf("WF_NATURAL [subprogram=%s] [time=%ss]",
107                                        $this->obj->name,
108                                        number_format($totalTime,3)
109                                        );
110                $this->logger->debug($log);
111                return $result;
112        }
113}
114?>
Note: See TracBrowser for help on using the repository browser.