Author Archives: pgfeldman

Phil 11.27.12

8:00 – 2:00 ESSO

  • Discussion with Lenny and Dong about how to read in cognos data and use it to populate the FACTS fields in PPM and PA.
  • Backups
  • Working on the JDeveloper JSF tutorials – managed to crash JDeveloper.
  • Talked to Dong about next dev environments. We discussed Adobe and Netbeans in addition to what we’re using now. My thought is that if we can make a table and chart that allow us to visualize data sitting in a DB here and on site, we have a viable option. If it’s open source and supported by a player unlikely to go out of business any time soon, then so much the better.

2:00 – 4:00 FP

  • Qualitative Methods.

Phil 11.26.12

8:30 – 4:30 ESSO

  • Backups
  • More interaction with Don abo0ut what kind of visualizations he wants. Printed out a description of the putative table that we need to produce. Dong and I will try to code it tomorrow in site.
  • Put together FlexiCharts of ACC, since that appears to have vanished.
  • Got started back on JDeveloper and ADF.

Phil 11.21.12

8:00 – 4:00 ESSO

  • Meetings with everyone, Dan, Lenny, Chris.
  • Backups
  • 2:00pm meeting with Kristen
    • Meeting went well. I basically walked through how to use the Data Visualization and how PPM and PA generated data and where it was stored. We then talked about generating more graphics for her and how scripting could produce the tables she (implicitly) needs for the charts she wants.

Phil 11.20.12

7:30 – 2:30 ESSO

  • Deployed new PPM and IM
  • Discussions with Don about progress
  • Said hello to Chris
  • Discussions with Lenny, Carla and Tangie about progress
  • Discovered that the IM was broken on fgmdev, and I had forgotton how the system was set up. After a bit of help from Dong, fixed and updated the Vis2 and IM SWFs.

2:30 – 3:30 FP

  • Interview with Allison Y

Dong Shin 11.19.2012

Phil 11.19.12

7:30 – 10:00, 12:00 – 3:30 ESSO

  • Updated the truststore file on the server
  • Backups
  • Some discussions with Don about progress
  • Cleaning up the login screen on Vis2
  • Cleaning up the version info on Ingest Manager
  • Due to some different configuration data between Dong’s environment and mine, spent a few hours fishing for red herrings. Done now thoug, with a new build for tomorrow.

10:00 – 12:00 – FP

  • Contextual user interface design and metaphors

Dong Shin 11.16.2012

Phil 11.16.12

7:30 – 9:30, 11:30 – 3:30 ESSO

  • Backups
  • Working on new password
  • Looking onto Oracle ADF
    • Downloaded the Eclipse version, but it doesn’t seem as nice as JDeveloper that Dong’s using. Going to pull that one down next
    • Very nice! Need to see how to integrate with subversion

9:30- 11:30 FP

  • AV scheduling meeting

Phil 11.15.12

8:00 – 2:00 ESSO

  • Backups and meetings, oh my.
  • Working on getting Don and Lenny to focus on “report wishlists”. Meeting in two weeks to discuss?
  • Found a “duplicate project” bug(?) for Dong. He says that there are a set of criteria that Trish layed out that might be getting triggered. Need to look into that.
  • Need to clear out old password when changing password.

2:00 – 4:00 FP

  • Qualitative methods. Need to look into developing data dictionary-based mechanism for that which is able to point into AV stream.

Phil 11.14.12

8:00 – 4:00 ESSO

  • Deployed new versions of PPM, PA (new view only permissions), and Vis2 (bug fixes). Checked the fact that the bug fixes in fact do work by having Dan, my favorite bug-finding user try out this system.
  • Cleaned out old backups to free up disk space. All teh backups are still on the network drive, so this was redundant. Still keeping the most recent backups on the server in case everything goes down and I lose connectivity with the network drive, since that’s happened before.
  • Back to GWT. Rather than the book, I’m going to try something quicker. We’ll see if Google keeps up on its own technology well.
    • Made a GWT_HOME environment variable so that I can run webAppCreator.
    • That seems to be working well. Even ran everything from the command line.
    • Importing it into the IDE didn’t result in a project that was recognized as a GWT project. Had to re-create it in the IDE.
    • Stockwatcher (again)

Dong Shin 11.13.2012

  • continue working on Alerts
    • alerts that are not closed and older than 7 days query
      • SELECT *, DATEDIFF(NOW(), timestamp) AS days
        FROM ppm_alerts.alerts
        WHERE status <> ‘CLOSED’
        AND DATEDIFF(NOW(), timestamp) > 7
    • Alert_8_notResolvedIn7Days.py – not saving into alerts table, report only
    • saved table_queries – visibility_scripting.table_queries.sql

Dong Shin 11.12.2012

  • reorganizing Alerts to use new stored queries interface
    • Alert_1_30DaysOverdue.py query
      • CALL visibility_scripting.get_date_variables (@current_fy, @current_month, @previous_moth, @curruent_month_str);
        SET @previous_month_str := ‘month_’ + @previous_month;INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL,GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ’30 days overdue on Year:  + getYear() +  Month:  + getMonthStr(prevMonth) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year  =  @current_fy  – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 =  @current_fy
        AND o.year_count = 1
        AND ISNULL(@previous_month_str)
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uid;SELECT
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ’30 days overdue on Year:  + getYear() +  Month:  + getMonthStr(prevMonth) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year  =  @current_fy  – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 =  @current_fy
        AND o.year_count = 1
        AND ISNULL(@previous_month_str)
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uid;
    • Alert_2_planned_values.py
      • CALL visibility_scripting.get_date_variables (@current_fy, @current_month, @previous_moth, @curruent_month_str);
        SET @previous_month_str := ‘month_’ + @previous_month;
        SET @obligation_month_str := ‘g.obligation_month_’ + @previous_month;
        SET @outlay_month_str := ‘g.outlay_month_’ + @previous_month;INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL,
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ‘Planned values are out of acceptable range on Year:  + getYear() +  Month:  + getMonthStr(getPrevMonthNum()) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        obligations_outlays_goals g,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year = @current_fy – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 = @current_fy
        AND o.year_count = 1
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND (ISNULL(@previous_month_str) OR
        (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95))
        AND o.type = ‘Planned Obligated $:’
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uidSELECT
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ‘Planned values are out of acceptable range on Year:  + getYear() +  Month:  + getMonthStr(getPrevMonthNum()) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        obligations_outlays_goals g,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year = @current_fy – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 = @current_fy
        AND o.year_count = 1
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND (ISNULL(@previous_month_str) OR
        (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95))
        AND o.type = ‘Planned Obligated $:’
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uid
    • Alert_3_FMPs.py
      • CALL visibility_scripting.get_date_variables (@current_fy, @current_month, @previous_moth, @current_month_str);
        SET @previous_month_str := ‘month_’ + @previous_month;
        SET @obligation_month_str := ‘g.obligation_month_’ + @previous_month;
        SET @outlay_month_str := ‘g.outlay_month_’ + @previous_month;INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL,
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        CONCAT(‘Financial Mitigation Strategy has not changed from previous month for ‘, @current_fy, ‘ ‘, @current_month_str) as alerts,
        ‘OPEN’ as status
        FROM `financial_mitigation_plans` fmp1, financial_mitigation_plans fmp2,
        projects p, obligations_outlays o, budget_centers c,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE fmp1.obligation_outlay_uid = fmp2.obligation_outlay_uid
        AND fmp1.financial_mitigation_plan = fmp2.financial_mitigation_plan
        AND fmp1.explanation1 = fmp2.explanation1
        AND fmp1.explanation2 = fmp2.explanation2
        AND fmp1.explanation3 = fmp2.explanation3
        AND fmp1.explanation4 = fmp2.explanation4
        AND fmp1.explanation5 = fmp2.explanation5
        AND fmp1.month + 1 = fmp2.month
        AND fmp2.month = @current_month
        AND p.uid = o.project_id
        AND c.uid = o.funding_id
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        AND fmp1.obligation_outlay_uid IN
        (SELECT o.uid
        FROM projects p, budget_centers c, budget_amounts a, obligations_outlays o, obligations_outlays_goals g
        WHERE
        p.uid = c.project_id
        AND a.budget_center_id = c.uid
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND o.year + o.year_count = @current_fy
        AND (ISNULL(@previous_month_str) OR (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95)))
        GROUP BY o.uid;SELECT
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        CONCAT(‘Financial Mitigation Strategy has not changed from previous month for ‘, @current_fy, ‘ ‘, @current_month_str) as alerts,
        ‘OPEN’ as status
        FROM `financial_mitigation_plans` fmp1, financial_mitigation_plans fmp2,
        projects p, obligations_outlays o, budget_centers c,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE fmp1.obligation_outlay_uid = fmp2.obligation_outlay_uid
        AND fmp1.financial_mitigation_plan = fmp2.financial_mitigation_plan
        AND fmp1.explanation1 = fmp2.explanation1
        AND fmp1.explanation2 = fmp2.explanation2
        AND fmp1.explanation3 = fmp2.explanation3
        AND fmp1.explanation4 = fmp2.explanation4
        AND fmp1.explanation5 = fmp2.explanation5
        AND fmp1.month + 1 = fmp2.month
        AND fmp2.month = @current_month
        AND p.uid = o.project_id
        AND c.uid = o.funding_id
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        AND fmp1.obligation_outlay_uid IN
        (SELECT o.uid
        FROM projects p, budget_centers c, budget_amounts a, obligations_outlays o, obligations_outlays_goals g
        WHERE
        p.uid = c.project_id
        AND a.budget_center_id = c.uid
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND o.year + o.year_count = @current_fy
        AND (ISNULL(@previous_month_str) OR (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95)))
        GROUP BY o.uid;
    • Alert_7_UsesNotLoggedIn30Day.py
      • INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL, NULL as porfolio_admins, NULL as portfolio_mgrs, NULL as service_finance_pocs, NULL as service_project_managers,
        ” as program, ” as MIPR, CONCAT(login, ‘ has not been logged in for more than 30 days ‘) as alert, ‘OPEN’ as status
        FROM `users` WHERE DATEDIFF(now(), last_login) > 30;SELECT NULL as porfolio_admins, NULL as portfolio_mgrs, NULL as service_finance_pocs, NULL as service_project_managers,
        ” as program, ” as MIPR, CONCAT(login, ‘ has not been logged in for more than 30 days ‘) as alert, ‘OPEN’ as status
        FROM `users` WHERE DATEDIFF(now(), last_login) > 30;