Generic - Object Relationship CSV Parser


This topic describes how to configure and use object relationship CSV parser, that allows to describe custom relationships among entities in BMC Helix Continuous Optimization.

Running this ETL connector creates a hierarchy rule; for more information, see Viewing-and-running-hierarchy-rules

Integration steps

To integrate BMC Helix Continuous Optimization with the Object Relationship CSV parser:

  1. Navigate to Administration > ETL & SYSTEM TASKS > ETL tasks.
  2. In the ETL tasks page, click Add > Add ETL under the Last run tab.
  3. In the Add ETL page, set values for the following properties under each expandable tab. 

    Note

    Basic properties are displayed by default in the Add ETL page. These are the most common properties that you can set for an ETL, and it is acceptable to leave the default selections for each as is.

    Basic properties

    Note

    To view or configure Advance properties, click Advanced. You do not need to set or modify these properties unless you want to change the way the ETL works. These properties are for advanced users and scenarios only.

    Advanced properties

  4. Click Save.
    You return to the Last run tab under the ETL tasks page.
  5. Validate the results in simulation mode: In the ETL tasks table under ETL tasks > Last run, locate your ETL (ETL task name), click run_etl.png 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.
  6. Switch the ETL to production mode: To do this, perform the following task:
    1. In the ETL tasks table under ETL tasks > Last run, click the ETL under the Name column.
    2. In the Run configurations table in the ETL details page, click edit icon.png to edit the active run configuration.
    3. In the Edit run configuration page, navigate to the Run configuration expandable tab and set Execute in simulation mode to No.
    4. Click Save.
  7. Locate the ETL in the ETL tasks table and click run_etl.png 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

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;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;APP;Development;Development;;;svc
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;APP;Support;Support;;;svc
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

Structure is strictly aligned with OBJREL dataset format.


Click here to view the details of the above displayed input file...

 2016-01-01 00:00:00;ASSERT;APP;Development;Development;APP;_ROOTAPP_
Indicates that an APP object named Development exists in the _ROOTAPP_. In this case the value of _ROOTAPP_  is ACME Services.


2016-01-01 00:00:00;ASSERT;APP;Support;Support;APP;_ROOTAPP_
Indicates that an APP object named Support exists in the _ROOTAPP_.

2016-01-01 00:00:00;ASSERT;SYS;appsrv101;appsrv101.domain.com;;;asIndicates that a SYS object named appsrv101 of type as exists.


2016-01-01 00:00:00;ASSERT;SYS;dbsrv102;dbsrv102.domain.com;;;db
Indicates that a SYS object named dbsrv102 of type db exists.


2016-01-01 00:00:00;ASSERT;SYS;websrv103;websrv103.domain.com;;;wss
Indicates that a SYS object named websrv103 of type wss exists.


2016-01-01 00:00:00;ASSERT;SYS;appsrv104;appsrv104.domain.com;;;asIndicates that a SYS object named appsrv104 of type as exists.


2016-01-01 00:00:00;ASSERT;SYS;dbsrv105;dbsrv105.domain.com;;;db
Indicates that a SYS object named dbsrv105 of type db exists.


2016-01-01 00:00:00;ASSERT;SYS;websrv106;websrv106.domain.com;;;wss
Indicates that a SYS object named websrv106 of type wss exists.

2016-01-01 00:00:00;ASSERT;APP;Development;Development;;;svcIndicates that an APP object named Development of type svc exists.

2016-01-01 00:00:00;ASSERT;SYS;appsrv101;appsrv101.domain.com;APP;Development;asIndicates that a SYS object named appsrv101 is the child of an APP object named Development.


2016-01-01 00:00:00;ASSERT;SYS;dbsrv102;dbsrv102.domain.com;APP;Development;dbIndicates that a SYS object named dbsrv102 is the child of an APP object named Development.


2016-01-01 00:00:00;ASSERT;SYS;websrv103;websrv103.domain.com;APP;Development;wssIndicates that a SYS object named websrv103 is the child of an APP object named Development.


2016-01-01 00:00:00;ASSERT;APP;Support;Support;;;svc
Indicates that an APP object named Support of type svc exists.

2016-01-01 00:00:00;ASSERT;SYS;appsrv104;appsrv104.domain.com;APP;Support;asIndicates that a SYS object named appsrv104 is the child of an APP object named Support.


2016-01-01 00:00:00;ASSERT;SYS;dbsrv105;dbsrv105.domain.com;APP;Support;dbIndicates that a SYS object named dbsrv105 is the child of an APP object named Support.


2016-01-01 00:00:00;ASSERT;SYS;websrv106;websrv106.domain.com;APP;Support;wssIndicates that a SYS object named websrv106 is the child of an APP object named Support.

Note

When you are defining:

  • An object, the ENTCATNMPARENT and DS_ENTNMPARENT columns do not contain any values.
  • A relationship between objects, the ENTCATNMPARENT and DS_ENTNMPARENT columns contain the required values.

As an example, a CSV file that contains the lines in the example above produces the following tree structure:

hier.jpg

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*