Generic - Object Relationship CSV Parser
Integration steps
To integrate BMC Helix Continuous Optimization with the Object Relationship CSV parser:
- Navigate to Administration > ETL & SYSTEM TASKS > ETL tasks.
- In the ETL tasks page, click Add > Add ETL under the Last run tab.
In the Add ETL page, set values for the following properties under each expandable tab.
Basic properties
Advanced properties
- Click Save.
You return to the Last run tab under the ETL tasks page. - Validate the results in simulation mode: In the ETL tasks table under ETL tasks > Last run, locate your ETL (ETL task name), click
to run the ETL.
After you run the ETL, the Last exit column in the ETL tasks table will display one of the following values:- OK: The ETL executed without any error in simulation mode.
- WARNING: The ETL execution returned some warnings in simulation mode. Check the ETL log.
- ERROR: The ETL execution returned errors and was unsuccessful. Edit the active Run configuration and try again.
- Switch the ETL to production mode: To do this, perform the following task:
- In the ETL tasks table under ETL tasks > Last run, click the ETL under the Name column.
- In the Run configurations table in the ETL details page, click
to edit the active run configuration.
- In the Edit run configuration page, navigate to the Run configuration expandable tab and set Execute in simulation mode to No.
- Click Save.
- Locate the ETL in the ETL tasks table and click
to Run it, or schedule an ETL run.
After you run the ETL, or schedule the ETL for a run, it will extract the data form the source and transfer it to the BMC Helix Continuous Optimization database.
Creating a valid CSV file containing relations
The input file has the following format:
TS;CHANGETYPE;ENTCATNM;ENTNM;DS_ENTNM;ENTCATNMPARENT;DS_ENTNMPARENT;ENTTYPENM
2016-01-01 00:00:00;ASSERT;APP;Development;Development;;;svc
2016-01-01 00:00:00;ASSERT;APP;Support;Support;;;svc
2016-01-01 00:00:00;ASSERT;APP;Development;Development;APP;_ROOTAPP_
2016-01-01 00:00:00;ASSERT;APP;Support;Support;APP;_ROOTAPP_
2016-01-01 00:00:00;ASSERT;SYS;appsrv101;appsrv101.domain.com;;;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv102;dbsrv102.domain.com;;;db
2016-01-01 00:00:00;ASSERT;SYS;websrv103;websrv103.domain.com;;;wss
2016-01-01 00:00:00;ASSERT;SYS;appsrv104;appsrv104.domain.com;;;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv105;dbsrv105.domain.com;;;db
2016-01-01 00:00:00;ASSERT;SYS;websrv106;websrv106.domain.com;;;wss
2016-01-01 00:00:00;ASSERT;SYS;appsrv101;appsrv101.domain.com;APP;Development;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv102;dbsrv102.domain.com;APP;Development;db
2016-01-01 00:00:00;ASSERT;SYS;websrv103;websrv103.domain.com;APP;Development;wss
2016-01-01 00:00:00;ASSERT;SYS;appsrv104;appsrv104.domain.com;APP;Support;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv105;dbsrv105.domain.com;APP;Support;db
2016-01-01 00:00:00;ASSERT;SYS;websrv106;websrv106.domain.com;APP;Support;wss
2016-01-01 00:00:00;ASSERT;APP;Development;Development;;;svc
2016-01-01 00:00:00;ASSERT;APP;Support;Support;;;svc
2016-01-01 00:00:00;ASSERT;APP;Development;Development;APP;_ROOTAPP_
2016-01-01 00:00:00;ASSERT;APP;Support;Support;APP;_ROOTAPP_
2016-01-01 00:00:00;ASSERT;SYS;appsrv101;appsrv101.domain.com;;;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv102;dbsrv102.domain.com;;;db
2016-01-01 00:00:00;ASSERT;SYS;websrv103;websrv103.domain.com;;;wss
2016-01-01 00:00:00;ASSERT;SYS;appsrv104;appsrv104.domain.com;;;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv105;dbsrv105.domain.com;;;db
2016-01-01 00:00:00;ASSERT;SYS;websrv106;websrv106.domain.com;;;wss
2016-01-01 00:00:00;ASSERT;SYS;appsrv101;appsrv101.domain.com;APP;Development;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv102;dbsrv102.domain.com;APP;Development;db
2016-01-01 00:00:00;ASSERT;SYS;websrv103;websrv103.domain.com;APP;Development;wss
2016-01-01 00:00:00;ASSERT;SYS;appsrv104;appsrv104.domain.com;APP;Support;as
2016-01-01 00:00:00;ASSERT;SYS;dbsrv105;dbsrv105.domain.com;APP;Support;db
2016-01-01 00:00:00;ASSERT;SYS;websrv106;websrv106.domain.com;APP;Support;wss
The structure is strictly aligned with the OBJREL dataset format.
As an example, a CSV file that contains the lines in the example above produces the following tree structure:
The CSV file should provide all entities assertion and parent/child relationships among all entities. Remember to assert all entities before providing relations. For entity assertion, following fields are required:
For asserting relations, the following fields are required:
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*