1. IRT 2403 release notes

  1. [Change Management, CPI] Added a possibility to test CPI groovy functions from Figaf tool.

  2. [Change Management, CPI, Integration Suite] Added a possibility to create a new groovy script and/or XSLT mapping. Go to Add groovy script or XSLT mapping to IFlow for more details.

  3. [Change Management, CPI, Integration Suite] Added a possibility to rename scripts and mapping objects (both XSLT and Message Mapping). Go to Rename resources of IFlow for more details.

  4. [PI→CPI Migration] Added information dialog appearing if there are some missing links for a message mapping.

  5. [Common, Integration Suite] Supported connectivity to SMTP server via cloud connector when app is deployed on SAP BTP deployment, Cloud Foundry.

  6. [Infrastructure] Migrated the project to Java 17 (LTS). If you use Docker distribution: standard or BTP, the tool is updated automatically. If you use on-premise standalone instance, please plan an update to Java 17 runtime as soon as possible because Java 8 runtime is deprecated and will not be supported since June 2024 (steps for update are described here).

Notes for upgrade from 2402 to 2403

  1. Changed repository for docker images. Before 2403: figaf/irt, since 2403: figaf/app. For BTP installations update manifest.yml and vars.yml accordingly or use the new version from repository.

  2. H2 database version was upgraded from 1.4.200 to 2.1.214 and database path was changed from <user_home_dir>/FigafIRT/irt-db to <user_home_dir>/FigafTool/db. If you have the standalone instance on H2 database and want to continue working with the data on it (we recommend to use H2 only for temporary evaluation and testing), it’s required to migrate database files from 1.* to 2.*. More details here.

  3. It’s required to undeploy ScriptExecutor before running the first script in IDE.

Patches

2403.1

  1. [Change Management, DevOps, CPI, Integration Suite] Added a possibility to search for existing flow steps (using the step type, name, ID, message headers, exchange properties, script file, mapping resource, global references, externalized parameters, etc). in BPMN Model with viewer dialog. The feature is available from IFlow CTT object page and in comparison dialog on transport page (Browse BPMN model with viewer for target object option).

  2. [DevOps, PRO] Extended transport changes overview to show diff between source and prepared object for transport when target object doesn’t exist (only for binary landscapes). See transport page for more details.

  3. [FIX, DevOps, CPI, Integration Suite] Fixed an issue when artifacts couldn’t be imported if access policy was configured for target object.

  4. [FIX, DevOps, CPI, Integration Suite] Improved error message when target package is locked.

2. Versioning concept

Since 2101 release the following versioning concept is applied:

<global version number>.<patch version number>

Where

  • <global version number> - is a release date, has YYMM format where YY is year and MM is month.

  • <patch version number> - includes bugfix or minor updates of global version number.

3. Requirements

Figaf Tool can be run on a local machine or a real server. Required setup is viewed in the following table:

Local machine Real server

OS

Linux, Windows 8.1/10

Java version

Java 8/17. Java 8 is deprecated.

Server configs

RAM: minimum 2GB free memory

RAM: minimum 8GB (recommended 16GB). CPUs depend on the number of tests and frequency to be performed.

Database

PostgreSQL, Oracle, MSSQL or H2.

PostgreSQL, Oracle, MSSQL or H2. If you run Figaf Tool in a Hyperscaler (AWS, Google, Azure), it is recommended to use the managed PostgreSQL database services.

SSL

-

Certificate can be installed on the server to encrypt communication.

Figaf Tool works with the following agent components:

  • SAP PI/PRO 7.31, 7.4, and 7.5.

  • SAP CPI.

  • API Management.

4. Installation

You can also learn how to install and configure Figaf Tool by watching videos in the course or read Installation on Windows or Linux.

Here you can look for articles with explained configurations and use cases.
If you have some question, please contact us by this email: [email protected].

Application components:

You can download application component from the following page: https://irt.figaf.com/download

  • irt-<version>.jar - Figaf Tool web application.

  • irt-agent-<version>.sca - (optional, only for PRO systems) this is the Agent Module. Install it on all SAP PI/PO systems where you are going to use Figaf Agent Module integration type. It’s not required because you can choose ICO Logging or SAP Log Module integration types.

To get the latest update about new functionality be sure to sign up to https://figaf.com/irt.

4.1. Agent component deployment and configuration (optional, only for PRO systems)

  1. Deploy Agent component on your development system. It can be done with NetWeaver Developer Studio or your favorite deployment tool. For the first integration it is easier just to test on one system, you can always add more systems later.

  2. Create new user:

    1. Open UMEAdminApp(/useradmin) and import users (your user should have Administrator role in the UME).

    2. Then select Overwrite Existing Data checkbox.

    3. Put the configuration below into the text area and click upload button (this step should be done on both (Agent and Test) systems). The configuration depends on the Figaf Tool tools you are going to work with:

      1. Testing Tool needs user to have SAP_XI_API_DEVELOP_J2EE (to have read/write permissions in the integration directory), SAP_XI_MONITOR_J2EE (to use AdapterMessageMonitoring WS API for fetching payloads that required for SAP Log Module integration), IRTAgent (it is created during deployment of agent component), and custom role (to send messages through created XI channel) with the following action:

        action for custome role

        Custom role example:

        [role]
        rid=SOAP_XI_SENDER
        action=ACTN.AUTH_DS.un:L$sap.com/com.sap.aii.adapter.soap.app$xi_adapter_soap_message

        Example of user to work with Testing Tool:

        [User]
        uid=IRTAGENTUser
        last_name=IRTAGENTUser
        accessibility=0
        role=SAP_XI_API_DEVELOP_J2EE;SAP_XI_MONITOR_J2EE;SOAP_XI_SENDER;IRTAgent;
      2. Operations needs user to have SAP_XI_ALERT_CONSUMER (used by Support Tool) and IRTAgent (it is created during deployment of agent component):

        [User]
        uid=IRTAGENTUser
        last_name=IRTAGENTUser
        accessibility=0
        role=SAP_XI_ALERT_CONSUMER;IRTAgent;
      3. DevOps needs user to have SAP_XI_ADMINISTRATOR_JEE (required for transports) and IRTAgent (it is created during deployment of agent component):

        [User]
        uid=IRTAGENTUser
        last_name=IRTAGENTUser
        accessibility=0
        role=SAP_XI_ADMINISTRATOR_JEE;IRTAgent;

      If you want to work with Testing Tool, Operations, and DevOps Figaf Tool tools, create user with SAP_XI_API_DEVELOP_J2EE, SAP_XI_ADMINISTRATOR_J2EE, SAP_XI_ALERT_CONSUMER, and IRTAgent (it is created during deployment of agent component) roles:

      [User]
      uid=IRTAGENTUser
      last_name=IRTAGENTUser
      accessibility=0
      role=SAP_XI_API_DEVELOP_J2EE;SAP_XI_ADMINISTRATOR_J2EE;SAP_XI_ALERT_CONSUMER;IRTAgent;
  3. Change security policy to the “Technical user” and configure passwords for created user.

  4. Open NetWeaver Administrator (/nwa), then tabs SOA → Application and Scenario Communication → Single Service Administration

    3 1 2

    Type "irt" in the search field and click "Go". Enable authentication by User ID/Password for each Figaf Tool web service (see the screenshot below):

    3 1 3

4.2. SAP PRO system user roles configuration (integration without Agent component)

You can configure connection with SAP systems by entering your user credentials (or some another available user). Be sure that the user has roles depending on the Figaf Tool tools you are going to work with:

  1. Testing Tool: SAP_XI_API_DEVELOP_J2EE (to have read/write permissions in the integration directory), SAP_XI_MONITOR_J2EE (to use AdapterMessageMonitoring WS API for fetching payloads that required for SAP Log Module integration), and custom role (to send messages through created XI channel) with the following action:

    action for custome role

    Custom role example:

    [role]
    rid=SOAP_XI_SENDER
    action=ACTN.AUTH_DS.un:L$sap.com/com.sap.aii.adapter.soap.app$xi_adapter_soap_message
  2. Operations: SAP_XI_ALERT_CONSUMER (used by Support Tool).

  3. DevOps: SAP_XI_ADMINISTRATOR_JEE (required for transports).

If you want to work with Testing Tool, Operations, and DevOps Figaf Tool tools, user should have SAP_XI_API_DEVELOP_J2EE, SAP_XI_ADMINISTRATOR_J2EE, and SAP_XI_ALERT_CONSUMER roles.

If UME authorization is enabled, you should also add a XiMdt.ExtendedMonitor role, otherwise it won’t be possible to load message payloads through AdapterMessageMonitoring web service. It affects Support Tool and Testing Tool functioinality if noninvasive integration types (without Agent component) are used.

4.3. Figaf Tool Application running

  1. Prepare database for Figaf Tool application. By default, H2 database will be used (database dir: <user_home_dir>/FigafIRT/irt-db), skip that step if you are not going to use another database system.

    It isn’t recommended to use H2 database.

    For now, you are able to use 4 database systems: H2, Oracle, PostgreSQL, MS SQL. You should configure databases, schemas and user which will be used by Figaf Tool:

    • For Oracle configure database with schema: IRT.

    • For PostgreSQL, MS SQL Server configure database with schema irt.

      Database table names must be case-insensitive in the queries. Be sure that collation parameter is configured properly.
  2. Download the Jar file.

  3. To start the server open a command prompt (Win + R → type cmd → Press enter).

  4. In the command prompt navigate to the folder where you have saved the Figaf Tool application (cd <path>).

  5. Run the application with java <proxySettings> <trustStoreType VM option> <libs path property> <Figaf Tool VM parameters> -jar <irt jar name>.jar <application properties> (see examples). Where:

    • <proxySettings> is a VM parameters that define proxies, e.g. -Dhttp.proxyHost=<host>, -Dhttp.proxyPort=<port>, -Dhttps.proxyHost=<host>, -Dhttps.proxyPort=<port>. You can find more parameters here.

    • <trustStoreType VM option> is a VM parameter -Djavax.net.ssl.trustStoreType=Windows-ROOT - it must be set if you are going to use HTTPS protocol to communicate with SAP system,

    • <libs path property> is a VM parameter -Dloader.path=<path to libs folder>. It must be set:

      • if you use PostgreSQL, Oracle or MS SQL Server database, you should put corresponding JDBC driver in libs folder.

      • if you use PRO Agents and want to work with DevOps, additional SAP PRO client libraries com.sap.aii.utilxi.core.jar, com.sap.xpi.ib.core.jar, com.sap.xpi.ibdir.core.jar, and sap.com~tc~bl~guidgenerator~impl.jar (see requierements) must be available in runtime classpath and put in libs folder.

      • if you use dual stack PRO Agents, you should put additional libraries sapjco3.dll and sapjco3.jar (can be downloaded here) to libs folder.

    • <Figaf Tool VM parameters> is a VM parameter -Dirt.vmconf.devops.transport.use-scenario-mapping-by-default=<true/false> that configures whether scenario mapping should be used by default in transport configuration or not. Default value is true.

    • <application properties> is a list of additional settings. Syntax: --<property name>=<value>. Available properties:

      • server.port - Figaf Tool application port, by default 8089

      • irt.db.type - database type which will be used by application. Possible values: h2 (default), postgresql, oracle, mssql.

      • irt.db.host - database host name, required for PostgreSQL, Oracle and MS SQL Server

      • irt.db.port - database port, required for PostgreSQL, Oracle and MS SQL Server

      • irt.db.name - database name, required for PostgreSQL, Oracle and MS SQL Server

      • irt.db.username - database user, required for PostgreSQL, Oracle and MS SQL Server

      • irt.db.password - database password, required for PostgreSQL, Oracle and MS SQL Server

      • irt.url - host url, by default http://localhost:8089.

      • irt.testing-tool.xi-sender.ignored-modules - modules that will not be moved to Specific infrastructure scenario during testing with sender modules (see Decide to test with/without sender modules automatically option on Integration Object Details page for more details). Modules should be divided by ,, for example: --irt.testing-tool.xi-sender.ignored-modules=module_name1,module_name2.

      • irt.cloud-connector.url - the URL from the CPI to Figaf Tool. Usage: --irt.cloud-connector.url=http://<HOSTFROMCPI>:<PORT>/api/cpi-testing-mock-data/step/. This property is used during testing with mock data on CPI systems.

      • irt.cloud-connector.locationId - the location of the cloud connector. Usage: --irt.cloud-connector.locationId=<YOURLOCATION>. This property is used during testing with mock data on CPI systems.

      • irt.config.pi-adapter-metadata-files - path to external folder with adapter metadata files to show parameter description with context GUI information on channel transport configuration page. The files should be downloaded from PI system.

      • irt.config.ticket-id-prefix - prefix of generated ticket id, by default ISSUE.

      • irt.config.transport-id-prefix - prefix of generated transport id, by default TRANSPORT.

      • irt.config.exclude-package-prefixes - prefixes of packages which will be ignored during synchronization. Use package IDs separated by ,. Example --irt.config.exclude-package-prefixes=ZFigaf,Zqa.

      • irt.config.session-timeout.access-token.max-validity-period is a time period in seconds in which token is valid. Default value is 86400.

      • irt.config.session-timeout.access-token.max-inactivity-period is inactivity time period in seconds after which user needs to log in. Default value is 86400.

      • irt.config.enable-single-instance-mode enables single instance mode. Default value is true. It should be set to false when cluster.configuration.* parameters are configured.

      • irt.config.soap-client.remove-soap-action-header-from-requests-to-pi-system enables SOAPAction header removing during processing SOAP requests to PI system. Default value is false.

      • irt.config.instance-monitoring.enabled enables proxy to Glowroot instance. Default value is false for on-premise instance and true for Docker distributions: standard and BTP. Access to that proxy is allowed only for users with IRTAdmin.

        There is a limitation for Non-BTP deployment: Glowroot UI will work only when user accesses it by root url: <instance url>/instance-monitoring. Direct url like <instance url>/instance-monitoring/transaction/average?transaction-type=Background won’t work.
      • irt.testing.start-polling-messages-automatically - whether polling is started automatically after all messages have been sent to CPI system or not. Default value is true.

      • irt.testing.pro.disable-correlation-id-lookup - an option to skip lookup by correlation id in the message monitoring client. Use this option if request with a defined correlation id filter on system fails with timeout in a few minutes. Default value is false.

      • irt.testing.pro.delay-after-updating-special-testing-scenarios defines timeout (in milliseconds) to wait after test case running if at least one special testing scenario was updated. This option helps you to avoid SENT_WITH_ERROR issue when XI integration object is not available yet after the update during test case running. Default value is 0.

      • irt.testing.pro.polling.max-concurrent-messages-polling defines max root messages count polled simultaneously. Default value is 5.

      • irt.testing.pro.polling.async-with-splitter-scenario.use-old-approach enables old polling approach for async scenarios with splitter. Default value is false.

      • irt.testing.pro.polling.async-without-splitter-scenario.use-old-approach enables old polling approach for async scenarios without splitter. Default value is false.

      • irt.testing.pro.polling.sync-scenario.use-old-approach enables old polling approach for sync scenarios. Default value is false.

      • irt.testing.pro.polling.async-sync-bridge-scenario.use-old-approach enables old polling approach for async-sync bridges. Default value is false.

      • irt.monitoring.monitored-messages-polling-period defines initial upload period in days for EDI message monitoring. Default value is 3.

      • irt.ctt.preferred-swc-ids defines a list of swcIds (separated by ,) which then is used for duplicity resolution during synchronization.

      • irt.ctt.skip-synchronization-of-pro-transports disables PRO transports synchronization. Default value is false.

      • irt.ctt.max-pro-objects-lookup-period-in-months defines a period in months to lookup PRO objects. If value is positive, then it will be applied during objects metadata lookup to define a restricted left bound. Calculated left bound can’t be less if it’s restricted by the option. For example, if you configure 12 months, then you will never get objects metadata that has last change date older than now - 12 months. The only exception is a recurrent lookup of dependent SAP object - here the filter is not applied. The option is not applied to transport types, they have different settings. In the case of negative or zero value, it has no effect. Also, the option is not applied for non-transport type when the count of already synchronized objects is 0 (to do a full initial synchronization). Default value is -1.

      • irt.ctt.max-pro-transports-lookup-period-in-months defines a restricted left bound during transports metadata lookup. It’s applied during transport objects metadata lookup (ID_FILE_TRANSPORT, ID_CTS_CHILD_TRANSPORT, ESR_FILE_TRANSPORT, ESR_CTS_CHILD_TRANSPORT). Calculated left bound can’t be less if it’s restricted by the option. Default value is 3.

      • irt.ctt.require-valid-bpmn-iflow-model-during-synchronization - whether IFlows with broken (from XML perspective) BPMN model will not be registered in CTT and the corresponding error will be thrown if it’s true. Otherwise, such IFlows will be registered in CTT and errors will not be thrown. Default value is true.

      • irt.saml-base-url configures saml base url. Default value equals to report.url application property.

      • irt.demo-logon enables auto logon for default root administrator (username: superUser, password: default) if there is only one user and its password hasn’t been changed. Default value is false, enabled only if irt.logon-mode parameter is equal to LOCAL_USERS or MIXED_MODE.

      • irt.logon-mode defines allowed type(s) of login. Available values are:

        • LOCAL_USERS (default) - login for users registered in Figaf Tool application.

        • SSO_USERS - login only with SSO account. Authentication and authorization are handled by Identity Server Provider. See this example with SSO configuration.

        • MIXED_MODE - login for both types of users: SSO and default root administrator (username: superUser, password: default). Authentication is handled by Identity Server Provider and authorization is handled by Figaf Tool. IRTUser role is assigned to user during the first login with SSO account. See this example with SSO configuration.

      • irt.sso.logout.url is a url where user will be redirected from logout page, when Figaf Tool logout completes successfully. For Microsoft installation it’s https://login.microsoftonline.com/common/oauth2/v2.0/logout.

      • irt.sso.logout.callback-url-param-name is a parameter that sets name of callback url that will be passed to Identities provider logout url. For case when Microsoft is used as Identity Service Provider value should be post_logout_redirect_uri.

      • irt.sso.logout.callback-url is a url address of local Figaf Tool installation.

      • irt.sso.claims-mapping contains rules for mapping fields received from Identity Server Provider. It configures which parameter from received claims will be used for finding out user information, roles information, etc. In the example, property preferred_username will be used as a source of username information.

        Sometimes displayName property is a concatenation for several properties, so for the display name it’s possible to specify a several properties separated by ,, and Figaf Tool will concatenate fields, received from Identity Server Provider.

      • irt.sso.custom-properties - properties set as key values pair that will be added as query parameters to the authentication request to auth server. In the example, request to authorization server will contain following data http://auth-server/tokens…<main_sso_params_here>&customParam1Name=customParam1Value

      • cluster.configuration.discovery-type - discovery type for clusterization configuration, possible values: TCP_IP and MULTICAST. By default TCP_IP. If parameter is defined but has wrong value, MULTICAST type will be applied.

      • cluster.configuration.members - list of domain names or IP addresses divided by semicolon which will be used in the lookup and form a cluster for Figaf Tool application, by default localhost. Used only if TCP_IP discovery type is applied.

      • cluster.configuration.port - hazelcast initial port in the range, by default 5701.

      • cluster.configuration.port-count - hazelcast port range for current cluster, by default 20. This means, that ${cluster.configuration.port-count} ports starting from ${cluster.configuration.port} will be checked in the lookup during determination of cluster nodes.

      • server.ssl.keyStoreType - required for HTTPS configuration, key store type, e.g., PKCS12.

      • server.ssl.key-store - required for HTTPS configuration, key store file path, e.g., keystore.p12.

      • server.ssl.key-store-password - required for HTTPS configuration, key store password, e.g., 123456.

      • server.ssl.keyAlias - required for HTTPS configuration, key alias, e.g., IRT.

      • report.url - url to the application root which is passed to the excel reports, by default http://localhost:${server.port}.

    If an application property has some special characters, you need to wrap its value by quotes.

  6. After it boots up you can access the application using http://localhost:8089:

    login form
  7. To login use default root administrator credentials (username: superUser, password: default). Enter these values and click Log In.

    The root administrator has full access to application because it has both roles IRTSuperUser and IRTAdmin. You can learn more about user management and permissions here.

  8. After login you will see home page:

    home page

Examples

If you use Java 17, run Figaf Tool with additional jvm args:

--add-modules=java.se
--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.management/sun.management=ALL-UNNAMED
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
  • Run application on H2 database, keep all settings by default:

    java --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar
  • Run application on H2 database, on port 8092:

    java --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar --server.port=8092 --irt.url=http://localhost:8092
  • Run application on H2 database, with SSL connection support, with defining custom trust store for secured Agents connection (actual for PRO), on port 8443 and with access through domain name:

    java -Djavax.net.ssl.trustStoreType=Windows-ROOT --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar --server.port=8443 --server.ssl.key-store=keystore.p12 --server.ssl.key-store-password=123456 --server.ssl.keyStoreType=PKCS12 --server.ssl.keyAlias=IRT --irt.url=https://irt.internal.company.com:8443
  • Run application on Oracle database having minimum configuration:

    java -Dloader.path=<path to libs folder with ojdbc<version>.jar> --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar --irt.db.type=oracle --irt.db.host=localhost --irt.db.port=1521 --irt.db.name=XE --irt.db.username=IRT --irt.db.password=HereYourPassword123
  • Run application on PostgreSQL database having minimum configuration:

    java -Dloader.path=<path to libs folder with postgresql-<version>.jar> --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar --irt.db.type=postgresql --irt.db.host=localhost --irt.db.port=5543 --irt.db.name=irt --irt.db.username=irt --irt.db.password=HereYourPassword123
  • Run application on MS SQL Server database having minimum configuration:

    java -Dloader.path=<path to libs folder with mssql-jdbc-<version>.jar> --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar --irt.db.type=mssql --irt.db.host=localhost --irt.db.port=1433 --irt.db.name=irt --irt.db.username=irt --irt.db.password=HereYourPassword123
  • Run application with SSO configuration:

    • Prepare <IRTPath>/config/application.yml file (<IRTPath> is the folder where you have saved the Figaf Tool application):

      server:
        ssl:
          key-store: file:config/keystore.p12
          key-store-password: password
          key-store-type: PKCS12
          key-alias: testCert
      spring:
        security:
          oauth2:
            client:
              registration:
                oidc-provider:
                  client-id: <client_id_here>
                  client-secret: <client_secret_here>
                  authorization-grant-type: authorization_code
                  redirectUri: "https://localhost:8089/login/oauth2/code/oidc-provider"
                  scope:
                    - openid
                    - profile
              provider:
                oidc-provider:
                  authorization-uri: <authorization endpoint>
                  token-uri: <token endpoint>
                  user-info-uri: <user info endpoint>
                  jwk-set-uri: <jwk set endpoint>
                  user-name-attribute: sub #in most cases, otherwise define your
      irt:
        logon-mode: SSO_USERS
        sso:
          sso-login-page-url: "/oauth2/authorization/oidc-provider"
          logout:
            url: <logout endpoint from oidc provider>
            callback-url-param-name: "post_logout_redirect_uri"
            callback-url:  "https://localhost:8089/#/login"
          claims-mapping:
            username: email
            display-name: firstName, lastName  # for example
            roles: roles
          custom-properties:
            customParam1Name: customParam1Value

      In the file you can configure other application properties.

    • Run Figaf Tool application

      java --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED -jar irt-<version>.jar

4.4. Java update from 8 to 17 since 2403

Since of 2403 Figaf Tool supports Java 17.

2403 release supports both environments: Java 8 and Java 17. Java 8 environment support is deprecated in the Figaf Tool and will be available until the 2406. Since of 2406 further releases will require Java 17.

If you configure new instance, just start with Java 17 and enjoy. To migrate on-premise standalone instance, do the following steps:

  1. Download OpenJDK 17.

  2. Run the tool with additional jvm args (see examples).

4.5. H2 DB update since 2403

In release 2403 H2 database version was upgraded from 1.4.200 to 2.1.214 and database path was changed from <user_home_dir>/FigafIRT/irt-db to <user_home_dir>/FigafTool/db. If you have the on-premise standalone instance on H2 database and want to continue working with the data on it (we recommend to use H2 only for temporary evaluation and testing, PostgreSQL is more preferable), it’s required to migrate database files from 1.* to 2.*. Otherwise, skip that step if you want to start from scratch.

Steps to migrate H2 database:

  1. Download drivers for h2-1.4.200 and h2-2.1.214

  2. Backup database to SQL script: java -cp h2-1.4.200.jar org.h2.tools.Script -url jdbc:h2:<user_home_dir>/FigafIRT/irt-db -user sa -script <script-name>.sql

  3. Create new database: java -cp h2-2.1.214.jar org.h2.tools.Shell -url jdbc:h2:<user_home_dir>/FigafTool/db -user sa

  4. Restore data: java -cp h2-2.1.214.jar org.h2.tools.RunScript -url jdbc:h2:<user_home_dir>/FigafTool/db -user sa -script <script-name>.sql -options FROM_1X

4.6. License installation

  1. Signup on https://figaf.com/irt to get the license key via email for trial access or contact [email protected] to purchase the real license.

  2. Open the License tab on the Configuration page.

  3. Enter your license key in the form below:

    empty license
    See License synchronizations problems if you have connection issues.
  4. Configure object licenses (to work with Testing Tool and DevOps):

    Object licenses can be configured automatically:

    1. During message record or test case creation for unlicensed object you get the following error:

      request license testing error
    2. During attaching unlicensed object to development ticket you get the following error:

      request license devops error
    3. During attaching unlicensed object to migration ticket you get the following error:

      request license migration error

    Click on Request missing licenses to update object licenses.

    1. Add Object Licenses clicking on Add Object Licenses button. It opens 'Add new object licenses' dialog box where you can select an Agent, click on Add Object Licenses button, select objects, and submit the dialog box:

      add new object licenses dialog

      To delete unnecessary objects select them and click on red trash.

      The following license types can be configured:

      1. Testing - message record, test case creation.

      2. DevOps - development ticket creation, attaching object to development ticket.

      3. Migration - migration ticket creation, attaching object to migration ticket.

    2. Modify Object Licenses clicking on Modify Object Licenses button. It opens 'Add new object licenses' dialog box where you can select new license type(s) for licensed objects.

      You can’t unselect previously selected license type(s).

4.7. Agents integration configuration

4.7.1. Agents integration configuration (PRO platform)

  1. Go to the Agents tab on Configuration page and add your agent system through Create Agent button:

    new agent PRO
  2. Configure the following properties:

    • System ID - the system identifier of SAP system.

    • Platform - select the type of your agent system - PRO.

    • Version - the version of Process Orchestration system. It’s used to create correct XI 3.0 sender channel.

    • Username, Password, Protocol, Host, Port - common connection settings.

    • Virtual - set this flag if you are not going to use that agent for messages recording (e.g., after transferring test data from one system to another). Virtual agents can’t be synchronized, JMS connection will not be established for virtual agents while application bootstrap and you also can’t test their configuration.

    • Production system disables testing on current agent.

    • Don’t resolve as default test system - when enabled, the agent won’t be resolved as default test system during test case creation from recording request and manual test case creation.

    • Has confidential data - when enabled, all messages, recorded on that system will be marked as confidential. Only users with the role IRTSensitivePayloadViewer will be able to see the real payloads and testing results of confidential messages. Other users will have only encoded versions. Example.

    • Secured test system - set this flag if you are going to use the current agent for running test cases with confidential data. It can be configured only for not production systems (Production system is false)with Messages logging approach equals to `Figaf Agent Module`.

      Only administrators with IRTSensitivePayloadViewer role can enable Has confidential data and Secured test system properties.

    • Decentral Adapter Engine configures decentral adapter engine (a separate PI/PO system that is used for message processing in order to distribute the load).

      decentral adapter engine

      Type Decentral Adapter Engine Label (is used in the communication channels) and select Parent Agent (is a link to the main system with central adapter engine, required field).

      Decentral Adapter Engine configuration example: if you have PRO system with the central adapter engine (e.g. DPC) and 2 PRO systems with the decentral adapter engine (e.g. DPD1 and DPD2), you need to create the following agents:

      • Agent DPC with empty Decentral Adapter Engine property because it is the central adapter engine.

      • Agents DPD1 and DPD2 with enabled Decentral Adapter Engine property and the following configuration:

        • Decentral Adapter Engine Label is label in <AdapterEngineName> tag in a channel payload:

          decentral adapter engine label
        • Parent Agent is previously created DPC agent.

    • Timezone - SAP instance timezone, must be defined in GMT format (e.g., GMT+1, GMT-4). Since 2.15.2 release Figaf Tool tries to fetch timezone from the server. If it can’t be fetched, you’ll see an error and have to define this value manually. Also the actual timezone are fetched and updated in the agent model during the synchronization startup.

    • P4 Host - internal hostname of the SAP instance, it is used for connecting to P4 port (JMS integration, EJB client integration). By default, the main Host value will be used. You must configure that field separately if the Host value is a hostname of your HTTP load balancer. That hostname can’t be used for connecting to P4 port.

    • P4 Port - P4 port value, defined in the SAP instance.

    • Use the most appropriate messages logging approach by default per scenario (enabled by default) - when enabled, existing setting for Messages logging approach doesn’t have effect. In that case, messages logging approach is detected by Figaf Tool for each integration object: by default, ICO Logging, but if scenario has channel(s) with custom modules (non-adapter modules, non SAP log modules, non Figaf Tool modules) - Sap Log Module is enabled. It can be overridden on Integration Object page.

    • Messages logging approach - type of integration with current agent, the way of fetching messages from PRO system:

      • Figaf Agent Module requires installation of Agent component. The main part of Agent component is the Agent Module. Agent component also includes some secured web services which are used by web application for synchronous communication and JMS queue which provides asynchronous integration. Agent Module is a EJB stateless component which implements com.sap.aii.af.lib.mp.module.Module interface. Agent Module (Figaf Tool/SaveModule) is automatically added to the communication channel’s modules chain at specific positions. The main purpose of that module is to intercept exact message, send it to local JMS queue (if JMS integration is enabled and zipped size of the message is smaller than 5 Mb) or save it to SAP database (if JMS integration is disabled or zipped message size is greater or equal to 5 Mb). The existent message payload or dynamic properties are not modified by Agent Module, except the only one situation: for regression test case it has specific option to replace synchronous service response on the test scenario by related recorded expected message from the test case. If you want such behavior for your synchronous scenario, you need to enable that option manually on integration object’s Test Configuration page. Figaf Agent Module integration type has the following configuration:

        agent module parameters

        The main benefit of Agent Module - its performance. Receiving messages through JMS is asynchronous and it’s much faster than polling approach. It especially makes great sense if the size of payloads is not large. For large messages there is no way to use JMS, Agent component has a web service for that purpose. Messages are saved in the local SAP system database and then they are polled by the web application through the web service. This approach is used for smaller messages automatically if JMS integration is disabled. You can configure scheduled polling for current integration type (for other types too) by enabling it and entering a value for Polling Cron Expression.

        Allow only manual modules and logging configuration update prevents automatic modules update for whole Agent, so no communication channels will be touched. Figaf Tool will only manage its own XI scenarios, created by the tool for sending messages through the system. You can configure ignored channels for ICOs on Integration Object page.

      • SAP Log Module - noninvasive integration type. It uses standard SAP Log Module (localejbs/AF_Modules/MessageLoggerBean) to log exact message state. This module is automatically added to the communication channel’s modules chain at the same positions as Agent Module. SAP Log Module integration type has the following configuration:

        sap log module parameters

        The only one way to retrieve a message is the messages polling functionality. You can make it scheduled by enabling it and defining a cron job expression. In order to receive message payloads from SAP systems, Figaf Tool looks for new root AdapterFrameworkData (AFD) entries using AdapterMessageMonitoringVi#getMessageList web service (by applying special filters), determines relationships of AFD entries and builds a tree of them (for complicated cases). Then if the option Msg payload download approach is set as Use web service (for newer system), it looks for a message payload using AdapterMessageMonitoringVi#getLoggedMessageBytes web service, otherwise, if the option is set as Use web page scraping, it parses AFD page and downloads payloads through provided links on the page. If your system has AdapterMessageMonitoringVi#getLoggedMessageBytes web service (was introduced in some patch in Oct. 2017), use Use web service (for newer system) option. It’s a bit faster than web page scraping. SAP Log Module integration type is slower than Figaf Agent Module, but the main benefit is that you don’t need to deploy any third party components on your production system. You can mix SAP Log Module integration type with Figaf Agent Module without any problems. For example, your agent system can be integrated through SAP Log Module, and test system is integrated through Figaf Agent Module.

        Allow only manual modules and logging configuration update prevents automatic modules update for whole Agent, so no communication channels will be touched. Figaf Tool will only manage its own XI scenarios, created by the tool for sending messages through the system. You can configure ignored channels for ICOs on Integration Object page.

      • ICO Logging - "the most" noninvasive integration type. If you enable that type, application won’t add any modules to the communication channel’s modules chain. You just need to be sure that all needed scenarios have logging options enabled for stages BI and AM. The cons of that approach - you need to maintain these logging options manually and the state of logged messages sometimes is different to the state obtained through previous integration type. We can’t control, when BI and AM stages will be logged, for some cases we even don’t have the final logs at all (e.x. message splitting case, it doesn’t log payloads after the splitting, only before). That behavior leads to problems when you want to mix ICO Logging approach with SAP Log Module or Figaf Agent Module. For example, you can configure your agent system using ICO Logging integration type and test system using SAP Log Module integration type. It will work until you get scenario with custom modules or scenario with message splitter. In the first case the different state of the same message will be received, in the second case the messages received through SAP Log Module will have outbound state after splitting, the messages received through ICO Logging will have outbound state before splitting. So, amount of outbound messages will be different. ICO Logging integration type has the same configuration as SAP Log Module:

        pi message log parameters

        Similar to SAP Message Log approach it uses polling to retrieve messages from SAP PRO system. The polling options are the same. Only one difference, it looks for message entries by combination of labels BI and AM (instead of irtLogStage<1..4> labels for SAP Log Module), so, these stages must be logged.

    • Search global configuration automatically (enabled by default) - enables automatic search for global configuration (follow article to get more details).

      The Figaf tool user should have access to http://sapserver:port/webdynpro/resources/sap.com/tc~lm\~itsam~ui\~mainframe\~wd/FloorPlanApp?applicationID=com.sap.itsam.cfg.java.systemproperties&applicationViewID=systemproperties# page. Usually, it’s enough to assign a role NWA_READONLY for the user. If it’s not possible to find it automatically, the warning will be shown where you can Ignore and save, then the agent will be automatically created with the property disabled. Otherwise, disable the property and define values manual (follow article).
    • Enable Monitored Messages Polling enables configuration of cron expression (Monitored Messages Polling Cron Expression setting) to poll messages in EDI Message Monitoring automatically.

    • Monitored Messages Persistence Period is a persistence period in days for messages in EDI Message Monitoring. Default value is 30.

      If you want to have monitored messages deleted, configure MonitoredMessagesCleaner job on Configuration → Application page. If the job isn’t configured, the messages won’t be deleted.

    • Enable automatic synchronization enables automatic synchronization. If it’s true, you need to configure Synchronization Cron Expression and if you want to synchronize objects forcibly, enable Synchronize forcibly setting.

    • Synchronize used sap repository objects on demand enables synchronization of used sap repository objects. If it is false, all sap repository objects will be synchronized.

    • Enable dual stack recording enables dual stack recording (since of 2.12) and has the following configuration:

      jco destination properties

      JCO Destination properties should be copied from *.jcoDestination file.

      JCo library must be added to the external libraries folder which is defined by -Dloader.path=<path to libs folder> VM parameter (go to Figaf Tool Application running for more details). You can download it here.

      User, configured in Username and Password fields, should have permissions to ping dual stack system and poll messages from it.

      LOGGING and LOGGING_SYNC parameters should be configured on your system:

      dual stack system configuration
    • Partial test case running - enable it if you want to restrict number of messages sent from Figaf Tool to remote system in unit of time.

      Actual number of messages sent from Figaf Tool can vary depending on count of inbound messages in one group. All messages from one group are sent together.

    • Open messages via dispatcher enables possibility to open polled message entries via dispatcher.

    • Reset synchronization query - use that function to remove cached values of last change dates for each tracked object types. These dates are used in synchronization algorithm to minimize amount of objects to check (checking only changed objects).

  3. Test configuration for created agent. Select it and click on Test configuration button. Test connection settings dialog box will be opened:

    test connection dialog PRO

    If Enable dual stack recording is true for selected agent, Test connection settings dialog box contains two additional settings Pinging dual stack through JCo and Polling messages from dual stack through JCo.

    If Receiving test message through JMS setting is loading, wait for a while and click on Refresh button. If it doesn’t help, open Edit Agent dialog box (click on it’s edit button) and click on Save. Test configuration for the agent again.

4.7.2. Agents integration configuration (CPI platform)

If you have SSO for your SAP CPI tenants please look at the article to read the configuration.

In the article you can read how to configure CPI agents.

If you want to create CPI agent with standard configuration follow the steps:

  1. Go to the Agents tab on Configuration page and add your agent system through Create CPI Agent button.

  2. In the dialog configure:

    1. System Id - the system identifier of CPI system.

    2. Integration Suite or CPI URL - your CPI system URL. This is how you would normally access your SAP Cloud Integration like https://xxx-tmn.hci.eu1.hana.ondemand.com/itspaces or https://xxxx.integrationsuite.cfapps.eu10-003.hana.ondemand.com/shell/design.

    3. Go to Next stage.

    4. Configure Public API access. API Key mode or S-User mode are available.

    5. Go to Next stage.

    6. Configure IFlow Messages API access.

    7. Go to Next stage.

    8. Configure Web API access. Custom IdP mode or S-User mode are available. Learn more about custom IdP configuration here.

    9. Go to Next stage.

    10. Optionally create sample composite landscape to check DevOps features as well. If you agree to create it, you will be able to configure up to 3 packages to be synchronized. If you configure them and follow further, you will be redirected to Tracked Objects page where you can synchronize the agent.

    If CPI system is Cloud Foundry you have to assign role to the user (reed article to know how to do it).

If you want to create CPI agent with custom configuration follow the steps:

  1. Go to the Agents tab on Configuration page and add your agent system through Create Agent button:

    new agent CPI
  2. Configure the following properties:

    • System ID - the system identifier of SAP system.

    • Platform - select the type of your agent system - CPI.

    • Username, Password, Protocol, Host, Port - common connection settings.

      If you are configuring an agent for integration suite system, define Host as host of needed integration suite system.
    • Virtual - set this flag if you are not going to use that agent for messages recording (e.g., after transferring test data from one system to another). Virtual agents can’t be synchronized.

    • Production system disables testing on current agent.

    • Don’t resolve as default test system - when enabled, the agent won’t be resolved as default test system during test case creation from recording request and manual test case creation.

    • Has confidential data - when enabled, all messages, recorded on that system will be marked as confidential. Only users with the role IRTSensitivePayloadViewer will be able to see the real payloads and testing results of confidential messages. Other users will have only encoded versions. Example.

    • Secured test system - set this flag if you are going to use the current agent for running test cases with confidential data. It can be configured only for not production systems (Production system is false).

      Only administrators with IRTSensitivePayloadViewer role can enable Has confidential data and Secured test system properties.

    • Enable Monitored Messages Polling enables configuration of cron expression (Monitored Messages Polling Cron Expression setting) to poll messages in EDI Message Monitoring automatically.

    • Monitored Messages Persistence Period is a persistence period in days for messages in EDI Message Monitoring. Default value is 30.

      If you want to have monitored messages deleted, configure MonitoredMessagesCleaner job on Configuration → Application page. If the job isn’t configured, the messages won’t be deleted.

    • IFLMap Host - host name which is used as an endpoint path part for some adapters in CPI system. It’s used by Figaf Tool for regression testing of integration flows. For example: m0403-iflmap.hcisbp.eu1.hana.ondemand.com, where m0403 is a CPI system id.

    • CPI Platform Type - select the type of your CPI system (NEO or CLOUD_FOUNDRY). If it’s CLOUD_FOUNDRY, then the following settings are shown:

      • IFlow Client Id and IFlow Client Secret.

        You can provide the same Username and Password here, but you have to assign role to the user (reed article to know how to do it).

      • Use oauth url for testing configures whether OAuth token should be used during making calls to CPI Cloud Foundry system or not. If it’s enabled, OAuth token url can be configured (value should be a full url).

      • Use custom IdP enables a possibility to sign on to SAP CPI CF using SAML2, learn more about related configuration here.

      • Login Url configures login URL. The tool will try to resolve it automatically if it is empty.

      • SSO Url configures SSO URL. Default value is value of irt.sso-url application property.

      • Authentication Type configures whether BASIC or OAUTH authentication type should be used. If OAUTH is selected, Public API Client Id, Public API Client Secret, and OAuth token url should be configured.

      • Public API Url configures CPI Url for integration suite system. If it’s not empty, the connection properties of the agent will be overridden by the value. So this value will be used for both public and web API.

    • Enable Monitoring enables CPI System Monitoring page and Metric Consumers in Support tool.

    • Enable Git Integration enables git integration, learn more about related configuration here.

    • Enable message processing logs statistics enables CPI Statistics Overview.

    • Enable automatic synchronization enables automatic synchronization. If it’s true, you need to configure Synchronization Cron Expression and if you want to synchronize objects forcibly, enable Synchronize forcibly setting.

    • Partial test case running - enable it if you want to restrict number of messages sent from Figaf Tool to remote system in unit of time.

      Actual number of messages sent from Figaf Tool can vary depending on count of inbound messages in one group. All messages from one group are sent together.

    • Keep iflow in trace mode for active recording/testing - enable it if you want to keep the iflow in trace mode until all required number of message is received.

    • Enable IDE to run and upload scripts - enables it if you want to work with Groovy and/or XSLT EDI (learn more about related configuration here).

    • Reset synchronization query - use that function to remove cached values of last change dates for each tracked object types. These dates are used in synchronization algorithm to minimize amount of objects to check (checking only changed objects).

    • Reset http client forcibly - use that function to remove cached authentication data.

    • Reset Entity Descriptor - use this function to reset SSO certificate for agent with Use custom IdP setting.

  3. Test configuration for created agent. Select it and click on Test configuration button. Test connection settings dialog box will be opened:

    test connection dialog CPI

4.7.3. Agents integration configuration (Api Management platform)

  1. Go to the Agents tab on Configuration page and add your agent system through Create Agent button:

    new agent API
  2. Configure the following properties:

    • System ID - the system identifier of SAP system.

    • Platform - select the type of your agent system - Api Management.

    • Username, Password, Protocol, Host, Port - common connection settings.

      Username and Password are required only when Authentication Type is BASIC.
    • Virtual - set this flag if you are not going to use that agent for messages recording (e.g., after transferring test data from one system to another). Virtual agents can’t be synchronized.

    • Production system disables testing on current agent.

    • CPI Platform Type - select the type of your Api Management system (NEO or CLOUD_FOUNDRY).

      • Authentication Type configures whether BASIC or OAUTH authentication type should be used. If OAUTH is selected, Public API Url, Public API Client Id, Public API Client Secret, and OAuth token url should be configured.

    • Enable Monitoring enables CPI System Monitoring page and Metric Consumers in Support tool.

    • Enable Git Integration enables git integration, learn more about related configuration here.

    • Enable automatic synchronization enables automatic synchronization. If it’s true, you need to configure Synchronization Cron Expression and if you want to synchronize objects forcibly, enable Synchronize forcibly setting.

    • Reset synchronization query - use that function to remove cached values of last change dates for each tracked object types. These dates are used in synchronization algorithm to minimize amount of objects to check (checking only changed objects).

    • Reset http client forcibly - use that function to remove cached authentication data.

  3. Test configuration for created agent. Select it and click on Test configuration button. Test connection settings dialog box will be opened:

    test connection dialog API

4.7.4. Agents integration configuration (API_HUB platform)

See this blog post for more details.

  1. Go to the Agents tab on Configuration page and add your agent system through Create Agent button:

    new agent API HUB
  2. Configure the following properties:

    • System ID - the system identifier of SAP system.

    • Platform - select the type of your agent system - API_HUB.

    • Username and Password.

    • Enable automatic synchronization enables automatic synchronization. If it’s true, you need to configure Synchronization Cron Expression and if you want to synchronize objects forcibly, enable Synchronize forcibly setting.

  3. Test configuration for created agent. Select it and click on Test configuration button. Test connection settings dialog box will be opened:

    test connection dialog API HUB

4.8. Troubleshooting

4.8.1. License synchronizations problems

If some connection issues occur during license synchronization, you will see the following dialog:

handle connection issues dialog

To finish the process do the following:

  1. Copy JSON clicking on Copy request button.

  2. Go to https://app.figaf.com/irt-lic/#/.

  3. Paste copied request to Request json field.

  4. Click on Upload button.

  5. Copy response clicking on Copy response button.

  6. Go back to Figaf Tool.

  7. Paste copied response to Response from the License Server field.

  8. Click on Save.

Next time when you will need to add some objects to the license it will ask you to do the same thing.

5. Change Tracking Tool

5.1. Change Tracking Tool overview

5.1.1. What is Change Tracking Tool

Change Tracking Tool (CTT) is the core part of the Integration Regression Tool, CTT provides functionality to fetch, browse and store the state of large set of objects on PRO and CPI systems. CTT has a complex synchronization algorithm which checks whether some object is created, changed or deleted. On UI you can view the differences between object versions, relationships between different objects and download an object payload if it needs.

5.1.2. Supported business objects

CTT is tracking changes of the following list of object types:

Object Type Registry System

Communication Party

Integration Directory

PRO

Business Component

Integration Directory

PRO

Business System

Integration Directory

PRO

Communication Channel

Integration Directory

PRO

Integrated Configuration

Integration Directory

PRO

Sender Agreement

Integration Directory

PRO

Receiver Agreement

Integration Directory

PRO

Integration Flow

Integration Directory

PRO

Configuration Scenario

Integration Directory

PRO

Receiver Determination

Integration Directory

PRO

Interface Determination

Integration Directory

PRO

ID File Transport

Integration Directory

PRO

ID CTS Child Transport

Integration Directory

PRO

Context Objects

Enterprise Service Repository

PRO

Data Type

Enterprise Service Repository

PRO

Data Type Enhancement

Enterprise Service Repository

PRO

External Definition

Enterprise Service Repository

PRO

External Message

Enterprise Service Repository

PRO

Folder

Enterprise Service Repository

PRO

Function Library

Enterprise Service Repository

PRO

Function Module

Enterprise Service Repository

PRO

IDoc

Enterprise Service Repository

PRO

Imported Archive

Enterprise Service Repository

PRO

Mapping Template

Enterprise Service Repository

PRO

Message Mapping

Enterprise Service Repository

PRO

Message Type

Enterprise Service Repository

PRO

Operation

Enterprise Service Repository

PRO

Operation Mapping

Enterprise Service Repository

PRO

RFC Message

Enterprise Service Repository

PRO

Service Interface

Enterprise Service Repository

PRO

ESR File Transport

Enterprise Service Repository

PRO

ESR CTS Child Transport

Enterprise Service Repository

PRO

Package

Cloud Integration

CPI

Integration Flow

Cloud Integration

CPI

Archive

Cloud Integration

CPI

Integration Flow External Configuration

Cloud Integration

CPI

Schema

Cloud Integration

CPI

Script

Cloud Integration

CPI

Mapping

Cloud Integration

CPI

Value Mapping

Cloud Integration

CPI

Documents (File and URL)

Cloud Integration

CPI

CPI Message Mapping

Cloud Integration

CPI

Script Collection

Cloud Integration

CPI

Function Libraries

Cloud Integration

CPI

Company Profile

Cloud TPM

CPI

Trading Partner

Cloud TPM

CPI

Agreement Template

Cloud TPM

CPI

Agreement

Cloud TPM

CPI

Message Implementation Guideline

Cloud TPM

CPI

Api Proxy

Api Management

API Management

Api Proxy Endpoint

Api Management

API Management

Api Resource

Api Management

API Management

Api Target Endpoint

Api Management

API Management

Api Documentation

Api Management

API Management

Api File Resource

Api Management

API Management

Api Policy

Api Management

API Management

Key Value Map

Api Management

API Management

Encrypted Key Value Map

Api Management

API Management

5.2. Tutorials and Samples

5.2.1. Synchronization with Agent system

Check that you’ve configured an Agent entry and tested integration with it. See that section to learn how to do it.

You can run synchronization from 2 pages on UI: Tracked Objects page and Integration Objects page. They are configured a bit differently for PRO agents. Synchronization request on Integration Objects page includes only Integration Directory types for PRO system (see Supported business objects section), but synchronization request on Tracked Objects page includes both registries: Integration Directory and Enterprise Service Repository (ESR). Usually the total size of all objects in the ESR is much larger than in the Integration Directory. Initial synchronization can take even several hours depending on amount of data and computation resources. Once all objects are synchronized, further synchronizations are much faster, they depend on amount of changes during current period. If you work only with Testing Tool and don’t care about ESR tracking, just use synchronization from Integration Objects page.

Synchronization with Agent system step-by-step
  1. Click on Change Tracking Tool on the side menu or click on the tile on the home page. It opens Tracked Objects page.

    empty tracked objects page
  2. Select needed agent system and click on Synchronize button to run synchronization. It will synchronize all object types for current SAP system type listed in the Supported business objects section.

    For PRO, CPI and Api Management Agent systems you can configure synchronization settings:

    1. for PRO Agent system you are able to configure the following settings:

      synchronization config dialog

      Check metadata of all existent objects (lookup without last change date filter) runs synchronization without last change date filter for CTT object types.

      It is possible to clear this filter manually (see field Reset synchronization query on Edit Agent Dialog).

      Rebuild links for the latest versions forcibly is required when you mix different synchronization settings. For example, first time you synchronize objects on Integration Objects page (that synchronization includes only Integration Directory types), then you synchronize them on Tracked Objects page to browse ESR objects in CTT. It’s related to the fact that all objects have only one-way links in the received metadata. An Integrated configuration object has links to Operation Mapping object, but Operation Mapping object doesn’t contain any links to Integrated configuration. So, if an Integrated Configuration object has been already synchronized, it won’t be possible to link it with currently synchronized Operation Mapping object having only Operation Mapping differences information. If the flag is enabled, synchronization algorithm will check all latest versions for chosen object types and build links between them properly.

      Forcibly process payload dependent initializations for not updated objects makes synchronization process payload dependent operations (payload, in that case, can be loaded either from DB e.g. for ICO, CHANNEL, or from agent e.g. for ID_FILE_TRANSPORT, ID_CTS_CHILD_TRANSPORT, ESR_FILE_TRANSPORT, ESR_CTS_CHILD_TRANSPORT. Skipping that option makes Directory objects and transports synchronization faster. Use it for recovery purposes in case of some potential inconsistency.

      Forcibly process child types for not updated compound ESR object types: External Definition, Service Interface, Function Module, Imported Archive enables checks of inner child objects for all objects of the listed types. Use it for recovery purposes in case of some potential inconsistency with related types.

      Skip synchronization of ESR/File transports disables synchronization of transport object types. If enabled, then synchronization of transport object types will be completely skipped.

      Skip synchronization of Data Types disables synchronization of data types. If enabled, then synchronization of data types will be completely skipped.

      Synchronize used sap repository objects runs synchronization for used sap repository objects. If it is false, all sap repository objects will be synchronized.

      Synchronize all dependent sap objects recursively runs synchronization for child sap objects even if the object hasn’t been changed/created/deleted. If it is false, child sap objects will be synchronized only if the object on the current level has been changed/created/deleted.

      Synchronize used sap repository objects and Synchronize all dependent sap objects recursively settings are available only if Synchronize used sap repository objects on demand setting is enabled on Edit Agent Dialog.

      ApplicationException: Duplicate tracked object identified. Recording already exists but has another groupId. error might occur during synchronization if Synchronize used sap repository objects on demand setting is enabled.

      Synchronize only Integration Directory objects runs synchronization of Integration Directory objects.

    2. for CPI Agent system you are able to configure the following settings:

      synchronization config dialog cpi

      Synchronize objects forcibly - use that function to remove cached values of last change dates for each tracked object types. These dates are used in synchronization algorithm to minimize amount of objects to check (checking only changed objects).

      Rebuild links for the latest versions forcibly - if true, links will be rebuilt for the latest versions.

      Synchronize all packages - if true, all packages will be synchronized. If false, you can select packages to be synchronized.

    3. for Api Management Agent system you are able to configure the following settings:

      Synchronize objects forcibly - use that function to remove cached values of last change dates for each tracked object types. These dates are used in synchronization algorithm to minimize amount of objects to check (checking only changed objects).

  3. Once synchronization is started, you can see the dialog with progress information:

    synchronization result dialog cpi

    The dialog information is updated automatically time-to-time. Synchronization is finished when the Synchronization Stage field is equal to Synchronization finished.

5.2.2. Git Integration (CPI, API Mgmt). Repository initialization and getting changes from SAP Agent

  1. Enable and configure Git integration on Agent.

  2. Go back to Agents page and click initialize repository button button. It starts synchronization on chosen Agent. Once it’s done, check the folder with cloned Git repository, specified in Local Path To Repo:

    initialized local repo

    Folders at root level are related to packages (CPI agents) or API Proxies (API Management agents). Some files are added automatically to repository during initialization: .gitignore-irt, build-irt.gradle, settings-irt.gradle, gradle-irt.properties. These files contains configuration modular structure and Figaf Gradle plugins. If you want to use them in your development workflow, remove irt suffix and save them as .gitignore, build.gradle, settings.gradle, gradle.properties. Or copy required configuration to existent files.

  3. Now let’s make some changes in target object, for example CPI IFlow. We’ve added a Content Modifier from SAP UI. Then we need to process synchronization in Figaf Tool for chosen Agent. It can be done manually or by scheduled job if you have configured it. Once synchronization is finished, you can see a new commit with related changes:

    repo after object update

5.2.3. IDE

Since of 2306 Figaf Tool supports possibility to edit and run Groovy code.

Follow steps to work in Groovy IDE:

  1. Enable Enable IDE to run and upload scripts option on related agent dialog.

  2. Go to tracked object page of Groovy script or XSLT mapping.

  3. Click on ide icon to open IDE:

    script ide dialog
  4. Then you can:

    1. Groovy script only. Select Function from script. If it’s needed to refresh functions, click on check availability.

      Figaf tool supports functions used in message mapping and groovy script step:

      1. If function is used in message mapping, it is possible to add test cases with defined Arguments, Headers, Properties After running a function, it’s possible to save a test case.

      2. If it’s a groovy script step, configure Input message, Headers, Properties.

        You can select Test Case and Message, then input data will be filled automatically.
    2. Modify Script.

    3. XSLT mapping only. Configure XSLT processing mode:

      1. Figaf Tool works fast and uses code in the application. This approach doesn’t support java functions and cpi extensions (like java:new() or cpi:setHeader).

      2. XSLT Executor IFlow updates and deploys XSLT_Executor IFlow and XSLT is executed in this IFlow. It usually takes around 10 seconds but it provides full XSLT processing support.

    4. Run script click on Run button.

    Result will be shown in right side: Output message, Headers and Properties.

  5. If you want to save modified script, click on Upload button. It will update only a particular script (via public API) of related IFlow.

5.2.4. Use IFlow as a configurable template to create many IFlows (CPI)

If you have multiple organizations, like a sales division for Denmark, Germany, Sweden, and some flows may need to run for all organizations, you can develop the flow once and then configure it for multiple organizations using distribution configuration.

  1. Open the IFlow details you want to use as a configurable template to create many IFlows.

  2. Click on Create distribution configuration button. It creates distribution configuration that is used for configuring external configuration for target IFlows created from the selected IFlow.

  3. Click on Add target IFlow to add target IFlows to the distribution configuration. It opens 'Add iFlows to distribution configuration' dialog box where you can configure target IFlows technical and displayed names:

    add iflows to distribution configuration
  4. If you want to change external configuration of target IFlows, deselect Inherit (source) for parameter, define values, and Save configuration:

    configure external configuration
  5. You can Upload all IFlows or Update target IFlow (in menu of target IFlow).

    If you want to deploy target IFlows, click on edit, enable Deploy uploaded objects, and click on save.

    If you want to update target IFlows after source IFlow changes, click on edit, enable Update target objects automatically, and click on save. After that if source IFlow is updated (the changes are handled during synchronization), target IFlows will be updated automatically.

  6. If you want to delete the distribution configuration, click on Delete button. It marks distribution configuration as deleted. If you want to delete distribution configuration that marked as deleted from CTT, click on Delete from CTT button.

IFlow can be linked only with one distribution configuration.

5.2.5. Browse and compare versions from different landscape items

Since of 2105 Figaf Tool supports possibility to browse and compare objects versions from different landscape items.

Requirements:

  1. All required Agent Systems have been configured (see that section to learn how to do that).

  2. Synchronization of all required Agent Systems has been done (see Synchronization with Agent system section).

  3. All required Landscapes have been configured (see that section to learn how to do that).

  1. Go to Change Tracking Tool.

  2. Open a tracked object page clicking on object name.

  3. Go to Tracked Object Change Log page clicking on Versions button.

  4. Enable Show versions across landscape and select a landscape. Objects from different landscape items will be shown and you can browse and download payloads or compare the versions.

    Objects from different landscape items are determined by the following rules:

    • For CPI and Api Management platforms objects are searched with the equal names.

    • For PRO platform the following strategies are used to determine objects names from other systems:

5.2.6. Restore last CPI object version after its deletion

Since of 2.14 Figaf Tool supports a possibility to restore last CPI object version of deleted IFlow and Value Mapping.

Requirements:

  1. All required Agent Systems have been configured (see that section to learn how to do that).

  2. Synchronization of all required Agent Systems has been done (see Synchronization with Agent system section).

  3. IFlows which you want to restore were deleted after the first synchronization in Figaf Tool. So it’s important to have these IFlows and Value Mappings synchronized earlier.

  1. Go to Change Tracking Tool.

  2. Select CPI Agent.

  3. Switch Browse deleted objects in order to view deleted objects.

  4. Select IFlow(s) or(and) Value Mapping(s).

  5. Click on Restore artifacts.

  6. Check objects that will be restored.

  7. Enable Deploy restored objects if you want this objects to be triggered for deployment.

  8. Click on Upload.

5.2.7. Transform REST API/SOAP API objects to IFlows

Since of 2305 Figaf Tool supports a feature to transform REST API and SOAP API objects to IFlows. Follow the steps to transform objects:

  1. Go to Change Tracking Tool.

  2. Select CPI Agent.

  3. Click on menu full and then click on Transform REST/SOAP API objects. It opens Transform REST/SOAP API objects page with list of objects:

    transform rest soap api objects page
  4. Select objects you are going to transform.

  5. Click on Transform to IFlow button. It opens confirmation dialog:

    transform rest soap api objects confirmation
  6. Choose required options:

    1. Only create IFlows creates IFlows and doesn’t delete source object.

    2. Create IFlows and delete/undeploy selected objects creates IFlows and undeploys snd deletes source objects.

Once the operation is completed, created IFlows will be synchronized automatically. After this transformation you can use the IFlows the same way as any IFlow.

5.2.8. Add groovy script or XSLT mapping to IFlow

Since of 2403 Figaf Tool supports creation of new groovy script or XSLT mapping. The feature works only for the latest versions.

Requirements:

  1. Agent System has been configured (see that section to learn how to do that).

  2. Synchronization of required Agent System has been done (see Synchronization with Agent system section).

To open the dialog follow steps:

  1. Go to Change Tracking Tool.

  2. Select CPI Agent.

  3. Go to IFlow tracked object page.

  4. Click on menu full and then click on Add new script. It opens Add new script dialog where you should configure:

    1. Script Type defines type of script that will be created: either Groovy or XSLT.

    2. Only for Groovy script type Function Type defines type of groovy script: either Groovy Script Step or Use in Message Mapping.

    3. Script name defines name of script.

    Once configuration is submitted, Groovy IDE dialog will be opened.

5.2.9. Rename resources of IFlow

Since of 2403 Figaf Tool supports renaming of scripts and mapping objects (both XSLT and Message Mapping). The feature works only for the latest versions and only for IFlow children.

Requirements:

  1. Agent System has been configured (see that section to learn how to do that).

  2. Synchronization of required Agent System has been done (see Synchronization with Agent system section).

To open the dialog follow steps:

  1. Go to Change Tracking Tool.

  2. Select CPI Agent.

  3. Go to script or mapping tracked object page.

  4. Click on menu full and then click on Rename resource. It opens the dialog where new name should be defined.

5.2.10. Browse linking between IFlows and Cloud Agreements based on the endpoints

Since of 2312 Figaf Tool supports linking between IFlows and Cloud Agreements based on the ProcessDirect/JMS endpoints. The feature works only for the latest versions.

Requirements:

  1. Agent System has been configured (see that section to learn how to do that).

  2. Synchronization of required Agent System has been done (see Synchronization with Agent system section).

To open the dialog follow steps:

  1. Go to Change Tracking Tool.

  2. Select CPI Agent.

  3. Go to IFlow or Cloud Agreement tracked object page.

  4. Click on menu full and then click on Open CPI Endpoints.

Then endpoints dialog will be opened. There are source and target objects listed in the dialog.

An IFlow has a reference to itself if it has subprocesses using ProcessDirect/JMS for internal communication.

5.2.11. Select all Segments and Fields of MIG object

Since of 2401 Figaf Tool supports a feature to select all Segments and Fields of Message Implementation Guideline. To enable follow the steps:

  1. Go to Change Tracking Tool.

  2. Select Integration Suite Agent.

  3. Go to MIG tracked object page.

  4. Click on menu full and then click on Select all Segments and Fields. Once you confirm the action, Draft version of MIG with enabled segments and fields will be created if the latest version was Activated or Draft version will be updated if the latest version was Draft.

5.2.12. Tag tracked objects

Since of 2112 Figaf Tool supports tagging of tracked objects. This feature helps to find tracked objects easier. You can create, edit and delete tags.

Requirements:

  1. All required Agent Systems have been configured (see that section to learn how to do that).

  2. Synchronization of all required Agent Systems has been done (see Synchronization with Agent system section).

To create a tag follow steps:

  1. Go to Tags page.

  2. Click on Create Tag button.

  3. Enter Name. Name must be unique.

  4. Enter Description. It’s not required.

  5. Save tag.

To attach tags to tracked objects follow steps:

  1. Configure required tags.

  2. Go to Change Tracking Tool.

  3. Select objects for which you are going to add tags.

    If you select all objects, you can either attach tags to objects on all pages or to objects on current page.

  4. Click on Attach Tags button.

  5. Select tags in the dialog.

  6. Apply selection.

    It’s possible to attach tags to object from the tracked object page.
  7. Once it’s done, you can filter tracked objects by Tags column in order to find required objects easier.

    Once you attach object with tags to ticket, the same tags will be shown on the ticket page, so you will be able to filer tickets by Tags.

If you need to detach tags from tracked objects, do the same steps as during attaching tags to tracked objects but click on Detach Tags button.

5.2.13. Tagging Rules page

Since of 2402 Figaf Tool supports enhanced quering of tracked objects. The feature provides a possibility to define tagging rules that apply a condition (xpath/regex) to specified scope of objects to assign a technical tag, created together with the rule, to objects that match condition. You can create, update, import, export, delete tagging rules and process tagging.

Create tagging rule

To create new tagging rule follow steps:

  1. Go to Tagging Rules page.

  2. Click on plus. It opens Add tagging rule dialog:

    create tagging rule
  3. Enter the fields:

    1. Tag name defines technical tag name. This tag will be created during the tagging rule creation and attached to objects that match condition during tagging process. Tag name must be unique.

    2. Displayed name defines displayed name of tagging rule.

    3. Complexity rate defines numeric representation of estimate in some units (for example story points or days).

    4. Platform defines platform.

    5. Agents defines a list of agents.

    6. Object type defines object types.

      Script Collection and Cpi Function Libraries types aren’t supported.
    7. Name pattern defines regex that check if matches the tracked object name.

    8. Direction defines direction (Sender or Receiver) of Communication Channel.

    9. Adapter type defines adapter type for Communication Channel. If there is no required type in the list, type the value manually.

    10. Condition type defines condition type: either XPath or Regex.

    11. Condition defines any valid XPath or Regex. It is possible to test the condition clicking on Test button. It will open the dialog where you can select Object to test and test your Expression.

      Examples of supported XPath expressions:

      • /ns2:CommunicationChannel/MasterLanguage/text()

      • /ns2:CommunicationChannel/AdministrativeData/ResponsibleUserAccountID/text()

      • /ns2:CommunicationChannel/AdapterSpecificAttribute[Namespace]/Name/text()

      • /ns2:CommunicationChannel/AdapterSpecificAttribute[Namespace]/Name

      • /CommunicationChannel/AdapterSpecificAttribute[Namespace]/Name

      • /CommunicationChannel/MasterLanguage

      • count(/ns2:CommunicationChannel/AdapterSpecificAttribute)

      • substring(/ns2:CommunicationChannel/Description/text(), 1, 10)

      • /ns2:CommunicationChannel/AdapterSpecificAttribute[contains(Name, 'source')]/Value/text()

      • sum(/ns2:CommunicationChannel/AdapterSpecificAttribute[Name='file.pollInterval']/Value)

      • //brick[@path='/ADRMAS03/IDOC/E1ADRMAS/E1BPAD1VL/STREET']

      • //FolderPathID[text()="/my-folder/test/"]

      • //FolderPathID[.="/my-folder/test/"]

      • //ns2:CommunicationChannel[starts-with(AdministrativeData/LastChangeUserAccountID, 'user')]

      • //ns2:CommunicationChannel[ends-with(AdministrativeData/LastChangeUserAccountID, 'user')]

      • //ns2:CommunicationChannel[contains(AdministrativeData/LastChangeUserAccountID, 'user')]

      • //ns2:CommunicationChannel[matches(AdministrativeData/LastChangeUserAccountID, 'user')]

    12. Apply condition to internal payload enables possibility to define condition to internal payload for Function Library, Message Mapping and Mapping Template types.

    13. Description defines description.

  4. Save the data.

Once tagging rule is created, related technical tag will created automatically.

Import tagging rules

It is possible to import prepared JSON file with tagging rules configuration, e.g.

[{
  "tagName" : "Tag 1",
  "displayedName" : "Tagging Rule 1",
  "objectType" : "PACKAGE",
  "platform" : "CPI",
  "conditionType" : "REGEX",
  "condition": ".*",
  "description" : "Test Description",
  "agentSystemIds" : [ "cpi1", "cpi2" ]
}, {
  "tagName" : "Tag 2",
  "displayedName" : "Tagging Rule 2",
  "objectType" : "PACKAGE",
  "platform" : "CPI",
  "conditionType" : "REGEX",
  "condition": ".*",
  "description" : "Test Description",
  "objectScopeCriteria" : {
    "type" : "default-filter",
    "namePattern" : ".*"
  },
  "agentSystemIds" : [ "cpi1" ]
}, {
  "tagName" : "Tag 3",
  "displayedName" : "Tagging Rule 3",
  "objectType" : "CHANNEL",
  "platform" : "PRO",
  "conditionType" : "XPATH",
  "condition" : "//ns2:CommunicationChannel[starts-with(AdministrativeData/LastChangeUserAccountID, 'user')]",
  "objectScopeCriteria" : {
    "type" : "communication-channel-filter",
    "namePattern" : "test",
    "direction" : "RECEIVER",
    "adapterType" : "JMS"
  },
  "agentSystemIds" : [ "pro-1", "pro-2", "pro-3" ]
}, {
  "tagName" : "Tag 4",
  "displayedName" : "Tagging Rule 4",
  "complexityRate" : "44",
  "objectType" : "MESSAGE_MAPPING",
  "platform" : "PRO",
  "conditionType" : "XPATH",
  "condition" : "//generic/textInfo",
  "applyConditionToInternalPayload" : true,
  "agentSystemIds" : [ "T75", "D75" ]
}]

To import tagging rules follow steps:

  1. Prepare JSON file with tagging rules configuration.

  2. Go to Tagging Rules page.

  3. Click on Import and select the prepared file.

  4. Select agents for each platform in Please select agents dialog and submit changes.

Then tagging rules and technical tags will be created.

Process tagging

To process tagging select tagging rules and click on Process tagging button. Then related technical tags will be attached to objects that match the condition and belong to defined scope (platform, agents, object type, name pattern, direction, adapter type).

5.2.14. Landscape Overview page

All objects in scope of CPI and Api Management composite landscapes can be browsed on Landscape Overview page.

  1. Go to Change Tracking Tool → Landscape Overview page

  2. Select CPI or Api Management composite landscape. Table with objects through the composite landscape will be shown:

    landscape overview page
    deleted object is an object marked as deleted in CTT.
  3. The following features are available:

    1. Export to CSV generates CSV report with the table data.

    2. Compare versions clicking on check full. Then select objects for comparison and compare objects.

    3. Show difference from target system - if true, only the iflows that have different version with target object are shown.

    4. Go to tracked object page clicking on the object link.

    5. Go to corresponding transport configuration page for objects with transport configuration clicking on the object link and selecting related option.

5.3. Git integration

Since of 2.10 Figaf Tool supports integration with Git for CPI and API Management Agent systems. It includes:

  1. Synchronization of all IFlows(for CPI)/API Proxies(for API Management) with configured Git repository. All found changes will be saved in the repository during CTT synchronization. It’s also possible to initialize/reinitialize repository by pushing all objects through manual operation. See this section to learn more about configuration options.

  2. IRT Gradle plugin for running Figaf Tool test suites remotely through Gradle task. It helps to build flexible development workflow with unit and integration tests. See this section to learn more.

It’s needed to run the command git config --system core.longpaths true as an admin in command prompt if you use OS Windows in order to prevent a problem with long file names.

5.3.1. Git integration configuration

Open ConfigurationAgents page, click Edit on needed Agent. If you don’t have Agent configured read this section at first. Enable checkbox Enable Git Integration. Then you will see the following fields:

agent git integration config
  1. Skip Synchronization Of IFlows In Git (CPI) or Skip Synchronization Of API Proxies In Git (Api Management) - if true, IFlows or API Proxies won’t be added to git repository (only folders will be initialized).

  2. Update build.gradle automatically - if true, build.gradle will be updated automatically after synchronization. Enable this option if you don’t need to change build.gradle manually. If this option is disabled, you have to update build.gradle file when version of gradle plugin is upgraded.

  3. Update settings.gradle automatically - if true, settings.gradle will be updated automatically after synchronization. Enable this option if you don’t need to change settings.gradle manually. If this option is disabled, you have to update settings.gradle file when objects, stored in Git, are changed on remote system.

  4. Update .gitignore automatically - if true, .gitignore will be updated automatically after synchronization. Enable this option if you don’t need to change .gitignore manually.

  5. Add scenario documentation (only for CPI) - if true, scenario documentation (without the PNG) is generated and added to local folder (documentation isn’t added to repository). The option is enabled only if Skip Synchronization Of IFlows In Git isn’t enabled.

  6. Integrate with Git Pipelines (only for CPI) - if true, then Figaf Tool enables integration with git pipeline to validate updated IFlows. The option is enabled only if Skip Synchronization Of IFlows In Git isn’t enabled. See Integration with Git Pipelines for more details.

  7. Git Remote Url - url to remote repository.

  8. Local Path To Repo (only for on-premise version) - local folder, where repository will be cloned. If it’s not defined, it will use /<origin repository name> as a local path relatively to irt.jar. You can define either absolute or relative paths here, a relative path will be calculated from the same folder where Figaf Tool is executed.

  9. Branch Name - branch used by Figaf Tool. If it doesn’t exist, it will be created automatically. We recommend to define a special branch for Figaf Tool and then merge it with your working branch when it needs. Changes are committed to this branch during synchronization operation. But you can also initialize/reinitialize a full state of all objects at one time manually.

  10. Git Username - username for accessing remote Git repository. Figaf Tool will make commits on behalf specified user, but with its own name in commits.

  11. Git Password - password related to specified Git user.

  12. Ignore Files - paths used when you are downloading/uploading IFlow/ApiProxy through cpi-plugin or api-management-plugin. All matched files and folders won’t be added to bundled archive. Define only relative paths, the root is IFlow/ApiProxy bundled folder. By default it ignores src/test, build.gradle, settings.gradle, gradle.properties. The main reason to have some project files excluded is that they are not a part of bundled model. But some of them (like src/test, where you can keep your unit tests for groovy scripts) makes CPI IFlow non-operational, i.e. upload will be successful, but IFlow won’t work in runtime.

The following packages on CPI won’t be added to the repository during synchronization:

  1. Packages created by Figaf Tool through transport to virtual landscape item (their name starts with Z_<landscape item label>|, for example Z_QA|).

  2. Packages created by Figaf Tool for regression testing (their name starts with Z_Figaf|)

If you want to add lib files of some iflow to the index, put the following line into .gitignore:

!<package folder>/<iflow folder>/src/main/resources/lib/*.jar

Once you configure integration, save the agent, then click on dots of the related agent and then Init/Reinit Git repository button. It will start synchronization and init/reinit the repository.

5.3.2. Integration with Git Pipelines

Git Pipelines work only for repositories in GitHub.

The following configuration should be done to get the integration working:

  1. Set up a workflow yourself in Git repository:

    1. Configure figaf-validation.yml file:

      figaf-validation.yml
      name: Figaf Pipeline
      
      on:
        push:
          branches:
            - '**'
      
      jobs:
        figaf-validations:
          runs-on: ubuntu-latest
          steps:
            - name: Checkout repository
              uses: actions/checkout@v2
              with:
                fetch-depth: 0
                token: ${{ secrets.GITHUB_TOKEN }}
      
            - name: Set up Java 11
              uses: actions/setup-java@v2
              with:
                distribution: 'adopt'
                java-version: '11'
      
            - name: Download and extract CPI Lint
              run: |
                curl -L -o cpilint.zip https://github.com/mwittrock/cpilint/releases/download/v1.0.4/cpilint-1.0.4.zip
                unzip -o cpilint.zip
                rm cpilint.zip
                chmod +x cpilint-1.0.4/bin/cpilint
      
            - name: Setup Gradle
              uses: gradle/gradle-build-action@v2
              with:
                gradle-version: 7.4
      
            - name: Get changed IFlow directories
              run: |
                changedIflowDirs=$(git diff --name-only --diff-filter=d HEAD^ | grep -E '.*/IntegrationFlow/[^/]+' | awk -F/ '{print $1"/"$2"/"$3}' | sort | uniq)
                echo "Changed IFlow Directories: $changedIflowDirs"
      
                EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
                echo "changedIflowDirs<<$EOF" >> ${GITHUB_ENV}
                echo "${changedIflowDirs}" >> ${GITHUB_ENV}
                echo "$EOF" >> ${GITHUB_ENV}
      
            - name: CPI Lint validation
              run: |
                if [ -z "${{ env.changedIflowDirs }}" ]; then
                  echo "No IFlow changes detected, skipping CPI Lint validation"
                  exit 0
                fi
      
                readarray -t changedIflowDirs <<< "${{ env.changedIflowDirs }}"
      
                for integrationFlowDir in "${changedIflowDirs[@]}"
                do
                  echo "integrationFlowDir: $integrationFlowDir"
                  iflowName="$(basename "$integrationFlowDir")"
                  packageName="$(basename "$(dirname "$(dirname "$integrationFlowDir")")")"
                  (cd "$integrationFlowDir" && zip -r "../$iflowName.zip" .)
      
                  cpilintCommand="${{ github.workspace }}/cpilint-1.0.4/bin/cpilint -rules=${{ github.workspace }}/.github/workflows/cpilint.xml -files=\"../$iflowName.zip\""
                  echo "Executing cpilint: $cpilintCommand"
                  cpilintStatus=0
                  output=$(cd "$integrationFlowDir" && eval $cpilintCommand 2>&1) || cpilintStatus=$?
      
                  if [ -z "$cpilintStatus" ]; then
                    cpilintStatus=0
                  fi
      
                  echo "CPI Lint output: $output"
                  echo "CPI Lint exit code: $cpilintStatus"
      
                  echo "Validation name: CPI Lint" > "$integrationFlowDir/pipeline-validation.txt"
                  echo "Execution time: $(date +'%Y-%m-%d %H:%M:%S')" >> "$integrationFlowDir/pipeline-validation.txt"
                  echo "Exit code: $cpilintStatus" >> "$integrationFlowDir/pipeline-validation.txt"
                  echo -e "Output: $output\n" >> "$integrationFlowDir/pipeline-validation.txt"
      
                  rm -f "$integrationFlowDir.zip"
                done
      
            - name: Run unit tests
              run: |
                if [ -z "${{ env.changedIflowDirs }}" ]; then
                  echo "No IFlow changes detected, skipping Unit tests validation"
                  exit 0
                fi
      
                readarray -t changedIflowDirs <<< "${{ env.changedIflowDirs }}"
      
                for integrationFlowDir in "${changedIflowDirs[@]}"
                do
                  iflowName="$(basename "$integrationFlowDir")"
                  packageName="$(basename "$(dirname "$(dirname "$integrationFlowDir")")")"
                  runTestsCommand="gradle :$packageName:iflow-$iflowName:test"
                  echo "Executing runTestsCommand: $runTestsCommand"
                  runTestsStatus=0
                  output=$(eval $runTestsCommand 2>&1) || runTestsStatus=$?
                  if [ -z "$runTestsStatus" ]; then
                    runTestsStatus=0
                  fi
                  echo "Unit tests output: $output"
                  echo "Unit tests exit code: $runTestsStatus"
      
                  echo "Validation name: Unit tests" >> "$integrationFlowDir/pipeline-validation.txt"
                  echo "Execution time: $(date +'%Y-%m-%d %H:%M:%S')" >> "$integrationFlowDir/pipeline-validation.txt"
                  echo "Exit code: $runTestsStatus" >> "$integrationFlowDir/pipeline-validation.txt"
                  echo -e "Output: $output\n" >> "$integrationFlowDir/pipeline-validation.txt"
                done
      
            - name: Commit and push changes
              run: |
                if [[ $(git status --porcelain) ]]; then
                  git config --local user.email "[email protected]"
                  git config --local user.name "Figaf"
                  git add .
                  git commit -m "Update pipeline-validation.txt"
                  git push
                else
                  echo "No changes to commit"
                fi
    2. Configure cpilint.xml:

      cpilint.xml
      <?xml version="1.0"?>
      <cpilint>
      <rules>
      <iflow-description-required/>
      <disallowed-scripting-languages>
      <disallow>javascript</disallow>
      </disallowed-scripting-languages>
      </rules>
      </cpilint>
    Push the files to remote repository.
  2. Go to agent for which you want to configure integration with Git Pipeline and enable Integrate with Git Pipelines.

  3. Init/Reinit Git repository for the agent.

Now each updated IFlow will be validated automatically and the result will be saved into pipeline-validation.txt file in the IFlow folder in the repository. Then you can check Git Pipeline Validation Status on Tracked object page and this validation will be integrated into validation of transports.

Gradle version used locally and in Git pipeline should be the same. In our example version 7.4 is used.

5.3.3. Groovy scripts unit testing

Figaf Tool provides a possibility to generate unit tests for groovy scripts using the state of the recorded messages in CPI test cases. To use that feature you should open a Messages tab on the Test Case page. It has a button Generate groovy scripts test data. There are two options:

  1. Add to git repository. If git integration is configured and enabled, Figaf Tool will build test data files and commit them to repository.

  2. Download archive. All needed files will be archived and downloaded to your computer.

There are several files which are generated for testing:

  1. Files in common folder. These files are the basis for unit testing of groovy scripts.
    GroovyTestData and MessageTestData are a model.
    MessageImpl is a simple implementation of SAP Message interface.
    AbstractGroovyTest is an abstract class which does all the testing and has several methods which can be extended.

  2. Files in <iflow_package_name>/<iflow_name> folder.
    GroovyScriptsTest.groovy is a test which is ready to be run. It has all the needed links and methods.
    Files in resources folder are the test data for GroovyScriptsTest.groovy. Each file has input and expected output data. Each file contains an integer in the end of the name. If you select Download archive these numbers just start from 1. If you select Add to git repository Figaf Tool will not overwrite the existing test files. Instead of it Figaf Tool will find the maximum number among the existing files and increment this number.

You need to manually download CPI client jars and put them to the libs folder at root project level. If you want to change folder name, type your folder in Gradle dependency definition in common/build.gradle:

compile fileTree(dir: '../libs', include: '*.jar')

You can extend testing and write custom tests using AbstractGroovyTest.groovy. It’s not recommended to edit GroovyScriptsTest.groovy because it can be overwritten next time by Figaf Tool. It’s better to write custom tests in a separate class which should extend AbstractGroovyTest. The following methods can be overridden:

  1. processMessageData(String groovyScriptPath, String testDataFilePath, String methodName) - it calls methodName of the groovy script for test data and returns messageDataExpected and messageDataActual.

  2. assertMessages(MessageTestData messageDataExpected, MessageTestData messageDataActual, List<String> ignoredKeysPrefixes, List<String> ignoredKeys) - assert messageDataExpected and messageDataActual excluding the keys presented in ignoredKeysPrefixes and ignoredKeys.

  3. basicGroovyScriptTest(String groovyScriptPath, String testDataFilePath, String methodName, List<String> ignoredKeysPrefixes, List<String> ignoredKeys) - aggregate two previous methods.

  4. getIgnoredKeysPrefixes() - if a key starts from this list’s value, this key will be excluded from assertion in assertMessages method.

  5. getIgnoredKeys() - if a key is presented in this list, this key will be excluded from assertion in assertMessages method.

For example if you want to use processMessageData but have your own assertions you can easily do it.

import org.junit.jupiter.api.Test

import static org.assertj.core.api.Assertions.assertThat
import static org.mockito.BDDMockito.then

class SampleTest extends AbstractGroovyTest {

    @Test
    void customTest() {

        // given
        initMessageLogFactoryMocks()

        String groovyScriptPath = "src/main/resources/script/script1.groovy"
        String testDataFilePath = "src/test/resources/test-data-files/script1/processData/test-data-1.json"

        // when
        def (MessageTestData messageDataExpected, MessageTestData messageDataActual) = processMessageData(groovyScriptPath, testDataFilePath, "processData")

        // then

        // assert custom messageLog interaction
        then(messageLog).should().addAttachmentAsString("error.xml", messageDataExpected.getBody() as String, "application/xml")
        then(messageLog).should().addAttachmentAsString("responseError", "daniel test attachment", "text/plain")

        // assert properties/headers/body
        def propertyKey = "newError3"
        String actualPropertyValue = messageDataActual.getProperties().get(propertyKey)

        assertThat(actualPropertyValue).
                overridingErrorMessage("Property with key '%s' must be not null", propertyKey).
                isNotNull()
        assertThat(actualPropertyValue).
                overridingErrorMessage("Property with key '%s' must end with 'Test3', but actual value was '%s'", propertyKey, actualPropertyValue).
                endsWith("Test3")

    }
}

5.4. Troubleshooting

  1. Try to process synchronization with forcible linking. Rebuild links for the latest versions forcibly is required when you mix different synchronization settings. For example, first time you synchronize objects on Integration Objects page (that synchronization includes only Integration Directory types), then you synchronize them on Tracked Objects page to browse ESR objects in CTT. It’s related to the fact that all objects have only one-way links in the received metadata. An Integrated configuration object has links to Operation Mapping object, but Operation Mapping object doesn’t contain any links to Integrated configuration. So, if an Integrated Configuration object has been already synchronized, it won’t be possible to link it with currently synchronized Operation Mapping object having only Operation Mapping differences information. If the flag is enabled, synchronization algorithm will check all latest versions for chosen object types and build links between them properly.

  2. If the first step doesn’t help, try to clear cached last change dates (Reset synchronization query button on the Agent settings page). By default, CTT will check only new/changed/deleted objects, each time when it synchronized concrete object type, CTT saves a last change date for each object type. Next time it doesn’t check objects older than cached date. Once cached dates are cleared, process synchronization with forcible linking.

5.4.2. CTT doesn’t see changes of some objects

Try to clear cached last change dates (Reset synchronization query button on the Agent settings page). By default, CTT will check only new/changed/deleted objects, each time when it synchronized concrete object type, CTT saves a last change date for each object type. Next time it doesn’t check objects older than cached date. Once cached dates are cleared, process synchronization with forcible linking.

6. Testing Tool

6.1. Testing Tool overview

6.1.1. What is Testing Tool

Integration Scenario Testing Tool - the oldest part of the Figaf Tool, provides functionality for regression and baseline testing of integration scenarios on PRO or CPI systems. It provides a flexible way to configure test cases and supports different ways to communicate with source SAP system. Once you run a test case, Figaf Tool sends an inbound message to SAP system and then fetches results using chosen integration type. Results are compared and finally you can browse the differences on UI or in the test case’s excel report. Test cases can be aggregated as a test suite and run as single unit of testing. Test suite has it’s own excel report and can be scheduled. Scheduled testing and our REST API gives you a real opportunity to automate your testing flow or integrate Figaf Tool to existent processes.

Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

6.1.2. How Testing Tool works

In this section we skip test cases preparation part as well as many features related to Testing Tool and show only the core testing process in action.

Agent is a configuration entity which represents a SAP system (PRO or CPI).

Agent System is an Agent where you take messages for test cases in the context of current testing flow.

Test System is an Agent where test cases will be run in the context of current testing flow.

Agent object is an integration scenario on Agent System in the context of current testing flow.

Test object is an integration scenario on Test System in the context of current testing flow.

Regression testing on PRO systems

The idea of regression testing is to check response of an integration scenario having identical request. PRO system has a lot of different sender side adapters and most of them can’t be easily triggered by Figaf Tool. Fortunately, it has a way to send a message through the system using a XI 3.0 Sender channel and a specific request. Figaf Tool requires special infrastructure scenarios to be able to send requests to PRO system. There are 2 types of infrastructure scenarios:

  1. Common infrastructure scenario. Only one per system.

    common pro infr scenario
  2. Specific infrastructure scenario. Such scenario is created per Agent Object/Test object pair only when it requires to add something to the sender channel.

    For example if you’ve chosen testing with Agent Sender Channel custom modules or testing with NumberRange module.

    specific pro infr scenario

All infrastructure scenarios have the same sender/receiver business component |TEST_MigrationHelper and receiver channel TEST_MigrationHelperReceiverStub which is never called.

Figaf Tool creates these infrastructure scenarios and checks their state automatically, so, you don’t need to do anything yourself. Just be sure that user defined in the Agent configuration has needed access.

When you run a test case Figaf Tool takes each inbound message, prepares a special request which includes information about target Test Object, inbound message payload and its Dynamic Properties (we filter adapter-specific properties), then sends it to XI 3.0 Sender Channel of infrastructure scenario on the Test System. Then the message is processed by XI 3.0 Sender Channel and forwarded directly to target Test Object ignoring its sender channel. That’s why it requires to create scenario-specific infrastructure scenarios when some custom modules should be used on the sender side. The first running of test cases takes a bit more time because it creates infrastructure scenario.

testing flow diagram

When messages are processed on PRO system, outbound messages can be received by Figaf Tool. It’s processed manually or automatically depending on your Agent configuration. Once outbound messages are received, Figaf Tool processes comparison of outbound message payloads and metadata.

test run details
diff viewer

Finally it builds an excel report for current test run.

Regression testing on CPI systems

The concept is the same as described above. CPI also supports many types of adapters but it doesn’t have any unified mechanism (at least for now) for sending messages directly to integration flows. For all adapters except HTTPS and SOAP, Figaf Tool uses CPI API to copy integration flow structure and replace sender adapter by HTTPS adapter in the copied version. Then it saves the new integration flow in the package FigafIRT <original package name> and deploys it. For integration flows with HTTPS or SOAP senders Figaf Tool sends messages directly to them. Similar to infrastructure scenarios update described in the previous section, Figaf Tool checks and updates copies of integration flows during test case running.

Baseline testing

The idea of baseline testing is to check both request and response of an integration scenario. Figaf Tool doesn’t use any additional infrastructure objects for that type of testing.

When you run a baseline test case, Figaf Tool creates a new recording request linked with current test run. Once messages are triggered and available on target system, they can be received by Figaf Tool. It’s processed manually or automatically depending on your Agent configuration. Once inbound outbound messages are received, Figaf Tool distributes them to testing results, processes comparison of message payloads and metadata. Finally it also builds an excel report for current test run.

6.1.3. When do you need Testing Tool

Some end-to-end use cases:
  1. Test when you are doing a SAP PI Upgrade/Patch in this case you want to make sure that nothing vital has changed on the SAP PI system. Figaf Tool allows you to run the test fast and validated all documentation.

  2. Test when you have done any development or modification of an SAP Interface. Figaf Tool allows you to fast run the test again.

  3. Test once you have done a migration from a dual stack to a single stack or from an other integration platform. You can then upload the in- and outbound messages and process them on the PI system.

  4. Test that your Seeburger Migration works and have not have any impact on your existing integrations.

  5. Extend the test cases from other testing applications like UFT or ALM with validation of the SAP PI/CPI interfaces. This will give you an extended validation of that the messages is created correctly. In this case you need to use the baseline option of Figaf Tool Testing Tool.

6.2. Get started with Testing Tool

Requirements:

  1. All required Agent Systems have been configured (see that section to learn how to do that).

  2. Synchronization of all required Agent Systems has been done (see Synchronization with Agent system section).

  3. PRO only. Since of 2310 Figaf Tool enables AM/BI logging during creating a recording request or running a test case if ICO Logging messages logging approach is used for the related PRO agent or integration objects. So if you would like to test PRO scenarios with ICO Logging and the scenario relates to one of the following cases:

    • scenario has single receiver interface for one receiver with non-empty condition - condition is lost during update through public web service, so, it’s required to recover it.

    • adapter engine name for wildcard sender ICOs (when it’s not empty, i.e., decentral adapter engine is configured) - WS model doesn’t have that parameter at all so that it’s required to update it after upload.

    then additional SAP PRO client libraries must be available in runtime classpath. They are not included into the build, so they should be added to a folder (you can create libs folder in the folder with jdbc driver) and then the path to that libs folder should be passed through -Dloader.path parameter in the bootstrap command (see that section). If any of these libraries are missing, you will see the following error during transport creation or checking imported objects:

    missing dependencies error

    Required libraries:

    • com.sap.aii.utilxi.core.jar - can be downloaded from <PRO system root url>/dir/directory/com.sap.aii.utilxi.core.jar

    • com.sap.xpi.ib.core.jar - can be downloaded from <PRO system root url>/dir/directory/com.sap.xpi.ib.core.jar

    • com.sap.xpi.ibdir.core.jar - can be donwloaded from <PRO system root url>/dir/directory/com.sap.xpi.ibdir.core.jar

    • sap.com~tc~bl~guidgenerator~impl.jar - can be downloaded from <PRO system root url>/dir/directory/sap.com~tc~bl~guidgenerator~impl.jar

    If some of additional libraries aren’t in the classpath, the corresponding changelist will be rejected.

    AM/BI logging settings aren’t automatically updated for receiver wildcard ICOs. You have to enable the settings manually.

  4. CPI only. If you would like to test IFlow with nested splitters and/or multicasts, it’s required to manually add/update special header FigafMulticastIndex after each multicast (for each branch) and FigafSplitIndex after each splitter. At first time that headers should be just initialized with the value of CamelMulticastIndex and CamelSplitIndex accordingly. For nested splitters/multicasts it should append a new context value: <multicast index from the top level multicast>_<multicast index from the nested multicast>. For example: FigafMulticastIndex: 2_3_4 - that value means that message passed 2nd branch of the 1st multicast, then 3rd branch of the 2ns nested multicast then 4th branch of the 3rd nested multicast.

6.2.1. E2e testing of scenario (common use case)

In this section we describe the standard use case with e2e testing of scenario.

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration objects that you want to create test cases for.

  4. Click on Record messages. It opens Create recording requests dialog box.

    create recording request
  5. Enter Title of created Test Suite (e.g. Test Suite 1) and click on Save. If chosen objects haven’t been licensed yet, you will see the following error:

    request license testing error

    Click on Request missing licenses to update object licenses.

    After confirming the dialog box, Test Suite: Test Suite 1 page is opened.

    test suite new recordings
  6. Send the messages to the scenario or wait for messages if the scenario is scheduled.

  7. Select all recordings and click on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    It opens Polling results dialog box.

    polling results
  8. When Status of all recordings is COMPLETED, close the dialog box.

  9. Select all recordings and click on play with plus. It opens Test Case Creation dialog box, where you can configure:

    1. Test Objects for new test case.

    2. Test Case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    3. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    4. Msg Groups Count that will be used in new test case.

  10. Once you finish, click on Create Test Case(s).

    Test Objects are resolved automatically by the following rules:

    • For CPI agents objects with the same Technical Name will be used.

    • For PRO agents:

      • Scenario mappings is used (if it’s configured).

      • If test agent contains ICO with virtual receiver and ICO without receiver, then ICO without receiver will be mapped.

  11. Go to the LINKED TEST CASES tab.

  12. To run created test suite (it runs all linked test cases) click on run.

  13. Go to the LAST RESULT tab.

  14. Click on Poll remote results.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    When polling is finished, close the dialog box clicking on Close.

    If data in the table is not refreshed, click on refresh.

  15. You can see last test suite run results in the table.

    last result with errors
  16. To check details of exact test run result click on its menu button and then click on View results. It opens Test Run Details page.

    test run details page
  17. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    differences add to ignore list
  18. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Suite: Test Suite 1 page clicking on back.

  19. Run test suite again clicking on run.

  20. Poll remote messages again clicking on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  21. To view all test suite run results go to the RESULTS HISTORY tab.

6.2.2. E2e testing of scenario (fetch chosen message groups, PRO scenarios except RDs)

In this section we describe e2e testing of scenario using fetch chosen message groups recording policy (since of 2209 Figaf Tool supports this feature). The feature is available for PRO scenarios except RDs when PRO Agent has Messages logging approach equals to SAP Log Module or ICO Logging.

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration objects that you want to create test cases for.

  4. Click on Record messages. It opens Create recording requests dialog box.

    create recording request
  5. Enter Title of created Test Suite (e.g. Test Suite 1), choose 'Fetch chosen message groups'. Once it’s chosen, Chosen root messages can be configured by clicking on configuration button. It opens search message groups dialog where you can select message groups:

    search message groups dialog

    Once the data is saved, configure message groups dialog is opened:

    configure message groups dialog

    You can configure root message groups by adding them manually, searching for them and deleting. Once the configuration is saved, you will be returned to Create recording requests dialog. Click on Save to create recordings. If chosen objects haven’t been licensed yet, you will see the following error:

    request license testing error

    Click on Request missing licenses to update object licenses.

    After confirming the dialog box, Polling results dialog box is opened.

    polling results
  6. When Status of all recordings is COMPLETED, close the dialog box.

  7. Select all recordings and click on play with plus. It opens Test Case Creation dialog box, where you can configure:

    1. Test Objects for new test case.

    2. Test Case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    3. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    4. Msg Groups Count that will be used in new test case.

  8. Once you finish, click on Create Test Case(s).

    Test Objects are resolved automatically by the following rules:

    • For CPI agents objects with the same Technical Name will be used.

    • For PRO agents:

      • Scenario mappings is used (if it’s configured).

      • If test agent contains ICO with virtual receiver and ICO without receiver, then ICO without receiver will be mapped.

  9. Go to the LINKED TEST CASES tab.

  10. To run created test suite (it runs all linked test cases) click on run.

  11. Go to the LAST RESULT tab.

  12. Click on Poll remote results.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    When polling is finished, close the dialog box clicking on Close.

    If data in the table is not refreshed, click on refresh.

  13. You can see last test suite run results in the table.

    last result with errors
  14. To check details of exact test run result click on its menu button and then click on View results. It opens Test Run Details page.

    test run details page
  15. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    differences add to ignore list
  16. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Suite: Test Suite 1 page clicking on back.

  17. Run test suite again clicking on run.

  18. Poll remote messages again clicking on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  19. To view all test suite run results go to the RESULTS HISTORY tab.

6.2.3. E2e testing of receiver determination (PRO, dual stack system)

In this section we describe a use case with e2e testing of receiver determination (since of 2.12 Figaf Tool supports this feature).

Agent System should be configured with enabled dual stack recording (property Enable dual stack recording on Agent dialog).

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration objects that you want to create test cases for.

  4. Click on Record messages. It opens Create recording requests dialog box.

    rd create recording request
  5. Enter Title of created Test Suite (e.g. Test Suite 1), choose 'RD historic lookup period' (the left bound is calculated as current time minus specified lookup period. E.g., if 'X hours' lookup period is selected, then ALL messages which satisfy interface filter and have been sent during last X hours will be polled), and click on Save. If chosen objects haven’t been licensed yet, you will see the following error:

    request license testing error

    Click on Request missing licenses to update object licenses.

    After confirming the dialog box, Test Suite: Test Suite 1 page is opened.

    rd test suite new recordings
  6. Trigger agent scenario.

  7. Select all recordings and click on Poll remote messages. It opens Polling results dialog box.

    polling results
  8. When Status of all recordings is COMPLETED, close the dialog box.

  9. Select all recordings and click on play with plus. It opens Test Case Creation dialog box, where you can configure:

    1. Test Objects for new test case.

    2. Test Case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    3. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    4. Msg Groups Count that will be used in new test case.

  10. Once you finish, click on Create Test Case(s).

    Test Objects are resolved automatically by the following rules:

    • For CPI agents objects with the same Technical Name will be used.

    • For PRO agents:

      • Scenario mappings is used (if it’s configured).

      • If test agent contains ICO with virtual receiver and ICO without receiver, then ICO without receiver will be mapped.

  11. Go to the LINKED TEST CASES tab.

  12. To run created test suite (it runs all linked test cases) click on run.

  13. Go to the LAST RESULT tab.

  14. Wait for messages to be polled (refresh the page from time to time).

    If data in the table is not refreshed, click on refresh.

  15. You can see last test suite run results in the table.

    last result with errors
  16. To check details of exact test run result click on its menu button and then click on View results. It opens Test Run Details page.

    test run details page
  17. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    differences add to ignore list
  18. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Suite: Test Suite 1 page clicking on back.

  19. Run test suite again clicking on run.

  20. Wait for messages to be polled (refresh the page from time to time).

  21. To view all test suite run results go to the RESULTS HISTORY tab.

6.2.4. E2e secured testing of scenario with sensitive data (common use case)

Secured testing with sensitive data limits the access granted to developers, to ensure they will not see confidential data. Such testing can be used when your test data is confidential and it isn’t advisable to share this information with people that have not been cleared for it.

Below we describe the standard use case with e2e secured testing of scenario with sensitive data (since of 2.12 Figaf Tool supports this feature).

Agent System should be configured with confidential data (property Has confidential data on Agent dialog).

Testing with sensitive data is run on secured test systems, so you need to configure Agent (it can be the same Agent or another) as secured (property Secured test system on Agent dialog).

The following actions have to be done on the PRO system configured as secured to prevent browsing of sensitive payloads sent from Figaf Tool:

  1. Add the rules in SAPWebDispatcher file (e.g., <path_to_PRO_system>\SYS\global\security\data\icm_filter_rules.txt):

    if %{REMOTE_ADDR} !stricmp 127.0.0.1 [AND]
    if %{REMOTE_ADDR} !stricmp ::1  [AND]
    if %{REQUEST_METHOD} stricmp "GET" [AND]
    if %{FORMFIELD:afwmsgkey} !stricmp ""
    RegIRedirectUrl ^/webdynpro/dispatcher/sap.com/tc~lm~itsam~ui~mainframe~wd/FloorPlanApp.*$ /webdynpro/resources/figaf.com/irt-message-filter/MessagePageServlet [QSA]
    
    
    if %{REMOTE_ADDR} !stricmp 127.0.0.1 [AND]
    if %{REMOTE_ADDR} !stricmp ::1  [AND]
    if %{REQUEST_METHOD} stricmp "GET" [AND]
    if %{FORMFIELD:afwmsgkey} !stricmp ""
    RegIRedirectUrl ^/webdynpro/resources/sap.com/tc~lm~itsam~ui~mainframe~wd/FloorPlanApp.*$ /webdynpro/resources/figaf.com/irt-message-filter/MessagePageServlet [QSA]
    
    if %{REMOTE_ADDR} !stricmp 127.0.0.1 [AND]
    if %{REMOTE_ADDR} !stricmp ::1 [AND]
    if %{REQUEST_METHOD} stricmp "GET"
    RegIRedirectUrl ^/webdynpro/resources/sap.com/tc~lm~itsam~co~ui~xi~msg~wd/Components/com.sap.tc.lm.itsam.co.ui.xi.msg.ximessagedetailed.XIMessageDetailed(.*)$ /webdynpro/resources/figaf.com/irt-message-filter/MessageContentPartsServlet$1 [QSA]
    
    if %{REMOTE_ADDR} !stricmp 127.0.0.1 [AND]
    if %{REMOTE_ADDR} !stricmp ::1 [AND]
    if %{REQUEST_METHOD} stricmp "GET"
    RegIRedirectUrl ^/mdt/messagecontent$ /webdynpro/resources/figaf.com/irt-message-filter/DownloadMessageContentServlet [QSA]
  2. Restart the system.

  3. Deploy IRT-MESSAGE-FILTER-1.0.sca component.

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration objects that you want to create test cases for.

  4. Click on Record messages. It opens Create recording requests dialog box.

    create recording request
  5. Enter Title of created Test Suite (e.g. Test Suite 1) and click on Save. If chosen objects haven’t been licensed yet, you will see the following error:

    request license testing error

    Click on Request missing licenses to update object licenses.

    After confirming the dialog box, Test Suite: Test Suite 1 page is opened.

    test suite new recordings
  6. Send the messages to the scenario or wait for messages if the scenario is scheduled.

  7. Select all recordings and click on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    It opens Polling results dialog box.

    polling results
  8. When Status of all recordings is COMPLETED, close the dialog box.

  9. Select all recordings and click on play with plus. It opens Test Case Creation dialog box, where you can configure:

    1. Test Objects for new test case.

    2. Test Case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    3. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    4. Msg Groups Count that will be used in new test case.

  10. Once you finish, click on Create Test Case(s).

    Test Objects are resolved automatically by the following rules:

    • For CPI agents objects with the same Technical Name will be used.

    • For PRO agents:

      • Scenario mappings is used (if it’s configured).

      • If test agent contains ICO with virtual receiver and ICO without receiver, then ICO without receiver will be mapped.

    Test Objects only from secured Agents can be selected.

  11. Go to the LINKED TEST CASES tab.

  12. To run created test suite (it runs all linked test cases) click on run.

  13. Go to the LAST RESULT tab.

  14. Click on Poll remote results.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    When polling is finished, close the dialog box clicking on Close.

    If data in the table is not refreshed, click on refresh.

  15. You can see last test suite run results in the table.

    last result with errors
  16. To check details of exact test run result click on its menu button and then click on View results. It opens Test Run Details page.

    test run details page
  17. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    If current user doesn’t have role IRTSensitivePayloadViewer, he/she will view encoded payloads, e.g.:

    encoded differences add to ignore list

    Users with role IRTSensitivePayloadViewer are allowed to view encoded and original version of payloads, e.g.:

    decoded differences add to ignore list

    To encode XML and JSON documents they are parsed and only element values and attributes (for XML) are replaced in the following way:

    • Uppercased letterX

    • Lowcased letterx

    • Number9

    • Space character → no changes

    • Symbol character#

    • Strings with length greater than 20 are truncated, is added to the end of string.

      Encoded view is supported only for XML and JSON documents. For other types payloads won’t be viewed for users without IRTSensitivePayloadViewer role.

  18. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Suite: Test Suite 1 page clicking on back.

  19. Run test suite again clicking on run.

  20. Poll remote messages again clicking on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  21. To view all test suite run results go to the RESULTS HISTORY tab.

6.2.5. IFlow chain testing

In this section we describe configuration and flow of IFlow chain testing.

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration objects that you want to create test cases for.

  4. Go to Common Information tab of the first IFlow in the chain.

  5. Configure Subsequent IFlows and Save the configuration.

  6. Go to Recording Configuration tab.

  7. Enable Record IFlow chain and Save the configuration.

  8. Go to Test Configuration tab.

  9. Enable Test IFlow chain and Save the configuration.

  10. Go to the Integration Objects tab on the Testing Tool page.

  11. Click on Record messages. It opens Create recording requests dialog box.

    create recording request
  12. Enter Title of created Test Suite (e.g. Test Suite 1) and click on Save. If chosen objects haven’t been licensed yet, you will see the following error:

    request license testing error

    Click on Request missing licenses to update object licenses.

    After confirming the dialog box, Test Suite: Test Suite 1 page is opened.

    test suite new recordings
  13. Send the messages to the scenario or wait for messages if the scenario is scheduled.

  14. Select all recordings and click on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    It opens Polling results dialog box.

    polling results
  15. When Status of all recordings is COMPLETED, close the dialog box.

  16. Select all recordings and click on play with plus. It opens Test Case Creation dialog box, where you can configure:

    1. Test Objects for new test case.

    2. Test Case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    3. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    4. Msg Groups Count that will be used in new test case.

  17. Once you finish, click on Create Test Case(s).

    Test Objects are resolved automatically by the following rules:

    • For CPI agents objects with the same Technical Name will be used.

    • For PRO agents:

      • Scenario mappings is used (if it’s configured).

      • If test agent contains ICO with virtual receiver and ICO without receiver, then ICO without receiver will be mapped.

  18. Go to the LINKED TEST CASES tab.

  19. To run created test suite (it runs all linked test cases) click on run.

  20. Go to the LAST RESULT tab.

  21. Click on Poll remote results.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    When polling is finished, close the dialog box clicking on Close.

    If data in the table is not refreshed, click on refresh.

  22. You can see last test suite run results in the table.

    last result with errors
  23. To check details of exact test run result click on its menu button and then click on View results. It opens Test Run Details page.

    test run details page
  24. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    differences add to ignore list
  25. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Suite: Test Suite 1 page clicking on back.

  26. Run test suite again clicking on run.

  27. Poll remote messages again clicking on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  28. To view all test suite run results go to the RESULTS HISTORY tab.

6.2.6. Manual test case creation (PRO)

Sometimes automatic message recording isn’t appropriate (e.g. hundreds of them are used). So it is possible to manually create test cases from prepared messages:

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent (PRO) and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration object for which you want to create test case.

  4. Click on Create Test Case button. It opens Test case creation page:

    PRO test case creation page
  5. Configure test case:

    1. Test Suite - new or existent one.

    2. Agent Object for new test case.

    3. Test Objects for new test case.

    4. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    5. Test case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    6. Title of new test case.

    7. Message.

    8. Partner.

    9. Upload messages from:

      • Archive: load archive from your local environment.

      • Table: configure inbound and outbound messages and their properties, load payloads.

      • Archive from server: define the path to archive from server.

        You can enable Forcibly calculate order numbers using expressions from recording configuration when Upload messages from is Archive or Archive from server. If it’s enabled, order numbers will be recalculated during test case upload. Settings Order expressions and Use alphanumeric order number (configured on Recording Configuration tab of Integration Object page) will be used during recalculation.

        Archive has to contain all inbound and outbound messages and package-info.json file, that you can create from Test case creation page:

        1. Select Archive type of message uploading.

        2. Click on Build package-info.json button. It opens Create package-info.json for manual upload page:

          create package info json for manual upload page
        3. Configure all properties carefully.

          For example, we have 3 inbound messages and 1 outbound message per inbound message and we don’t use DC filename template. We have prepared the following payloads:

          folder with payloads for manual test case creation

          Then our configuration will be:

          example create package info json for manual upload page

          It is almost done. Only configuration of From and To components is left.

          If you change Outbound messages count per one inbound, click on Build JSON button.

        4. Once you finish with configuration click on Build JSON button and Download package-info.json.

          Also, you can view built json clicking on hide.

        5. Move downloaded package-info.json file to the folder with payloads and create an archive.

  6. Once you finish with configuration, click on Create Test Case button. It creates test suite and test case and links them. As the result Test Case Details page will be opened:

    tc info
  7. To run created test case go to Testing Results tab and click on run button. You will see results in the table.

  8. Select unfinished results and click on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  9. Inspect result clicking on its menu button and then clicking on View results. It opens Test Run Details page.

    test run details page
  10. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    differences add to ignore list
  11. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Case Details page clicking on back.

  12. Run test case again clicking on run.

  13. Poll remote messages again clicking on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

6.2.7. Manual test case creation (CPI)

Sometimes automatic message recording isn’t appropriate (e.g. hundreds of them are used). So it is possible to manually create test cases from prepared messages:

  1. Go to the Integration Objects tab on the Testing Tool page.

  2. Select required Agent (CPI) and run synchronization (see Synchronization with Agent system section).

  3. Choose the integration object for which you want to create test case.

  4. Click on Create Test Case button. It opens Test case creation page:

    CPI test case creation page
  5. Configure test case:

    1. Test Suite - new or existent one.

    2. Agent Object for new test case.

    3. Test Objects for new test case.

    4. Landscape - binary landscape used to identify development object. So if it’s empty, Agent Object must be licensed for testing. If Landscape is selected, related composite landscape will be used for license check and source development object must be licensed for testing. See landscapes configuration PRO and CPI.

    5. Test case Type - REGRESSION or BASELINE.

      Regression testing is an approach when you test that integration scenario produces expected outbound response for the same inbound data.

      Baseline testing is a bit different - it compares the whole set of messages, so it checks that integration scenario consumes expected inbound request and produces expected outbound response.

    6. Title of new test case.

    7. Message.

    8. Partner.

    9. Upload messages from:

      • Table: configure inbound and outbound messages and their configuration, load payloads. Example of message properties file:

        [
          {
            "name": "header1",
            "value": "value",
            "propertyType": "TRACE_MESSAGE_HEADER",
            "_comment" : "supported property types: TRACE_MESSAGE_HEADER, TRACE_MESSAGE_EXCHANGE, RUN_STEP_PROPERTY"
          },
          {
            "name": "header2",
            "value": null,
            "propertyType": "TRACE_MESSAGE_EXCHANGE"
          }
        ]
  6. Once you finish with configuration, click on Create Test Case button. It creates test suite and test case and links them. As the result Test Case Details page will be opened:

    tc info
  7. To run created test case go to Testing Results tab and click on run button. You will see results in the table.

  8. Select unfinished results and click on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  9. Inspect result clicking on its menu button and then clicking on View results. It opens Test Run Details page.

    test run details page
  10. To open diff viewer and check differences between expected and actual messages, click on the inspected item’s menu button and then click on Diffs. It opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

    Add items and message properties to ignore list once.

    differences add to ignore list
  11. When you finish with adding items and message properties to ignore list, close the dialog box and navigate back to Test Case Details page clicking on back.

  12. Run test case again clicking on run.

  13. Poll remote messages again clicking on Poll remote messages.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

6.2.8. Migrate test cases from PI to CPI

PI test case has been created (see E2e testing of scenario (common use case)).

At least one CPI agent is configured.

  1. Go to Integration Objects page.

  2. Select PI agent.

  3. Click on required object Interface Name. It opens Integration Object Details page.

  4. Go to Agent Test Cases tab.

  5. Select previously created test case.

  6. Click on menu full and then on Migrate to CPI IFlow button. It opens Migrate Test Cases dialog:

    migrate test cases dialog

    Where you can configure test suite (new or existent one) and CPI IFlow. If you want to open Test Suite: Test Suite Title page, enable Open Test Suite’s page after test cases migration option.

    If selected IFlow was migrated from PI agent using PI to CPI migration feature, you are able to configure mapping between platforms. Since irt-2208.1 it’s possible to configure IFlow element ids in BPMN Model with viewer dialog clicking on configuration button.

    Once you configure all fields, click on Save. It opens confirmation:

    migrate test cases confirmation

    As the result, new test case will be created and attached to the test suite.

    During the copying of the messages, interface related parameters (stepId, activity, branchId) of the last stage are initialized by value ${determineDuringFirstRun}. For other stages for bridges and BE scenario value ${shouldBeMappedManually} is used. Original stage number is temporary saved in the step number, then it will be replaced by real value - it needs for BE and bridges to distinguish different original stages.

  7. Run created test case (either run test suite (e.g. from Test Suites page) or test case separately (e.g. from Test Cases page)).

  8. Open Test Run Details page (e.g. view Test Case Details page, go to Testing Results tab, click on result’s menu and click on View results).

    During the first run of the migrated test case, interface metadata of the last stage (4th for BE or bridges, 2nd for other) is automatically updated. For BE/bridges, 2nd stage entries will have UNFINISHED state. You can chose, which UNEXPECTED message should match this result: click on message’s menu and click on Map interface metadata.

    Once unexpected testing result matched with the unfinished result, missing data is copied to UNFINISHED result, UNEXPECTED results are deleted, and if it needs, the message are sent to the comparison.

6.3. Test with Testing Tool

This section includes detailed description of all pages and dialog boxes in Testing Tool.

6.3.1. Integration Objects page

Integration Objects page looks:

integration objects

On this page you can:

  • synchronize integration objects of the required Agents (see Synchronization with Agent system section);

  • view last synchronization result (to do it click on Last Sync Result button);

    Last Sync Result button is available after synchronization and until page is refreshed.

  • view the integration objects of the selected Agent;

  • view deleted objects (to do it click on Browse deleted objects switcher) - it shows the objects that have been deleted on remote system after previous synchronization;

  • remove deleted objects (to do it select the object(s) and click on trash) - it deletes all related objects in scope of Testing Tool (e.g. recordings, test cases), and it doesn’t delete the object(s) from Change Tracking Tool;

    You should switch view for deleted objects to be able to delete them.

  • delete test IFlows for CPI systems (to do it click on menu full and choose the action);

  • add, remove modules for PRO systems (to do it click on menu full and choose the action):

    • Add modules adds Figaf Agent Module or SAP Log Module (depending on chosen value of Messages logging approach option on Agent dialog box) to communication channel’s modules chain;

    • Remove modules is opposite to Add modules;

    • Remove ALL modules triggers removing from all objects. It is used while uninstallation;

      Add modules and Remove modules can be used only for primary objects (sender agreements for wildcard sender ICOs, wildcard receiver ICOs for receiver agreements, sender scenario in the bridges).

    • Modules management report downloads modules management history report with historical changes for communication channels made by Figaf Tool;

    • PI agent report downloads report with channels, operation mappings and function libraries configurations.

  • record messages to start configuring testing (to do it select the object(s) and click on Record messages button) - it opens Create recording requests dialog box;

  • create test case (to do it select the object and click Create Testcase) - it opens Test case creation page;

    Record messages and Create Testcase can be used only for primary objects (sender agreements for wildcard sender ICOs, wildcard receiver ICOs for receiver agreements, sender scenario in the bridges).

    Selected objects should be licensed for Testing (see Configure Object Licenses for details).

  • open details of integration objects (to do it click on recordings io or test cases io buttons) - it opens Integration Object Details page (see Integration Object Details page).

Integration Object Details page

Integration Object Details page includes several tabs with various information about integration object:

  1. Common Information tab shows the object metadata. It looks a little bit different for PRO and CPI objects:

    1. For PRO objects:

      io details pro

      Here you can open Tracked Object Details clicking on Tracked Object, and configure the following parameters:

      1. Scenario type configures scenario type for the integration object. Enable Override scenario type to be able to configure the parameter. In most cases Figaf Tool initializes this parameter appropriately but in some cases this parameter should be defined manually. Be careful with updates it may lead to unexpected behavior.

      2. Messages Logging Approach configures messages logging approach for the integration object. Only SAP Log Module or ICO Logging can be configured. Enable Override Messages Logging Approach to be able to configure the parameter. The option is visible when Use the most appropriate messages logging approach by default per scenario is enabled for the agent.

      3. Scenario validation contains the following validations:

        1. Is it ok to test without modules or not: warning - if ICO Logging is used for the object having custom modules, information - for SAP Log Module/Agent Module.

        2. Undetermined scenario type. Default value for ICO is UNDEFINED. If processing type is UNDEFINED the following operations are blocked for the ICO: modules addition (deletion should work), recording creation, test case running, polling.

        3. Undetermined default adapter modules (that affects modules addition): error for SAP Log Module/Agent Module, warning for ICO Logging.

        4. Detect if ICO logging is configured properly for current scenario. If setting are not found at all, then there is a message to check if BI/AM logging is enabled (they are global or scenario is not 7.5):

          1. When logging settings are not found: information when Sap Log Module enabled.

          2. When logging settings are found: information - if BI and AM not found and Sap Log Module enabled, warning - if BI and AM not found and ICO Logging enabled.

      4. Communication channels with information about modules. It’s possible to Add Modules and Remove Modules on this page.

      5. Channel selection strategy configures strategy applied to channels listed in Channels filter for modules update (EXCLUDE_CHANNELS (default) or INCLUDE_CHANNELS).

      6. Channels filter for modules update - is a list of communication channels which shouldn’t be updated (if Channel selection strategy is EXCLUDE_CHANNELS) or which should be updated (if Channel selection strategy is INCLUDE_CHANNELS). Start typing the communication channel name and select it to add it to the list.

        Channel selection strategy and Channels filter for modules update options must be configured for each ICO/SA/RA separately.
      7. Message interfaces which should be polled - is a list of message interfaces to be polled.

      8. Update channels with passwords. If false, it prevents updating of communication channels if they have password parameters in the modules chain.

      9. Has external sender. This option should be set manually if separate splitter scenario is used for triggering current scenario or when external correlation id is sent with the message and SAP Log Module or ICO Logging integration types are configured on Agent. Regarding the second case, it is required because we search Adapter Framework Data entries (entries in the SAP Message Monitoring) and determine root entries where root entry is calculated by default as an entry with matching interface info and without parent id and correlation id. Enabling Has external sender option disables some checks for root entry determination and makes it possible to have root entry with the link to external parent. But such configuration will cause issues when non-root messages with the same interface and with the link to real parent entry are fetched from SAP Message Monitoring.

      10. Add LogVersion status to the messages lookup during the polling - enable it if you want to add LogVersion status to the messages lookup during the polling.

      11. Test separately from parent scenario enables possibility to test the ICO in Async/Sync bridge separately. The option is available on Async/Sync bridges child objects pages. The option is relevant only for SAP log module/ICO Logging integrations.

        You also need to enable Record synchronous service response if exists setting on recording configuration page.

      12. Enable old polling approach enables old polling approach for scenario. That option has effect if old polling approach is not enabled globally by default (in bootstrap properties: irt.testing.pro.polling.async-with-splitter-scenario.use-old-approach, irt.testing.pro.polling.async-without-splitter-scenario.use-old-approach, irt.testing.pro.polling.sync-scenario.use-old-approach, irt.testing.pro.polling.async-sync-bridge-scenario.use-old-approach). When the option is enabled the following settings are shown:

        1. Enable automatic messages lookup optimization during the polling. Default value is true. Disable this option if you poll messages for scenario with the 1 receiver interface and 1 receiver channel but with the message split or scenario with the interfaces/receiver/message split without BI staging enabled and your agent uses SAP Log module or ICO Logging. If it’s false, the following options can be configured:

          1. Forcibly lookup successors during the polling enables successors lookup using message id.

          2. Forcibly lookup parent during the polling enables parent lookup by msgId using refId/parentId.

          3. Forcibly lookup by Reference ID/Correlation ID during the polling enables lookup by refId/correlationId using message id.

    2. For CPI objects:

      io details cpi
      1. Subsequent IFlows configures IFlows following current IFlow in the chain.

        Configuration should be done on the first IFlow level.
  2. Recording Configuration tab shows current recording configuration and provides functionality to change the configuration. The following settings are configured:

    1. For PRO objects:

      io recording config PRO
      • Messages Count defines how many messages will be recorded.

      • per unique message/partner combination sets up a recording strategy per message/partner, so that expected message groups count means n messages per message/partner. It also requires a timeout is hours to define an expected period of recording.

      • Message Expression defines some specific text, e.g. 'demo2019'.

      • Partner Expression defines XPath expression, e.g. '//Seller'. This means that once it is processing this data it will then go into it.

      • Order expressions means when you are receiving messages if there are some correlation or some id that you need to use for ordering these. You need it if you have a message that being split, otherwise it is pretty difficult to see which of the messages you need to compare.

      • Message Filter and Partner Filter define interfaces to be recorded.

      • Use alphanumeric order number enables calculation of order number as a string instead of a number.

      • Don’t calculate order number for a single entry - if true, order number is set to 1 (if there are 1 inbound and 1 outbound messages).

      • Record synchronous service response if exists is used when you have sync call. We test it the following way:

        • You have a message that being processed.

        • The first part is the sender adapter.

        • Then we go to the receiver adapter.

        • We log it before it’s been sent to the SOAP channel for instance.

        • We log it in the response coming back from the SOAP channel.

        • We log it just before it’s delivered to livery segment system.

        • If Record synchronous service response if exists is true, we log response coming back and use that to set up testing.

          Enable it if you record messages for child ICO in Async/Sync bridge.

      • Record payloads logged by the adapter if possible is used to record JSON payloads logged by the Rest adapter or CSV payloads logged by the File adapter. Supported only for SAP Log Module and ICO Logging message retrieving ways.

    2. For CPI objects:

      io recording config CPI
      • Messages Count defines how many messages will be recorded.

      • Message Expression defines some specific text, e.g. 'demo2019'.

      • Partner Expression defines XPath expression, e.g. '//Seller'. This means that once it is processing this data it will then go into it.

      • Order expressions means when you are receiving messages if there are some correlation or some id that you need to use for ordering these. You need it if you have a message that being split, otherwise it is pretty difficult to see which of the messages you need to compare.

      • Use alphanumeric order number enables calculation of order number as a string instead of a number.

      • Don’t calculate order number for a single entry - if true, order number is set to 1 (if there are 1 inbound and 1 outbound messages).

      • Download additional payloads - if true, additional payloads (e.g. MPL attachments, datastore entries) are recorded.

      • Record IFlow chain - if true, messages will be recorded for all IFlows in chain.

        Configuration should be done on the first IFlow level.
      • Use only finishing run steps enables functionality when only the last messages in a test case will be compared. If true, Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) can’t be set.

      • Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) configure steps which should be recorded. Since irt-2209 it’s possible to configure run steps filter in BPMN Model with viewer dialog clicking on configuration button.

  3. Test Configuration tab shows test configurations of the integration object. There are the following properties can be configured here:

    1. Comparison Type defines used comparison strategy. Most of the time AUTO is fine.

    2. EDI functional group correlation key path defines path to data element or component element which can be used as a group identifier during comparison. Define a value if there are several functional groups in EDI outbound messages. The path format is described below.

    3. EDI message correlation key path defines path to data element or component element which can be used as a message identifier during comparison. Define a value if there are several messages in EDI outbound messages. Don’t define a value if there are several groups with 1 message in each group.

      EDI functional group correlation key path and EDI message correlation key path must be configured in the special format:

      <segment prefix><data element index and options><component element index (optional)>

      where:

      • <segment prefix> - shouldn’t contain [ or ], for example, UNE, DTM+137.

      • <data element index and options>: [<standalone index>] or [<standalone index>|<option>].

      • <component element index>: for example, 1.

        • <standalone index>: for example, 1

        • Available option:

          • substring - the option defines a substring rule for group/message correlation id path in EDI comparison. The option has the following syntax: substring(<characterIndex>|<characterIndex>), where characterIndex is index of the first or last character of substring that should be used as an identifier, could have positive or negative value:

            • substring(-2|), substring(-2), and substring(-2|0) uses 2 last characters, e.g. somestriNG.

            • substring(-5|-1) uses 4 characters starting from the fifth character from the end, e.g. somesTRINg.

            • substring(1|-1) uses all characters starting from the second and ending with penultimate, e.g. sOMESTRINg.

            • substring(-1|1) uses the first and the last characters, e.g. SomestrinG.

      Examples:

      • Only segment prefix: UNE, DTM+137.

      • Segment prefix with data element index: UNH[0], IMD[1].

      • Segment prefix with data element index and option: UNE[1|substring(-2|)].

      • Segment prefix with data element index and component element index: UNB[2][4].

    4. Item Ignore defines XPath expressions (divided by semicolon) to ignore, e.g. '/Invoice/Date'.

      For EDI type you can configure items in the special format

      <segment prefix><data element indexes and options><component element indexes (optional)>+<data element indexes and options><component element indexes (optional)>+<data element indexes and options><component element indexes (optional)>+...

      where:

      • <segment prefix> - shouldn’t contain [ or ], for example, UNE, DTM+137.

      • <data element indexes and options>: [<standalone/ranged index>, …​, <standalone/ranged index>|<option1>, <option2>]

      • <component element indexes>: [<standalone/ranged index>, …​, <standalone/ranged index>]

        • <standalone index>: for example, 1

        • <ranged index>: for example, 0-4

        • Available options:

          • empty-missing

          • java formatting which matches regex %[\\d.]*([dfeg]{1})$, for example: %.3f, %.6e.

      Examples:

      • Only segment prefix: UNE, DTM+137.

      • Segment prefix with data element indexes: UNH[0], IMD[0-2], IMD[0,2].

      • Segment prefix with data element indexes and options and component element indexes: UNB[0]+[1|empty-missing][0]+[2-5,7-8,9-10][4,5].

      For XML type you can configure items in the special format

      <XPath><options>

      where:

      • <XPath> - standard XPath expression, for example, //targetElem.

      • <options>: {{<option1>,<option2>}}

        • Available options:

          • empty-missing

          • java formatting which matches regex %[\\d.]*([dfeg]{1})$, for example: %.3f, %.6e.

      Examples:

      • Only XPath expression: //targetElem.

      • XPath expression with additional ignoring options: /targetElem{empty-missing,%.3f}.

    5. Message Properties Ignore defines dynamic properties (divided by semicolon) to ignore, e.g. 'X-Vcap-Request-Id'. If you have a lot of dynamic properties with the same prefix (e.g. DynamicProperty1 and DynamicProperty2), you can define just common prefix (DynamicProperty) to ignore all dynamic properties with this prefix during comparison.g

      Item Ignore and Message Properties Ignore properties can be configured during result comparison in Differences dialog that can be opened from Test Run Details page.

    6. Order Expressions defines how to order messages.

    7. Collection Item Identification Expressions (only for XML type) defines rules to compare a collection with the different order of elements in the expected and actual messages. This setting should be configured in the following format:

      <path to the collection>-><relative path to the identification element>

      If path to your collection is /example/collection and path to element identified collection id example/collection/object/id, then Collection Item Identification Expressions is /example/collection->object/id.

    8. Result Notification Delay (in minutes). When current test object is used in some test suite, value of this option is used in the calculation of the min amount of time between the time when test suite run report is generated and its sending through email. Result Notification Delay for test suite is calculated as the max of Result Notification Delay values configured for each test object used by this test suite. Configure delay properly when testing of current scenario takes a lot of time.

    9. Use alphanumeric order number enables calculation of order number as a string instead of a number.

    10. Don’t calculate order number for a single entry - if true, order number is set to 1 (if there are 1 inbound and 1 outbound messages).

    11. Use expected message encoding during comparison. Enable if you want to forcibly use encoding from expected message instead of dynamically determined encoding from actual result. Have effect only for the following message types: EDIFACT, X12, TEXT.

    12. Ignore XML attributes configures XML attributes ignoring during comparison.

    13. Trim whitespaces before XML comparison enables ignoring whitespaces during comparison of XML payloads. By default, option is enabled.

    14. For PRO objects you can configure additional settings for testing:

      1. Don’t use original receiver communication (mock endpoints) (for BE scenarios) enables testing with mock data. It uses the replacement of original receiver channel links in the test scenario by our REST channel links. For each original receiver channel, Figaf Tool creates and keeps actual the REST channel with the prefix FigafIRT_. That channel calls endpoint which just receives code 200 without the body. All custom modules from the original channel are copied to that REST channel. So requests to the original receiver are avoided.

      2. Use splitter - if true, B2B splitter is used. If you have B2B messages and you want to send them in with the B2B splitter, you can specify which scenario to set them up and to send them in with this specific splitter.

        io test config splitter

        There is also global splitter setting that you can use (see Agents integration configuration, field Default splitter on Agent dialog box).

      3. Decide to test with/without sender modules automatically - true by default. When sender communication channel has custom modules, the standard way of testing for PRO scenarios in Figaf Tool (through common infrastructure scenario) will not work correctly because these custom modules will not be triggered. Figaf Tool determines such case automatically if Decide to test with/without sender modules automatically is true, as a result, special infrastructure scenario will be created for making correct test. Otherwise you can decide to apply or not such behavior for current test object.

        After disabling Decide to test with/without sender modules automatically new option Run migration tests with modules on sender side is available. You have to decide by yourself should it be selected or not.

      4. Generate new numbers for each message - it adds the NumberRange Module to the test channel, so you can use the B2B NRO to maintain a list of numbers.

      5. Don’t send message after testing - it can be applied only to standard EO/EOIO scenarios and only when Figaf Agent Module integration type is configured on Agent. Agent Module throws specific exception after processing of 2nd stage message (after sender mapping). Then Figaf Tool triggers cancellation of such message. As a result, the message is not sent to real receiver but tested in Figaf Tool. It causes critical limitation for BE scenarios because only sender mapping is tested.

      6. Test 3rd stage messages in baseline test cases - if true, it creates test run result for 3rd stage message (sync service response) so comparison between expected and actual results is processed.

      7. Validate receiver integration - if true, AFD status will be compared with the expected value success. If they are not equal, it will be shown on Differences dialog as a dynamic configuration property http://figaf.com/testing/virtual-property|MessageStatus. The feature works only for SAP Log module and ICO Logging.

      8. Don’t skip adapter-specific properties by default during message sending - if true, message properties that start with one of prefixes DEFAULT_IGNORED_PROPERTY_PREFIXES or equal to one of DEFAULT_IGNORED_PROPERTIES aren’t skipped during message sending.

      9. Define additional dynamic properties to send with the test message enables configuration of additional dynamic properties.

    15. For CPI objects you can configure:

      1. Don’t use original receiver communication (mock endpoints) enables testing with mock data. Linked test cases are run with replacing real receivers responses by previously recorded responses (from corresponding receivers) on Agent Object. Figaf Tool clones original test object (IFlow) with replacing sender and receiver channels to HTTPS where receiver channel endpoints are special Figaf Tool API. To use this mocking service you need to have configured Figaf Tool to use the cloud connector (see cloud connector properties configured in run command).

      2. Use a separate IFlow to send messages enables testing by calling another IFlow. If true, Sender IFlow can be selected.

        Use a separate IFlow to send messages and Don’t use original receiver communication (mock endpoints) can’t be used simultaneously.

        Please note that if shared configuration is configured for the IFlow with enabled Use a separate IFlow to send messages, Test with mock data should be disabled in the shared configuration.

        If Sender IFlow has multiple entry points, the first one will be selected for running.

        If Sender IFlow has a not standard sender channel, a copy IFlow (with replaced sender) will be created. But a target IFlow will never be changed if we use a Sender IFlow.

      3. Test IFlow chain enables IFlow chain testing.

        Configuration should be done on the first IFlow level.
      4. Use only finishing run steps enables functionality when only the last messages in a test case will be compared. If true, Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) can’t be set.

      5. Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) configure steps which should be tested. Since irt-2209 it’s possible to configure run steps filter in BPMN Model with viewer dialog clicking on configuration button.

  4. Recording Requests tab looks:

    io recordings

    Several actions can be done on this tab:

    1. View related test suites clicking on Test Suite Title. It opens Test Suite: Test Suite Title page page.

    2. View recording details clicking on details. It opens 'Recording Request Details' page.

    3. Copy recording clicking on dots icon and then on Copy button. It opens 'Copy Recording Requests' dialog box.

      copy recordings dialog

      In this dialog box you can configure created recording:

      1. Fetch policy switches the way how messages will be fetched from the message monitoring. There are several possible values:

        • Fetch historic messages - takes messages from message monitoring in order of their creation depending on specified period in Historic lookup period property (the left bound is calculated as current time minus specified lookup period). When you use Fetch historic messages option, be sure that historic messages have enough metadata to record them. For SAP Log Module integration type messages should have logged state with irtLogStage<x> labels, where x=1…4, for ICO Logging integration type messages should have logged state with BI and AM labels.

          Fetch historic messages is used for all CPI agents and when PRO Agent has Messages logging approach equals to SAP Log Module or ICO Logging (see Agents integration configuration).
        • Fetch future messages - only messages sent after recording creation will be recorded.

        • Fetch chosen message groups enables message groups configuration. Once it’s selected, Chosen root messages can be configured by clicking on configuration button. It opens search dialog where you can select root message groups for recording.

          Fetch chosen message groups is used only when PRO Agent has Messages logging approach equals to SAP Log Module or ICO Logging (see Agents integration configuration) and scenarios used in recordings aren’t RDs.
      2. RD historic lookup period (only for PRO agents) is shown for agents with enabled dual stack recording (see property Enable dual stack recording on Agents integration configuration) and similar to Historic lookup period (only for PRO Agents).

      3. Update channels with password (PRO Agents).

      4. You can configure more properties clicking on config:

        • For PRO objects:

          • Messages Count defines how many messages will be recorded.

          • per unique message/partner combination sets up a recording strategy per message/partner, so that expected message groups count means n messages per message/partner. It also requires a timeout is hours to define an expected period of recording.

          • Message Expression defines some specific text, e.g. 'demo2019'.

          • Partner Expression defines XPath expression, e.g. '//Seller'. This means that once it is processing this data it will then go into it.

          • Order expressions means when you are receiving messages if there are some correlation or some id that you need to use for ordering these. You need it if you have a message that being split, otherwise it is pretty difficult to see which of the messages you need to compare.

          • Message Filter and Partner Filter define interfaces to be recorded.

          • Use alphanumeric order number enables calculation of order number as a string instead of a number.

          • Don’t calculate order number for a single entry - if true, order number is set to 1 (if there are 1 inbound and 1 outbound messages).

          • Record synchronous service response if exists is used when you have sync call. We test it the following way:

            • You have a message that being processed.

            • The first part is the sender adapter.

            • Then we go to the receiver adapter.

            • We log it before it’s been sent to the SOAP channel for instance.

            • We log it in the response coming back from the SOAP channel.

            • We log it just before it’s delivered to livery segment system.

            • If Record synchronous service response if exists is true, we log response coming back and use that to set up testing.

              Enable it if you record messages for child ICO in Async/Sync bridge.

        • For CPI objects:

          • Messages Count defines how many messages will be recorded.

          • Message Expression defines some specific text, e.g. 'demo2019'.

          • Partner Expression defines XPath expression, e.g. '//Seller'. This means that once it is processing this data it will then go into it.

          • Order expressions means when you are receiving messages if there are some correlation or some id that you need to use for ordering these. You need it if you have a message that being split, otherwise it is pretty difficult to see which of the messages you need to compare.

          • Use alphanumeric order number enables calculation of order number as a string instead of a number.

          • Don’t calculate order number for a single entry - if true, order number is set to 1 (if there are 1 inbound and 1 outbound messages).

          • Download additional payloads - if true, additional payloads (e.g. MPL attachments, datastore entries) are recorded.

          • Use only finishing run steps enables functionality when only the last messages in a test case will be compared. If true, Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) can’t be set.

          • Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) configure steps which should be recorded. Since irt-2209 it’s possible to configure run steps filter in BPMN Model with viewer dialog clicking on configuration button.

          As a result of recording coping, new recording will be created.

    4. Delete selected recording requests clicking on red trash button.

      In current version of Figaf Tool recordings are not stopped, they are deleted.
    5. Create Test Cases clicking on play with plus button. It opens 'Test Case creation' dialog box. After test case is created the source recording should be removed from recordings table.

      1. You should create test cases for recordings having recorded inbound/outbound messages, otherwise you will get the error.

      2. You can create test cases for recordings having not enough (less than configured Messages Count) recorded inbound/outbound messages, then test case with available messages will be created, and recording will stay in Recordings table (having less messages count).

    6. Poll remote messages clicking on Poll remote messages button. Before polling remote messages you should send the messages to the scenario or wait for messages if the scenario is scheduled, otherwise, you won’t get any messages.

      You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

      Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

      Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

      • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

      • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

      Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

      If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    7. Open last polling result clicking on Open Last Polling Result button.

      Open Last Polling Result button is available after polling remote data and until page is refreshed.

    8. Record messages clicking on Record messages button. It opens Create recording requests dialog box.

  5. Agent Test Cases tab shows test cases which have current Integration Object as Agent Object. This tab looks:

    io agent test cases

    On this tab you can:

    1. View test case details clicking on details. It opens Test Case Details page.

    2. Select the test case(s) and do actions:

      1. Run the test case(s) clicking on run or run on buttons:

        • Run uses static links to test objects defined in the test case.

        • Run on resolves these links dynamically at the moment of test run. It is possible to see how these links are resolved through Current Mapping Configuration button - it opens 'Mapping Configuration' dialog box:

          mapping configuration

          There are Agent Objects (parent nodes) and Test Objects (child nodes) in opened dialog box.

    3. Click on table’s menu full button and choose:

      1. Create Test Case (PRO) opens Test case creation page.

      2. Merge Test Cases merges two selected test cases' messages. It removes previous test cases run results.

        You should select two test cases with the same Agent Object, Message and Partner.
      3. Add to test suite adds selected test case(s) to new or existing test suite. It opens 'Create Test Suite' dialog box:

        create test suite

        You can choose to create new test suite or to use existing one. If you enable Open Test Suite’s page after creation option, Test Suite: Test Suite Title page will be opened after saving.

      4. Trim tests removes messages from selected test case(s). It keeps number of inbound messages equals to the value of How many messages to keep in the test case? property of 'Trim Test Cases' dialog box:

        trim test case
      5. Migrate to CPI IFlow (PRO) migrates PI test cases to CPI (see Migrate test cases from PI to CPI scenario). It opens Migrate Test Cases dialog:

        migrate test cases dialog

        Where you can configure test suite (new or existent one) and CPI IFlow. If you want to open Test Suite: Test Suite Title page, enable Open Test Suite’s page after test cases migration option.

        If selected IFlow was migrated from PI agent using PI to CPI migration feature, you are able to configure mapping between platforms. Since irt-2208.1 it’s possible to configure IFlow element ids in BPMN Model with viewer dialog clicking on configuration button.

        Once you configure all fields, click on Save. It opens confirmation:

        migrate test cases confirmation

        As the result, new test case will be created and attached to the test suite.

        During the copying of the messages, interface related parameters (stepId, activity, branchId) of the last stage are initialized by value ${determineDuringFirstRun}. For other stages for bridges and BE scenario value ${shouldBeMappedManually} is used. Original stage number is temporary saved in the step number, then it will be replaced by real value - it needs for BE and bridges to distinguish different original stages.

      6. Delete removes selected test case(s).

      7. Clean removes all test run results and reports of selected test case(s).

  6. Linked Test Cases tab shows test cases which have current Integration Object as test object. This tab looks:

    io linked test cases

    On this tab you can:

    1. View test case details clicking on details. It opens Test Case Details page.

    2. Select the test case(s) and do actions:

      1. Run the test case(s) clicking on run or run on buttons:

        • Run uses static links to test objects defined in the test case.

        • Run on resolves these links dynamically at the moment of test run. It is possible to see how these links are resolved through Current Mapping Configuration button - it opens 'Mapping Configuration' dialog box:

          mapping configuration

          There are Agent Objects (parent nodes) and Test Objects (child nodes) in opened dialog box.

      2. Detach link between current Integration Object and selected test case clicking on Detach button.

6.3.2. Test Suites page

Test Suites page shows all existing test suites. The page looks:

test suites

On this page you can:

  • view test suites unrelated or related to tickets (to see test suites related to tickets click on Hide Ticket related Test Suites switcher);

  • reset message interfaces to ${determineDuringFirstRun} for chosen test suites to be able to reinitialize them in runtime;

  • delete selected test suite(s) clicking on Delete;

  • delete selected test suite(s) run results clicking on Clean;

  • run selected test suite(s) clicking on play blue;

  • view test suite details clicking on details button. It opens 'Test Suite: Test Suite Title' page (see Test Suite: Test Suite Title page).

Test Suite: Test Suite Title page

Test Suite: Test Suite Title page includes several tabs with various data related to the test suite:

On each tab you are able to edit the test suite data (to start editing click on edit button):

  • Test Suite Title.

    Test Suite Title must be unique.
  • Scheduled - if true, TestSuiteRunner task runs this test suite according to configured cron expression (configure TestSuiteRunner property on Configuration → Application page).

    Agent Objects used for testing should be licensed, otherwise, scheduled test suites won’t be run.
  • Send report by email - if true, TestSuiteResultNotifier task sends test suite excel report to email configured on Configuration → Application page (configure TestSuiteResultNotifier, SMTP host, SMTP port, SMTP username, SMTP password, Email Protocol, Email From, Email To properties on Configuration → Application page).

  • Use default test systems for running enables Run on behavior for scheduled test suite running - test suite will be run on all Agents licensed as test systems excluding marked as production systems.

    You can check licensed Agents on License page. Production systems can be checked on Agent dialog box.

To save changes click on save button, to reset - reset.

To run the test suite click on run or run on buttons:

  • Run uses static links to test objects defined in the test case.

  • Run on resolves these links dynamically at the moment of test run. It is possible to see how these links are resolved through Current Mapping Configuration button - it opens 'Mapping Configuration' dialog box:

    mapping configuration

    There are Agent Objects (parent nodes) and Test Objects (child nodes) in opened dialog box.

You can’t run test suite without linked test cases.

To create recordings click on Record messages button. It opens the dialog where you can select an integration object then Create recording requests dialog box will be opened.

  1. RECORDINGS tab looks:

    ts recordings

    Here you can:

    1. View Agent Object clicking on Agent Object Title (it opens Integration Object Details page).

    2. Delete recordings (see corresponding actions here).

    3. View recording configuration clicking on dots icon and then on Config button (see settings here).

    4. Copy recording clicking on dots icon and then on Copy button (see settings here).

    5. Poll remote messages for selected recordings.

    6. Create test cases for selected recordings clicking on play with plus.

  2. LINKED TEST CASES tab shows test cases linked to current test suite and looks:

    ts linked test cases

    Here you can:

    1. View Agent Object clicking on Agent Object Title (it opens Integration Object Details page).

    2. Add test cases clicking on plus button. It opens 'Add Test Cases to the test suite' dialog box:

      ts add test cases dialog

      Just select the Agent, the object and required test cases and click on 'OK'.

    3. Select test case(s) and do actions:

      1. Detach test case(s) from test suite clicking on red trash button. It deletes the link between current test suite and selected test case(s).

    4. View test case details clicking on details button. It opens Test Case Details page.

  3. LAST RESULT tab shows last test suite run result and looks:

    ts last result

    On this tab you can:

    1. View Agent and Test Objects clicking on Agent Object Title or Test Object Title. It opens Integration Object Details page.

    2. Poll remote results clicking on Poll remote results.

      You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

      Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

      Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

      • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

      • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

      Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

      If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    3. View last polling result clicking on Open Last Polling Result.

      Open Last Polling Result button is available after polling remote data and until page is refreshed.
    4. Export as a test case to PIT (only for PRO) clicking on Export as a Test Case to PIT.

      Export as a Test Case to PIT is available only for licensed version after the test suite running.
    5. Compare testing results and build reports clicking on check button.

      The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
    6. Do the following actions clicking on menu and choosing corresponding option:

      1. Rerun reruns required test case.

      2. View testcase opens 'Test Case Details' page.

      3. Download report.

        Report type can be one of 2 types:

        1. xlsx report:

          • Contains information about test run/test suite run results.

          • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

        2. zip archive with 3 csv reports:

          • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

          • diff-report.csv - contains diff report for test run/test suite run.

          • processed-messages-report.csv - contains processed messages report for test run/test suite run.

        The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

      4. View results opens Test Run Details page.

  4. RESULTS HISTORY tab shows results of all test suite runs and looks:

    ts results history

    On this tab you can:

    1. Configure Running Date filter to hide some test suite run results.

    2. Select the result and do actions:

      1. Compare testing results and build reports clicking on check button.

        The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
      2. Poll remote results for unfinished runs clicking on Poll remote results.

        You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

        Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

        Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

        • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

        • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

        Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

        If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

      3. View last polling result clicking on Open Last Polling Result.

        Open Last Polling Result button is available after polling remote data and until page is refreshed.
      4. Export as a test case to PIT (only for PRO) clicking on Export as a Test Case to PIT.

      5. Delete testing results clicking on red trash button.

    3. Download report of the test suite run result clicking on download button in the table row.

      Report type can be one of 2 types:

      1. xlsx report:

        • Contains information about test run/test suite run results.

        • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

      2. zip archive with 3 csv reports:

        • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

        • diff-report.csv - contains diff report for test run/test suite run.

        • processed-messages-report.csv - contains processed messages report for test run/test suite run.

      The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

    4. View Test Suite Run details clicking on details. It opens Test Suite Run page.

6.3.3. Test Suite Runs page

Test Suite Runs page shows the test suites that were run in period defined in Running Date filter and looks:

ts runs

The following actions are available on this page:

  1. Viewing test suite details: click on Test Suite and it opens Test Suite: Test Suite Title page.

  2. Testing results comparison and reports building clicking on check button.

    The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
  3. Remote results polling. Select unfinished test suite run(s) and click on Poll remote results button.

    You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

    Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

    Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

    • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

    • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

    Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

    If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

  4. Downloading consolidated diff report for test suite runs. Select test suite run(s) and click on Diff report button. It will take diff info from all related test runs/test run results with ERROR status and build CSV file (semicolon as a separator) with the following information:

    consolidated diff report

    Combination of fields Message, Partner, Diff State, Old Value, New Value organize a unique key, Affected Test Suites and Affected Messages count are aggregated. Affected Messages count - is count of failed test run results (outbound messages) which contain the error determined by the key. Obviously, if some error occurred in one message several times, that message will be counted only once.

    Correlation between old and new value for now properly added only for EDI types (EDIFACT and X12).

  5. Export as a test case to PIT.

  6. Deleting selected testing results.

  7. Downloading report.

    Report type can be one of 2 types:

    1. xlsx report:

      • Contains information about test run/test suite run results.

      • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

    2. zip archive with 3 csv reports:

      • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

      • diff-report.csv - contains diff report for test run/test suite run.

      • processed-messages-report.csv - contains processed messages report for test run/test suite run.

    The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

  8. Viewing Test Suite Run details clicking on details. It opens Test Suite Run page.

Test Suite Run page

Test Suite Run page opens a historical test suite run and browse related test runs:

ts run page

On this page you can:

  1. View linked test suite. It opens Test Suite: Test Suite Title page.

  2. Work with test runs:

    1. View Agent and Test Objects clicking on Agent Object Title or Test Object Title. It opens Integration Object Details page.

    2. Poll remote results clicking on Poll remote results.

      You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

      Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

      Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

      • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

      • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

      Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

      If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    3. View last polling result clicking on Open Last Polling Result.

      Open Last Polling Result button is available after polling remote data and until page is refreshed.
    4. Do the following actions clicking on menu and choosing corresponding option:

      1. Rerun reruns required test case.

      2. View testcase opens 'Test Case Details' page.

      3. Download report.

        Report type can be one of 2 types:

        1. xlsx report:

          • Contains information about test run/test suite run results.

          • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

        2. zip archive with 3 csv reports:

          • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

          • diff-report.csv - contains diff report for test run/test suite run.

          • processed-messages-report.csv - contains processed messages report for test run/test suite run.

        The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

      4. View results opens Test Run Details page.

  3. Menu options:

    1. Compare results for selected test runs.

    2. Open Used Mapping Configuration opens used mapping configuration.

    3. Test suite run report downloads test suite run report.

      Report type can be one of 2 types:

      1. xlsx report:

        • Contains information about test run/test suite run results.

        • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

      2. zip archive with 3 csv reports:

        • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

        • diff-report.csv - contains diff report for test run/test suite run.

        • processed-messages-report.csv - contains processed messages report for test run/test suite run.

      The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

    4. Export to CSV downloads test runs CSV report.

    5. Extract related source data as a test case copies message groups related to filtered (not successful or not compared) test run results from all test runs to the new test case.

    6. Rerun reruns selected test runs.

6.3.4. Test Cases page

Test Cases page shows all existing test cases and looks:

test cases

On this page you can:

  1. View Agent Object clicking on Agent object. It opens Integration Object Details page.

  2. View Test Objects clicking on corresponding menu full button and selecting the object. It opens Integration Object Details page.

  3. View Test Suites clicking on corresponding menu full button and selecting the test suite. It opens Test Suite: Test Suite Title page.

  4. Run selected test case(s) clicking on run or run on buttons:

    • Run uses static links to test objects defined in the test case.

    • Run on resolves these links dynamically at the moment of test run. It is possible to see how these links are resolved through Current Mapping Configuration button - it opens 'Mapping Configuration' dialog box:

      mapping configuration

      There are Agent Objects (parent nodes) and Test Objects (child nodes) in opened dialog box.

  5. Click on table’s menu full button and choose:

    1. Create Test Case opens Test case creation page.

    2. Merge Test Cases merges two selected test cases' messages. It removes previous test cases run results.

      You should select two test cases with the same Agent Object, Message and Partner.
    3. Add to test suite adds selected test case(s) to new or existing test suite. It opens 'Create Test Suite' dialog box:

      create test suite

      You can choose to create new test suite or to use existing one. If you enable Open Test Suite’s page after creation option, Test Suite: Test Suite Title page will be opened after saving.

    4. Trim tests removes messages from selected test case(s). It keeps number of inbound messages equals to the value of How many messages to keep in the test case? property of 'Trim Test Cases' dialog box:

      trim test case
    5. Delete removes selected test case(s).

    6. Clean removes all test run results and reports of selected test case(s).

  6. View Details of the test case clicking on it’s details button. It opens Test Case Details page.

Test Case Details page

Test Case Details page includes several tabs with various data related to the test suite:

  1. Test Case Information tab shows general information about the test case, linked test objects and test suites. This tab looks:

    tc info

    On this tab you can:

    1. Edit the test case title, message or partner (to start editing click on edit button). To save changes click on save button, to reset - reset.

    2. View Agent Object clicking on Agent Object Title. It opens Integration Object Details page.

    3. View Test Objects clicking on required Test Object Title. It opens Integration Object Details page.

    4. View Test Suites that the test case is linked to clicking on required Test Suite Title. It opens Test Suite: Test Suite Title page.

    5. Add or remove Test Object(s) clicking on plus or decline buttons respectively.

      Test Objects are only from the same platform as Agent Object can be added.
    6. Add the test case to new or existing Test Suite or remove the test case from Test Suite(s) clicking on plus or decline buttons respectively.

  2. Messages tab shows inbound/outbound messages in the test case and looks differently for PRO and CPI Agent Objects:

    1. For PRO Agent Objects:

      tc messages pro

      The following actions can be executed for both PRO and CPI Agent Objects:

      1. Calculate ordering numbers calculates ordering numbers based on configuration on Recording Configuration tab of related integration object or suitable Shared Configuration.

      2. Calculate file type and encoding calculates messages file types and encoding based on Encoding Determination configuration if encoding determination rules exist or standard algorithm if they don’t exist.

      3. Options available in the message’s menu button:

        1. View/Edit message opens 'Message Details' page.

        2. Delete message group removes all messages with the same 'Inb. Group' as the one that the option selected for. It’s possible to delete only message or delete messages and related test run results (reports will be rebuilt in this case).

        3. Copy message group copies all messages (with the same 'Inb. Group' as the one that the option selected for) to selected test case(s).

        4. Change interface metadata opens 'Change message interface metadata' dialog box:

          change message metadata

          You can configure required changes here. Change messages globally applies changes to all messages with 'Source Message Interface Metadata'.

        5. Download downloads message xml file for PRO and file without extension for CPI.

    2. For CPI Agent Objects:

      tc messages cpi

      The following actions can be executed for CPI Agent Objects:

      1. Generate groovy scripts test data generates groovy scripts (see Groovy scripts unit testing).

      2. Options available in the message’s menu button:

        1. Build groovy script generates groovy script (see Groovy scripts unit testing).

        2. Generate test data for current message generates json.

  3. Messages Anonymization tab helps to configure anonymized test case based on current test case and looks:

    tc message anonym
    It works only for XML messages.

    On this tab you can:

    1. Add message mappings selecting Message group id and clicking twice on the element you want to anonymize:

      message anonymization create
      You also can add message mappings clicking on plus button in Applied mappings table. In such case you have to define Element path by yourself.

      It opens 'Create mapping' dialog box:

      create mapping

      Select desired function:

      • Multiply by random value from range multiplies source values by a random number from the range defined by values of From and to properties. If you want to get integers, set Count of number after a decimal point property value as 0, otherwise, define desired value. Example with filled properties:

        create mapping random ex

        To test function enter Test value and click on Test function.

      • Generate value from template generates values from Template property value. You can define template using special characters ('#' for number, '?' for uppercased character, '*' for lowcased character, e.g. ### - template for 3 random numbers) or anonymization variables defined in Anonymization variables, e.g. $Figaf ${lastname}. Example with filled properties:

        create mapping template ex

        To test function click on Test function.

    2. Edit message mapping clicking on edit button in Applied mappings table.

    3. Delete message mapping clicking on decline button in Applied mappings table.

    4. Create new test case with anonymized data clicking on Clone anonymized test case button. It opens 'Clone anonymized test case' dialog box:

      clone anonymized tc

      After submitting the dialog new test case will be created.

  4. Testing Results tab shows the test case run results and looks:

    tc results

    On this tab you can:

    1. View Test Object clicking on 'Test Object'. It opens Integration Object Details page.

    2. Run the test case clicking on run or run on buttons:

      • Run uses static links to test objects defined in the test case.

      • Run on resolves these links dynamically at the moment of test run. It is possible to see how these links are resolved through Current Mapping Configuration button - it opens 'Mapping Configuration' dialog box:

        mapping configuration

        There are Agent Objects (parent nodes) and Test Objects (child nodes) in opened dialog box.

    3. Select test case run result(s) and:

      1. Poll remote messages and Open Last Polling Result.

        You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

        Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

        Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

        • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

        • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

        Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

        If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

        Open Last Polling Result button is available after polling remote data and until page is refreshed.

      2. Compare results clicking on check.

        The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
      3. Delete the result(s) clicking on red trash.

    4. The options available in result’s menu button:

      1. Download report.

        Report type can be one of 2 types:

        1. xlsx report:

          • Contains information about test run/test suite run results.

          • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

        2. zip archive with 3 csv reports:

          • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

          • diff-report.csv - contains diff report for test run/test suite run.

          • processed-messages-report.csv - contains processed messages report for test run/test suite run.

        The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

      2. View results opens Test Run Details page.

      3. Mark as Test Case creates new test case from chosen groups of testing results. Testing results become expected messages in the new test case.

      4. Update Test Case using Test Run Results. It replaces corresponding messages in the current test case by messages of testing result. There are 2 strategies available:

        1. Drop all old messages - all old messages will be deleted from the test case and messages of testing result will be copied.

        2. Replace only messages from the test run - only corresponding messages in the current test case will be replaced by messages of testing result. So if the test case has some messages which aren’t used during comparison, these messages will not be deleted.

6.3.5. Test Case Runs page

Test Case Runs page shows the test cases that were run in period defined in Running Date filter and looks:

test case runs

On this page you can:

  1. Poll remote messages.

    Open Last Polling Result button is available after polling remote data and until page is refreshed.

  2. Compare results clicking on check.

    The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
  3. View Agent Object clicking on 'Agent Object'. It opens Integration Object Details page.

  4. View Test Object clicking on 'Test Object'. It opens Integration Object Details page.

  5. The options available in run’s menu button:

    1. Download report.

      Report type can be one of 2 types:

      1. xlsx report:

        • Contains information about test run/test suite run results.

        • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

      2. zip archive with 3 csv reports:

        • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

        • diff-report.csv - contains diff report for test run/test suite run.

        • processed-messages-report.csv - contains processed messages report for test run/test suite run.

      The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

    2. View results opens Test Run Details page.

Test Run Details page

Test Run Details page looks:

test run details page

On this page you can:

  1. Select data Perspective for the table:

    1. Tree Table is default value for all regression test cases except aggregation ones (for baseline and aggregation test cases Tree Table mode is disabled). This table has a merged functionality of Message runs tab and Results tab. Tree Table represents 2 tables: old Test Run Results table (i.e. Flat Table in the new terms) and Message Runs table on the other tab.

      test run details tree table

      It has full pagination, filtering and sorting. Sorting is a bit tricky because of pagination: if you sort by column belonging to a Message Run, it should work naturally, just like in all other tables. But if you sort by Test Run Result columns, Test Run Results will be sorted in scope of each Message Run.

    2. Flat Table is the old Test Run Results table:

      test run details flat table
  2. Poll remote messages.

    Open Last Polling Result button is available after polling remote data and until page is refreshed.

  3. Rerun test case if it’s run in scope of test suite run.

  4. Compare results clicking on check.

    The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
    If comparison fails for a particular test run result, you can view error details clicking on warning.
  5. Open related test case. It opens Test Case Details page.

  6. Open related test suite run. It opens Test Suite Run page. The link is shown only if you run test suite linked with related test case.

  7. Open Agent and Test Objects.

  8. View ignore lists (Applied items ignore expressions and Applied Message properties ignore expressions). IT shows ignore lists configured on Test Configuration tab of Integration Object page.

  9. Open actual test configuration. It opens Test Configuration tab of Integration Object page.

  10. View used comparison configurations. It opens Comparison Configuration dialog.

  11. Execute actions available in run’s menu full button:

    1. Download report.

      Report type can be one of 2 types:

      1. xlsx report:

        • Contains information about test run/test suite run results.

        • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

      2. zip archive with 3 csv reports:

        • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

        • diff-report.csv - contains diff report for test run/test suite run.

        • processed-messages-report.csv - contains processed messages report for test run/test suite run.

      The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

    2. Mark selected message group as Test Case. It creates new test case from chosen groups of testing results. Testing results become expected messages in the new test case.

    3. Update Test Case using Test Run Results. It replaces corresponding messages in the current test case by chosen messages of testing result. There are 2 strategies available:

      1. Drop all old messages - all old messages will be deleted from the test case and chosen messages of testing result will be copied.

      2. Replace only selected messages - only corresponding messages in the current test case will be replaced by chosen messages of testing result.

  12. Execute actions available in message’s menu button:

    1. View result. It opens Test Run Result page.

    2. Download inbound message, expected result, actual result.

    3. Build groovy script (see Groovy scripts unit testing).

    4. Diffs opens Differences dialog box. Here you can add items (click twice on the required item) and message properties (click on the required message property) to ignore list.

      Add items and message properties to ignore list once.

      differences add to ignore list
    5. Binary diffs opens Differences dialog box (see above) with binary comparison. Current configurations are used for this comparison type.

    6. Diff2Html diffs opens Diff2Html comparison dialog. Current configurations are used for this comparison type.

    7. Ignore step (CPI) adds current step to ignore list.

    8. Browse related messages (PRO) is runtime viewer for related message monitoring entries. It looks for message monitoring entries on the PI system by the currently persisted PI message id (used in id and refId filters). For not received entries we know only the id of the sent message, then once the message is received it’s overwritten by a related AFD message id.

      test run related messages

      From the Related messages dialog it’s possible to open PI message page on SAP system and browse message log in the separate dialog:

      test run message log

      Use these options to analyze the root cause of the UNFINISHED state of the result to check what’s going on on PI system.

    9. Open message monitor (PRO).

    10. Open message monitor via dispatcher (PRO).

  13. Check messages statuses (whether messages have been sent successfully or some error occurred):

    1. Go to Message runs tab

    2. View data in the table.

      test run details page message runs tab

6.3.6. Shared Configuration page

Shared Configuration page contains shared configurations and looks:

comparison configuration

On this page you can:

  1. Create shared configuration clicking on plus button. It opens Create shared configuration:

    create comparison configuration dialog
    1. Title of shared configuration. Should be unique.

    2. Platform for which shared configuration should be configured.

    3. Use is the way which should be used during shared configuration determination: Messages/Partners or Test Cases.

      1. Messages is messages list. for which the shared configuration is applied.

      2. Partners is partners list. for which the shared configuration.

      3. Test Cases is test cases list. This configuration can be used if you want to run different test cases with different configurations.

    4. Integration Objects is integration objects list. All integration objects are from the same agent.

      Shared configuration is applied to any combinations of Messages, Partners, Test Cases, and Integration Objects values during comparison.
    5. Comparison Type defines used comparison strategy. Most of the time AUTO is fine.

    6. EDI functional group correlation key path defines path to data element or component element which can be used as a group identifier during comparison. Define a value if there are several functional groups in EDI outbound messages. The path format is described below.

    7. EDI message correlation key path defines path to data element or component element which can be used as a message identifier during comparison. Define a value if there are several messages in EDI outbound messages. Don’t define a value if there are several groups with 1 message in each group.

      EDI functional group correlation key path and EDI message correlation key path must be configured in the special format:

      <segment prefix><data element index and options><component element index (optional)>

      where:

      • <segment prefix> - shouldn’t contain [ or ], for example, UNE, DTM+137.

      • <data element index and options>: [<standalone index>] or [<standalone index>|<option>].

      • <component element index>: for example, 1.

        • <standalone index>: for example, 1

        • Available option:

          • substring - the option defines a substring rule for group/message correlation id path in EDI comparison. The option has the following syntax: substring(<characterIndex>|<characterIndex>), where characterIndex is index of the first or last character of substring that should be used as an identifier, could have positive or negative value:

            • substring(-2|), substring(-2), and substring(-2|0) uses 2 last characters, e.g. somestriNG.

            • substring(-5|-1) uses 4 characters starting from the fifth character from the end, e.g. somesTRINg.

            • substring(1|-1) uses all characters starting from the second and ending with penultimate, e.g. sOMESTRINg.

            • substring(-1|1) uses the first and the last characters, e.g. SomestrinG.

      Examples:

      • Only segment prefix: UNE, DTM+137.

      • Segment prefix with data element index: UNH[0], IMD[1].

      • Segment prefix with data element index and option: UNE[1|substring(-2|)].

      • Segment prefix with data element index and component element index: UNB[2][4].

    8. Item Ignore defines XPath expressions (divided by semicolon) to ignore, e.g. '/Invoice/Date'.

      For EDI type you can configure items in the special format

      <segment prefix><data element indexes and options><component element indexes (optional)>+<data element indexes and options><component element indexes (optional)>+<data element indexes and options><component element indexes (optional)>+...

      where:

      • <segment prefix> - shouldn’t contain [ or ], for example, UNE, DTM+137.

      • <data element indexes and options>: [<standalone/ranged index>, …​, <standalone/ranged index>|<option1>, <option2>]

      • <component element indexes>: [<standalone/ranged index>, …​, <standalone/ranged index>]

        • <standalone index>: for example, 1

        • <ranged index>: for example, 0-4

        • Available options:

          • empty-missing

          • java formatting which matches regex %[\\d.]*([dfeg]{1})$, for example: %.3f, %.6e.

      Examples:

      • Only segment prefix: UNE, DTM+137.

      • Segment prefix with data element indexes: UNH[0], IMD[0-2], IMD[0,2].

      • Segment prefix with data element indexes and options and component element indexes: UNB[0]+[1|empty-missing][0]+[2-5,7-8,9-10][4,5].

      For XML type you can configure items in the special format

      <XPath><options>

      where:

      • <XPath> - standard XPath expression, for example, //targetElem.

      • <options>: {{<option1>,<option2>}}

        • Available options:

          • empty-missing

          • java formatting which matches regex %[\\d.]*([dfeg]{1})$, for example: %.3f, %.6e.

      Examples:

      • Only XPath expression: //targetElem.

      • XPath expression with additional ignoring options: /targetElem{empty-missing,%.3f}.

    9. Message Properties Ignore defines dynamic properties (divided by semicolon) to ignore, e.g. 'X-Vcap-Request-Id'. If you have a lot of dynamic properties with the same prefix (e.g. DynamicProperty1 and DynamicProperty2), you can define just common prefix (DynamicProperty) to ignore all dynamic properties with this prefix during comparison.g

      Item Ignore and Message Properties Ignore properties can be configured during result comparison in Differences dialog that can be opened from Test Run Details page.

    10. Order Expressions defines how to order messages.

    11. Collection Item Identification Expressions (only for XML type) defines rules to compare a collection with the different order of elements in the expected and actual messages. This setting should be configured in the following format:

      <path to the collection>-><relative path to the identification element>

      If path to your collection is /example/collection and path to element identified collection id example/collection/object/id, then Collection Item Identification Expressions is /example/collection->object/id.

    12. Use alphanumeric order number enables calculation of order number as a string instead of a number.

    13. Don’t calculate order number for a single entry - if true, order number is set to 1 (if there are 1 inbound and 1 outbound messages).

    14. Use expected message encoding during comparison. Enable if you want to forcibly use encoding from expected message instead of dynamically determined encoding from actual result. Have effect only for the following message types: EDIFACT, X12, TEXT.

    15. Ignore XML attributes configures XML attributes ignoring during comparison.

    16. Trim whitespaces before XML comparison enables ignoring whitespaces during comparison of XML payloads. By default, option is enabled.

    17. Validate receiver integration (PRO only) - if true, AFD status will be compared with the expected value success. If they are not equal, it will be shown on Differences dialog as a dynamic configuration property http://figaf.com/testing/virtual-property|MessageStatus. The feature works only for SAP Log module and ICO Logging.

    18. Define additional dynamic properties to send with the test message (PRO only) enables configuration of additional dynamic properties.

    19. Test with mock data (CPI only) enables testing with mock data. Linked test cases are run with replacing real receivers responses by previously recorded responses (from corresponding receivers) on Agent Object. Figaf Tool clones original test object (IFlow) with replacing sender and receiver channels to HTTPS where receiver channel endpoints are special Figaf Tool API. To use this mocking service you need to have configured Figaf Tool to use the cloud connector (see cloud connector properties configured in run command).

    20. Test IFlow chain (CPI only) enables IFlow chain testing.

      Configuration should be done on the first IFlow level.
    21. Use only finishing run steps (CPI only) enables functionality when only the last messages in a test case will be compared. If true, Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) can’t be set.

    22. Run steps selection strategy (CPI only) and Run steps filter (modelStepId or modelStepId|activity) (CPI only) configure steps which should be tested. Since irt-2208.1 it’s possible to configure the steps in BPMN Model with viewer dialog clicking on configuration button.

  2. Edit/View shared configuration clicking on its edit or view button.

  3. Delete selected shared configurations.

  4. View messages, partners, test cases, and integration objects lists clicking on corresponding menu full button.

7. Operations

7.1. Get started with Operations

7.1.1. Receiving alerts from PRO system

At least 1 PRO Agent System should be configured. See that section to learn how to do that.

You should have enough systems licensed for monitoring (Number Of Systems For Monitoring property on License Configuration page) and Monitoring License End Date should be valid, otherwise it won’t be possible to create a consumer.

Figaf Tool uses consumers defined in alert rules on PRO System as a data source for retrieving Message Monitoring alerts. It’s important to note that it’s possible to fetch an alert from the specific consumer only one time, that’s why you need to create a specific consumer for Figaf Tool application and declare it only once in one Figaf Tool application. Otherwise, messages won’t be received properly.

To configure receiving alert process from PRO system do the following:

  1. Create new consumer on your PRO system:

    1. Use Integration Directory builder to manage alert rules and their consumers.

    2. Chose an existent alert rule or create a new one, configure it, and then add a new consumer, e.g., IRT_PRIMARY_CONSUMER.

      pro consumer config
  2. Open Support Tool page in Figaf Tool.

  3. Click on Manage Consumers. It opens Manage Consumers dialog box:

    manage consumers
  4. Select your PRO Agent system, click on Create Consumer, type the name of PRO consumer you have created before (in our example IRT_PRIMARY_CONSUMER), and save a new consumer.

    You will be asked about enabling alerts handling and reprocessing jobs, approve that action if you want to have handle new alerts automatically. You can disable them or change scheduling settings later on Application Configuration page. Consumer is created with a new default Figaf Tool rule, we will explain rules in further sections. It just needs to be noticed that default Figaf Tool rule doesn’t add anything to your filter configured on PRO alert rule.

  5. Now you can open Alerts tab and click on Poll Alerts to trigger lookup manually, or wait for a scheduled job if it’s enabled.

    pro alerts tab

7.1.2. Receiving alerts from CPI system

At least 1 CPI Agent System should be configured. See that section to learn how to do that.

You should have enough systems licensed for monitoring (Number Of Systems For Monitoring property on License Configuration page) and Monitoring License End Date should be valid, otherwise it won’t be possible to create a consumer.

To configure receiving alert process from CPI system do the following:

  1. Open Support Tool page in Figaf Tool.

  2. Click on Manage Consumers. It opens Manage Consumers dialog box:

    manage consumers
  3. Select your CPI Agent system, click on Create Consumer, type the name, and save the consumer.

    You will be asked about enabling alerts handling and reprocessing jobs, approve that action if you want to have handle new alerts automatically. You can disable them or change scheduling settings later on Application Configuration page. Consumer is created with a new default Figaf Tool rule. It just needs to be noticed that default Figaf Tool rule doesn’t add anything to your filter configured on Figaf Tool consumer for CPI Agent.

  4. Now you can open Alerts tab and click on Poll Alerts to trigger lookup manually, or wait for a scheduled job if it’s enabled.

    cpi alerts tab

7.1.3. Receiving alerts from Api Management system

At least 1 Api Management Agent System should be configured. See that section to learn how to do that.

You should have enough systems licensed for monitoring (Number Of Systems For Monitoring property on License Configuration page) and Monitoring License End Date should be valid, otherwise it won’t be possible to create a consumer.

Figaf Tool processes alerts only for Api Proxy objects with configured Figaf error handling policies. It’s important to note that it’s possible to fetch one entry only once, so you should configure Figaf Tool consumers without intersections, otherwise some consumers won’t receive alerts.

To configure receiving alert process from Api Management system do the following:

  1. Open Change Tracking Tool in Figaf Tool.

  2. View object details page for required Api Proxy. Click on Add/Reset Figaf error handling policies button to enable alert processing for the object. It creates new object version. Repeat this step for all Api Proxy objects.

  3. Open Support Tool page in Figaf Tool.

  4. Click on Manage Consumers. It opens Manage Consumers dialog box:

    manage consumers
  5. Select your Api Management Agent system, click on Create Consumer, type the name, and save the consumer.

    You will be asked about enabling alerts handling and reprocessing jobs, approve that action if you want to have handle new alerts automatically. You can disable them or change scheduling settings later on Application Configuration page. Consumer is created with a new default Figaf Tool rule. It just needs to be noticed that default Figaf Tool rule doesn’t add anything to your filter configured on Figaf Tool consumer for CPI Agent.

  6. Now you can open Alerts tab and click on Poll Alerts to trigger lookup manually, or wait for a scheduled job if it’s enabled.

    api alerts tab

7.2. Work with Support Tool

7.2.1. Manage consumers

Consumer aggregates information about the receiving alerts process.

At least 1 Agent System should be configured. See that section to learn how to do that.

You should have enough systems licensed for monitoring (Number Of Systems For Monitoring property on License Configuration page) and Monitoring License End Date should be valid, otherwise it won’t be possible to create a consumer.

  1. Go to Support Tool subsection of Operations section.

  2. Click Manage Consumers button. It opens Manage Consumers dialog box:

    manage consumers
  3. Select an Agent.

  4. Click on Create Consumer button. It opens Consumer dialog box where you can configure the following fields:

    1. Name of new consumer.

      If you create consumer for PRO Agent, you need to create consumer on your PRO system. And Name must be the same as the name of consumer created on PRO system (see Receiving alerts from PRO system for more details).

      For CPI Agent Name can be random.

    2. Type of consumer (only for CPI) is one of the following:

      1. Polling Consumer - datasource is Message Processing Logs API, all message log entries which satisfy the Condition will be registered as alerts in Figaf Tool.

        Condition must be valid in context of Message Processing Logs API, e.g., Status eq 'FAILED'. It’s also possible to validate the syntax of condition through Test Condition function.

        create polling consumer cpi
      2. Metric Consumer - datasource is CPI System Monitoring Module in Figaf Tool (metrics), metrics are analyzed and alerts are registered according to configured Threshold Rules.

        To add new Threshold Rule click on plus, select Metric Spec and Operation, type Value, and select Strategy (Alert per metric or Alert per Support Tool interval).

        To delete the threshold rule click on its decline button.

        create metric consumer cpi
        To use Metric Consumer you should enable CPI system monitoring on chosen CPI Agent (Enable Monitoring property).

    When you are ready with configuration, save the consumer. If you haven’t enabled support tool jobs on Application Configuration page, you will be asked about enabling alerts handling and reprocessing jobs:

    enable support tool jobs

    Approve that action if you want to have handle new alerts automatically. You can disable them or change scheduling settings later on Application Configuration page.

  5. Now you have created consumer. If you want to add more consumers, just repeat the steps above. If you need to edit or delete a consumer, click on its edit or decline buttons correspondingly.

    Type of consumer on CPI Agent can’t be changed.
  6. When you finish with consumer management, close the Manage Consumers dialog box.

7.2.2. Rules

At least one consumer should be created. See this section to learn how to do it.

Initially you have Default Rule created during consumer creation.

Rule is an approach to classify received alerts. To manage rules do the following:

  1. Select a consumer.

  2. Go to Rules tab.

  3. Open Rule page with new rule (click on Add Rule) or with existent rule (click on its details full).

    It is also possible to create rule from Alert Details page. In this case Expression and Test Payload settings will be filled with values from source alert.

    Rule page will be opened, e.g., with new rule:

    new rule page
  4. If you want to disable current rule, switch Enabled off. If you want to enable the rule, switch Enabled on.

  5. If you want to delete existent rule, click on Delete.

  6. Configure the following settings and once you finish, click on Save:

    Common settings
    1. Title of new rule, required.

    2. Step Number defines priority of rule. The less Step Number, the higher priority. Default rule has Step Number equaled to 1000. Hence, it doesn’t make sense to define this setting more than 1000. This setting is required.

    3. Expression - XPath expression which is used to determine whether alert should be caught by current rule, required. XPath is applied to alert metadata XML. Using the selection Test XML Payload Type below you can check the structure of different alert types.

      Since of 2307 Figaf Tool supports XML MPL attachments for CPI agents. Expression for XML attachments should have the following structure: ${attachments['<attachmentName>']}<real XPath related to the attachment> (e.g. ${attachments['OriginalPayload']}//hello).

    4. Namespace (only for PRO) - namespace information.

    5. Labels - list of tokens which can be assigned to each rule, then this list will be assigned to all alerts linked with this rule. Use it to simplify search of alerts.

    6. Initial Status of alert when it is handled by Figaf Tool.

    7. Action - operation which will be executed once alert is handled. Possible values:

      1. Nothing (default) - no action.

      2. Reprocess (only for PRO) - related AFD (Adapter Framework Data) entry on PRO system will be reprocessed.

      3. Canceled (only for PRO) - related AFD (Adapter Framework Data) entry on PRO system will be canceled.

    8. Lookup inbound message (only for PRO) - when it is enabled, Figaf Tool will try to find inbound message payload related to failed message (AFD). To get that payload downloaded successfully enable BI logging on related ICO object:

      enable BI logging on ICO PRO
    9. Criticality of alert.

    10. Test XML Payload Type - type of test payload. Possible values:

      1. CUSTOM - your custom value, doesn’t use any template.

      2. PRO_SCENARIO_ALERT (only for PRO) - sample payload of scenario alert.

      3. PRO_MESSAGE_ALERT (only for PRO) - sample payload of message alert.

      4. CPI_SCENARIO_ALERT (only for CPI) - sample payload of scenario alert.

      5. CPI_MESSAGE_ALERT (only for CPI) - sample payload of message alert.

      6. CPI_METRIC_ALERT (only for CPI) - sample payload of metric alert.

    11. Test Payload - sample alert payload which is used to check integrations (see below).

    Integrations
    1. Don’t send similar notifications for (min) - if several similar alerts have been polled during the period defined in this setting, you will receive only one notification. Default value is 60.

    2. Don’t send notifications automatically - if it’s true and the rule has some external integrations, notifications won’t be sent automatically, corresponding alerts will have Notification Status equals to REQUIRES_MANUAL_NOTIFICATION and it will be possible to complete these notifications only manually from Alerts page.

      If you configure Don’t send notifications automatically and Don’t send similar notifications for (min) simultaneously, all alerts received during configured period in Don’t send similar notifications for (min) will have NOTIFICATIONS_SHOULD_NOT_BE_SENT notification status except the earliest one (it will have REQUIRES_MANUAL_NOTIFICATION notification status).
    3. Attachments which should be sent defines the alert attachments names that will be added to notifications. Press Enter key after each attachment name.

    4. Email body template is a template of email. You can define dynamic data in the template using '${/xpath/expression}' (e.g., '${/alert/agentSystemId}'). You can check the template clicking on corresponding Test button.

    5. Email Integrations defines the emails to which notifications will be sent. Press Enter after each email.

      You have to configure connection to SMTP server. Go to Configuration → Application and configure SMTP host, SMTP port, SMTP username, SMTP password, Email Protocol, and Email From settings.

      You can check configured email integrations clicking on corresponding Test button.

    6. HTTP(S) Integrations defines a list of integrations to trigger.

    7. HTTP(S) Attachment Type

7.2.3. Alerts

At least one consumer should be created. See this section to learn how to do it.

Alerts receiving
  1. Select a consumer.

  2. Go to Alerts tab.

  3. Set From and To dates.

  4. Click on Poll Alerts to trigger lookup manually or wait for a scheduled job if it’s enabled (setting SupportToolAlertsHandler on Configuration → Application page). Alerts will be received and shown in the table (maybe it will be needed to refresh the table clicking on refresh):

    pro alerts tab

    For any alert you can:

    1. View the rule details clicking on Rule. It opens Rule details page.

    2. View the message on source system clicking on Message ID.

    3. View integration object details (if it is defined). It opens Integration Object Details page.

    4. View the alert details clicking on its details button. It opens Alert details page.

Alert details page

Alert details page for PRO system looks

pro alert details page 1
pro alert details page 2
pro alert details page 3

The following actions can be done on this page:

  • Resend Message

  • Cancel Message

  • Create Ticket - it opens Attach object to ticket dialog, where you can configure properties of new ticket or select existent one:

    attach object to ticket alert page

    You can attach to ticket with 2 ways:

    1. Create new ticket - the following settings can be configured:

      1. Title of the ticket. The same title can be used for several tickets.

      2. Release defines release, to which created ticket will be attached. See Release 'Title' page for details about release.

      3. Assignee defines the user, to whom the ticket will be assigned.

      4. Type defines type of new ticket. Since 2.11 release the following ticket types are available:

        1. Development is used with development within one landscape.

        2. Migration is used when it is needed to migrate objects from one landscape to another.

      5. Landscape defines a landscape for development ticket. See Landscapes page for details about landscapes.

      6. Source Landscape, Target Landscape, and Migration Landscape define landscapes for migration ticket. Defined landscapes have to satisfy the following:

        1. Source Landscape and Target Landscape have the same count of Agents (Landscape items) and do not have shared Agents.

        2. Migration Landscape must consist of two items: the 1st items from Source Landscape and Target Landscape correspondingly.

      7. External ticket id identifies an external ticket (e.g. in Jira).

      8. External ticket link defines a link on the external ticket. If you define the value, you can navigate directly to the external ticket from Figaf Tool.

      9. Description defines additional information.

      10. Create a test case with failed inbound message automatically

      11. Inbound message

    2. Attach to existing Ticket

  • Add Rule - it opens Rule page with predefined values for several settings.

  • Update

7.3. Work with CPI Message Monitoring

7.3.1. Configure CPI message monitor filters

Do the following to configure message monitor filters:

  1. Choose required CPI Agent.

  2. Enable edit mode switching on edit mode switcher.

  3. Click on Create filter to create new message monitor filter or click on the message monitor filter to update existent message monitor filter. It opens Create message monitoring filter dialog box:

    create message monitor filter dialog
  4. Configure the fields:

    • Name of new message monitor, required.

      The name must be unique for the agent.
    • Metadata access role is role created for current message monitor filter that provides access to its metadata. The role should be set to users having access to corresponding data. See User management for details.

    • Full access role is role created for current message monitor filter that provides full access to it. The role should be set to users having access to corresponding data. See User management for details.

    • Statuses of messages to be filtered. If the field is empty, messages with all supported statuses will be filtered.

      Supported statuses are FAILED, COMPLETED, RETRY, PROCESSING, ESCALATED, CANCELLED, DISCARDED, and ABANDONED.

    • Period for which you want to get messages.

    • Sender (optional)

    • Receiver (optional)

    • Artifact filter strategy sets the artifact strategy Apply filter to all artifacts or Apply filter to chosen artifacts (you can define these artifacts in Artifacts field).

    • Filtering condition shows filters condition using current values in the dialog. To recalculate condition click on refresh button.

  5. If you want to delete a message monitor filter, click on remove of the message monitor filter.

  6. Once you finish with required message monitor filters configuration, disable edit mode.

7.3.2. Browse messages

When you configure required message monitor filters, you can browse messages clicking on the message monitor filter:

message monitor filter icon

It opens Message Browser for filter page:

message browser for filter

You can configure filters (Time, Integration Flows, Custom Header Name, Custom Header Value, Statuses, Correlation Id, Sender, Receiver, Message Id, Application Message Id, Application Message Type) and inspect message details clicking on the message in the table. You can navigate to CTT object page and create a recording for messages with log equals TRACE and less than 1 hour old. Once you click on refresh button end date will be set to current time.

You can download CSV report clicking on Export to CSV button. The report contains table data and custom headers (in separate column).

7.4. Work with CPI Statistics Overview

CPI Statistics Overview gives an overview of how many messages has been process at any given hour/day/month per IFlow.

You need to enable Enable message processing logs statistics setting on Agents integration configuration (CPI platform) to have the statistics working.

Select agent and timestamps, then the statistic will be loaded:

statistics overview data

Then it’s possible to Export to CSV or browse related message in CPI Message Monitoring clicking on IFlow name. It will redirect you to monitoring page with configured filters for From, To, Integration Flows, Sender and Receiver. If corresponding message monitor filter doesn’t exist, you will be asked to create it.

7.5. Work with CPI System Monitoring

Enable Monitoring setting (see Agents integration configuration) must be enabled for the chosen CPI Agent.

SAP System Monitoring processes the following metrics:

You can configure Time Period for all metrics if it is needed.
  • CPU Usage (%)

    cpu usage chart
  • IFlow Latency (ms)

    iflow latency chart
  • Memory Usage (%)

    memory usage chart
  • Monitoring Status Latency (ms)

    monitoring status latency chart
  • Processed Messages (count)

    processed messages chart
  • Long Running Messages (count)

    long running messages chart

7.6. Work with EDI Message Monitoring

Since Figaf Tool 2103 EDI message monitoring is supported (it’s a prototype version and issues could occur). Here you can configure integration object monitors for PRO objects, add Figaf Tool modules, poll messages, retry payload downloading, browse polled messages metadata:

edi message monitoring example

7.6.1. Configure integration object monitor

  1. Go to EDI Message Monitoring page.

  2. Choose required agent.

  3. Click on Create Integration Object Monitor button.

  4. Select integration object for which you want to configure monitor.

  5. Configure persistence period for messages. If Use Persistence Period from Agent is enabled, the value of Monitored Messages Persistence Period from corresponding Agent Configuration is used.

  6. CPI only. Configure whether attachments should be downloaded or not (Download Attachments option).

  7. CPI only. Configure whether persisted messages should be downloaded or not (Download Persisted Messages option).

  8. CPI only. Configure whether message processing logs should be downloaded or not (Download Message Processing Logs option).

  9. CPI only. Configure whether data store entries should be downloaded or not (Download Data Store Entries option).

  10. CPI only. Configure whether custom headers should be downloaded or not (Download Custom Headers option).

    If you want to have monitored messages deleted, configure MonitoredMessagesCleaner job on Configuration → Application page. If the job isn’t configured, the messages won’t be deleted.

  11. To be able to browse irtLogStages payloads, select integration object monitors and click on Add modules button.

    For now only irtLogStage1 and irtLogStage2 are polled.

  12. To poll messages select integration object monitors and click on Poll messages button or enable Enable Monitored Messages Polling setting on corresponding agent (see PRO agent configuration).

    If some messages downloading isn’t finished (post processing status is REQUIRES_PAYLOAD_DOWNLOADING), retry payloads downloading clicking on Retry payload downloading.

    CPI only. IF you don’t want some messages to be polled, set Custom Status equal to NOLOGGING.

7.6.2. Browse polled messages

  1. Switch to Monitored Messages tab.

  2. Configure date range.

  3. Click on menu and browse metadata.

  4. CPI only. Go to CPI Monitored Message Run Steps page clicking on Message Id:

    cpi monitored message run steps

8. DevOps

Requirements:

  1. All required Agent Systems have been configured (see that section to learn how to do that).

  2. Synchronization of all required Agent Systems has been done (see Synchronization with Agent system section).

  3. You should have enough licensed tracked object versions in CTT (i.e. DevOps licensing plan), otherwise, once new version is registered, the oldest will be deleted if the limit is reached. It causes loss of transport items if deleted tracked object version was used in the transports.

  4. If you use PRO Agents, additional SAP PRO client libraries must be available in runtime classpath. They are not included into the build, so they should be added to a folder (you can create libs folder in the folder with jdbc driver) and then the path to that libs folder should be passed through -Dloader.path parameter in the bootstrap command (see that section). If any of these libraries are missing, you will see the following error during transport creation or checking imported objects:

    missing dependencies error

    Required libraries:

    • com.sap.aii.utilxi.core.jar - can be downloaded from <PRO system root url>/dir/directory/com.sap.aii.utilxi.core.jar

    • com.sap.xpi.ib.core.jar - can be downloaded from <PRO system root url>/dir/directory/com.sap.xpi.ib.core.jar

    • com.sap.xpi.ibdir.core.jar - can be donwloaded from <PRO system root url>/dir/directory/com.sap.xpi.ibdir.core.jar

    • sap.com~tc~bl~guidgenerator~impl.jar - can be downloaded from <PRO system root url>/dir/directory/sap.com~tc~bl~guidgenerator~impl.jar

8.1. Get started with DevOps

8.1.1. E2e development flow (PRO)

In this section we describe e2e development flow for PRO systems.

At the moment external receiver rules aren’t supported at all, as a result we can’t remove/add a routing rule to receiver rule defined externally. As a consequence, at the moment any use case that requires any modification of external receiver rule won’t work.

Recommended workaround is to process transport without changelist activation, takeover changelist and manually add receiver rule to the same changelist and update it there (also manually).

  1. Go to Configuration → Landscapes page.

  2. Create a landscape. Configure Name, Platform, and Landscape items, e.g.:

    landscape dialog dev flow PRO
  3. Synchronize source system (in our example it’s D75 - dev) in Change Tracking Tool.

  4. Go to DevOps → Tickets page.

  5. Create new development ticket with created landscape. It creates new ticket and opens its page.

  6. Go to Tracked Objects tab.

  7. Click on Attach Tracked Objects and select Integrated Directory and/or Repository objects.

  8. Select attached objects and click on Attach all dependent objects.

  9. Click on Start transport button:

    start transport button
  10. Go to Transports tab.

  11. Go to transport page clicking on details.

  12. You can configure transport configuration (not for any object) clicking on configuration button (see Transport Configuration page for details).

  13. Import transports. When all transports linked with the ticket are imported, you can Resolve the ticket.

8.1.2. E2e development flow (CPI)

In this section we describe e2e development flow for CPI systems.

  1. Go to Configuration → Landscapes page.

  2. Create a landscape. Configure Name, Platform, and Landscape items, e.g.:

    landscape dialog dev flow CPI
  3. Synchronize source system (in our example it’s p0201 - dev) in Change Tracking Tool.

  4. Go to DevOps → Tickets page.

  5. Create new development ticket with created landscape. It creates new ticket and opens its page.

  6. Go to Tracked Objects tab.

  7. Click on Attach Tracked Objects and select Iflows, Value Mappings, Script Collections, Message Mappings, Packages.

  8. Select attached objects and click on Attach all dependent objects.

  9. Click on Start transport button:

    start transport button
  10. Go to Transports tab.

  11. Go to transport page clicking on details.

  12. You can configure transport configuration (not for any object) clicking on configuration button (see Transport Configuration page for details).

  13. Import transports. When all transports linked with the ticket are imported, you can Resolve the ticket.

8.1.3. E2e development flow (Api Management)

In this section we describe e2e development flow for Api Management systems.

  1. Go to Configuration → Landscapes page.

  2. Create a landscape. Configure Name, Platform, and Landscape items, e.g.:

    landscape dialog dev flow API
  3. Synchronize source system (in our example it’s api-portal-dev - dev) in Change Tracking Tool.

  4. Go to DevOps → Tickets page.

  5. Create new development ticket with created landscape. It creates new ticket and opens its page.

  6. Go to Tracked Objects tab.

  7. Click on Attach Tracked Objects and select Api Proxies, Key Value Maps, Encrypted Key Values Maps.

  8. Select attached objects and click on Attach all dependent objects.

  9. Click on Start transport button:

    start transport button
  10. Go to Transports tab.

  11. Go to transport page clicking on details.

  12. You can configure transport configuration (not for any object) clicking on configuration button (see Transport Configuration page for details).

  13. Import transports. When all transports linked with the ticket are imported, you can Resolve the ticket.

8.1.4. Batch parameters update

Since of 2308 Figaf Tool supports a possibility to perform a mass update of transport configuration parameters (only for binary landscapes). The feature is supported for the following types and parameters:

System Object Type Supported parameters

PRO

Communication Channel

object parameters (description, adapter engine name), adapter specific attributes, module parameters. Name mapping parameters are not supported

CPI

Integration Flow

all from transport configuration

API Management

API Proxy and Key Value Map

all from transport configuration

To perform batch parameters update:

  1. Add all objects that should be configured in batch way to one ticket and prepare transport.

  2. On transport page click button Parameters report to download transport configuration parameters report.

  3. Open downloaded csv in Excel or another tool to work with such type of document efficiently.

  4. Modify items for the following columns in the report to take effect during mass update (update of other columns won’t be checked):

    1. inherit from source

    2. inherit from target (note that API Proxy type doesn’t support it, but it’s in the report with constant No)

    3. new target value

      Update of these columns should be consistent:

      • It’s not possible to configure both inherit from source and inherit from target together.

      • It’s not possible to enable inherit from target when target object doesn’t exist.

  5. Once parameters in csv report are updated, go back to transport page and click on Batch parameters update button. Upload an updated csv file and click on Validate button. It will perform a parsing of uploaded result and validation on different levels (CSV file consistency and parameters consistency). Response of that operation has a list of detected changes that will be applied to transport configuration. Check list of changes to self-review at that moment of time. If result doesn’t have any fatal errors, it’s possible to perform a final update by clicking Submit button. Result can have warnings that don’t block Submit operation, but they inform about non-fatal issues.

    Mass parameters update has the following input parameters at the background: landscape identifier and uploaded csv report. No information about current transport. Identification of objects which transport configuration will be updated is done by landscape and source object name. It means mass update operation doesn’t have any relation to a particular transport, it will always update actual transport configuration for objects in csv report.

    It’s not possible to add new parameter or remove existing using the mass parameters update feature (it’s also not possible to do that from transport configuration page). Only parameters in CSV report will be processed during update, other parameters won’t be touched. It means, it doesn’t require to have absolutely all parameters in report.

8.1.5. E2e development flow (PRO, CTS+ transports)

  • If you work with a CTS+ Transport with Integration Directory objects, opened (not active) change list related to this transport must exist. Change lists should not be activated either automatically by PI engine or manually.

    To avoid automated activation a flag com.sap.aii.ibdir.core.ctstransport.autoActivation.default must be set to false:

    autoactivation configuration
  • Entries which have been deleted from CTS+ transport request won’t be deleted from root CTS+ Transport entry in Figaf Tool. As Figaf Tool uses only information from PRO system (Integration Directory and Enterprise Service Repository EJB clients), it doesn’t have any information about whether a CTS transport request item is deleted or not. It’s possible to delete child CTS transport manually from Figaf Tool, but it will be created again during the next update, because PRO system still has this information in the transports registry.

Since the 2.8 release, Figaf Tool provides management functionality for File/CTS+ transports. It doesn’t process transport itself, but it helps with documentation, change tracking and configuration of transported objects. The following example in current section should show this feature in action. Further explanation of behavior, configuration and use cases can be found in the next sections.

In the example let’s have 2 systems in the landscape (configure Name, Platform, Lookup transport automatically during synchronization, and Landscape items):

  • DI3 - source system (dev)

  • DPO - target system (qa)

Some objects on DI3 should be transported to DPO. A CTS+ transport request DI3K90001S has been created and required objects have been added to it. Transport request has 2 items, one of them related to Integration Directory, another one to Enterprise Service Repository. Transport entries (export direction) can be browsed from Integration Directory builder and ESR builder on DI3:

cts transport example int dir export di3
cts transport example esr export di3

Now let’s create a ticket in Figaf Tool. The purpose of that ticket for now is just to aggregate all needed information and objects related to transport. The ticket is called FIposting scenario update. Initially the ticket is not linked with any objects. Go to Tracked Objects tab and click on Attach Tracked Objects. Select DI3K90001S|Export CTS+ transport and attach it to the ticket. Select added CTS transport and click on Attach all dependent objects.

All DI3 object versions related to transport (and supported in CTT) were attached to the ticket:

tracked objects added to ticket after transport synchronization

Then transport request has been imported on DPO. Automated changelist activation is disabled, so all imported object versions are kept in the changelist. The next step is to synchronize imported objects on DPO.

Transport request contains some communication channels. Some channel parameters a non-transportable, new objects in the import changelist doesn’t have them at that moment. Figaf Tool provides a possibility to configure imported objects (for no only communication channels configuration is supported) once they are synchronized in the Transport object. Transport configuration by default is disabled and won’t be applied during synchronization of imported objects. There are 3 possible cases for transport configuration parameters:

  • Parameter value should be taken from source object version and set on the target object. Default behavior for all non-password parameters.

  • Parameter value should be kept from target object version, so, it won’t be updated. Default behavior for all password parameters.

  • Parameter value should be configured manually for chosen target system.

For communication channels it’s possible to configure adapter specific attributes and module parameters.

transport configuration example part1
transport configuration example part2

Now let’s open each child transport object in Figaf Tool and process Check import. Once it’s done, changelist is activated, channels which have enabled transport configuration are enriched with new parameter values depending on chosen strategy, imported object versions are linked with transport object and added to the ticket.

cts child transport item after import int dir

Changes between source and target objects can be browsed from Ticket’s Tracked Objects tab:

channel changes after applying transport configuration

Actually applied transport configuration has also been added to the ticket:

transport configuration tracked object in the ticket

The payload of transport configuration tracked object has full information about applied parameters:

transport configuration tracked object in the ticket payload part

Finally, processed transport is documented in the ticket report:

ticket report transports

To summarize, it needs to be said that current example just shows an isolated case with transport. In more complicated scenario ticket can be linked with integration objects and test cases which should be processed after transport. In CTS+ it’s possible to have multiple imports of the same transport request, and there is also a workaround for keeping transport request mutable during these imports. All these aspects automatically generate various use cases. Transports support in Figaf Tool has been designed to theoretically cover almost all of them, but it would be difficult to provide full set of examples. Especially because each company has its own workflow. In the further sections we are trying to explain the behavior of this feature, it should provide some information about how it fits your requirements. If you would like to have some additional cases supported, contact us by this email: [email protected].

8.1.6. E2e development flow (PRO, external transport management)

In this section we describe e2e development flow for PRO systems (external transport management is used).

You should prepare and import transport(s) on your systems.

  1. Go to Configuration → Landscapes page.

  2. Create a landscape. Configure Name, Platform, Lookup transport automatically during synchronization, and Landscape items, e.g.:

    landscape dialog dev flow PRO external
  3. Synchronize source system (in our example it’s D75 - dev) in Change Tracking Tool.

  4. Go to DevOps → Tickets page.

  5. Create new development ticket with created landscape. It creates new ticket and opens its page.

  6. Go to Tracked Objects tab.

  7. Click on Attach Tracked Objects and select transport(s) prepared on your systems.

  8. Select attached objects and click on Attach all dependent objects.

  9. Click on Start transport button:

    start transport button
  10. Go to Transports tab.

  11. Synchronize target system (in our example it’s T75 - qa). You can do it from Tracked Objects tab (Synchronize button) or from Change Tracking Tool.

    When synchronization is finished, Figaf Tool will automatically check import for created transports. Once it’s done, transports statuses will be IMPORTED and you will be allowed to Resolve the ticket.

8.2. Develop with DevOps

This section includes detailed description of all pages and dialog boxes in DevOps.

8.2.1. Tickets page

At least one landscape has to be created. See this page to learn how to create landscape.

Tickets page shows all existing tickets and looks:

tickets

Ticket ID is generated automatically based on the prefix and corresponding incremented number. Prefix can be configured through irt.config.ticket-id-prefix parameter (see Figaf Tool application running for more details).

On this page you can:

  1. Create new ticket clicking on Create Ticket button. It opens 'Create new ticket' dialog box, where the following options can be set:

    1. Title of the ticket. The same title can be used for several tickets.

    2. Release defines release, to which created ticket will be attached. See Release 'Title' page for details about release.

    3. Assignee defines the user, to whom the ticket will be assigned.

    4. Type defines type of new ticket. Since 2.11 release the following ticket types are available:

      1. Development is used with development within one landscape.

      2. Migration is used when it is needed to migrate objects from one landscape to another.

    5. Landscape defines a landscape for development ticket. See Landscapes page for details about landscapes.

    6. Source Landscape, Target Landscape, and Migration Landscape define landscapes for migration ticket. Defined landscapes have to satisfy the following:

      1. Source Landscape and Target Landscape have the same count of Agents (Landscape items) and do not have shared Agents.

      2. Migration Landscape must consist of two items: the 1st items from Source Landscape and Target Landscape correspondingly.

    7. External ticket id identifies an external ticket (e.g. in Jira).

    8. External ticket link defines a link on the external ticket. If you define the value, you can navigate directly to the external ticket from Figaf Tool.

    9. Description defines additional information.

    Related test suite Test Suite: Test cases for ticket <Ticket ID> is created and linked with new ticket.
  2. Select existing ticket(s) and delete it(them) clicking on red trash button.

    Tickets attached to any release can’t be deleted. If you want to delete such tickets, you have to detach the tickets from the release and after that delete them.

  3. View a ticket details clicking on its details button. It opens Ticket: Ticket ID page.

  4. View linked release details clicking on <Release Title>. It opens Release 'Title' page.

Ticket: Ticket ID page

Ticket: Ticket ID page shows the ticket details and provides functionality for ticket management. It looks:

ticket details

There are the following tabs on this page:

On each tab you are able to:

  1. Open another ticket details clicking on open another button and selecting a ticket.

  2. View linked release details clicking on <Release Title>. It opens Release 'Title' page.

  3. Move the ticket to next or previous stages depending on its type:

    1. Development is used with development within one landscape.

    2. Migration is used when it is needed to migrate objects from one landscape to another.

Development and Migration ticket types provide similar workflow with small differences:

  • Development tickets have the following statuses:

    • In development is the stage when objects are attached, updated, detached from the ticket.

    • In transport is the stage when development part is done, operations available on In development stage are blocked, objects are prepared for transport through the landscape. If the landscape has Integrated transport management, transports with objects attached to the ticket will be created automatically. Otherwise, if Integrated transport management is false, user needs to attach transports to the ticket. Ticket can be resolved only if all related active transports are imported (see Transport Statuses for details).

    • In production is the stage when transport stage is successfully completed, the ticket is marked as In production. It means that all objects are available and operational on all systems in the landscape.

    • Canceled is finish stage if ticket can’t be resolved due to any reason.

      The picture below shows development ticket status transitions:

      development ticket diagram
  • Migration tickets have the following statuses:

    • Prepared is the stage similar to In development.

    • In development is the same as for development ticket, but for migration ticket we assume that changes will not be done with source objects because the main goal for migration is to migrate objects between landscapes, it is not about their changes in the old landscape.

    • In transport is the same as for development ticket.

    • Migrated is the stage when transport stage is successfully completed, the ticket is marked as Migrated. It means that all objects are available and operational on all systems in the landscape. It is possible to process development ticket creation and transport configuration copying on that stage.

    • Canceled is finish stage if ticket can’t be resolved due to any reason.

      The picture below shows migration ticket status transitions:

      migration ticket diagram
  1. Ticket Details tab provides ticket details updating. See almost all ticket properties here. Additional properties:

    1. Depends on tickets

    2. Dependent tickets

      Landscape (for development ticket), Source Landscape, Target Landscape, and Migration Landscape (for migration ticket) can’t be modified.
  2. Tracked Objects tab provides functionality for attached tracked object management:

    ticket tracked objects

    Here you can:

    1. Attach Tracked Objects clicking on Attach Tracked Objects button. It opens 'Attach tracked objects to ticket' dialog box with predefined Agent: for development ticket - the first item from target landscape, for migration ticket - the first item from migration landscape. So it is possible to manually attach only development objects.

      Attaching objects should be licensed for DevOps or Migration (see Configure Object Licenses for details).

      All object versions in the table are the latest.

      If the object has been already selected, it is not visible in the table, but you can see the count of such objects.

      Previous object version becomes detached.

    2. Update selected object(s) to the latest version clicking on Update to the latest version. It attaches the latest version of chosen object(s) to the ticket (versions are looked up in CTT).

    3. Attach all dependent objects of selected object(s) clicking on Attach all dependent objects. It attaches the latest versions of all child dependencies of chosen object(s) recursively.

      For channels, it gets a parent link to component/system and then again parent link to the party.

    4. Detach selected Tracked Objects clicking on Detach Tracked Objects. It marks chosen object versions in the ticket as detached (versions are still visible in the table) if Detach Only option is selected. It deletes chosen object versions from the ticket if Delete Links option is selected.

    5. Compare versions of two selected objects clicking on Compare Versions. It opens 'Tracked Object Differences' dialog box with two selected object versions.

      These objects must have the same type in Change Tracking Tool.

      BPMN model and Simplified model can be compared for integration flows.

    6. Start synchronization on chosen Agent clicking on Synchronize (read about synchronization here).

      It is possible to select Agents which are used in related landscape(s).
    7. View tracked object details clicking on its Name. It opens 'Name page' with tracked object details.

  3. Test Cases tab provides functionality for test case management and looks:

    ticket test cases

    Here you can:

    1. Add/remove recommended test cases clicking on Lookup related Test Cases. It opens 'Assign Test Cases To Ticket' dialog box, where you can select test cases recommended for adding or removal:

      assign test cases to ticket

      Test cases recommended for adding are test cases related to the attached ICO/SA/CPI_IFLOW tracked objects.

      Test cases recommended for removal are previously added test cases related to the detached from the ticket ICO/SA/CPI_IFLOW tracked objects.

    2. Open related test suite clicking on Open Test Suite. It opens Test Suite: Test Suite Title page.

    3. Detach selected test cases clicking on Detach from Ticket. It triggers test case detaching operation from test suite.

    4. Run the related test suite clicking on run or run on buttons:

      • Run uses static links to test objects defined in the test case.

      • Run on resolves these links dynamically at the moment of test run. It is possible to see how these links are resolved through Current Mapping Configuration button - it opens 'Mapping Configuration' dialog box:

        mapping configuration

        There are Agent Objects (parent nodes) and Test Objects (child nodes) in opened dialog box.

        You can’t run test suite without linked test cases.
  4. Last Testing Result tab shows results of last running. On this page you can:

    1. View Agent and Test Objects clicking on Agent Object Title or Test Object Title. It opens Integration Object Details page.

    2. Poll remote results clicking on Poll remote results.

      You don’t have to poll remote data if you have PRO Agent with selected Figaf Agent Module and enabled JMS integration (properties Messages logging approach and Enable JMS Integration on Agent dialog) and the messages aren’t large. It is enough just to refresh the page from time to time.

      Since Figaf Tool 2.15 automatic polling is added for SAP CPI Agents. Once the messages have been run successfully, automatic polling is started.

      Since Figaf Tool 2.15.2 active polling statistics can be viewed. If there is polling in progress for the integration objects and you open another poll remote data dialog, then

      • recordings/test runs which are in both polling requests will be marked as SKIPPED_AS_DUPLICATE and statistics will be copied from original item and shown on UI in the new one.

      • recordings/test runs which are not in the original polling request will be SKIPPED in the new one.

      Since Figaf Tool 2305 polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

      If you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable option Ignore messages cache during polling on Configuration → Application page. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    3. View last polling result clicking on Open Last Polling Result.

      Open Last Polling Result button is available after polling remote data and until page is refreshed.
    4. Export as a test case to PIT (only for PRO) clicking on Export as a Test Case to PIT.

      Export as a Test Case to PIT is available only for licensed version after the test suite running.
    5. Compare testing results and build reports clicking on check button.

      The option reprocesses comparison and report generation asynchronously. It makes sense to execute the option once you have configured a new "ignore rule".
    6. Do the following actions clicking on menu and choosing corresponding option:

      1. Rerun reruns required test case.

      2. View testcase opens 'Test Case Details' page.

      3. Download report.

        Report type can be one of 2 types:

        1. xlsx report:

          • Contains information about test run/test suite run results.

          • By default only failed results are added to xlsx report. If you want to change this behavior, go to Configuration → Application page and enable Show successful messages in the test suite’s report property.

        2. zip archive with 3 csv reports:

          • test-run-metadata.csv - contains common information about test run/test suite run (e.g. test object, counters for success/error/unexpected/not/compared/unfinished test run/test suite run results).

          • diff-report.csv - contains diff report for test run/test suite run.

          • processed-messages-report.csv - contains processed messages report for test run/test suite run.

        The report type is defined from Use bundled CSV report generation strategy property configured on Configuration → Application page`. If it’s true, the report type is zip, otherwise, it’s xlsx.

      4. View results opens Test Run Details page.

  5. Alerts tab shows alerts attached to the ticket.

  6. Transports tab shows linked transports (see Transport: Name page for details about transports) and looks:

    ticket transports

    Here you can:

    1. View transport details clicking on its details button. It opens Transport: Name page.

    2. Delete selected transports clicking on red trash button.

  7. Reports tab contains built reports and looks:

    ticket reports

    Here you can:

    1. Build new report clicking on Report button. It starts report building and new row is added to the table (with IN PROGRESS status). To get built report wait for a while and click on Refresh button.

    2. Download built xlsx report clicking on report button.

    3. Delete a report clicking on its decline button.

  8. Transports Overview shows relationship between tickets and transports in CPI and Api Management composite landscapes so that it clarifies how the set of transports has been done in the history.

8.2.2. Transports page

Transports page shows all created transports and looks:

transports

Transport ID is generated automatically based on the prefix and corresponding incremented number. Prefix can be configured through irt.config.transport-id-prefix parameter (see Figaf Tool application running for more details).

On this page you can:

  1. Switch between tabs:

    1. All transports to view all existent transports.

    2. My Approvals to view transports in WAITING_FOR_APPROVAL status and current user is reviewer for them.

    3. My Actions to view transports in CREATED, WAITING_FOR_APPROVAL, or IN_PROGRESS statuses which can be performed by current user.

      You can import several transports from this tab.

      Batch import is supported for all CPI/Api Management transports linked with binary landscape and only for Integration Directory transports linked with PI binary landscape. Batch import is not supported for groups of transports (when multiple transports created for one ticket).

      Once several transports are imported in batch mode, they are linked by batchId and can be rollbacked only in batch mode from transport page of one of this linked transports. Batch rollback feature has some limitations that you can read here. If transports are linked by batchId, transitions of related tickets statuses are executed together (see ticket status transitions here).

  2. View linked tickets of required transport clicking on its menu full button. You also can open the ticket details page clicking on 'Ticket ID: Title'. It opens Ticket: Ticket ID page.

  3. View a transport details clicking on details button. It opens Transport: Name page

  4. Select transport(s) and delete it(them) clicking on red trash button.

Transport: Name page

Transport: Name page shows the transport details and looks:

transport details

On this page you can:

  1. View transport configuration of the transport item clicking on its configuration button. It opens Transport Configuration page with preselected Landscape and Tracked Object.

  2. Check estimated payload that will be created on the target landscape after migration clicking on its check full button. It opens 'Compare' dialog box:

    compare
  3. Compare imported version with previous version on target system for imported transports clicking on its check full button. It opens 'Compare' dialog box:

    compare
  4. View linked ticket details clicking on the ticket title. It opens Ticket: Ticket ID page.

  5. View details of transports from the same group clicking on the transport ID. It opens the same page with different data.

  6. Validate transport configuration clicking on Validate Transport. It validates dir objects mapping and password settings:

    1. If a component is mapped from X to Y, but channel from X|ChannelName to Z|ChannelName, it shows an error about inconsistent mapping.

    2. If the password parameter has a static value config, its value shouldn’t be empty if it’s not empty on the source system. If the password parameter is inherited from target, target object should exist.

      Validate Transport is available only for transport with INTEGRATION_DIRECTORY registry type until the transport is approved or imported.

      Transport configuration validation is processed automatically during transport creation, approval (if Require Transport Approval option is true on the landscape), import.

  7. Create Transport with the latest versions (for CPI and Api Management). The operation cancels current transport and create a new one with the latest objects versions (the versions should be synchronized).

  8. Create next Ticket (available only for composite landscapes if landscape related to current transport has 1 successor).

  9. Download traces of the last import (for imported/reverted transports). The traces contain progress info of the transport.

    For PI transports import details are traced only for integration directory transports with integrated transport management. Other PI cases are not traced with details, but common process related logs are there.

    Traces example:

    Started import at 17-06-2022 12:42:39 +0300 by [email protected] (admin)
    Initial synchronization of T75 took 8400 ms
    Initial synchronization of D75 took 8999 ms
    Processing import of missing directory folders
    Import of missing directory folders is completed
    Processing upload of 1 Integrated configuration objects to changelist for transport
    1/1: processing transport of Integrated configuration *|*|irttestDummy|http://figaf.test.com||
    1/1: processed in 1134 ms, transport is skipped because target object with needed state already exists
    Upload of 1 Integrated configuration objects to changelist is completed in 1135 ms
    Transport of 1 directory objects is completed in 23629 ms
  10. View changes overview for ICOs, communication channels, scenarios, parties, business components, business systems, sender and receiver agreements (available only if landscape related to current transport of integration directory objects is PI binary landscape). It opens Transport changes overview page where you can browse the changes and export table data to CSV format.

  11. Download parameters report that contains all external properties that are used in the transport (only for binary landscapes). It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform).

  12. Batch parameters update to upload transport configuration parameters for several objects in scope of the landscape in the transport (only for binary landscapes). You need to prepare .csv file (the structure of data should be equal to the structure of downloaded parameters report). Then upload the file, check changes and submit them. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform). Go to Batch parameters update for more details.

  13. Migrate passwords (for PRO) clicking on Migrate passwords if possible.

    Migrate passwords if possible is available only for transport with INTEGRATION_DIRECTORY registry type, containing at least one channel, and linked with migration ticket until the transport is approved or imported.

  14. Manage the transport statuses:

    1. CREATED is initial state for transport if Require Transport Approval option is true on the landscape, import and approval operations are not available at this stage.

    2. WAITING_FOR_APPROVAL is state when transport has not been approved yet, import operation is not available. You can import transport, decline it, or soft decline (for PRO binary landscape). Soft decline moves transport to the CREATED state.

    3. IN_PROGRESS is initial state for transport if Require Transport Approval is false, and the next state for approved transport. Import operation is available only if it’s initial state for transport or all transports from the same group have been approved.

    4. IMPORTED is state when all transport items have been successfully imported on the latest landscape item.

      If for corresponding landscape Require approval is true and Only reviewers can import objects is true, only reviewers can import transport.

      Otherwise any user with IRTDevOpsOperator, IRTDevOpsManager or IRTAdmin role can import objects.

    5. REVERTED is state when some transport items have been rollbacked to the previous landscape item state.

      Rollback feature has several limitations:

      • PRO:

        • File/CTS+ transports aren’t supported.

      • CPI:

        • If package is created by transport and there aren’t other objects in the transport, then package isn’t deleted during rollback.

        • If only IFlow configuration is changed during import (IFlow isn’t changed), then IFlow configuration isn’t reverted during rollback.

      • Api Management:

        • Encrypted key value maps aren’t supported.

      • Transport can be rollbacked if target objects state is the latest.

      • Transport is still active.

      If for corresponding landscape Require approval is true and Only reviewers can import objects is true, only reviewers can rollback transport.

      Otherwise, any user with IRTDevOpsOperator, IRTDevOpsManager or IRTAdmin role can rollback objects.

    6. DECLINED is state when transport has been declined by reviewer. It means the ticket should be moved to previous stage (to development) and transports have to be created again (automatically or manually), otherwise, import operation is not available for all transports from the same group.

    7. CANCELED is state when the related ticket has been moved to previous stage (to development) and transport has not been imported. It means the ticket should be moved to previous stage (to development) and transports have to be created again (automatically or manually), otherwise, import operation is not available for all transports from the same group.

      If for corresponding landscape Require approval is true and Only reviewers can import objects is true, only reviewers can cancel transport.

      Otherwise any user with IRTDevOpsOperator or IRTAdmin role can cancel transport.

      The picture below shows transport status transitions:

      transport diagram

8.2.3. Transport Configuration page

Transport Configuration page shows the transport configuration of selected object on selected landscape and looks:

transport configuration

Transport Configuration is validated during opening, and validation errors are shown in warning message, e.g.:

tc validation errors

On this page you can do the following:

  1. Configure whether object is transportable or not. If Deny transport of current object is enabled, the object will not be attached to tickets and transports.

  2. Navigate between Transport Configurations of parent and child objects with transport configuration.

  3. Navigate between Transport Configurations of the same object across the Composite landscape.

  4. Browse child objects name mapping lookup for binary landscapes.

  5. Configure parameters. There are 3 possible cases for transport configuration parameters:

    1. Parameter value should be taken from source object version and set on the target object. Default behavior for all non-password parameters.

    2. Parameter value should be kept from target object version, so, it won’t be updated. Default behavior for all password parameters.

    3. Parameter value should be configured manually for chosen target system.

Transport configuration is configured differently for varied objects:

  • PRO objects:

    For parties, components, systems, communication channels, and ICOs it’s possible to configure name mapping. For communication channels it’s also possible to configure adapter specific attributes and module parameters. You also can configure mappings and switch on/off Use scenario mapping option for PRO non-binary landscapes.

    You can browse changes between source ICO state and the state to upload clicking on Changes overview button on ICO transport configuration page for PRO binary landscapes.

    Routing conditions can be configured for receivers and interfaces on ICO transport configuration page for PRO binary landscapes:

    receivers interfaces routing conditions

    By default, condition is taken from object payload. If Inherit (source) is disabled, routing condition can be changed and this new condition will be used during transport. If it’s required to reuse condition from target object for the same rule, then use ignoring option of Receivers/Interfaces projection settings.

    For receiver interface rules it’s not possible to have projection option (exclude or ignore) and manually defined condition at the same time.

    The feature has restrictions and limitations. Please consider the following:

    Receiver rule is identified by key <operation> + <receivers party and service> and that one rule can contain multiple receivers. Receiver interface rule is identified by key <receiver party and service> + <operation> + <operation mapping> + <interfaces>.

    While all rules have unique keys and they stay immutable (i.e. no changes in receivers list for receiver rule or interfaces list in receiver interface rule) - identification can be done without any problems, but when there are multiple rules with the same key or when some rule’s key is updated during source object update, we have troubles with matching previously manually configured condition with the updated set of rules. To summarize:

    1. If transport configuration has a persisted condition but related key is not found in the actual list of rules, it’s no longer possible to apply that condition and it will be lost. New rules that are inherited from source by default will be shown.

    2. If transport configuration has a persisted condition but related key is found multiple times in the actual list of rules, further identification is possible only if initially object has rules with the same key but different conditions.

    3. If at some moment of time object gets fully duplicated rules (key+condition), for now it will initialize all conditions with the value from the condition of the first rule in the list of duplicated rules.

    One more tricky case occurs when Don’t remove rules that exist only on the target object is enabled in Receivers/Interfaces projection settings. If the option is enabled and conditions are changed for some receivers/interfaces, then:

    1. If target object has already had all receivers and interfaces, target object will contain these receivers and interfaces (with previous conditions) and receivers and interfaces with new conditions after transport.

    2. If target object hasn’t had these receivers and interfaces, target object will contain receivers and interfaces with new conditions after transport.

    Projection can be configured in Receivers/Interfaces projection settings on ICO transport configuration page for PRO binary landscapes:

    receivers interfaces projection settings

    You can keep receiver/interface rules that exist only on target object enabling Don’t remove rules that exist only on the target object.

    You can either exclude or ignore receiver/interface rules:

    • If you exclude specified receiver/interface rules during transport of the ICO, then these rules will be ignored completely and will not be transported.

    • If you ignore specified receiver/interface rules during transport of the ICO, then these rules won’t be excluded but taken from the current target ICO instead. So, specified rules won’t be updated during transport. If the target object doesn’t exist, ignoring isn’t processed.

      If the whole receiver is ignored and target object already has this receiver, extra rules from source object will not be moved to target object.

    On Channel transport configuration page there are a lot of Adapter specific attributes and since of 2112 Figaf Tool supports a possibility to add parameter description with context GUI information that can be taken from adapter metadata payload, filter items by different criteria.

    channel transport configuration page adapter specific attributes

    The following filters are available:

    • 'Changed' filter criteria filters attributes by differences. So all items, all changed items, items having diffs between source and target or items having diffs on target system are shown.

    • 'Non-transportable' filter criteria filters attributes by transportable criteria. So all items, all non-transportable items, all passwords/credentials items or all transportable items are shown.

    Also parameter description with context GUI information can be shown depending on Show parameter description switcher value.

    Parameter description with context GUI information that can be taken from adapter metadata files which location (path to the folder with files) should be set in bootstrap parameter irt.config.pi-adapter-metadata-files. The files should be downloaded from PI system. See Application properties to learn more about bootstrap parameters.
  • CPI Objects:

    You can override transport configuration for older IFlow versions (to enable this feature click on Override for a particular version and select a version).

    It is possible to select draft version only if it’s the latest (it’s impossible to select historical draft versions).

    You can initialize transport configuration by the ancestor values clicking on Init by another object. It opens the dialog where you can select IFlow which IFlow configuration will be used as an ancestor to initialize IFlow external configuration parameters of target object.

    Once transport is created for an object, corresponding transport configuration will be persisted. The following cases are possible:

    • There is no persisted transport configuration for an object and persistence is requested for the latest version, then Figaf Tool will persist new config for the latest version (by group id only).

    • There is no persisted config for an object and persistence is requested for particular version, then Figaf Tool will persist new config for particular version (by group id and tracked object id).

    • There is persisted config for the latest version and persistence is requested for latest version, then Figaf Tool will update persisted config for the latest version.

    • There is persisted config for the latest version and persistence is requested for the particular version

      • if a particular version is not the latest, then Figaf Tool will persist new config for the particular version.

      • if a particular version is the latest, then Figaf Tool will update the persisted latest version as a particular version.

    • There is a config only for a particular version and persistence is requested for the latest version

      • if a particular version is not the latest, then Figaf Tool will persist new config for the latest version (it’s not the real case for normal usage).

      • if a particular version is the latest, then Figaf Tool will update the content of the particular version without changing its type.

    • There is config only for a particular version and persistence is requested for a particular version, then Figaf Tool will update persisted config for the particular version.

    When a configuration is persisted for a concrete transport it’s possible to edit transport configuration for transport items which haven’t been approved yet.

    'Changed' filter criteria filters attributes by differences. So all items, all changed items, items having diffs between source and target or items having diffs on target system are shown.

  • Api Management Objects:

    You can configure Api Proxies (target endpoint properties and URL) and Key Value Maps.

    'Changed' filter criteria filters attributes by differences. So all items or all changed items.

8.2.4. Releases page

Releases page shows all existing releases and looks:

releases

On this page you can:

  1. Create new release clicking on New Release button. It opens 'Create release' dialog box where the following properties can be configured:

    1. Title of new release. Should be unique within the organization.

    2. Version of release.

    3. Default Assignee for group ticket creation.

    4. Default Ticket Type for group ticket creation. See Ticket Types for details.

    5. Default Landscape for group ticket creation. The same as Landscape for ticket (see Landscapes).

    6. Default Source Landscape, Default Target Landscape, and Default Migration Landscape for group ticket creation. The same as Source Landscape, Target Landscape, and Migration Landscape for ticket correspondingly (see Landscapes).

  2. Select release(s) and release it(them) clicking on Release button.

    Only releases which all attached tickets are in Migrated, In production, or Canceled statuses can be released.
  3. View a release details clicking on details button. It opens Release 'Title' page.

  4. Select release(s) and delete it(them) clicking on red trash button.

    The release(s) will be deleted with all attached tickets.
Release 'Title' page

Release 'Title' page provides the features for management and monitoring of ticket groups and looks:

release details page

There are the following operations can be executed on this page:

  1. Opening another release details clicking on open another button and selecting a release.

  2. Expanding the release configuration clicking on details button. It expands the configuration, which can be updated (see release fields here):

    release details with configuration

    If you want to save changes, click on save button. Otherwise, collapse the configuration.

  3. Release the release clicking on Release button.

    Only releases which all attached tickets are in Migrated, In production, or Canceled statuses can be released.
  4. Changing view perspective:

    view perspective change

    Release has two view perspectives:

    1. Integration scenarios perspective shows scenarios added to tickets attached to the release. Here you can:

      1. Add new scenario clicking on Add Scenarios button (available only if the release hasn’t been released yet). It opens Create new tickets for chosen scenarios dialog box:

        create new tickets for choosen scenarios

        In this dialog box configure properties of new tickets (see almost all of them here):

        1. Ticket creation strategy identifies how objects should be distributed between tickets: One ticket per scenario or All scenarios in one ticket.

        2. Test cases attachment strategy identifies whether test cases should be attached during tickets creation, or not: Attach all available test cases for chosen scenarios or Don’t attach any test cases. If Attach all available test cases for chosen scenarios is selected, ticket’s integration objects lookup and test cases attachment (all found test cases for resolved integration objects) will be processed for each created ticket.

          After configuring new ticket properties click on Add Scenarios. It opens 'Select integration scenarios' dialog box where you can select the objects (submit the dialog box to close it).

          If you have selected unnecessary objects, you can select them and click on Delete Scenarios button.

          Click on Save to create new ticket(s). Selected objects with all dependent objects will be attached to created ticket(s).

          Selected objects should be licensed for DevOps or Migration (see Configure Object Licenses for details).
      2. View integration scenario details clicking on the link of source integration scenario. It opens Integration Object Details page.

      3. View ticket details clicking on scenario tickets and selecting the ticket. It opens Ticket: Ticket ID page.

    2. Tickets perspective shows attached tickets and provides functionality for ticket management. Here you can:

      1. Attach tickets clicking on Attach Tickets button and selecting the tickets.

        You can attach tickets that are not associated with any release.

        Attach Tickets button is available only if the release hasn’t been released yet.

      2. Detach tickets selecting unnecessary tickets and clicking on Detach Tickets.

        Detach Tickets button is available only if the release hasn’t been released yet.

      3. View ticket details clicking on its id. It opens Ticket: Ticket ID page.

      4. Monitor ticket stages switching between Prepared, In Development, In Transport, Migrated, and In Production tabs.

        These tabs correspond to ticket stages described here.
      5. Move tickets to next stage depending on previous one:

        1. To development on Prepared tab.

        2. Start transport on In Development tab.

        3. Finish transport on In transport tab.

          To development, Start transport, and Finish transport buttons are available only if the release hasn’t been released yet.

      6. Create Development tickets from selected migration tickets on Migrated tab. It creates development tickets on target system which can be used for moving current development landscape to production.

        Create Development tickets button is available only if the release hasn’t been released yet.

      7. Migrate Transport Configuration of selected migration tickets on Migrated tab. It opens 'Migrate Transport Configurations' dialog box:

        migrate tc

        Where you can configure:

        1. Fill values of parameters inherited from target by static values from source landscape

        2. Migrate passwords if possible (PRO only)

          Migrate Transport Configuration button is available only if the release hasn’t been released yet.

9. PI to CPI migration

Requirements:

  1. All required Agent Systems have been configured (see that section to learn how to do that).

  2. Configure Channel Mapping Templates if default templates don’t match.

  3. Configure Migration license for PI objects which you want to migrate (see Configure Object Licenses for details).

Since 2107 version Figaf Tool supports PI to CPI migration cases. On PI to CPI migration page you can migrate PI Integration object or Operation mapping.

9.1. Get started with PI to CPI migration

9.1.1. Channel Mapping Templates configuration

Since of 2309 Figaf Tool supports channel mapping templates management. So PItoCPIMigrationTemplates repository is deprecated.

To configure template:

  1. Go to PI to CPI migration → Channel Mapping Templates page.

  2. Click on plus to create new template.

    You can copy existing template clicking on copy full of related template.

    It will open the dialog:

    channel mapping template dialog
    1. Fill Name

    2. Select PI Channel (or Direction and Adapter Type). Once you select PI Channel, PI Channel XML value will be set. Then you can Run template to check configuration.

    3. Select CPI IFlow and Message Flow Step Id. Click on Generate template, then XSLT Template will be generated.

    4. Save the template.

  3. To modify or delete custom template click on details full or red trash.

    Only custom templates can be modified or deleted. Default templates can be browsed only.

9.1.2. Configuration

To migrate objects from PI to CPI you have to configure agents for the usage:

  1. Go to PI to CPI migration → Configuration page:

    configuration
  2. Configure PI Agents used for source objects (required)

  3. Configure CPI Development Agents used for migrated objects (required)

  4. Configure CPI Production Agents

  5. Configure Parameter Value Replacement table to replace externalized properties in the generated IFlows.

    Empty value of the cell means that the replacement rule will not be applied.

    JMS Queue Name can be replaced as well.

  6. Configure Modules Replacement table to replace custom or EDI modules with the corresponding groovy script belong to a Script Collection. By default, Script Function Name is processData, but it can be overridden.

    If a module name in the model has a localejbs/ prefix, this prefix will be omitted(so it’s considered as equal with the module name without this prefix).

    If a module has parameters, a separate Content Modifier in the IFlow before a groovy script will be created. If it has a password parameter, it will be set to empty value.

    In case of an asynchronous ICO, modules before sender and before receiver will be replaced

    In case of a synchronous ICO, modules before sender, before receiver, after receiver, after sender will be replaced.

9.1.3. E2e migration of PI Integration object (from Overview page)

To migrate PI Integration object from Overview page:

  1. Go to Overview page:

    overview
  2. Click on details button of PI object that you are going to migrate. You’ll be migrated to Migration page with predefined data:

    migration with predefined data
  3. Select CPI Agent

  4. Select CPI Package

  5. Type target IFlow Name (Display name)

  6. Type target IFlow ID (Technical name) . Select Profile Type. The value could be Single Process or Local Processes:

    1. Single Process - migrated IFlow has one Integration Process. Neither subprocess nor exception handling isn’t supported by default.

    2. Local Processes - migrated IFlow is enterprise ready: local Integration Process is created for each receiver/interface, subprocess is created for every branch, exception handling is supported.

      It’s required to deploy script collection for error handling (see script content for error handling).

      If Local Processes profile is selected, select Retry Type. The value could be None or JMS: None - migrated IFlow doesn’t include retry process; JMS - migrated IFlow includes retry process. If JMS type is selected, JMS Queue Name can be configured.

    3. B2B Scenario - migrated IFlow has a B2B XSLT Transformer XSLT Mapping element to apply modifications with a payload needed for TPM.

      There are some details about B2B Scenario migration profile:

      • The migrated IFlow doesn’t have a receiver, Add SAP_Sender/Add SAP_Receiver, subprocesses and exception handling, routing.

      • If a source ICO has multiple mappings, only one of them can be used. All others will be excluded. By default, only the first mapping will be included. You can see it at the Receivers/Interfaces table.

      • It uses a process-direct sender default template for a sender adapter. This template will be automatically assigned, when you select a B2B Scenario profile and click Check. Please note that if before that, you had already executed the Check operation for another profile, and you already have a Channels Mapping table filled in, the migration template will not be automatically switched to the process-direct sender default, and you will need to do it manually.

  7. Click on Check in order to build target IFlow model

  8. Once the operation is completed, you are allowed to configure migration settings and check migration logs:

    configure xslt mapping file paths for channels and check migration logs
    1. Channels Mapping configures xslt mapping file paths for channels. If corresponding template isn’t found, then HTTP is used for sender and ProcessDirect is used for receiver.

    2. Receivers/Interfaces configures which receivers/interfaces should be migrated from PI Integration Object. .. Cloud Integration Resources manages shared artifacts modes:

      1. Reuse shared artifact - existing shared artifact will be used during migration

      2. Overwrite shared artifact - existing shared artifact will be overwritten using current state of related PI object

      3. Create as local object - existing shared artifact will not be used during migration.

        If source object is Message Mapping with defined functions, checkbox Extract UDFs into a separate script will be shown. If the checkbox is enabled, local functions from a message mapping will be extracted into a separate groovy script. If the checkbox is disabled, functions will not be extracted.

        Please use Overwrite shared artifact or Create as local object mode, when you change Extract UDFs into a separate script value.

      4. Use migrated CPI function library (only for Script resource type) - existing CPI function library will be used during migration. So migrated IFlow will be linked with the CPI function library. If related CPI function library doesn’t exist on CPI system, then Function Library conversion algorithm will be used.

      5. Use custom CPI script (only for ARCHIVE_PROGRAM) - existing CPI script from Script Collection should be selected.

    3. Migration logs shows migration warnings and advices.

  9. Once everything is configured, migrate the object clicking on Migrate.

    Example of migrated IFlow (Single Process profile):

    migrated iflow example

    Example of migrated IFlow (Local Processes profile):

    migrated iflow example beta
  10. Configure the IFlow

  11. Deploy it if you want to run test cases

  12. Once PI object is migrated, there is the information with migrated IFlow on Overview page:

    overview after migration
  13. Then you can migrate PI object test case clicking on the row and then clicking on Migrate Test cases button. You will be navigated to Agent Test Cases tab on Integration Object Details page. Then Follow Migrate test cases from PI to CPI feature.

If some issue occurs during checking the state, please download archive for debugging and send it to us by email [email protected].

9.1.4. E2e migration of PI Integration object (from Migration page)

To migrate PI Integration object from Migration page:

  1. Go to Migration page

  2. Select PI Integration Object

    Selected object should be licensed for Migration (see Configure Object Licenses for details).

  3. Select CPI Agent

  4. Select CPI Package

  5. Type target IFlow Name (Display name)

  6. Type target IFlow ID (Technical name) . Select Profile Type. The value could be Single Process or Local Processes:

    1. Single Process - migrated IFlow has one Integration Process. Neither subprocess nor exception handling isn’t supported by default.

    2. Local Processes - migrated IFlow is enterprise ready: local Integration Process is created for each receiver/interface, subprocess is created for every branch, exception handling is supported.

      It’s required to deploy script collection for error handling (see script content for error handling).

      If Local Processes profile is selected, select Retry Type. The value could be None or JMS: None - migrated IFlow doesn’t include retry process; JMS - migrated IFlow includes retry process. If JMS type is selected, JMS Queue Name can be configured.

    3. B2B Scenario - migrated IFlow has a B2B XSLT Transformer XSLT Mapping element to apply modifications with a payload needed for TPM.

      There are some details about B2B Scenario migration profile:

      • The migrated IFlow doesn’t have a receiver, Add SAP_Sender/Add SAP_Receiver, subprocesses and exception handling, routing.

      • If a source ICO has multiple mappings, only one of them can be used. All others will be excluded. By default, only the first mapping will be included. You can see it at the Receivers/Interfaces table.

      • It uses a process-direct sender default template for a sender adapter. This template will be automatically assigned, when you select a B2B Scenario profile and click Check. Please note that if before that, you had already executed the Check operation for another profile, and you already have a Channels Mapping table filled in, the migration template will not be automatically switched to the process-direct sender default, and you will need to do it manually.

  7. Click on Check in order to build target IFlow model

  8. Once the operation is completed, you are allowed to configure migration settings and check migration logs:

    configure xslt mapping file paths for channels and check migration logs
    1. Channels Mapping configures xslt mapping file paths for channels. If corresponding template isn’t found, then HTTP is used for sender and ProcessDirect is used for receiver.

    2. Receivers/Interfaces configures which receivers/interfaces should be migrated from PI Integration Object. .. Cloud Integration Resources manages shared artifacts modes:

      1. Reuse shared artifact - existing shared artifact will be used during migration

      2. Overwrite shared artifact - existing shared artifact will be overwritten using current state of related PI object

      3. Create as local object - existing shared artifact will not be used during migration.

        If source object is Message Mapping with defined functions, checkbox Extract UDFs into a separate script will be shown. If the checkbox is enabled, local functions from a message mapping will be extracted into a separate groovy script. If the checkbox is disabled, functions will not be extracted.

        Please use Overwrite shared artifact or Create as local object mode, when you change Extract UDFs into a separate script value.

      4. Use migrated CPI function library (only for Script resource type) - existing CPI function library will be used during migration. So migrated IFlow will be linked with the CPI function library. If related CPI function library doesn’t exist on CPI system, then Function Library conversion algorithm will be used.

      5. Use custom CPI script (only for ARCHIVE_PROGRAM) - existing CPI script from Script Collection should be selected.

    3. Migration logs shows migration warnings and advices.

  9. Once everything is configured, migrate the object clicking on Migrate.

    Example of migrated IFlow (Single Process profile):

    migrated iflow example

    Example of migrated IFlow (Local Processes profile):

    migrated iflow example beta
  10. Configure the IFlow

  11. Deploy it if you want to run test cases

  12. Once PI object is migrated, there is the information with migrated IFlow on Overview page:

    overview after migration
  13. Then you can migrate PI object test case clicking on the row and then clicking on Migrate Test cases button. You will be navigated to Agent Test Cases tab on Integration Object Details page. Then Follow Migrate test cases from PI to CPI feature.

If some issue occurs during checking the state, please download archive for debugging and send it to us by email [email protected].

9.1.5. E2e migration of Operation mapping to existent IFlow

To migrate Operation mapping from Migration page:

  1. Go to Migration page

  2. Select Operation Mapping

    Selected object should be linked with Integration object that is licensed for Migration (see Configure Object Licenses for details).

  3. Select CPI IFlow

  4. Click on Check in order to build target IFlow model

  5. Migrate the object clicking on Migrate. As a result objects linked with Operation mapping are migrated to the IFlow

If some issue occurs during checking the state, please download archive for debugging and send it to us by email [email protected].

9.2. Supported cases

The following ICO and RD scenarios are supported for migration:

  • Standard async scenarios

  • Sync scenarios

  • Scenarios with receiver, interface, and operation-specific routing

  • Scenarios with extended receiver

  • With simple or compound XPath conditions

  • Supported operators: =, !=, EX, .

  • Scenarios with message mappings

    • With schemas

      • External definition (incl. WSDL and usage of imports)

      • Message Type (incl. Data Types)

    • With User Defined Function (Function Library)

    • OM with multiple MM support

    • OM with Java mapping

      Empty groovy script will be added to the migrated IFlow.
    • OM with ABAP mapping

      There is only a warning in Migration logs. Nothing will be added to the migrated IFlow.
    • OM with XSL mapping

    • OM with Fault Mapping programs

      Fault mapping program is migrated and added to the IFlow resources but the corresponding IFlow step should be added manually.
    • MM with message split support

    • MM with parameters

    • MM with bindings

    • MM with External Message name not equaled to its root element

    • MM with sender and receiver default PI functions

      To support it, Figaf tool replaces usage of sender and receiver functions in Message Mapping by the custom groovy function getHeader that is configured to fetch CPI headers SAP_Sender and SAP_Receiver accordingly by default. It can be reconfigured after migration manually if it needs.

      When migration is done with Local Processes migration profile, special content modifiers are added to set these headers for sender flow and receiver branches.

      In case of Single Process migration profile, content modifiers are not added automatically, but it’s possible to add these content modifiers manually or send headers within the message.

      sender and receiver pi default functions

      Function getHeader is added to the MappingParameters.groovy script. If you have already had shared artifact MappingParameters.groovy, please select Overwrite shared artifact Shared artifacts mode for it before migration.

  • RD without Sender Agreement and Receiver Agreement

  • Scenarios with Technical Context Object

  • Scenarios with RFC

  • ICOs with multiple receivers in the rule

  • ICOs with file sender channel with Flat→XML and/or file receiver channel with XML→Flat content conversion at adapter level

    In the migrated IFlow, new GroovyScript step is added. This script uses the content-converter.jar downloaded from github project developed by the Figaf team. This jar is added to the migrated IFlow automatically.

    If for some reason content-converter.jar can’t be downloaded from the github project, then a jar file from the Figaf tool resources will be used instead and corresponding warning will be shown in the migration logs.

10. Migration to IS

Requirements:

All required CPI composite landscapes have been configured (see that section to learn how to do that).

Since 2212 version Figaf Tool supports browsing and migration from NEO stack to Integration Suite stack.

10.1. Get started with Migration to IS

  1. Go to Migration to IS → Overview page.

  2. Select Migration Landscape and Target Landscape.

    overview

    Migration Landscape must have only one landscape and last system of the Migration Landscape should be equal to the first system of the Target Landscape.

    If you have old stack old_Dev → old_QA → old_Prod and new stack Dev → QA → Prod and you need to migrate objects from old_Dev, old_QA, old_Prod systems to Dev, then configure several migration landscapes: old_Dev → Dev, old_QA → Dev, old_Prod → Dev.

  3. The following features are available:

    1. Configure custom mapping for selected objects.

      Such custom mappings make sense when some objects can’t be mapped by parameter mapping rules on migration landscape page.

      If there are approved or waiting for approval transports with effected objects, custom mapping update will not be successful.

      To configure it select objects and click on Custom Mappings. It opens the dialog where mapping can be configured:

      custom mapping config
    2. Create ticket for migration with selected objects. To do it select objects and click on Create Ticket for Migration. It opens ticket creation dialog with predefined Title and Landscape. Then you can work with created ticket in standard way (see Ticket page).

    3. Show Test Runs Info enables test runs viewing for the objects.

    4. Export to CSV generates CSV report with the table data.

    5. Go to tracked object page clicking on the object link.

    6. Go to corresponding transport configuration page for objects with transport configuration clicking on the object link and selecting related option.

11. Advanced configuration

11.1. Application configuration

Application page provides general configuration and looks:

application

The following application configurations are available:

  • Common Configuration section:

    • Enable changes detection for CPI agents enables notification about CPI version updates by email. If it’s enabled, Emails where sent notifications to is shown and defines a list of emails where notification will be sent. The email contains information about version updates for all configured CPI agents.

    • Use bundled CSV report generation strategy defines test reports generation strategy. If it’s true, Zip archive with 3 CSV reports: processed messages report, diff report, and test runs metadata report is generated. Otherwise, Excel report is generated.

    • Show successful messages in the test suite’s report configures whether successful messages are added to the excel report or not. It makes sense to enable it only if Use bundled CSV report generation strategy is disabled. Otherwise, it has no effect.

    • Schedule test suites by default enables Scheduled setting for all new test suites.

    • Ignore messages cache during polling - if you have polled almost all messages and you just need to poll small number of messages to finish testing, you can enable the option. When this option is enabled, already polled messages won’t be skipped. It affects performance when the amount of messages is large and you just need to poll small number to finish testing.

    • Transport creator can approve own transports defines whether reviewer which creates transport can approve it or not.

    • Use individual landscapes by default defines whether individual or composite landscapes are preferable. Default value is false which means that Composite landscapes mode is a preferable one.

    • Audit TRACE lifetime period (days), Audit INFO lifetime period (days), Audit WARNING lifetime period (days) and Audit ERROR lifetime period (days) define lifetime period for audit entries. Cron jobs get triggered every day at 3 pm.

    • Test Run timeout (hours)

    • Report generation delay (minutes)

    • SMTP host, SMTP port, SMTP username, SMTP password, Email Protocol, Enable StartTLS are SMTP host configuration. Options are available only on embedded Figaf Tool version.

    • Email From is an email which is used as a sender in emails sent by Figaf Tool. Option is available only on embedded Figaf Tool version.

    • Email To is an email to which emails is sent by Figaf Tool.

  • Jobs Info section:

    • TestSuiteResultNotifier enables test suite run reports sending by email and configures interval (as cron expression). The reports are sent only for test suites with enabled Send report by email option. It is required to have SMTP host configurations, Email From, and Email To settings configured.

    • TestSuiteRunner enables automatic test suite running and configures interval (as cron expression). Only test suite with enabled Scheduled option is run automatically.

    • TestingResultsCleaner enables automatic test results cleaning and configures interval (as cron expression).

    • AlertsCleaner enables automatic alerts cleaning and configures interval (as cron expression).

    • SupportToolAlertsHandler enables automatic alerts polling and configures interval (as cron expression).

    • SupportToolReprocessing enables alerts reprocessing and configures interval (as cron expression). This job is required for PRO agents.

    • MonitoredMessagesCleaner enabled automatic EDI monitored messages cleaning and configures interval (as cron expression).

11.2. Agents configuration

11.2.1. Sign on to SAP CPI CF using SAML2

Open ConfigurationAgents page, click Edit on needed Agent. If you don’t have Agent configured read this section at first. Enable checkbox Use custom IdP. Then you will need to do the following steps:

  1. Go to your SAP BTP Cockpit and download SAML Metadata.

    sap btp cockpit download saml metadata
  2. Open the file and copy value related to <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location=.

  3. Go to Figaf Tool and paste Url from the previous step into SSO Url.

  4. Save the agent.

  5. Generate entity descriptor for the agent:

    generate entity descriptor
  6. Go back to the SAP BTP Cockpit and upload this file as a new Trust configuration.

    Don’t change anything in the configuration, just configure Name. Otherwise, there could be some issues.
  7. Add Role collection mappings for the IdP: PI_Administrator, PI_Business_Expert, PI_Integration_Developer with the attribute Groups and the value Admin:

    role collection mappings
    If you configure the IdP for IS system and want to synchronize Message Implementation Guideline objects, configure one more Role collection mapping iadv-content-developer with the attribute Groups and the value Admin for the IdP.
  8. Go back to Figaf Tool and test configuration for the agent. Select it and click on Test configuration button.

If you need to regenerate entity descriptor for the agent. You need to Reset Entity Descriptor on Agents integration configuration (CPI platform), then generate entity descriptor and update the Trust configuration in the SAP BTP Cockpit.

11.2.2. Naming convention rules

Open ConfigurationAgents page. If you don’t have Agent configured read this section at first.

To upload naming convention rules follow the steps:

  1. Click on naming convention rules icon for the agent:

    naming convention rules
  2. Upload CSV file with configuration.

    It’s possible to download sample file or existing rules files.
    Examples of naming convention rules CSV file

    Naming convention rules for PRO agent:

    Tag;Object type;Sender Party;Sender Component;Interface Name;Interface Namespace;Receiver Party;Receiver Component
    tag1;CHANNEL;.*;.*TEST.*;.*;;;
    tag2;ICO;.*;.*TEST.*;TEST.*;.*;.*;.*
    Only ICO and CHANNEL types are supported. CHANNEL has 3 keys, ICO has 6 keys. Empty values are supported for Sender Party, Receiver Party and Receiver Component keys.

    Naming convention rules for CPI agent:

    Tag;Object type;Name
    tag1;CPI_IFLOW;TEST.*;
    tag2;CPI_IFLOW;TST.*;
    Only CPI_IFLOW type is supported.

    Naming convention rules for Api Management agent:

    Tag;Object type;Name
    tag1;API_PROXY;.*_TST.*
    tag2;KEY_VALUE_MAP;.*_TEST
    tag3;ENCRYPTED_KEY_VALUE_MAP;.*_TEST
    Only API_PROXY, KEY_VALUE_MAP, ENCRYPTED_KEY_VALUE_MAP types are supported.
  3. Once you upload the rules, related technical tags will be created and attached to appropriate tracked objects. Tag <system-id:no-naming-validation> will be attached to objects that don’t match any naming convention rule.

If there are naming convention rules for the agent, you can either upload new rules or cleanup them completely. During cleanup operation naming convention rules will be deleted together with related technical tags. Also naming validation will be forcibly disabled in all landscapes where current agent is a source landscape item.

11.3. Landscapes configuration

Landscapes page shows all existing landscapes and looks:

landscapes

On this page you can:

  1. Create new landscape clicking on Create Landscape button (see Landscape configuration examples to learn how to configure landscapes):

    1. See Landscape configuration (PRO platform) to create PRO landscape.

    2. See Landscape configuration (CPI platform) to create CPI landscape. (Deprecated. We recommend to configure Composite landscapes configuration (CPI/Api Management)).

    3. See Landscape configuration (Api Management platform) to create Api Management landscape. (Deprecated. We recommend to configure Composite landscapes configuration (CPI/Api Management)).

  2. Manage composite landscapes (CPI/Api Management only) selecting Composite in Landscapes Type selector (see Composite landscapes configuration (CPI/Api Management)).

  3. Delete a landscape clicking on its decline button.

    Landscapes linked to any object (release, ticket, etc.) can’t be deleted.
  4. Edit landscapes clicking on its edit button.

    You can edit only Require Transport Approval and Transport Reviewer Emails settings (for PRO and Api Management landscapes) and Deploy after transport, Require approval, and Reviewer emails landscape items settings (for CPI landscapes).

    All transports linked with the landscape must be in IMPORTED, CANCELED, or DECLINED statuses, otherwise you will get an error that it is not possible to change transport approval value because some transports are in WAITING_FOR_APPROVAL, IN_PROGRESS or CREATED state.

  5. Expand/Collapse node of a landscape to view/hide landscape items.

11.3.1. Landscape configuration (PRO platform)

Follow the steps to configure landscape:

  1. Go to the Landscapes tab on Configuration page, select Individual in Landscapes Type selector and add your landscape through Create Landscape button:

    create landscape PRO
  2. Configure the following properties:

    • Name of new landscape. Should be unique within the organization.

    • Platform - select the type of your landscape - PRO.

    • Integrated transport management - if true, Figaf Tool will use file transport EJB API to process transport of ESR (Enterprise Service Repository) objects and integration directory WS (Web Service) for Directory objects. Otherwise, user should attach transports to tickets (transports are synchronized in CTT).

    • Lookup transport automatically during synchronization finds Figaf Tool transport (with IN_PROGRESS status and the landscape has a flag Lookup transports during synchronization) when new transports with Import type were handled by CTT during synchronization. That operation is asynchronously executed at the end of synchronization.

      This option can be enabled if Integrated transport management is disabled.
    • Binary defines landscape with 2 landscape items. Binary landscape has a lot of features:

      Binary landscapes features
      1. Idempotent binary landscape is a binary landscape having landscape items with the same agent. For such landscapes there are 2 flows of transport import:

        1. When the object is mapped during transport, then new object will be created on the same system.

        2. When object is not mapped, then it will be updated on the same system.

      2. Predecessors and Successors are used to define a composite landscape. Composite landscape includes binary landscapes and links them together. For example:

        composite landscape example PRO
      3. 'Deny if matches' criteria, 'Allow if matches' criteria, 'Deny if object exists' criteria configurations (see transport denying rules).

      4. Batch import of Integration Directory transports linked with the same PI binary landscape. Batch import is not supported for groups of transports (when multiple transports created for one ticket).

      5. Batch rollback of Integration Directory transports imported in batch mode.

      6. Possibility to split import process for Integration Directory transports done through WS. You can choose if changelist should be activated immediately after upload of all objects or not.

      7. Validation of Integration Directory transports done through WS after upload completion (split import process). If related PI changelist is invalid, transport is marked Invalid in Figaf Tool and import can’t be completed.

        If you import several transports in batch mode and PI changelist is invalid for one of them, then related changelist will be canceled but batch import will continue for other transports. So invalid PI changelist will be 'skipped' during batch import operation.

      8. Possibility to update routing conditions in ICO Transport Configuration (see Transport Configuration page).

      9. Possibility to keep receiver/interface rules that exist only on target object after import (see Transport Configuration page).

      10. Projection of receiver/interface rules in ICO Transport Configuration (see Transport Configuration page).

      11. Possibility to browse changes between source ICO state and the state to upload in ICO Transport Configuration (see Transport Configuration page).

      12. Consistency check of the list of directory objects in transport as a part of transport validation.

        Let’s have a Configuration Scenario that has a set of objects related to one ICO (parties, components, channels). Map party to get it nonexistent on the target system. Then add all objects related to Configuration Scenario to transport but detach mapped party from the ticket. Validation will be processed and all objects except channels will have a validation error. Channel won’t have it because it depends on component, but the component is in transport, so, it shouldn’t be validated during validation of channel. It’s expected behavior because it’s impossible to proceed further - components are not valid in transport.

        If a component is not in transport, then channel dependencies will be validated fully.

      13. Validation of uniqueness of target objects in transport.

      14. Possibility to view changes overview for ICOs and communication channels.

        Only for transports of integration directory objects.
      15. Selection of adapterEngineName channel parameter on transport configuration page. Decentral adapter engine labels are used as values in the selector.

      16. Tracked objects name mapping lookup across the composite landscape.

      17. Navigation between Transport Configurations of the same object across the Composite landscape.

      18. Child objects name mapping lookup on Transport configuration page.

      19. Validation of naming convention rules.

      20. "Soft" decline to move transport to the CREATED state (before approval).

      21. Possibility to complete import if all landscape items are either imported or skipped but transport status is still IN_PROGRESS.

      22. Possibility to create a next ticket for the next landscape in the chain from successfully processed transport page.

        Only if landscape from current transport has one successor.
      23. Possibility to download parameters report that contains all external properties that are used in the transport. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform).

      24. Possibility to perform a mass update of transport configuration parameters. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform). See batch parameters update to upload transport configuration parameters for more details.

      25. Integration with a webhook (see Webhook integration).

    • (Only for binary landscapes) Enable Naming Validation enables objects names mappings validation on transport level. If you have a rule TEST.*, related objects can’t be mapped to TST.* Naming validation rules should be uploaded for agent related to a source landscape item (upload naming convention rules).

    • Require Transport Approval enables review step between transport creation and import.

    • Transport Reviewer Emails defines reviewers. This option is available only if Require Transport Approval is true.

      If Restrict Access is configured, all reviewers should also be landscape developers.
    • Only reviewers can import objects - if true, only reviewers are allowed to process import after approval. Otherwise, any user with IRTDevOpsOperator or IRTAdmin role can import objects in approved transports. Default value is false. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Make a snapshot of Transport configuration before approval - if true, transport configuration is cached once transport is sent to approval. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Restrict Access enables restricted access to the landscape.

    • Landscape Developers defines users who are allowed to work with the landscape. This option is available only if Restrict Access is true.

    • Landscape Items describes groups of Agents in specific order and assignment. Landscape items can be added by clicking on plus and deleted by clicking on its decline.

      The items have the following configuration:

      • System Id is selected agent.

        If Binary is true and both landscape items have the same System Id, then it will be idempotent binary landscape. For such landscapes there are 2 flows of transport import:

        1. When the object is mapped during transport, then new object will be created on the same system.

        2. When object is not mapped, then it will be updated on the same system.

      • System description is description for current system (e.g. qa).

    • (Only for binary landscapes) Predecessors and Successors are used to define a composite landscape. Composite landscape includes binary landscapes and links them together. For example:

      composite landscape example PRO
    • Parameter values replacement (substring criteria) defines parameter values replacement rules for transport configuration parameters. To enable this feature during landscape creation switch Configure on. Then for each landscape item you can define parameter values which will be used in transport configuration parameters.

      Only parameters inherited from source will be replaced according to defined strategy.

      Example: let’s define a landscape with 3 landscape items: Dev, Qa, Prod and configure Parameter values replacement (substring criteria):

      Dev Qa Prod

      dev.system.com

      qa.system.com

      prod.system.com

      sapdev

      sapqa

      sapprod

      dev.system.com:2222

      qa.system.com:3333

      prod.system.com:4444

      dev.system.ondemand.com

      qa.system.ondemand.com

      So all parameters inherited from source in all objects transported through the landscape will be replaced by corresponding value in the table. If value isn’t defined, empty string will be used in transport configuration parameters.

    • (Only for binary landscapes) 'Deny if matches' criteria defines criteria for objects that will not be attached to tickets and transports. So such objects can’t be imported. You can define criteria Object name patterns (as regular expression), Object Types and Object Tags.

    • (Only for binary landscapes) 'Allow if matches' criteria defines criteria for objects that will be attached to tickets and transports. Only objects match this criteria can be imported. You can define criteria Object name patterns (as regular expression), Object Types and Object Tags. If the criteria is defined and object doesn’t match all filters, then its devops is denied (in other words, if object matches any filter - its devops is allowed).

    • (Only for binary landscapes) 'Deny if object exists' criteria defines criteria for objects that will not be attached to tickets and transports if target objects exist. So such objects can be imported only if corresponding objects don’t exist on target system. You can define criteria Object name patterns (as regular expression), Object Types and Object Tags.

      Priority of resolution from the high to low: 'Deny if matches' → 'Allow if matches' → 'Deny if object exists'. It means if some object matches 'Deny if matches' criteria other 2 won’t be checked. If object doesn’t match it but matches 'Allow if matches' criteria, then checking of 'Deny if object exists' will be skipped.
    • (Only for binary landscapes) Webhook integration defines events which should fire via webhook. To configure webhook go to Integrations page and create HTTP(S) integration.

      When event is triggered, related Audit event will be logged.

11.3.2. Composite landscapes configuration (CPI/Api Management)

CPI and Api Management binary landscapes are managed only in scope of a composite landscape and support only linear flow. So if you want to use binary landscape features, it’s required to configure corresponding composite landscape.

We recommend this flow because it provides a lot of benefits:

Binary landscapes features
  1. Idempotent binary landscape is a binary landscape having landscape items with the same agent. For such landscapes there are 2 flows of transport import:

    1. When the object is mapped during transport, then new object will be created on the same system.

    2. When object is not mapped, then it will be updated on the same system.

  2. Predecessors and Successors are used to define a composite landscape. Composite landscape includes binary landscapes and links them together. For example:

    composite landscape example CPI or API

    CPI and Api Management binary and composite landscapes are managed by Figaf Tool on Composite landscapes configuration (CPI/Api Management) page

  3. Batch import of CPI/Api Management transports linked with the same binary landscape.

  4. Batch rollback of Integration Directory transports imported in batch mode.

  5. Parameter mapping rules defines name mapping rules. Several Rule Types are supported and depending on chosen types different configuration is required.

  6. 'Deny if matches' criteria, 'Allow if matches' criteria, 'Deny if object exists' criteria configurations (see transport denying rules).

  7. Tracked objects name mapping lookup across the composite landscape.

  8. Navigation between Transport Configurations of the same object across the Composite landscape.

  9. Child objects name mapping lookup on Transport configuration page.

  10. Validation of naming convention rules.

  11. "Soft" decline to move transport to the CREATED state (before approval).

  12. Possibility to complete import if all landscape items are either imported or skipped but transport status is still IN_PROGRESS.

  13. Initialize transport configuration by the ancestor values in IFlow Transport Configuration (see Transport Configuration page).

  14. Tracking source and target objects automatically using technical tags.

  15. Possibility to browse all objects in scope of composite landscape on Landscape Overview page.

  16. Possibility to create a next ticket for the next landscape in the chain from successfully processed transport page.

    Only if landscape from current transport has one successor.
  17. Possibility to download parameters report that contains all external properties that are used in the transport. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform).

  18. Possibility to perform a mass update of transport configuration parameters. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform). See batch parameters update to upload transport configuration parameters for more details.

  19. Integration with a webhook (see Webhook integration).

To configure composite landscape follow:

  1. Go to the Landscapes tab on Configuration page, select Composite in Landscapes Type selector.

  2. In order to create new composite landscape, click on plus. New composite landscape page will be opened:

    new composite landscapes
  3. Select Platform and configure Environments. Once this configuration is done, click on Next button. Platform and Environments will become uneditable and all corresponding binary landscapes will be predefined:

    new composite landscapes step 2
  4. Configure each landscape:

    • Name of landscape

    • (Only for CPI) Deploy after transport defines whether objects imported to current system are deployed or not.

    • (Only for binary landscapes) Enable Naming Validation enables objects names mappings validation on transport level. If you have a rule TEST.*, related objects can’t be mapped to TST.* Naming validation rules should be uploaded for agent related to a source landscape item (upload naming convention rules).

    • Require Transport Approval enables review step between transport creation and import.

    • Transport Reviewer Emails defines reviewers. This option is available only if Require Transport Approval is true.

      If Restrict Access is configured, all reviewers should also be landscape developers.
    • Only reviewers can import objects - if true, only reviewers are allowed to process import after approval. Otherwise, any user with IRTDevOpsOperator or IRTAdmin role can import objects in approved transports. Default value is false. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Make a snapshot of Transport configuration before approval - if true, transport configuration is cached once transport is sent to approval. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Restrict Access enables restricted access to the landscape.

    • Landscape Developers defines users who are allowed to work with the landscape. This option is available only if Restrict Access is true.

    • Parameter mapping rules defines name mapping rules. Several Rule Types are supported and depending on chosen types different configuration is required.

    • Parameter values replacement (substring criteria) defines parameter values replacement rules for transport configuration parameters. To enable this feature during landscape creation switch Configure on. Then for each landscape item you can define parameter values which will be used in transport configuration parameters.

      Only parameters inherited from source will be replaced according to defined strategy.

      Example: let’s define a landscape with 3 landscape items: Dev, Qa, Prod and configure Parameter values replacement (substring criteria):

      Dev Qa Prod

      dev.system.com

      qa.system.com

      prod.system.com

      sapdev

      sapqa

      sapprod

      dev.system.com:2222

      qa.system.com:3333

      prod.system.com:4444

      dev.system.ondemand.com

      qa.system.ondemand.com

      So all parameters inherited from source in all objects transported through the landscape will be replaced by corresponding value in the table. If value isn’t defined, empty string will be used in transport configuration parameters.

    • (Only for binary landscapes) 'Deny if matches' criteria defines criteria for objects that will not be attached to tickets and transports. So such objects can’t be imported. You can define criteria Object name patterns (as regular expression), Object Types and Object Tags.

    • (Only for binary landscapes) 'Allow if matches' criteria defines criteria for objects that will be attached to tickets and transports. Only objects match this criteria can be imported. You can define criteria Object name patterns (as regular expression), Object Types and Object Tags. If the criteria is defined and object doesn’t match all filters, then its devops is denied (in other words, if object matches any filter - its devops is allowed).

    • (Only for binary landscapes) 'Deny if object exists' criteria defines criteria for objects that will not be attached to tickets and transports if target objects exist. So such objects can be imported only if corresponding objects don’t exist on target system. You can define criteria Object name patterns (as regular expression), Object Types and Object Tags.

      Priority of resolution from the high to low: 'Deny if matches' → 'Allow if matches' → 'Deny if object exists'. It means if some object matches 'Deny if matches' criteria other 2 won’t be checked. If object doesn’t match it but matches 'Allow if matches' criteria, then checking of 'Deny if object exists' will be skipped.
    • (Only for binary landscapes) Webhook integration defines events which should fire via webhook. To configure webhook go to Integrations page and create HTTP(S) integration.

      When event is triggered, related Audit event will be logged.

    If you need to update Environments click on Back to environments configuration.
  5. Once configuration is ready, click on Create and configure landscapes button. Composite Landscape Creation Confirmation dialog will be opened:

    composite landscape creation confirmation dialog

    You can check configurations of all landscapes, technical tags, object name mappings.

11.3.3. Landscape configuration (CPI platform)

This is a deprecated feature for CPI platform. We recommend to use Composite landscapes configuration (CPI/Api Management) because it provides a lot of benefits:

Binary landscapes features
  1. Idempotent binary landscape is a binary landscape having landscape items with the same agent. For such landscapes there are 2 flows of transport import:

    1. When the object is mapped during transport, then new object will be created on the same system.

    2. When object is not mapped, then it will be updated on the same system.

  2. Predecessors and Successors are used to define a composite landscape. Composite landscape includes binary landscapes and links them together. For example:

    composite landscape example CPI or API

    CPI and Api Management binary and composite landscapes are managed by Figaf Tool on Composite landscapes configuration (CPI/Api Management) page

  3. Batch import of CPI/Api Management transports linked with the same binary landscape.

  4. Batch rollback of Integration Directory transports imported in batch mode.

  5. Parameter mapping rules defines name mapping rules. Several Rule Types are supported and depending on chosen types different configuration is required.

  6. 'Deny if matches' criteria, 'Allow if matches' criteria, 'Deny if object exists' criteria configurations (see transport denying rules).

  7. Tracked objects name mapping lookup across the composite landscape.

  8. Navigation between Transport Configurations of the same object across the Composite landscape.

  9. Child objects name mapping lookup on Transport configuration page.

  10. Validation of naming convention rules.

  11. "Soft" decline to move transport to the CREATED state (before approval).

  12. Possibility to complete import if all landscape items are either imported or skipped but transport status is still IN_PROGRESS.

  13. Initialize transport configuration by the ancestor values in IFlow Transport Configuration (see Transport Configuration page).

  14. Tracking source and target objects automatically using technical tags.

  15. Possibility to browse all objects in scope of composite landscape on Landscape Overview page.

  16. Possibility to create a next ticket for the next landscape in the chain from successfully processed transport page.

    Only if landscape from current transport has one successor.
  17. Possibility to download parameters report that contains all external properties that are used in the transport. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform).

  18. Possibility to perform a mass update of transport configuration parameters. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform). See batch parameters update to upload transport configuration parameters for more details.

  19. Integration with a webhook (see Webhook integration).

Follow the steps to configure landscape:

  1. Go to the Landscapes tab on Configuration page, select Individual in Landscapes Type selector and add your landscape through Create Landscape button:

    create landscape CPI
  2. Configure the following properties:

    • Name of new landscape. Should be unique within the organization.

    • Platform - select the type of your landscape - CPI.

    • Define virtual items manually enables possibility to define virtual landscape items manually. Enable this option if you need landscape configuration similar to System A → System B (virtual) → System B → System C.

      If this option is disabled, agent system is marked as virtual for the 2nd and subsequent inclusions (see Landscape configurations examples).

    • Only reviewers can import objects - if true, only reviewers are allowed to process import after approval. Otherwise, any user with IRTDevOpsOperator or IRTAdmin role can import objects in approved transports. Default value is false. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Make a snapshot of Transport configuration before approval - if true, transport configuration is cached once transport is sent to approval. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Restrict Access enables restricted access to the landscape.

    • Landscape Developers defines users who are allowed to work with the landscape. This option is available only if Restrict Access is true.

    • Landscape Items describes groups of Agents in specific order and assignment. Landscape items can be added by clicking on plus and deleted by clicking on its decline.

      The items have the following configuration:

      • System Id is selected agent.

      • System description is description for current system (e.g. qa).

      • Virtual defines whether landscape item is virtual or not. It’s editable only if Define virtual items manually option is enabled for current landscape.

      • Deploy after transport defines whether objects imported to current system are deployed or not.

      • Require approval defines whether transports to current system require approval or not.

        if CPI landscape item has approval flag enabled, all next landscape items must have that flag also enabled.
      • Reviewer emails defines reviewers. Available only if Require approval is true for current item.

        If Restrict Access is configured, all reviewers should also be landscape developers.
        If landscape has 3 or more landscape items, the state of the object from previous landscape item is chosen during importing transport.
    • Parameter mapping rules defines name mapping rules for technical names, displayed names, JMS queue name and sender url. The rules are applied as they are in all cases except when it’s a virtual landscape item:

      • If JMS queue name or sender url is externalized, related parameter mapping rule isn’t applied, the value should be updated in transport configuration.

      • If JMS queue name or sender url is not externalized, related parameter mapping rule is applied.

    • Parameter values replacement (substring criteria) defines parameter values replacement rules for transport configuration parameters. To enable this feature during landscape creation switch Configure on. Then for each landscape item you can define parameter values which will be used in transport configuration parameters.

      Only parameters inherited from source will be replaced according to defined strategy.

      Example: let’s define a landscape with 3 landscape items: Dev, Qa, Prod and configure Parameter values replacement (substring criteria):

      Dev Qa Prod

      dev.system.com

      qa.system.com

      prod.system.com

      sapdev

      sapqa

      sapprod

      dev.system.com:2222

      qa.system.com:3333

      prod.system.com:4444

      dev.system.ondemand.com

      qa.system.ondemand.com

      So all parameters inherited from source in all objects transported through the landscape will be replaced by corresponding value in the table. If value isn’t defined, empty string will be used in transport configuration parameters.

11.3.4. Landscape configuration (Api Management platform)

This is a deprecated feature for Api Management platform. We recommend to use Composite landscapes configuration (CPI/Api Management) because it provides a lot of benefits:

Binary landscapes features
  1. Idempotent binary landscape is a binary landscape having landscape items with the same agent. For such landscapes there are 2 flows of transport import:

    1. When the object is mapped during transport, then new object will be created on the same system.

    2. When object is not mapped, then it will be updated on the same system.

  2. Predecessors and Successors are used to define a composite landscape. Composite landscape includes binary landscapes and links them together. For example:

    composite landscape example CPI or API

    CPI and Api Management binary and composite landscapes are managed by Figaf Tool on Composite landscapes configuration (CPI/Api Management) page

  3. Batch import of CPI/Api Management transports linked with the same binary landscape.

  4. Batch rollback of Integration Directory transports imported in batch mode.

  5. Parameter mapping rules defines name mapping rules. Several Rule Types are supported and depending on chosen types different configuration is required.

  6. 'Deny if matches' criteria, 'Allow if matches' criteria, 'Deny if object exists' criteria configurations (see transport denying rules).

  7. Tracked objects name mapping lookup across the composite landscape.

  8. Navigation between Transport Configurations of the same object across the Composite landscape.

  9. Child objects name mapping lookup on Transport configuration page.

  10. Validation of naming convention rules.

  11. "Soft" decline to move transport to the CREATED state (before approval).

  12. Possibility to complete import if all landscape items are either imported or skipped but transport status is still IN_PROGRESS.

  13. Initialize transport configuration by the ancestor values in IFlow Transport Configuration (see Transport Configuration page).

  14. Tracking source and target objects automatically using technical tags.

  15. Possibility to browse all objects in scope of composite landscape on Landscape Overview page.

  16. Possibility to create a next ticket for the next landscape in the chain from successfully processed transport page.

    Only if landscape from current transport has one successor.
  17. Possibility to download parameters report that contains all external properties that are used in the transport. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform).

  18. Possibility to perform a mass update of transport configuration parameters. It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform). See batch parameters update to upload transport configuration parameters for more details.

  19. Integration with a webhook (see Webhook integration).

Follow the steps to configure landscape:

  1. Go to the Landscapes tab on Configuration page, select Individual in Landscapes Type selector and add your landscape through Create Landscape button:

    create landscape API
  2. Configure the following properties:

    • Name of new landscape. Should be unique within the organization.

    • Platform - select the type of your landscape - Api Management.

    • Define virtual items manually enables possibility to define virtual landscape items manually. Enable this option if you need landscape configuration similar to System A → System B (virtual) → System B → System C.

      If this option is disabled, agent system is marked as virtual for the 2nd and subsequent inclusions (see Landscape configurations examples).

    • Require Transport Approval enables review step between transport creation and import.

    • Transport Reviewer Emails defines reviewers. This option is available only if Require Transport Approval is true.

      If Restrict Access is configured, all reviewers should also be landscape developers.
    • Only reviewers can import objects - if true, only reviewers are allowed to process import after approval. Otherwise, any user with IRTDevOpsOperator or IRTAdmin role can import objects in approved transports. Default value is false. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Make a snapshot of Transport configuration before approval - if true, transport configuration is cached once transport is sent to approval. The option is visible if Require Transport Approval option is enabled for at least one landscape item.

    • Restrict Access enables restricted access to the landscape.

    • Landscape Developers defines users who are allowed to work with the landscape. This option is available only if Restrict Access is true.

    • Landscape Items describes groups of Agents in specific order and assignment. Landscape items can be added by clicking on plus and deleted by clicking on its decline.

      The items have the following configuration:

      • System Id is selected agent.

      • System description is description for current system (e.g. qa).

      • Virtual defines whether landscape item is virtual or not. It’s editable only if Define virtual items manually option is enabled for current landscape.

    • Parameter mapping rules defines name mapping rules for technical names, displayed names and base path.

    • Parameter values replacement (substring criteria) defines parameter values replacement rules for transport configuration parameters. To enable this feature during landscape creation switch Configure on. Then for each landscape item you can define parameter values which will be used in transport configuration parameters.

      Only parameters inherited from source will be replaced according to defined strategy.

      Example: let’s define a landscape with 3 landscape items: Dev, Qa, Prod and configure Parameter values replacement (substring criteria):

      Dev Qa Prod

      dev.system.com

      qa.system.com

      prod.system.com

      sapdev

      sapqa

      sapprod

      dev.system.com:2222

      qa.system.com:3333

      prod.system.com:4444

      dev.system.ondemand.com

      qa.system.ondemand.com

      So all parameters inherited from source in all objects transported through the landscape will be replaced by corresponding value in the table. If value isn’t defined, empty string will be used in transport configuration parameters.

11.3.5. Landscape configuration examples

  1. If development and debugging process is executed on the following systems: D74 (dev system) → D75 (qa system) → T75 (prod system), then landscape configuration is:

    landscape example 1
  2. If development and debugging process is executed on the following systems: D74 (dev and qa system) → D75 (prod system), then landscape configuration is:

    landscape example 2

    In this case Agent system C73 will be marked as virtual for the 2nd inclusion.

    Agent system is marked as virtual for the 2nd and subsequent inclusions. You need to use Agent system twice to define configurations like DP1 (dev and qa system) → DP2 (prod system).

11.4. User management and permissions

11.4.1. User management

Each request in the Figaf Tool requires authorization.

To create new user click on plus. It opens Add User dialog:

add user dialog
  • Configure Email, Password, Confirm Password, and Display Name.

  • Select User roles for a new user (see Figaf Tool roles and permissions section to learn more about existent roles).

  • (optional) Select Message Monitor Filter roles if the user should have access to some filters. Message Monitor Filter roles are created automatically after Message Monitor Filter creation (see this section to learn how to create it).

    Users with IRTAdmin role have full access to all message monitor filters.
  • (optional) Configure Mapped SAP user names if you want to set up a mapping of system usernames with Figaf Tool users.

    Usernames can only be assigned to one user.

    Once you configure such mapping, the Figaf user (instead of the system user) will be shown in Change Tracking Tool and Testing tool.

  • (optional) Configure Additional info if you want to configure some additional information about the user.

11.4.2. Figaf Tool roles and permissions

Figaf Tool web app provides the following roles:

  1. IRTSuperUser - root administrator role. Only one user can be marked as a super user (default user). IRTSuperUser role gives full access to user management in the Figaf Tool, other functions are not available.

  2. IRTAdmin - administrator role. User with that role has full access to the application functions.

  3. IRTLicenseRequester - standard user role. User with that role is able to request new licenses for the objects. Except possibility to change credentials of root administrator.

  4. IRTApplicationManager - standard user role, allows changes of configuration on pages: Application config, Integrations, ScenarioMapping, Encoding Determination, Anonymization variables.

  5. IRTAgentManager - standard user role, allows changes of agents configuration (create/update/delete), naming convention rules.

  6. IRTUserManager - standard user role, grants permissions for user management.

  7. IRTOAuthClientsManager - standard user role, allows registration of new OAuth clients for external integration with Figaf Tool through public api.

  8. IRTSensitivePayloadViewer - additional user role, should be used with administrator or/and any standard role. IRTSensitivePayloadViewer role allows user to configure confidential and secured agents and view original payloads of confidential messages.

  9. IRTOperator - standard user role. See permissions below.

  10. IRTConfigurator - standard user role. See permissions below.

  11. IRTManager - standard user role. See permissions below.

  12. IRTUser - standard user role. User with that role can only browse pages and run tests. See permissions below.

  13. IRTDevOpsOperator - standard user role. User with this role can work with tickets, releases, and transports.

  14. IRTDevOpsConfigurator - standard user role. IRTDevOpsConfigurator role allows modifying transport configuration.

  15. IRTDevOpsManager - standard user role. See permissions below.

  16. IRTLandscapeManager - standard user role, manages landscapes. See permissions below.

Tables below show how roles are used for access restriction. If some role is not shown in some table, then in means that it has no effect in related part of Figaf Tool.

IRTUser role is not shown in tables to save some space. That role allows only read-only access to the whole tool. IRTLicenseRequester role grants a permission to request a new object licence for Testing/DevOps/Migration.
Configuration
Action\Role Super user Admin App manager User manager DevOps manager OAuth Clients manager

Application configuration update

-

+

+

-

-

-

Agents configuration update (except confidential and secured agents). Note: confidential and secured agents configuration available for administrator with additional role IRTSensitivePayloadViewer!

-

+

-

-

-

-

Upload naming convention rules

-

+

-

-

-

-

Test agent configuration

+

+

+

+

+

+

Landscapes configuration

-

+

-

-

+

-

User management

+

+

-

+

-

-

Initial License upload

-

+

-

-

-

-

External integrations management

-

+

+

-

-

-

OAuth clients management

-

+

-

-

-

+

Scenario mapping configuration update

-

+

+

-

-

-

Encoding determination configuration update

-

+

+

-

-

-

Anonymization variables configuration update

-

+

+

-

-

-

Change Tracking Tool
Action\Role Admin Manager Operator DevOps manager

Manage tags (create, modify, attach/detach tags to tracked objects)

+

+

+

-

Delete tags that aren’t used in transport denying rules of any landscape

+

+

+

-

Delete tags that are used in transport denying rules of any landscape

+

-

-

+

Manage tagging rules (create, modify, import, process tagging)

+

+

+

-

Delete tagging rules

+

+

-

-

Groovy IDE

+

+

+

-

DevOps
Action\Role Admin Landscape manager DevOps manager DevOps operator DevOps configurator

Landscapes configuration

+

+

-

-

-

Manage releases (create, modify, release, add scenarios, attach/detach tickets except delete operation)

+

-

+

+

-

Manage tickets (create, modify, attach/detach tracked objects, attach test cases, change status except delete operation)

+

-

+

+

-

Manage transports (create, import, change status except delete operation)

+

-

+

+

-

Run ticket

+

+

+

+

+

Modify transport configuration

+

-

-

-

+

Delete releases, tickets, transports

+

-

+

-

-

Testing
Action\Role Admin Manager Operator Configurator

Synchronization with agent system

+

+

+

+

Add/remove modules

+

-

-

+

Update Recording Configuration on integration object

+

-

-

+

Update Test Configuration on integration object

+

-

-

+

Start/stop recording

+

+

+

+

Create test suites/test cases

+

+

+

+

Run test suites/test cases

+

+

+

+

Merge test cases

+

+

+

+

Trim test cases (remove all messages from test case except defined number of message groups)

+

+

+

+

Update test case information (message/dynamic properties)

+

+

+

+

Delete messages from test case by group

+

+

-

+

Clean test suites/test cases (delete their all testing results)

+

+

-

-

Delete test cases (delete their all testing results, messages and test cases themselves)

+

+

-

-

Update test suite

+

+

+

+

Check test case/test suite results

+

+

+

+

Delete test suite (delete their all testing results and templates themselves). Note: linked test cases will not be deleted!

+

+

-

-

Delete testing results

+

+

-

-

Configure comparison configurations

+

-

-

+

View comparison configurations

+

+

+

+

PI to CPI Migration
Action\Role Admin DevOps manager DevOps operator DevOps configurator

Migration configuration

+

-

-

+

Links management (link IFlows with PI object/delete link)

+

-

-

+

Migration (PI objects/Message mappings)

+

+

+

-

11.5. Integrations

On this page integrations configuration is available. Integrations can be used for webhooks or email notifications.

integrations tab

11.6. Scenario mappings

You can have a case when scenario interfaces on the Agent system and Test system are a little different. Thus, messages which were recorded on the Agent system can’t be immediately used in the testing process because internal interface determination will fail and you will get only unexpected testing results. Use scenario mapping feature to solve that issue.
You can configure it on Configuration page (Mapping tab):

scenario mappings tab

There two ways of configuring mappings:

  1. Table with mappings on UI. You need to open Configuration page (Mapping tab) and edit the table with mappings.

  2. Define all mappings in csv file and them upload the file. On the first line you need to define systems for which you want to configure a mapping. The number of systems is not restricted. The names of the systems must be separated by a semicolon. Each line below must contain the same number of values (or empty strings) as the first line has. The values must be separated by a semicolon as well:

    csv file example

In both cases each value of the mapping has to follow the pattern:
<party>|<component> or <party>|<component>|<interface_name>|<interface_namespace>.
If you don’t have some part, skip it, but keep | in the mapping entry.

11.6.1. Value mapping

Look at the example above. Assume you have DPO as a Test system and DI3 as an Agent system, you have two integrated configurations with one receiver and one interface on DPO and DI3.

  1. DI3:

    • Party: MASTERCARD

    • Component: B2BAGENT

    • Interface name: INT_OUT

    • Interface namespace: http://figaf.com/irt

  2. DPO:

    • Party: MASTERCARD

    • Component: B2BTEST

    • Interface name: INT_OUT

    • Interface namespace: http://figaf.com/irt.

If you define that scenario mapping, Figaf Tool will expect testing result with MASTERCARD|B2BTEST|INT_OUT|http://figaf.com/irt interface, not MASTERCARD|B2BAGENT|INT_OUT|http://figaf.com/irt, despite recorded message has the second one.
In this case, interface name and interface namespaces are the same. So it wasn’t necessary to add them in the mapping. If they are not the same, you can also map them.

11.6.2. Generic mapping

It’s possible to avoid configuring lots of similar mappings if they have common parts.
For example, in the table below you can see some mappings which have the service pattern: BS*P (or even *P) on Agent system and BS*Q (or even *Q) on Test system.

Agent System Test System

B2B|BS_ERP1_P|intName|int_ns||

B2B|BS_ERP1_Q|intName|int_ns||

B2B|BS_ERP2_P|intName|int_ns||

B2B|BS_ERP2_Q|intName|int_ns||

B2B|BS_ERP3_P|intName|int_ns||

B2B|BS_ERP3_Q|intName|int_ns||

B2B|BS_DDL1_P|intName|int_ns||

B2B|BS_DDL1_Q|intName|int_ns||

B2B|BS_DDL2_P|intName|int_ns||

B2B|BS_DDL2_Q|intName|int_ns||

B2B|BS_DDL3_P|intName|int_ns||

B2B|BS_DDL3_Q|intName|int_ns||

B2B|BS_DDL4_P|intName|int_ns||

B2B|BS_DDL4_Q|intName|int_ns||

…​

…​

Instead of 7 different mappings, it can be covered by one generic mapping: B2B|BS*PB2B|BS*Q.
The star * in that mapping means identical part on both sides. For example for scenarios B2B|BS_DDL3_P|intName|int_ns|| and B2B|BS_DDL3_Q|intName|int_ns|| it’s possible to apply mapping B2B|BS*PB2B|BS*Q. Here * is _DDL3_.
The same can be done for party/interface name/interface namespace as well.
Value mappings have higher priority than generic mappings: firstly Figaf Tool looks for a value mapping. If it’s not found Figaf Tool looks for a generic mapping.

Important
Party and service can be a wildcard (value equal to *, e.g., B2B|* or *|*|OUTB_INT|http://company.com). In this case, such mapping must be determined as value mapping, not as generic mapping.

If you want to map party PARTY to PARTY_NEW globally, you need to define the following mapping: PARTY|**PARTY_NEW|**. ** here means that the whole value is generic.

11.7. Encoding determination

Sometimes you may be dissatisfied by automatic encoding determination. In such cases you can load and save json file with defined encoding. Example:

[
  {
    "partners": [],
    "fileType": "EDIFACT",
    "payloadMatchingExpression": "^.*?UNB\\+(UNOA|UNOB|UNOC):",
    "encoding": "ISO-8859-1"
  },
  {
    "partners": [],
    "fileType": "EDIFACT",
    "payloadMatchingExpression": "^.*?UNB\\+UNOD:",
    "encoding": "ISO-8859-2"
  },
  {
    "partners": [],
    "fileType": "X12",
    "encoding": "IBM437"
  },
  {
    "partners": [],
    "fileType": "TRADACOMS",
    "encoding": "ISO-8859-1"
  },
  {
    "partners": [],
    "fileType": "EDIFACT",
    "encoding": "ISO-8859-1"
  },
  {
    "partners": [
      "PARTNER1",
      "PARTNER2",
      "PARTNER3"
    ],
    "fileType": "EDIFACT",
    "encoding": "GB2312"
  },
  {
    "messages": [],
    "fileType": "XML",
    "encoding": "ISO-8859-3"
  }
]

The configuration should satisfy the conditions:

  1. Either fileType, partners, or messages must be set.

  2. Configuration with partners has the highest priority and overrides any configuration with messages and/or fileType.

  3. Configuration with messages has higher priority than configurations with fileType and overrides such configurations.

  4. payloadMatchingExpression (it’s regex) is optional, it just means that in addition to config lookup it should check if payload matches (partially - it means that at least one matched part found) specified regex.

  5. If many configs were found during lookup, the first matching config is used.

  6. UTF-8 s always used for parsing when payloadMatchingExpression is defined.

To download configured encoding determination rules click on download light.

11.8. Anonymization variables

If you test some confidential data and you don’t want test them directly, you can use anonymization to anonymize your data. Message anonymization variables contain fields that can be used in your scenarios. Anonymization Variables page looks:

anonymization variables

On this page you can:

  1. Edit anonymization variables:

    1. Load csv file with new data.

    2. Edit data in the table. To enable edit mode click on edit button. After that you can add new variables, update or delete existing ones. To save changes click on save button, to reset - reset.

  2. Download current anonymization variables clicking on download light button.

12. Uninstallation

12.1. Process Orchestration agents

12.1.1. Removing modules added by Figaf Tool from communication channels

  1. Check that Agent has Figaf Agent Module or SAP Log Module integration type enabled.

  2. Open Integration Objects page, click on the "menu" button above the table and then click the "Remove ALL modules" button. It will check all communication channels and remove previously added Figaf Tool modules (Figaf Agent Modules or SAP Log Modules with irtStage* parameter group), except Figaf Tool modules on our infrastructural XI 3.0 channels (because these objects are excluded in synchronization).

    agent objects page

    It will run removing function asynchronously, but you can monitor intermediate results in the dialog. It takes some time depending on the number of objects to process. Wait until the process is finished.

    removing progress dialog

12.1.2. Removing infrastructure scenarios added by Figaf Tool

  1. If Agent has been used for the testing purpose (test cases are run there), it also needs to remove infrastructure scenarios. Open Integration Directory Builder, search Integrated Configurations by TEST_MigrationHelper sender component name and remove these objects:

    pro infrastructure scenarios
  2. Then open TEST_MigrationHelper business component and remove it as well (all inner Figaf Tool communication channels will be removed):

    pro infrastructure component

12.1.3. Undeploying an Agent Component

  1. Switch Agent integration type to SAP Log Module or ICO Logging. Otherwise just enable "Is virtual" flag on Agent page. It will disable integration with Agent system.

  2. Use some tool to undeploy Figaf Tool Agent component (there is one SCA component which includes 2 DC components, one for DB and another one is EAR). For example, we are using Deployment perspective from Netweaver Developer Studio:

    nwds undeployment view

12.2. Cloud Integration agents

12.2.1. Removing testing scenarios added by Figaf Tool

Open Design page on the CPI system. Find and remove packages which name starts with FigafIRT, they also have a description like Package contains copies of agent objects of the package Demos with the replaced sender integration.

cpi packages

13. Figaf Tool public API

Figaf Tool public API is available here.

14. Change Log

2402.1

2402.1
  1. [Change Management] Improved tagging process to consolidate processes under one agent and tracked object type.

  2. [PI→CPI Migration] Added default XSLT templates for SFTP sender and SFTP receiver channels.

  3. [FIX, Testing Tool, CPI] Fixed an issue when test run was created without test run results if test IFlow name was not equal to agent IFlow name.

  4. [FIX, Integration Suite] Fixed an issue occurred during fetching CSRF token on SAP BTP deployment, Cloud Foundry, when CSRF protection is enabled by App router.

Notes for upgrade to 2402.1

Notes for upgrade to 2402.1
  1. Build has data migration to add default XSLT templates for SFTP sender and SFTP receiver channels.

2402

2402
  1. [Change Management] Implemented enhanced quering in CTT (go to Tagging Rules page for more details).

  2. [PI→CPI Migration] Extended migration overview report to show tags from tagging rules. Tags are added into two columns:

    • Sender Tags contains a list of tags related to tagging rules for Party, Component and System related to a sender channel, Communication Channel, ICO/Receiver Determination.

    • Receiver Tags contains a list of tags related to tagging rules for Interface Determination, Party, Component, System and Communication Channel related to a receiver channel, Operation Mapping, Mapping Program (i.e. Message Mapping/Archive Program which are used on the Operation Mapping), Function Library, Imported Archive, Function Module, External Message, External Definition.

  3. [PI→CPI Migration] Added an option to extract local functions from a message mapping into a separate groovy script (go to Shared artifacts mode for more details).

  4. [PI→CPI Migration] Added a content modifier to set SAP_MessageProcessingLogID header for IDOC Receivers in migrated IFlow.

  5. [FIX, Testing Tool, CPI] Fixed an issue when test case couldn’t be added to git repository.

  6. [FIX, Change Management, CPI] Fixed synchronization of XSD schemas weren’t created as a Tracked object because it was located in wrong folder.

  7. [FIX, PI→CPI Migration] Fixed migration of ICOs having Extended Receiver Determination which Operation Mapping has a Java Mapping.

Notes for upgrade from 2401 to 2402

Notes for upgrade from 2401 to 2402
  1. Build has data migration to add new internal parameter to Tag model to clarify what functionality manages technical tags.

2401.2

2401.2
  1. [PI→CPI Migration] Added a new column Imported Archives to migration overview report. The imported archive will be shown for scenario in two cases:

    • if imported archive is used in one of the corresponding function libraries;

    • if imported archive belongs to Java program related to operation mapping.

  2. [PI→CPI Migration] Improved generation process of migration overview report. Generated report will not contain properties if they have empty/null value.

  3. [FIX, PI→CPI Migration] Fixed migration of ICO with extended receiver determination when there is only one route.

  4. [FIX, PI→CPI Migration] Fixed an issue in migration overview report when operation mappings were missed for ICOs with Extended Receiver Determination and Allow arbitrary receivers enabled.

  5. [FIX, Common, UI] Fixed cache storage configuration.

Notes for upgrade to 2401.2

Notes for upgrade to 2401.2
  1. It’s required to process forcible synchronization (options Check metadata of all existent objects, Rebuild links for the latest versions forcibly and Forcibly process payload dependent initializations for not updated objects) for PRO agents from Integration Objects page to update parameters used for migration overview report generation.

2401.1

2401.1
  1. [Change Management, CPI, Integration Suite, Api Management] Changed default value of SSO Url for CPI Cloud Foundry, Integration Suite and Api Management agents.

  2. [FIX, Change Management, CPI, Integration Suite] Fixed an issue when CPI endpoints synchronization failed for IFlows having external configuration parameter with the camel expression.

  3. [FIX, PI→CPI Migration] Fixed an absence of router default branch in IFlows migrated from ICOs having conditions for receivers and interfaces.

Notes for upgrade to 2401.1

Notes for upgrade to 2401.1
  1. Build has data migration to update SSO Url value for CPI Cloud Foundry and Integration Suite agents without custom IdP that have SSO Url configured with default value and all Api Management agents.

2401

2401
  1. [Change Management, Integration Suite] Added a possibility to select all segments and fields for Message Implementation Guideline objects (see Select all Segments and Fields of MIG object).

  2. [Change Management] Added a possibility to compare any tracked objects using Diff2Html.

  3. [Testing Tool, CPI] Implemented IFlow chain testing. Go to IFlow chain testing.

  4. [Testing Tool, PRO] Added a possibility to record CSV payloads logged by the File adapter (see recording configuration page for more details).

  5. [Testing Tool] Added a possibility to compare testing results using Diff2Html.

  6. [PI→CPI Migration] Added a possibility to configure Modules Replacement on Configuration page.

  7. [PI→CPI Migration] Added a support of imported archives migration if they are used in the function library.

  8. [PI→CPI Migration] Added a possibility to use a custom script from a script collection to replace a Java Mapping.

  9. [PI→CPI Migration] Added support of ICOs with file receiver channel with XML→Flat content conversion at adapter level. To check supported cases go here.

  10. [Common, UI] Added a user installable version of Figaf Tool as a Progressive Web App.

  11. [FIX, Testng Tool] Fixed default anonymized outbound message payloads for all types: XML, JSON, EDIFACT, TRADACOMS, X12, TEXT, BINARY (for last 2 it’s just a text).

  12. [FIX, Testing Tool, PRO] Fixed order of adapter modules added to generated XI sender channel when performing testing in SAP PI.

    Sender modules are separated into 2 groups:

    • to be added after 1st stage logging module but before calling adapter module

    • to be added after calling adapter module but before 4th stage logging module

  13. [FIX, PI→CPI Migration] Fixed Sender and Receiver XSLT Templates.

Notes for upgrade from 2312 to 2401

Notes for upgrade from 2312 to 2401
  1. It’s required to process forcible synchronization (option Synchronize objects forcibly) for CPI agents from CTT page to update CPI endpoints of IFlows and Cloud Agreements based on the ProcessDirect/JMS endpoints.

  2. Use Overwrite shared artifact mode for content-converter.jar if you have already migrated ICOs with file sender channel with Flat→XML content conversion at adapter level.

  3. Build has data migration of renaming Record JSON payloads logged by the Rest adapter if possible to Record payloads logged by the adapter if possible on recording configuration page.

  4. Build has data migration to add new internal parameter in Message and TestRunResult models.

2312.2

2312.2
  1. [FIX, Testing Tool, PRO] Fixed a position of original sender channel modules after default adapter module(s) copied to scenario-specific XI 3.0 channel. It could affect test execution if copied modules modify the payload. (Go to Regression testing on PRO systems to learn about infrastructure created by the tool).

  2. [FIX, Testing Tool, PRO] Fixed parsing of XI message when attachment part is declared before the main payload part. It leaded to an issue where attachment was captured instead of the main payload.

  3. [FIX, PI→CPI Migration] Fixed XSLT templates for sender and receiver channels used during template generation on Channel Mapping Templates configuration page.

2312.1

2312.1
  1. [Security] Updated versions of used SAP BTP Security Services Integration Libraries according to SAP security note 3411067 (only SAP BTP deployment, Cloud Foundry).

  2. [FIX, Change Management, Integration Suite] Fixed a rare failure during MIG synchronization when same active version found during synchronization but with greater last change date.

Notes for upgrade to 2312.1

Notes for upgrade to 2312.1
  1. It’s required to update app router version to 14.4.3 in approuter/package.json file if Figaf Tool is deployed to SAP BTP, Cloud Foundry. You can download new archive from repository.

    Deploy the application by command cf push --vars-file vars.yml.

2312

2312
  1. [Change Management, Integration Suite] Added change tracking for Message Implementation Guideline objects from Integration Suite agent (check supported objects here).

    If you connect to IS system via custom IdP, configure one more Role collection mapping iadv-content-developer with the attribute Groups and the value Admin for the Trust Configuration.
  2. [Change Management, CPI, Integration Suite] Implemented browsing of linking between IFlows and Cloud Agreements based on the ProcessDirect/JMS endpoints (see Browse linking between IFlows and Cloud Agreements based on the ProcessDirect/JMS endpoints).

  3. [Change Management, Integration Suite] Implemented forcible synchronization and links rebuilding for TPM registry.

  4. [Change Management, PRO] Added PI agent report on Change Tracking Tool page.

  5. [Support Tool] Improved performance of alerts processing.

  6. [PI→CPI Migration] Implemented a support of operator. To check supported cases go here.

  7. [PI→CPI Migration] Implemented a support of XI 3.0 channels.

  8. [PI→CPI Migration] Changed ordering of elements in migrated IFlow. In order not to affect the structure of IFlow saved via CPI UI.

  9. [PI→CPI Migration] Improved migration overview page and report.

Notes for upgrade from 2311 to 2312

Notes for upgrade from 2311 to 2312
  1. It’s required to process forcible synchronization (option Synchronize objects forcibly) for CPI agents from CTT page to initialize linking between IFlows and Cloud Agreements based on the ProcessDirect/JMS endpoints.

  2. Build has data migrations of existing SOAP migration templates to support XI 3.0 as well.

2311

2311
  1. [Testing Tool, CPI] Implemented IFlow testing by calling another IFlow (go to Use a separate IFlow to send messages on Test Configurationt tab of Integration Object Details page for configuration details).

  2. [Change Management, Integration Suite] Added change tracking for TPM objects from Integration Suite agent: company profiles, trading partners, agreement templates and agreements (check supported objects here).

  3. [Change Management, CPI] Changed Upload operation in IDE to update only a particular script instead of uploading full archive (learn more here).

  4. [PI→CPI Migration] Implemented B2B Scenario profile for migration (go to migration profiles for more details).

  5. [PI→CPI Migration] Added a possibility to configure Parameter Value Replacement on Configuration page.

  6. [Common] Moved a possibility to enable STARTTLS on Application configuration. Bootstrap parameter irt.smtp.starttls.enable is removed and isn’t supported anymore.

  7. [UI] Moved to Horizon visual theme.

  8. [FIX, Monitoring, CPI] Fixed an issue with duplicates in yearly MPL statistics (see CPI Statistics Overview for more details).

  9. [FIX, PI→CPI Migration] Fixed an issue with broken order of parameters in the migrated message mapping when source mapping had many variables of different types (Parameter and Argument).

  10. [FIX, PI→CPI Migration] Fixed an issue when some parameters were empty in the migrated message mapping when source mapping had more than one binding argument.

  11. [FIX, PI→CPI Migration] Fixed content modifiers usage for message mappings used several times but with different parameters binding.

Notes for upgrade from 2310 to 2311

Notes for upgrade from 2310 to 2311
  1. Build has data migrations of internal parameters in TrackedObject and TestConfiguration models.

  2. If you used irt.smtp.starttls.enable bootstrap property, it’s required to configure same parameter on Application configuration page after the first deployment of the new version.

2310

2310
  1. [Change Management, CPI] Sped up synchronization of CPI Agents.

  2. [Testing Tool, PRO] Improved type determination of channels modules. Added module type EDI_MODULE for localejbs/TransmissionNumberModule, localejbs/X12ConverterModule, localejbs/EdifactConverterModule, localejbs/GenericConverterModule, localejbs/OdetteConverterModule, localejbs/PlainConverterModule, localejbs/TradacomsConverterModule, and localejbs/VdaConverterModule modules (previously CUSTOM_MODULE was used).

  3. [Testing Tool] Improved data representation on Test Run Details page.

  4. [Testing Tool, PRO] Added automatic enabling of AM/BI logging during creating a recording request or running a test case, if ICO Logging messages logging approach is used for the related PRO agent or integration object.

    • Additional SAP PRO client libraries com.sap.aii.utilxi.core.jar, com.sap.xpi.ib.core.jar, com.sap.xpi.ibdir.core.jar, and sap.comtcblguidgeneratorimpl.jar are required in the following cases:

      • scenario has single receiver interface for one receiver with non-empty condition - condition is lost during update through public web service, so, it’s required to recover it.

      • adapter engine name for wildcard sender ICOs (when it’s not empty, i.e., decentral adapter engine is configured) - WS model doesn’t have that parameter at all so that it’s required to update it after upload.

        If some of additional libraries aren’t in the classpath, the corresponding changelist will be rejected.

    • AM/BI logging settings aren’t automatically updated for receiver wildcard ICOs. You have to enable the settings manually.

  5. [Testing Tool, PRO] Enhanced Create recording requests dialog to show Validation Errors and Validation Warnings.

  6. [Testing Tool, PRO] Improved Polling results dialog to show advices if some messages can’t be polled successfully.

  7. [DevOps, Git integration, CPI] Changed behavior of Git Pipeline validation for IFlows. If Git Pipeline validation fails, transport has non-blocking validation warnings and is still valid.

  8. [DevOps] Added information about Last Testing Result status on Transport page. The field either Successful, Error or Missing (neither Successful nor Error) value.

  9. [Monitoring, Support Tool, CPI] Added metric Long Running Messages count to CPI Statistics Overview, CPI System Monitoring and Support Tool.

  10. [Support Tool] Added rule metadata (id, title, labels, criticality) to alert-metadata.xml sent by email and to JSON sent via HTTP(S) integrations.

  11. [PI→CPI Migration] Added support of ICOs with file sender channel with Flat→XML content conversion at adapter level. To check supported cases go here.

  12. [PI→CPI Migration] Added _Sender postfix to name of sender participant of the migrated IFlow if ICO Sender and Receiver have the same name.

  13. [Security] Added additional security headers and removed possibility to disable Content Security Policy (bootstrap property irt.config.disable-content-security-policy was removed).

  14. [Common, CPI] Implemented email notification about CPI version updates (see Enable changes detection for CPI agents setting on Application configuration page for details).

  15. [Common, PRO] Added support of global PI staging/logging configuration - manual and automatic definition (go to Search global configuration automatically to read about the configuration).

  16. [FIX, Change Management, CPI] Fixed an issue when Groovy IDE couldn’t process scripts using classes from an external jar.

  17. [FIX, Testing Tool] Fixed bug when unexpected Test Run Results didn’t have a link on a Message Run.

  18. [FIX, Monitoring, CPI] Fixed CPI Statistics Overview hourly filtering for inactivity hours.

  19. [FIX, Support Tool] Fixed a bug when webhook integrations for alerts couldn’t be sent.

  20. [FIX, DevOps, Api Management] Fixed import of encrypted key value map when target object existed.

Notes for upgrade from 2309 to 2310

Notes for upgrade from 2309 to 2310
  1. It’s required to process forcible synchronization (option Forcibly process payload dependent initializations for not updated objects) for PRO agents from CTT page to update module types and trigger validation for integration objects.

2309.2

2309.2
  1. [Testing Tool, PRO] Improved PI recording/polling. Now polling also works for 1→1 scenario when AM staging is enabled.

  2. [PI→CPI Migration] Added support of Message Mappings with schemas that uses imports. To check supported cases go here.

  3. [PI→CPI Migration] Added SAP_MessageType header to Add SAP_Sender content modifier. ICO Sender Interface value is used for the header.

  4. [FIX, DevOps, PRO] Fixed an issue when receiver interface condition couldn’t be recovered for ICO with dummy (not existing) sender operation but existing receiver interface.

  5. [FIX, PI→CPI Migration] Fixed an issue with migration of Message Mapping linked with two Message Types having same name but different namespace. Previously XML Namespace was used in the path, now Namespace value is used.

  6. [FIX, Common, PRO] Fixed an issue with automatic definition of PI agent timezone for new agents.

Notes for upgrade to 2309.2

Notes for upgrade to 2309.2
  1. It’s required to process forcible synchronization (options Check metadata of all existent objects, Forcibly process payload dependent initializations for not updated objects, Forcibly process child types for not updated compound ESR object types: External Definition, Service Interface, Function Module, Imported Archive) for PRO agents from CTT page.

  2. It’s recommended to configure Overwrite shared artifact Shared artifacts mode for Message Mapping linked with Message Types having different XML Namespace and Namespace. Otherwise, the Message Mapping will not be valid.

2309.1

2309.1
  1. [PI→CPI Migration] Added support of Message Mappings case when External Message namespace prefix is omitted or has another value.

  2. [PI→CPI Migration] Added support of ICOs with extended receiver.

  3. [PI→CPI Migration] Added support of Fault Mapping programs. To check supported cases go here.

  4. [Monitoring, CPI] Implemented a possibility to group CPI MPL statistics by Iflow name (see CPI Statistics Overview for more details).

2309

2309
  1. [Testing Tool, PRO] Added support of ICOs with Scenario Identifier that has structure dir://IFLOW/<ico external id>.

  2. [Testing Tool, CPI] Added a status MESSAGE_FAILED on Message runs tab for messages marked as Failed on CPI system.

  3. [Change Management, CPI] Improved integration with CPIHelper to navigate to Script Collection, Script objects and XSLT mappings (go to CPIHelper support for more details).

  4. [Monitoring, CPI] Added support of Abandoned status to CPI Message Monitor.

  5. [Monitoring, CPI] Implemented a browser of CPI MPL statistics that helps to see amount of processed messages for aggregated periods of time (see CPI Statistics Overview for more details).

  6. [PI→CPI Migration] Implemented channel mapping templates management (see Channel Mapping Templates configuration for more details).

  7. [PI→CPI Migration] Added support of parameters iflowTechnicalName, iflowDisplayedName, packageTechnicalName, packageDisplayedName in XSLT templates. They can be used in every place of the XSLT template.

  8. [Common] Added XMX_VALUE to Docker distributions: standard and BTP. Default values are 4G for standard and 3500M for BTP.

  9. [FIX, Security] Fixed vulnerability that could be caused by specific non-standard custom logging settings. Default settings are not affected, but it’s still recommended to upgrade to the new version to eliminate that risk completely.

  10. [FIX, DevOps, CPI] Fixed an issue that value mapping without description couldn’t be imported.

  11. [FIX, PI→CPI Migration] Fixed an issue when \ symbol was removed from external parameters during migration.

Notes for upgrade from 2308 to 2309

Notes for upgrade from 2308 to 2309
  1. It’s required to process forcible synchronization (options Synchronize objects forcibly and Rebuild links for the latest versions forcibly) for CPI agents from CTT page to synchronize IFlows when BPMNEdges related to message flows don’t have children waypoints.

  2. It’s required to update manifest.yml and vars.yml files if Figaf Tool is deployed to SAP BTP, Cloud Foundry. You can download new archive from article.

    Deploy the application by command cf push --vars-file vars.yml.

  3. Previous configuration in Figaf Tool hasn’t been affected.

2308.1

2308.1
  1. [DevOps, CPI] Changed behaviour how parameter mapping rules are applied for virtual landscape items of non-binary CPI landscapes:

    • If JMS queue name or sender url is externalized, related parameter mapping rule isn’t applied, the value should be updated in transport configuration.

    • If JMS queue name or sender url is not externalized, related parameter mapping rule is applied.

    Also changed default state of JMS queue name parameter mapping rule for idempotent parts of CPI composite landscapes. Before: Add prefix/Remove prefix, now: No action. If you need to change it, just configure appropriate parameter mappings rules on composite landscape page.

  2. [FIX, Change Management,PRO] Fixed cleanup of synchronization results for child ESR objects after expiration of retention period.

2308

2308
  1. [Change Management, DevOps, CPI] Added support of Function Libraries. The objects with these types are added to git repository.

  2. [DevOps] Added a possibility to perform a mass update of transport configuration parameters. See Batch parameters update.

  3. [DevOps, PRO] Extended changes overview at transport level to support configuration scenarios, parties, business components, business systems, sender and receiver agreements (only for binary landscapes). See transport page for more details.

  4. [DevOps, CPI, Api Management] Added an option inherit from target to the CPI IFlow (CPI platform) and Key Value Map (Api Management platform) transport configuration.

  5. [PI→CPI Migration] Added a usage of CPI function libraries during migration. See Migration page.

  6. [PI→CPI Migration] Added support of sender and receiver default PI functions during migration (see PI to CPI migration cases).

  7. [Change Management,CPI] Added new information on Landscape Overview page: user who deployed an artifact, deployment date, runtime status. Added filtering for deployment date and runtime status.

  8. [Change Management,CPI,Api Management] Added a filter to hide rows that have all items either deleted or non-existing (enabled by default).

  9. [FIX,DevOps, PRO] Fixed a bug when operation of channel update in the changelist didn’t fail when channel was already locked by another user in different changelist (added parsing and validation of HMI response).

Notes for upgrade from 2307 to 2308

Notes for upgrade from 2307 to 2308
  1. It’s required to process forcible synchronization (options Synchronize objects forcibly and Rebuild links for the latest versions forcibly) for CPI agents from CTT page to sync new added object types and properly link them.

  2. Previous configuration in Figaf Tool hasn’t been affected.

2307

2307
  1. [Change Management, CPI] Extended IDE to support XSLT mappings (learn more about related configuration here).

  2. [Support Tool, CPI] Added Custom Headers in Support tool.

  3. [Support Tool, CPI] Added XML MPL attachment in Support tool.

  4. [Testing Tool, PRO] Added logging modules validation (Figaf Agent module, SAP Log module) to the Integration Object validation. Now it’s possible to see what logging modules are missing in advance.

  5. [FIX, Change Management, CPI] Extended synchronization of CPI agents not to fail if IFlow object has a link to unsupported external reference type (MessageType or FunctionLibraries or something else in the future).

  6. [FIX, Testing Tool, PRO] Fixed an issue when SAP Log modules update didn’t update inconsistent value of the log.condition parameter. That problem could occur when the channel is used by many ICOs with different or undefined QOS contract (Scenario Type), for example XI 3.0.

  7. [FIX, PI→CPI Migration] Fixed an issue when xslt templates related to JMS retry feature were used for regular JMS channels.

  8. [FIX, PI→CPI Migration] Fixed an issue when xslt mapping that had subfolders on PI side was invalid on CPI after migration. / in the path is replaced by _.

  9. [FIX, DevOps, PRO] Fixed ignoring of the whole receiver in projection settings when the source object has multiple receiver rules with the same receiver.

  10. [FIX, DevOps, PRO] Fixed an issue when configuration scenario dependencies validation didn’t fail when linked receiver party/component/channel are fully excluded in ICO projection.

  11. [FIX, DevOps, PRO] Fixed an issue when manual definition of communication channel password parameter was wrongly detected when parameter was inherited from target and non-empty.

  12. [FIX, DevOps, PRO] Updated PI REST adapter metadata parameters information to support password parameters hmac.Secret, out.oauth.clientSecret_ROPCG, poll.oauth.clientSecret_ROPCG.

Notes for upgrade from 2306 to 2307

Notes for upgrade from 2306 to 2307
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization (options Check metadata of all existent objects, Rebuild links for the latest versions forcibly, Forcibly process payload dependent initializations for not updated objects) for PRO agents from Integration Objects page.

2306

2306
  1. [Git integration, CPI] Added a possibility to validate each updated IFlow with CPILint (option Integrate with Git Pipelines in Agent dialog (see Git integration configuration for more details).

  2. [Change Management, CPI] Implemented a prototype of the Groovy IDE (learn more about related configuration here).

  3. [Testing Tool, PRO] Added a possibility to record JSON payloads logged by the Rest adapter (see recording configuration page for more details).

  4. [Testing Tool, CPI] Improved integration with CPIHelper support to navigate to Test Run Details page for messages sent by Figaf Tool (go to CPIHelper support for more details).

  5. [Testing Tool, CPI] Added an information about missing run steps shown during polling of CPI test runs/recording requests.

  6. [Testing Tool, CPI] Added an information that at least one polling was completed for a test run/recording request.

  7. [Support Tool, Monitoring, CPI] Added a support of Custom Status property. The status is supported in Support tool, CPI Message Monitoring and EDI Message Monitoring.

  8. [Monitoring, CPI] Added a possibility not to download messages if its Custom Status equal to NOLOGGING (see EDI Message Monitoring for more details).

  9. [PI→CPI Migration] Added a support of Message Mappings case when External Message name is not equal to its root element. To check supported cases go here.

  10. [PI→CPI Migration] Changed Beta profile to Local Processes, Default to Single Process and configured Local Processes as default one.

  11. [Security] Added a possibility to use CSRF protection provided by App router on SAP BTP deployment, Cloud Foundry.

  12. [Security] Configured Content Security Policy.

  13. [FIX, Change Management, CPI] Fixed forcible synchronization of CPI agents.

  14. [FIX, Testing Tool, CPI] Fixed a link to message traces on integration suite.

Notes for upgrade from 2305 to 2306

Notes for upgrade from 2305 to 2306
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization (options Check metadata of all existent objects, Forcibly process payload dependent initializations for not updated objects, Forcibly process child types for not updated compound ESR object types: External Definition, Service Interface, Function Module, Imported Archive) for PRO agents from CTT page.

  3. It’s required to process forcible synchronization (option Synchronize objects forcibly) for CPI agents from CTT page.

  4. It’s required to update manifest.yml and approuter/package.json files if Figaf Tool is deployed to SAP BTP, Cloud Foundry. You can download new archive from article.

  5. Build has data migrations of existing PI to CPI migration settings.

  6. Build has data migration to delete orphan blob store entries for CPI agents.

2305.1

2305.1
  1. [Change Management, PRO] Optimized algorithm of dependent objects loading on tracked object page.

  2. [DevOps, PRO] Extended algorithm to update adapter engine configuration in wildcard ICO sender during transport if adapter engine has been changed on its receiver channels.

  3. [DevOps, PRO] Added logging of object creation in transport changes overview (only for binary landscapes). See transport page for more details.

  4. [DevOps, PRO] Optimized attachment of ESR objects to the ticket and creation of ESR transports.

  5. [PI→CPI Migration] Added a support of Message Mappings with bindings. To check supported cases go here.

  6. [Common, CPI, Api Management, API Hub] Added SAP AIR header to all API calls to CPI/API mgmt/API Hub agents.

  7. [FIX, Testing Tool] Fixed an issue when modules couldn’t be removed from ICO if current mode was ICO logging.

  8. [FIX, PI→CPI Migration] Fixed dollar signs escaping in groovy scripts. Only last one was escaped previously if there were several of them.

  9. [FIX, PI→CPI Migration] Fixed an issue occurred during migration of ICO with several message mappings using the same Java/Xslt mapping.

Notes for upgrade to 2305.1

Notes for upgrade to 2305.1
  1. It’s required to process reinitialization operation on Agents page for CPI and Api Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

2305

2305
  1. [Change Management, CPI] Added a possibility to transform REST API/SOAP API objects to IFlow (go to Transform REST API/SOAP API objects to IFlows for more details).

  2. [Testing Tool] Refactored browsing of polling results for recordings/test runs. Polling will not be started if there is already a started polling requests with same objects in progress or polling has been already completed for all selected objects.

  3. [Testing Tool, CPI] Added SapIDocTransferId header if it’s empty for the inbound message when testing IDOC scenarios.

  4. [DevOps, PRO] Added a possibility to update routing conditions in ICO on transport configuration page (only for binary landscapes).

  5. [PI→CPI Migration] Added initialization of XSLT mapping file paths if corresponding template isn’t found: HTTP is used for sender and ProcessDirect is used for receiver.

  6. [FIX, Testing Tool, PRO] Fixed an issue with recording of Receiver Determination objects (dualstack).

  7. [FIX, PI→CPI Migration] Fixed an issue when PI to CPI migration folder initialized by default couldn’t be found after restarting Figaf Tool deployed on SAP BTP deployment, Cloud Foundry environment.

  8. [FIX, Change Management, Testing Tool, CPIHelper] Fixed an issue occurred for IFlows that hadn’t been synchronized.

Notes for upgrade from 2304 to 2305

Notes for upgrade from 2304 to 2305
  1. Previous configuration in Figaf Tool hasn’t been affected.

2304

2304
  1. [Common, PRO] Added PI agent report on Integration Objects page.

  2. [Testing Tool, CPI] Added a support of IFlows with JMS sender.

  3. [Testing Tool, PRO] Improved PI recording/polling. Added a feature to record messages and run test case even if Scenario Type isn’t defined automatically when Messages logging approach is ICO Logging. The approach is recommended if you are creating PI test cases to afterwords migrate them into CPI test cases.

  4. [Testing Tool] Added information to test case about the source of test case and way of creation.

  5. [Change Management, Api Management] Added warnings shown if object contains changes that haven’t deployed yet. The warning is visible on Landscape Overview page.

  6. [Change Management, CPI, Api Management] Added deployed version to CSV report on Landscape Overview page.

  7. [PI→CPI Migration] Improved generation of groovy scripts during PI to CPI migration. Added support of All Values of Queue.

  8. [PI→CPI Migration] Changed IDs generation pattern for Participants.

  9. [PI→CPI Migration] Extended migration overview report. Added new column with information about configuration of sender and receiver adapters.

  10. [PI→CPI Migration] Added SOAP envelops to the sender after migration of PI test case (with IDOC sender) to CPI IFlow.

Notes for upgrade from 2303 to 2304

Notes for upgrade from 2303 to 2304
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization (options Check metadata of all existent objects, Rebuild links for the latest versions forcibly, Forcibly process payload dependent initializations for not updated objects) for PRO agents from Integration Objects page.

  3. It’s required to process forcible synchronization (options Synchronize objects forcibly) for Api Management agents from CTT page.

2303.1

2303.1
  1. [Testing Tool] Changed testing license check algorithm. Now it is enough to have testing license for only development object in scope of composite landscape to be able to register test cases for all related objects across the composite landscape.

  2. [Testing Tool, CPI] Added a support of IFlows with nested splitters and/or multicasts (see configuration of IFlow with nested splitters and/or multicasts).

  3. [Testing Tool, CPI] Added warnings shown if the design version is different than deployed version. The warning is visible on Integration Objects page, Landscape Overview page and Test Case Details page.

  4. [CTT, PRO] Optimized linking algorithm.

  5. [PI→CPI Migration] Added a possibility to type JMS Queue Name manually (go ot Migration page for more details).

  6. [DevOps] Extended transport validation logic to get invalid state of transport in case of some issues with denied state.

  7. [DevOps, PRO] Added validation of PI changelist after upload completion (see Binary landscapes features for more details).

  8. [CPI, Git integration] Added an option Add scenario documentation in order to generate scenario documentation automatically (see Git integration configuration for more details).

  9. [Common, CPI] Improved error messages if custom IdP configured wrongly.

  10. [FIX, Testing Tool, CPI] Fixed an issue when mock IFlow couldn’t be created when source IFlow had two Message Flows with the same name that were pointing at the Receiver.

  11. [FIX, Support Tool] Fixed an issue when whole alert processing failed if any support rule was invalid.

  12. [FIX, DevOps, PRO] Fixed an issue when transports couldn’t be started for ticket with ID and ESR objects if some of required objects weren’t added to ticket.

Notes for upgrade to 2303.1

Notes for upgrade to 2303.1
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization for CPI agents from CTT page.

  3. It’s required to process forcible synchronization (options Check metadata of all existent objects (lookup without last change date filter), Rebuild links for the latest versions forcibly, Forcibly process payload dependent initializations for not updated objects, Forcibly process child types for not updated compound ESR object types: External Definition, Service Interface, Function Module, Imported Archive, Synchronize used sap repository objects, and Synchronize all dependent sap objects recursively) for PRO agents from CTT page.

  4. It’s required to process reinitialization operation on Agents page for CPI agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

2303

2303
  1. [PI→CPI Migration] Added a possibility to create enterprise ready flows. See Migration page.

  2. [PI→CPI Migration] Added support of ICOs having multiple receivers in the rule.

  3. [PI→CPI Migration] Defined HTTP/SOAP/IDOC sender url with IFlow technical name value by default.

  4. [Testing Tool] Added a possibility to rerun test case from test run details page if it’s run in scope of test suite run.

  5. [Testing Tool, PRO] Added modules management report with historical changes for communication channels made by Figaf Tool.

  6. [FIX, UI] Fixed an issue when reset password page couldn’t be opened.

Notes for upgrade from 2302 to 2303

Notes for upgrade from 2302 to 2303
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process reinitialization operation on Agents page for CPI agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

2302.2

2302.2
  1. [Common, CPI] Changed entity descriptor generation algorithm in order to be able to sign on to SAP CPI CF using custom SAML2 Identity Provider (see Sign on to SAP CPI CF using SAML2) when Figaf Tool is started with http protocol.

Notes for upgrade to 2302.2

Notes for upgrade to 2302.2
  1. It’s required to process reinitialization operation on Agents page for CPI agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties.

2302.1

2302.1
  1. [Testing Tool] Added an option Ignore all on Differences dialog to add all message properties with differences to ignore list.

  2. [FIX, DevOps, CPI] Fixed an issue when URL and file documents could be lost on target system after rollback.

2302

2302
  1. [Testing Tool] Added an option to trim whitespaces in XML content before comparison (see Trim whitespaces before XML comparison option Test Configuration on Integration Object Details page and Shared Configuration page).

  2. [PI→CPI Migration] Added a possibility to manage cloud integration resources (go ot Migration page for more details).

  3. [PI→CPI Migration] Added a possibility to exclude receivers/interfaces (go ot Migration page for more details).

  4. [PI→CPI Migration] Added a possibility to configure name and ID of migrated IFlow.

  5. [PI→CPI Migration] Implemented maintenance of migration settings to restore them during Check operation.

  6. [DevOps, CPI] Added transport of URL documents, file documents and tags during importing package. These objects are imported on background if package is update.

  7. [Common, PRO] Added an option to skip data types synchronization (go to PRO synchronization options for more details).

  8. [UI] Implemented an automatic navigation to previously opened page after login.

  9. [FIX, DevOps, PRO] Fixed an issue with ESR objects import.

  10. [FIX, DevOps, Api Management] Fixed an issue with rollback.

  11. [FIX, DevOps] Fixed an issue when parameters report couldn’t be downloaded when some parameters had null values.

Notes for upgrade from 2301 to 2302

Notes for upgrade from 2301 to 2302
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to synchronize CPI agents with Synchronize objects forcibly and Rebuild links for the latest versions forcibly settings.

2301

2301
  1. [Testing Tool, PRO] Added a possibility to forcibly avoid ignoring of some message properties ignored by default (see Don’t skip adapter-specific properties by default during message sending option Test Configuration on Integration Object Details page).

  2. [Testing Tool, PRO] Added validation of scenario configuration (see Integration Object Details page).

  3. [Testing Tool, CPI] Added testing support for scenarios having HTTP endpoint with /* and query parameters.

  4. [DevOps, PRO] Added import process split for Integration Directory transports done through WS (only for binary landscapes).

  5. [DevOps, CPI, Api Management] Added transports history to browse relationship between tickets and transports in composite landscapes (see Ticket page).

  6. [PI→CPI Migration] Added information about mapping challenges into migration report if related operation mapping used anything else than just one 1:1 migration.

  7. [PI→CPI Migration] Limited running period of test cases migrated from PI to CPI. Test cases migrated from PI to CPI can be run for 30 days after creation if testing license end date is expired and PI to CPI migration license end date exists and isn’t expired.

  8. [PI→CPI Migration] Added a possibility to initialize PI to CPI migration folder by default with data from PItoCPIMigrationTemplates repository.

  9. [Common] Allowed download of existing naming convention rules file or sample file.

  10. [FIX, Testing Tool, PRO] Added a check to skip polling of message group if the root message failed.

  11. [FIX, DevOps, PRO] Fixed receiver projection for ignoring case when multiple receiver rules declared same receiver.

Notes for upgrade from 2212 to 2301

Notes for upgrade from 2212 to 2301
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization (options Check metadata of all existent objects (lookup without last change date filter), Rebuild links for the latest versions forcibly, Forcibly process payload dependent initializations for not updated objects, Forcibly process child types for not updated compound ESR object types: External Definition, Service Interface, Function Module, Imported Archive, Synchronize used sap repository objects, and Synchronize all dependent sap objects recursively) for PRO agents from CTT page.

2212.1

2212.1
  1. [Testing Tool, PRO] Added a possibility to verify successful status of the message on PI system during the testing (for SAP Log module and ICO Logging).

  2. [Monitoring] Added a possibility to retry messages downloading. See Work with EDI Message Monitoring for more information.

  3. [Migration to IS] Added a validation that there are no approved or waiting for approval transports with effected objects during updating custom mapping (go to Migration to Integration Suite for more details).

  4. [DevOps, PRO] Added selector for adapterEngineName channel parameter on transport configuration page (only for binary landscapes). Decentral adapter engine labels are used as values in the selector.

  5. [PI→CPI Migration] Added Groovy syntax issues handling.

  6. [PI→CPI Migration] Extended pi to cpi report with mapping problems.

  7. [Monitoring, CPI] Allowed management of CPI message monitor filters for IRTConfigurator.

  8. [FIX, DevOps] Fixed an issue when denied objects could be attached to a ticket if there were attached objects in the ticket.

Notes for upgrade to 2212.1

Notes for upgrade to 2212.1
  1. It’s required to process forcible synchronization for PRO agents from CTT page.

2212

2212
  1. [Migration to IS] Added overview page for Migration to Integration Suite flow (go to Migration to Integration Suite for more details).

  2. [DevOps] Added a batch rollback of transports for binary landscapes.

  3. [DevOps] Added access restriction on landscape level (see Restrict Access configuration).

  4. [DevOps] Added a validation that prevents deletion of active transports and related tickets.

  5. [DevOps, PRO] Added information about changelist activation date to the name of changelist before activation (only for Integration Directory transports through WS).

  6. [DevOps, PRO] Added information about ticket, external ticket, transport and transport date to the changelist description (only for Integration Directory transports through WS). When transport has one ticket, the description contains transport and ticket information. When transport has many tickets, the description contains only transport information.

  7. [DevOps, CPI] Added a possibility to initialize transport configuration by the ancestor values (only for binary landscapes).

  8. [Common, CPI] Simplified creation of CPI agents (see Agents integration configuration (CPI platform)).

  9. [Common, CPI] Added Reset Entity Descriptor on Agents integration configuration (CPI platform) to avoid accidental regeneration of entity descriptor.

  10. [Common] Added new user role IRTLandscapeManager to remove that permission from IRTDevOpsManager. Go to IRT roles and permissions for more details.

  11. [Common] Allowed upload of naming convention rules when one object has several assigned naming convention rules group tags.

  12. [Common] Allowed user deletion when Figaf Tool is run with irt.logon-mode equals to MIXED_MODE or SSO_MODE.

  13. [UI] Improved user management table, added a possibility to filter and sort users.

  14. [UI] Upgraded OpenUI5 version to 1.108.0.

  15. [FIX, DevOps, PRO] Fixed an issue when responsible user information was not preserved for created target object.

Notes for upgrade from 2210 to 2212

Notes for upgrade from 2210 to 2212
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization (option Synchronize objects forcibly) for CPI agents from CTT page.

2210.3 (available only for Docker distributions: standard and BTP)

2210.3 (available only for Docker distributions: standard and BTP)
  1. [Common] Added irt.saml-base-url application property (go to Application properties for more information). Related environment variable for Docker installation is IRT_SAML_BASE_URL.

2210.2 (available only for Docker distributions: standard and BTP)

2210.2 (available only for Docker distributions: standard and BTP)
  1. [FIX, Common] Fixed deployment for docker-compose.

2210.1 (available only for SAP BTP deployment, Cloud Foundry environment)

2210.1 (available only for SAP BTP deployment, Cloud Foundry environment)
  1. [FIX, Common] Fixed Figaf Tool public API on SAP BTP deployment, Cloud Foundry environment. There was an issue with usage of OAuth clients tokens in requests to Figaf Tool.

2210

2210
  1. [Testing Tool, CPI] Added a support of async IFlows testing.

  2. [DevOps, PRO] Implemented changes overview at transport level for ICOs and communication channels (only for binary landscapes) to browse model differences as a flat view.

  3. [DevOps] Added a possibility to validate mapped target object name on transport level (only for binary landscapes) (see naming validation configuration).

  4. [DevOps] Added a possibility to export all external properties that are used in the transport (only for binary landscapes). It supports CPI IFlows (CPI platform), communication channels (PRO platform) and API Proxies and Key Value Maps (Api Management platform).

  5. [Common, CPI] Added a possibility to sign on to SAP CPI CF using custom SAML2 Identity Provider (see Sign on to SAP CPI CF using SAML2).

  6. [Common, CPI] Added a support of integration suite agents (see Agents integration configuration (CPI platform)).

  7. [Common, Api Management] Added a support of OAuth2 protocol for connectivity with API management agents through public API (see Agents integration configuration (Api Management platform)).

  8. [FIX, Testing Tool, CPI] Fixed an issue when CPI integration object wasn’t restored successfully in Figaf Tool after its deletion and recreation in another package.

Notes for upgrade from 2209 to 2210

Notes for upgrade from 2209 to 2210
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process reinitialization operation on Agents page for CPI and Api Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

2209

2209
  1. [Testing Tool, PRO] Implemented new PI messages/results polling approach (except RD scenarios). By default, new approach is used, but it’s possible to enable old approach globally in bootstrap properties (irt.testing.pro.polling.async-with-splitter-scenario.use-old-approach, irt.testing.pro.polling.async-without-splitter-scenario.use-old-approach, irt.testing.pro.polling.sync-scenario.use-old-approach, irt.testing.pro.polling.async-sync-bridge-scenario.use-old-approach) or for a particular scenario (option Enable old polling approach on Integration Object Details page).

  2. [Testing Tool, PRO] Added a possibility to record chosen root messages. New recording approach example is e2e testing of scenario (fetch chosen message groups, PRO scenarios except RDs).

  3. [Testing Tool, PRO] Added a possibility to override integration type on Integration object page in addition to global Agent setting and add Use the most appropriate Messages logging approach by default per scenario option on Agent to detect a suitable integration type that should be used by default.

  4. [Testing Tool, CPI] Added a support of manual test case creation through UI table for CPI IFlows.

  5. [Testing Tool, CPI] Added a possibility to configure run steps filter on Test Configuration tab and in recording dialog using bpmn with viewer dialog.

  6. [Monitoring, CPI] Added custom headers support to EDI message monitoring.

  7. [DevOps] Extended Traces of the last import file. Error occurred during transport import is added to the downloaded file.

  8. [DevOps] Added copying of external ticket id, link and description during next ticket creation (only for binary landscapes).

  9. [DevOps] Added a support of integration with a webhook (only for binary landscapes).

  10. [Change Management, UI] Added xml beautifier for payloads.

  11. [Common] Added a flag Don’t resolve as default test system on agent not to resolve it as default test system during test case creation from recording request and manual test case creation.

  12. [Common] Added new validations to support PI to CPI testing license.

  13. [Audit] Added cron jobs to clean audit entries (configuration is on Application page).

  14. [Audit] Added audit logging of webhook integration events (WEBHOOK_INTEGRATION event type).

  15. [FIX, Testing Tool, PRO] Fixed an issue when Figaf Tool/SAP modules weren’t removed when related agent had PI_MESSAGE_LOG enabled.

  16. [FIX, DevOps, PRO] Fixed an issue when rollback didn’t work for channels with passwords.

  17. [FIX, Monitoring, CPI, UI] Fixed an issue when CPI System Monitoring page couldn’t be opened.

  18. [FIX, CPI, UI] Fixed an issue when synchronization packages filter was cleaned during opening Tracked objects page.

  19. [FIX, UI] Fixed UI configuration for cloud version.

Notes for upgrade from 2208 to 2209

Notes for upgrade from 2208 to 2209
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to synchronize PRO agents with Check metadata of all existent objects (lookup without last change date filter) and Rebuild links for the latest versions forcibly settings after the upgrade to 2209.

2208.1

2208.1
  1. [Testing Tool, CPI] Added a possibility to configure run steps filter in bpmn with viewer dialog.

  2. [Testing Tool, CPI] Added mock testing support for looping process call that calls the same function multiple times.

  3. [Testing Tool, PRO] Actualized UI for package-info.json preparation (manual test case creation).

  4. [PI→CPI Migration] Added IFlow name validation on Migration page.

  5. [PI→CPI Migration] Added a possibility to configure IFlow element id in Migrate Test Cases dialog using bpmn with viewer dialog.

  6. [PI→CPI Migration] Added a possibility to synchronize package from Migration page.

  7. [PI→CPI Migration] Added support for WSDL in External Definition.

  8. [DevOps] Added external ticket id, external ticket link and landscape columns on Tickets page.

  9. [Common, CPI, Api Management] Added git API connectivity test if Git Integration is enabled for agent.

Notes for upgrade to 2208.1

Notes for upgrade to 2208.1
  1. It’s required to process forcible synchronization of ESR objects for PRO agents from CTT page.

2208

2208
  1. [Testing Tool, CPI] Improved messages polling. CPI run step payloads now are downloaded in parallel (performance depends on API restrictions on particular tenant).

  2. [Testing Tool, PRO] Improved message polling statistics.

  3. [Testing Tool, PRO] Added information about modules on channels on Integration Object page. Added a possibility to add/remove modules on Integration Object page.

  4. [Testing Tool] Added a possibility to compare selected test runs on Test Suite Run page.

  5. [Testing Tool] Added a possibility to create recording from Integration Object page and from Test Suite page.

  6. [Testing Tool] Added comparison error details viewing for a particular test run result on Test Run Details page.

  7. [Testing Tool] NEW_RECORDINGS stage is completely removed from the process. Existing recordings in that state will be removed automatically during the first startup.

  8. [Testing Tool] Added a possibility to create test cases without test objects in order to migrate these test cases to CPI IFlow.

  9. [Monitoring, CPI] Improved CPI Message Monitoring CSV report (see CPI Message Monitoring). Added Message ID and Duration columns.

  10. [PI→CPI Migration] Added processed messages in migration overview report. This feature works for supported cases except bridges.

  11. [Common, PRO] Added simple query API connectivity test.

  12. [Common, CPI] Added a possibility to synchronize CPI Cloud Foundry systems without defined SAP Authentication Provider.

  13. [Change Management, CPI] Added a BPMN model viewer to 'Browse Payload' function on the Tracked object page.

  14. [FIX, Testing Tool, PRO] Fixed messages lookup optimization for bridges.

  15. [FIX, DevOps, CPI] Fixed message mapping file name for new version of message mappings updated during transport.

  16. [FIX, CPI, Git integration] Fixed an issue when artifacts with the same names (types are different) couldn’t be downloaded/uploaded/deployed using cpi-plugin.

Notes for upgrade from 2207 to 2208

Notes for upgrade from 2207 to 2208
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to synchronize PRO agents with Check metadata of all existent objects (lookup without last change date filter) and Rebuild links for the latest versions forcibly settings after the upgrade to 2208.

  3. It’s required to process reinitialization operation on Agents page for CPI agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

  4. It’s required to update manifest.yml and vars.yml files if Figaf Tool is deployed to SAP BTP, Cloud Foundry. You can download new archive from article.

    Deploy the application by command cf push --vars-file vars.yml.

2207.1

2207.1
  1. [FIX, Testing Tool, CPI] Fixed testing with mock data on SAP BTP deployment, Cloud Foundry environment.

2207

2207
  1. [Testing Tool, CPI] Added a possibility to test messages using GET request with body.

  2. [Testing Tool, PRO] Added a possibility to record and test ICOs in Async/Sync bridge separately (only SAP log module/ICO Logging integrations).

  3. [Testing Tool, PRO] Added a possibility to reset message interfaces to ${determineDuringFirstRun} for chosen test suites to be able to reinitialize them in runtime.

  4. [Testing Tool, PRO] Added a possibility to define an additional dynamic properties sending with messages the testing process.

  5. [DevOps] Added a batch import of transports for binary landscapes.

  6. [DevOps, CPI] Attached linked packages automatically to tickets/transports during starting transport when target package didn’t exist.

  7. [Change Management] Added a possibility to delete chosen tracked object groups.

  8. [Monitoring, CPI] Added CPI Message Monitoring CSV report (see CPI Message Monitoring).

  9. [Common, CPI] Simplified CPI agents creation (see Agents integration configuration (CPI platform)).

  10. [Common] Got rid of /irt in the context path. So after installation Figaf Tool is available on <http|https>://<HOST>:<PORT> (by default http://localhost:8089).

  11. [Common] Upgraded OpenUI5 version to 1.102.2.

  12. [Git integration, CPI] Upgraded MessageImpl.groovy and added new methods support.

  13. [FIX, Monitoring, CPI] Fixed an issue in logs occurred during handling monitored messages with already removed traces logs.

  14. [FIX, Monitoring, CPI] Finished monitored messages automatically if related messages didn’t exist anymore.

  15. [FIX, PI→CPI Migration] Fixed an issue in migration overview report when mappings were handled incorrectly for ICOs with quite a lot of them.

  16. [FIX, DevOps, CPI] Fixed an issue when mappings comparison report couldn’t be downloaded from transport page if IFlow with message mapping was updated.

  17. [FIX, DevOps, CPI] Fixed an issue when cached transport configuration couldn’t be opened for IFlow without external configuration.

Notes for upgrade from 2206 to 2207

Notes for upgrade from 2206 to 2207
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to update xs-app.json and manifest.yml files if Figaf Tool is deployed to SAP BTP, Cloud Foundry. You can download new archive from article.

    Deploy the application by command cf push --vars-file vars.yml.

2206

2206
  1. [Change Management, Testing Tool, CPI] Added CPIHelper support (go to CPIHelper support for more details).

  2. [Testing Tool, CPI] Added a possibility to delete test IFlows (normal and mock) for selected IFlow integration objects.

  3. [Testing Tool, Support Tool, Monitoring, CPI] Added support of recording, testing, monitoring of datastore entries.

  4. [DevOps] Added a possibility to compare imported version with previous version on target system from transport page.

  5. [DevOps] Added traceability of transport process.

  6. [DevOps] Added a possibility to create a ticket from existing one.

  7. [DevOps, CPI, PRO] Added test cases lookup across the composite landscapes.

  8. [PI→CPI Migration] Added SOAP envelops to the sender after migration of PI test case (with SOAP sender) to CPI IFlow.

  9. [FIX, DevOps, CPI] Fixed an error occurred during synchronization of CPI Message Mappings or Script Collections from Ticket page.

Notes for upgrade from 2205 to 2206

Notes for upgrade from 2205 to 2206
  1. Previous configuration in Figaf Tool hasn’t been affected.

2205

2205
  1. [Change Management, DevOps, CPI] Added support of Script Collections and CPI Message Mappings. The objects with these types are added to git repository.

  2. [Change Management, CPI, Api Management] Added Landscape Overview page to browse all objects in scope of CPI and Api Management composite landscapes.

  3. [Change Management, CPI] Added Rebuild links for the latest versions forcibly synchronization setting.

  4. [DevOps, PRO] Added a possibility to browse changes between source ICO state and the state to upload on Transport Configuration page (only for binary landscapes).

  5. [DevOps, CPI] Added a possibility to configure parameter values replacement stategies on composite landscape management page.

  6. [Testing Tool, CPI] Added Step Name column to recordings and test case messages to make it easier to find the relevant step.

  7. [Monitoring, CPI] Added support of ApplicationMessageType into CPI Message Monitoring.

  8. [Monitoring, CPI, PRO] Added a possibility to delete integration object monitors from EDI Message Monitoring page.

  9. [PI→CPI Migration] Added support of ABAP and Java mappings.

  10. [PI→CPI Migration] Added support of XSL mappings.

  11. [Common] Added new user roles IRTApplicationManager, IRTAgentManager, IRTUserManager and IRTOAuthClientsManager to split responsibility of IRTAdmin in scope of configuration. Go to Figaf Tool roles and permissions for more details.

  12. [DevOps] Added ticket ids to the subject of the email notifications with review results.

  13. [FIX, PI→CPI Migration] Fixed an issue with operation mappings children handling.

  14. [FIX, Monitoring, CPI] Fixed an issue when automatic monitored messages polling didn’t work after the application restart.

  15. [FIX, DevOps, CPI] Fixed an error occurred during simplified model comparison for target CPI IFlow.

Notes for upgrade from 2204 to 2205

Notes for upgrade from 2204 to 2205
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to synchronize CPI agents with Synchronize objects forcibly and Rebuild links for the latest versions forcibly settings after the upgrade to 2205.

  3. It’s required to update configuration of CPI composite landscapes created before release 2205 in order to configure parameter mapping rules for new types (Script Collection and CPI Message Mapping).

  4. It’s required to process reinitialization operation on Agents page for CPI agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

2204.2

2204.2
  1. [Testing Tool, CPI] Added support of all send/call steps for testing with mock data.

  2. [FIX, Testing Tool, CPI] Fixed an issue when test cases couldn’t be created for IFlows with several branches executed simultaneously.

  3. [FIX, Change Management, CPI] Fixed an issue in logs occurred during synchronization of IFlows with duplicated element ids.

2204.1

2204.1
  1. [Common] Added a possibility to configure DB connection through a plain JDBC url using a irt.db.jdbc-url bootstrap parameter. Related environment variable for Docker installation: IRT_DB_JDBC_URL.

  2. [FIX] Fixed application bootstrap on Oracle DB.

2204

2204
  1. [DevOps, CPI, Api Management] Significant enhancement of the composite landscapes management for CPI and API management platforms. Includes:

    • a new UI to manage the whole composite landscape on one page

    • control of the objects scope available for transport at each stage. For example, having a composite landscape dev(system1) → qa(system1) → prod(system2), the scope of objects available for transport from qa(system1) to prod(system2) will be limited by objects existing on system1 that are mapped from dev(system1) objects. At the same time, these mapped objects won’t be added to dev(system1) scope.

    • possibility to reuse the same system as a 'virtual' QA system (requires a mapping definition)

    • possibility to define technical/displayed name mapping rules with new strategies: add/remove/replace prefix, add/remove/replace suffix, replace by regex, no action. UI dialog also has an option to test the rule before saving it.

    • possibility to update mapping rules after the composite landscape creation - it just requires complete/cancel all active transports related to that composite landscape

    • consistency check for configured technical name mapping to avoid several source objects mapped to the same target object

  2. [DevOps] Added Allow if matches criteria to Transport denying rules functionality. It has the second priority after the Deny if matches criteria. If at least one filter is configured in that criteria, object’s transport will be allowed only of object matches at least one of filters.

  3. [DevOps] Added Tags filter to all criterias in`Transport denying rules` functionality

  4. [DevOps] Added a possibility to create a ticket for the next landscape in the chain after the successful transport (on Transport page). Limitation: current landscape should have only one successor, transport should have only one linked ticket.

  5. [DevOps] Added transport item error to transports CSV report.

  6. [PI→CPI Migration] Added migration overview status page.

  7. [Monitoring] Added a bootstrap parameter irt.monitoring.monitored-messages-polling-period to configure a period in days of initial messages lookup during the first polling in the EDI message monitoring. Default value is 3. Add --irt.monitoring.monitored-messages-polling-period=3 with needed parameter value to application bootstrap command to override it.

  8. [Monitoring] Added a possibility to process CSV export from EDI monitoring page.

  9. [Common, PRO] Added EJB API connectivity test for PRO agents

  10. [Testing Tool] Improved Update Test Case using Test Run Results feature.

  11. [FIX, DevOps, CPI] Fixed an issue when package without version number couldn’t be imported. Now version number is restored during forcible synchronization.

Notes for upgrade from 2202 to 2204

Notes for upgrade from 2202 to 2204
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s recommended to forcibly synchronize configured CPI agents after the upgrade to 2204 to get internal data migration processed during synchronization (related to the version field of the tracked object).

  3. CPI and API mgmt binary landscapes created before release 2204 now are deprecated because the model of composite landscapes for CPI and API mgmt has been changed. These old CPI and API mgmt binary landscapes can’t be updated anymore, only manually deleted. However, it’s still possible to register new tickets for these landscapes and work with previously created tickets. It’s highly recommended to reconfigure them from scratch using the new composite landscape management UI, please do that operation on your side manually.

2202.3

2202.3
  1. [Change Management, CPI] Added new bootstrap parameter irt.ctt.require-valid-bpmn-iflow-model-during-synchronization (default value is true). If it’s true, IFlows with broken (from XML perspective) BPMN model will not be registered in CTT and the corresponding error will be thrown. If it’s false, then such IFlows will be registered in CTT and errors will not be thrown.

  2. [Testing Tool, CPI] Improved messages polling for IFlows.

  3. [FIX, Testing Tool] Fixed an issue when testing with mock data didn’t work correctly when test case had more than 100 messages with the same activity.

2202.2

2202.2
  1. [Common] Added a possibility to run Figaf Tool as a Docker container on all supported databases (go to Docker Hub for more details).

2202.1

2202.1
  1. [Change Management] Added BPMN model image to IFlow documentation.

2202

2202
  1. [Common] Added a possibility to work with PI systems in SAP BTP deployment, Cloud Foundry (follow article for more details).

  2. [Common] Added correct user email extraction from SSO user (SAP BTP deployment, Cloud Foundry).

  3. [Testing, CPI] Added a support of testing with mock data on SAP BTP deployment, Cloud Foundry.

  4. [DevOps, PRO] Added an option to keep receiver/interface rules that exist only on target object after import.

  5. [DevOps, CPI] Added a comment to IFlow/Value Mapping versions created during transport import.

  6. [FIX, DevOps] Fixed an issue when objects detached from a ticket (based on a binary landscape) were still included to a transport.

Notes for upgrade from 2201 to 2202

Notes for upgrade from 2201 to 2202
  1. Previous configuration in Figaf Tool hasn’t been affected.

2201.2

2201.2
  1. [DevOps] Fixed an issue when landscapes with reviewers couldn’t be updated on SAP BTP, Cloud Foundry environment.

2201.1

2201.1
  1. [DevOps, PI→CPI Migration] Added calculation of Sequence Flow coordinates of migrated IFlow.

  2. [UI] Improved UI resources download to load the Web application faster.

2201

2201
2201 has a few data migrations for PRO tracked objects that can take some time depending on a total count of tracked object versions.
  1. [Change Management, PRO] Fixed a bug when ESR objects duplicates were created.

  2. [Change Management, PRO] Added new synchronization options Forcibly process payload dependent initializations for not updated objects, Forcibly process child types for not updated compound ESR object types, Skip synchronization of ESR/File transports, and Synchronize only Integration Directory objects (go to PRO synchronization options for more details).

  3. [Change Management, PRO] Added new application properties irt.ctt.max-pro-objects-lookup-period-in-months and irt.ctt.max-pro-transports-lookup-period-in-months to restrict synchronized objects last change date (go to Application properties for more information).

  4. [Change Management, DevOps] Implemented a CSV export for Tracked objects, Tickets and Transports. There is a possibility to add attached tracked objects to the report on Tickets and Transports pages.

  5. [DevOps] Added browsing of child objects name mapping lookup on Transport configuration page for binary landscapes.

  6. [DevOps] Added a possibility to fully delete tracked object version from the ticket.

  7. [DevOps, PRO] Added a possibility to transport conditions when receiver interface routing has only one branch.

  8. [DevOps, CPI, Api Management] Added a possibility to define name mapping strategies at the Binary Landscape (see Tracked object name mapping rules for more details). The strategies are used to replace virtual landscape items (old approach) with composite landscape.

  9. [Common] Added a possibility to deploy Figaf Tool to SAP BTP, Cloud Foundry (follow article for more details).

  10. [FIX, Change Management, PRO] Fixed an issue with receiver agreements linking.

  11. [FIX, DevOps] Fixed an issue when tickets with dependent tickets couldn’t be deleted.

Notes for upgrade from 2112 to 2201

Notes for upgrade from 2112 to 2201
  1. Previous configuration in Figaf Tool hasn’t been affected.

2112

2112
2112 has 2 data migrations for PRO tracked objects that can take some time depending on a total count of tracked object versions.
  1. [DevOps] Added binary landscape type. Binary landscapes have several advantages: idempotent binary landscape, composite landscape, receiver/interface rules projection, "soft" decline, etc. See binary landscapes for more details.

  2. [DevOps, PRO, CPI] Added a new transport item status SKIPPED_BECAUSE_ALREADY_EXIST for target objects that were skipped during the import because the same state already exists on the target system. It works for Integration Directory PRO objects and CPI objects.

  3. [DevOps, PRO, Api Management] Added an option Only reviewers can import objects at the landscape level for PRO and Api Management landscapes.

  4. [DevOps, PRO] Optimized transport preparation stage.

  5. [DevOps] Added a possibility to rollback transport (re-import state of objects in transport before the import) if the state after import is still the latest. The feature has some limitations that you can read here.

  6. [DevOps, PRO] Improved channels transport configuration page: added parameter description with context GUI information that can be taken from adapter metadata payload, added possibility to filter items by different criteria.

  7. [DevOps] Added a new setting Make a snapshot of Transport configuration before approval for landscapes.

  8. [DevOps] Added pagination for Tickets on UI.

  9. [DevOps] Added tickets linking during attaching source object version (new objects attachment, updating versions, resolving dependencies). Tickets that delivered a state that is used as a source in the current ticket are added to the Depends On Tickets list.

  10. [DevOps, PI→CPI Migration] Added a possibility to migrate synchronous scenarios.

  11. [DevOps, PI→CPI Migration] Added a possibility to migrate Operation Mappings to existent IFlow. See PI to CPI migration page for more details.

  12. [DevOps, PI→CPI Migration] Added support of Operation-Specific routing.

  13. [DevOps, PI→CPI Migration] Added a possibility to use mock service for test cases migrated to CPI IFlow.

  14. [Monitoring, CPI] Added a possibility to poll monitored messages automatically (setting Enable Monitored Messages Polling on CPI Agent integration configuration).

  15. [Change Management, DevOps, PRO] Added a new parameter irt.ctt.skip-synchronization-of-pro-transports (default value false) to disable synchronization of PRO transports. Use that option to save time during synchronization if you don’t use external transport management in DevOps.

  16. [Change Management] Added tagging of tracked objects.

  17. [Change Management, PRO] Added support for RFC messages with identical names (now key parameter is used as a tracked object name).

  18. [Change Management, PRO] Improved synchronization of Enterprise Service Repository to support duplicated objects, for example, objects that have identical objectId but different swcId.

  19. [Common] Added new user roles IRTManager and IRTDevOpsManager which have the same permissions as IRTOperator and IRTDevOpsOperator correspondingly and permissions to delete objects in Testing Tool or DevOps. Delete permissions are revoked from IRTOperator and IRTDevOpsOperator.

  20. [Common] Changed default value of irt.config.session-timeout.access-token.max-inactivity-period (max allowed inactivity period before user will be asked to relogin) to 86400 (seconds, i.e. 24 hours).

  21. [Common] Added an option to process automatic synchronization forcibly. See Agents integration configuration for more details.

  22. [Common] Added a possibility to copy agent from existent one.

  23. [FIX, DevOps, Api Management] Fixed an issue during transport if target object doesn’t exist.

  24. [FIX, DevOps, Api Management] Fixed a root cause of APIPROXY_ZIP_INVALID_XML_ERROR occurred in some specific cases during transport.

  25. [FIX, DevOps, PRO] Fixed a bug with scenario mapping for parties.

  26. [FIX, Common] Fixed a bug when agent with message runs couldn’t be deleted.

Notes for upgrade from 2108 to 2112

Notes for upgrade from 2108 to 2112
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process reinitialization operation on Agents page for CPI and API Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

2108.6

2108.6
  1. [Testing Tool, PRO] Added support of bridges with one receiver. Recording and message polling for such bridges didn’t work on previous Figaf Tool versions.

2108.5

2108.5
  1. [CPI] Updates to support new CPI private API. On previous Figaf Tool versions there was an issue with synchronization of IFlow resources.

2108.4

2108.4
  1. [Testing Tool, CPI] Fixed a bug when message couldn’t be processed successfully on CPI system if test case included messages with content-length header and test case was run with mock data.

  2. [Testing Tool, UI] Fixed a bug when text and binary files were compared incorrectly.

  3. [DevOps, PI→CPI Migration] Added support of Mapping Parameters.

  4. [DevOps, PI→CPI Migration] Renamed external parameters of migrated IFlow when one key related to multiple values.

  5. [DevOps, PI→CPI Migration] Added a possibility to download archive for debugging in case of some issue to be able to send it to us by email [email protected].

2108.3

2108.3
  1. [DevOps, PI→CPI Migration] Added support of Technical Context Object.

  2. [DevOps, PI→CPI Migration] Changed Message Types structure. For now only one WSDL file with all Message Types is generated. Previously a separate XSD files for each Message Type was generated.

  3. [DevOps, PI→CPI Migration] Added a possibility to define piToCpiMappings during test case migration for IFlows that haven’t been migrated using Figaf Tool.

  4. [DevOps, PI→CPI Migration] Added message mappings names to the titles.

2108.2

2108.2
  1. [DevOps, PI→CPI Migration] Added support of RFC lookup.

  2. [FIX, Testing Tool] Fixed a bug with parsing xml document during message update.

  3. [FIX, DevOps, PI→CPI Migration] Fixed an issue when spaces around the value were trimmed during migration.

2108.1

2108.1
  1. [Change Management, PRO] Added a possibility to define a list of swcIds which then be used for duplicity resolution. New application property irt.ctt.preferred-swc-ids was added (see Figaf Tool application running for more details).

  2. [CPI] Added support of IDP for Cloud Foundry (see CPI agent configuration for more details about new settings).

  3. [FIX, CPI] Fixed a bug with authentication on Cloud Foundry agents fue to changes in authentication process made by SAP.

  4. [FIX, Change Management, PRO] Fixed several issues with synchronization on SAP PI 7.1 version.

  5. [FIX, DevOps, PI→CPI Migration] Fixed a bug when Receiver Determinations without Sender Agreement and Receiver Agreement couldn’t be migrated.

  6. [FIX, DevOps, PI→CPI Migration] Fixed a bug when object couldn’t be imported if linked ESR object was in a folder.

  7. [FIX, DevOps, Api Management] Fixed a bug when some particular Api Proxies couldn’t be imported due to APIPROXY_ZIP_INVALID_XML_ERROR.

Notes for upgrade to 2108.1

Notes for upgrade to 2108.1
  1. If you have configured your SAP PI 7.1 system on previous Figaf Tool versions, please change Version for this agent to SAP PI 7.1.

  2. It’s required to process reinitialization operation on Agents page for CPI and Api Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties (only for CPI agents).

2108

2108
2108 has a data migration for unfinished test runs, it can take some time depending on count of such test runs.
  1. [Testing Tool, CPI] Added testing support for scenarios with IDOC sender.

  2. [Testing Tool] Added a separate tab on Test Run Details page with message runs statuses.

  3. [FIX, CTT, Api Management] Fixed a bug when Figaf error handling policies couldn’t be reset for API_PROXY.

  4. [FIX, CTT, API Hub] Fixed a bug when some APIs couldn’t be synchronized.

  5. [FIX, DevOps, PRO] Fixed a bug when objects were imported incorrectly when target objects had been deleted but synchronization hadn’t been run before import.

Notes for upgrade from 2107 to 2108

Notes for upgrade from 2107 to 2108
  1. irt.testing.cpi.allow-non-successful-messages setting was deleted and isn’t used anymore.

  2. If you have unfinished test runs started recently and you need the results, wait for polling end before the update.

2107.1

2107.1
  1. [DevOps, PI→CPI Migration] Fixed a bug when migrated message mapping with custom schemas was validated with error by CPI system due to the wrong fns declaration of custom UDF groovy script.

2107

2107
  1. [DevOps, PI→CPI Migration] Beta version of PI→CPI migration functionality. See details here.

  2. [Testing Tool, CPI] Improved error handling during sending messages. Changed irt.testing.cpi.allow-non-successful-messages default parameter value to false (see Figaf Tool application running for more details).

  3. [FIX, UI, Support Tool`, CPI] Fixed a bug when filtering and sorting by columns worked incorrectly.

Notes for upgrade from 2105 to 2107

Notes for upgrade from 2105 to 2107
  1. Default behavior was changed for testing on CPI. If you record and test non-successful message, set irt.testing.cpi.allow-non-successful-messages to true.

2105.1

2105.1
  1. [FIX, Testing Tool] Fixed a bug when scheduled polling of testing results couldn’t start when at least one recording request was active.

2105

2105
  1. [DevOps, CPI] Added possibility to configure whether only reviewers can import approved transports or not. See option Only reviewers can import objects on Landscape configuration dialog.

  2. [Change Management, CPI, PRO, Api Management] Added possibility to browse versions from different landscape items (go to Browse and compare versions from different landscape items for more details).

  3. [Support Tool, CPI] Added possibility to configure message monitor filters with the same name for different agents and possibility to copy message monitor filters (go to Message Monitor for more details).

  4. [Testing Tool, CPI] Added a possibility to configure whether OAuth2 protocol should be used during testing messages on CPI Cloud Foundry system or not (see Agents integration configuration (CPI platform) for more details).

  5. [Testing Tool, CPI] Added support of iFlows with CSRF protection during the testing.

  6. [FIX, Testing Tool, PRO] Fixed a bug when test objects with virtual receiver couldn’t be resolved for Receiver Determination.

  7. [FIX, DevOps, PRO] Fixed a bug when not all expected objects were linked with ESR transports.

Notes for upgrade from 2104 to 2105

Notes for upgrade from 2104 to 2105
  1. Default behavior was changed for transport functionality. Previously only reviewers could process import, now it’s configurable using the option Only reviewers can import objects on Landscape configuration dialog. By default, that option is disabled. If you want to use the old strategy, that option should be manually enabled on all landscapes.

2104

2104
  1. [Monitoring, CPI] Added EDI message monitoring support. See Work with EDI Message Monitoring to learn more about configuration.

  2. [DevOps, Api Management] Added a possibility to change the API provider for Api Proxy on Transport Configuration page.

  3. [DevOps] Added ticket ids to the subject of the email notifications.

  4. [Change Management, CPI] Added a possibility to compare message mappings among IFlow versions.The option is available on Compare dialog.

  5. [Change Management, CPI] Added a possibility to download BPMN models as SVG. The option is available on Download dialog (opened from Change Tracking Tool) and on Differences dialog (opened with BPMN model with viewer selection).

  6. [FIX, Monitoring, PRO] Fixed a bug when all messages were polled from PRO system for integration objects without scenario id.

  7. [FIX, DevOps, PRO] Fixed broken state of the channel after transport with object update when a channel had password field that hadn’t been created as adapter specific attribute after the first object transport.

  8. [FIX, Change Management, PRO] Fixed a bug when scenario id was set incorrectly for wildcard ICO and SA.

  9. [FIX, Change Management, Testing Tool, Support Tool, DevOps, CPI] Fixed a bug on Cloud Foundry when there was an error during xml parsing due to encoding issue.

Notes for upgrade from 2103 to 2104

Notes for upgrade from 2103 to 2104
  1. It’s required to process reinitialization operation on Agents page for CPI Cloud Foundry agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties.

2103.5

2103.5
  1. [FIX, Testing Tool, CPI] Fixed a bug when CPI test suites and test cases weren’t run successfully.

2103.4

2103.4
  1. [FIX, Testing Tool, PRO] Fixed a bug with incorrect scenario mapping usage during testing on several test systems.

  2. [FIX, DevOps, PRO] Fixed a bug with business systems import.

  3. [FIX, DevOps, PRO] Fixed a bug when wrong SoftwareComponentVersionID was set for non-basis adapters during import.

  4. [FIX CPI, Api Management] Fixed a bug when Figaf Tool couldn’t connect to Cloud Foundry if both Ad and SAP login were configured.

Notes for upgrade to 2103.4

Notes for upgrade 2103.4
  1. If your CPI or Api Management Cloud Foundry systems are configured for both Ad and SAP login and you have an issue with connection, process reinitialization operation on Agents page for CPI and Api Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties.

2103.3

2103.3
  1. [Testing Tool, PRO] Added possibility to override scenario type for integration objects. It can be useful in cases when it’s initialized with inappropriate value (read more details on Integration Object Details page).

  2. [Testing Tool, PRO] Fixed a bug when dynamic properties weren’t recorded and tested for dual stack PRO systems.

  3. [Testing Tool] Fixed a bug when XML messages differing only in namespace prefixes were compared wrongly.

2103.2

2103.2
  1. [Testing Tool] Added possibility to remove related testing results from test runs during message group deletion (see Messages on Test Case Details page).

  2. [Testing Tool] Added possibility to ignore XML attributes (see Ignore XML attributes option Test Configuration on Integration Object Details page and Shared Configuration page).

2103.1

2103.1
  1. [Support Tool] Fixed a bug when rule and rules page weren’t loaded after unsuccessful rule update.

2103

2103
  1. [Testing Tool] Added a possibility to define custom rules to determine encoding of the message depending on file type and payload. See Encoding determination page to learn details.

  2. [Testing Tool] Added a possibility to calculate file type and encoding for messages in test cases. See Messages tab on Test Case Details page.

  3. [Testing Tool] Added a possibility to define a substring rule for group/message correlation id path in EDI comparison (see Test Configuration tab on Integration Object Details page for more details).

  4. [Monitoring, PRO] Added EDI message monitoring support. See Work with EDI Message Monitoring to learn more about configuration.

  5. [Common] Improved automatic logout behaviour after inactivity:

    1. removed bootstrap parameter irt.config.max-session-duration;

    2. added 2 new parameters irt.config.session-timeout.access-token.max-validity-period and irt.config.session-timeout.access-token.max-inactivity-period (go to Figaf Tool Application running section for more details).

  6. [Change Management, DevOps, Testing Tool, CPI, Api Management] Added support for Cloud Foundry authentication flow without SSO.

  7. [DevOps] Added possibility to configure replacement strategy for transport configuration parameters on Landscape dialog.

  8. [Audit] Added audit logging of user deactivation (USER_MANAGEMENT event type).

  9. [Audit] Added audit logging of user deletion (USER_MANAGEMENT event type).

  10. [Audit] Added audit logging of user’s password update (USER_MANAGEMENT event type).

  11. [Audit] Added audit logging of landscapes updates (DEV_OPS event type).

  12. [FIX, Testing Tool, PRO] Fixed a bug for SAP Log module and ICO Logging when polling didn’t work for scenarios with the 1 receiver interface and 1 receiver channel but with the message split and scenarios with the interfaces/receiver/message split without BI staging enabled. See Integration Object Details page to learn more about new options which should be configured.

  13. [FIX, Change Management, Api Management] Fixed a bug with synchronization when not all tracked objects were updated.

  14. [FIX, Change Management, API Hub] Fixed a bug when deleted APIs were synchronized with an error.

  15. [FIX, DevOps] Fixed a bug when ticket report generation failed if url in external link was invalid.

  16. [FIX, DevOps, Api Management] Fixed a bug when Api Proxies with versions couldn’t be imported.

  17. [FIX, Support Tool] Fixed a bug when tickets weren’t created from alert page.

Notes for upgrade from 2102 to 2103

Notes for upgrade from 2102 to 2103
  1. It’s required to process forcible synchronization (option Rebuild links for the latest versions forcibly and Check metadata of all existent objects) for PRO agents from CTT page.

  2. It’s required to process forcible synchronization for Api Management agents. To do this you need to Reset synchronization query on the agent dialog and save it. Then synchronize the agent from CTT page.

  3. It’s required to process reinitialization operation on Agents page for CPI and Api Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties.

2102.5

2102.5
  1. [Change Management, DevOps, Testing Tool, CPI, Api Management] Added support for Cloud Foundry authentication flow without SSO.

2102.4

2102.4
  1. [FIX, DevOps, Api Management] Fixed a bug on cloud version when some Api Proxy endpoint information was lost after transport.

2102.3

2102.3
  1. [FIX, Testing Tool, PRO] Fixed a bug for SAP Log module and ICO Logging when polling didn’t work for scenarios with the 1 receiver interface and 1 receiver channel but with the message split and scenarios with the interfaces/receiver/message split without BI staging enabled. See Integration Object Details page to learn more about new options which should be configured.

  2. [FIX, Change Management, Api Management] Fixed a bug with synchronization when not all tracked objects were updated.

  3. [FIX, DevOps, Api Management] Fixed a bug on cloud version when error occurred during transport of encrypted KVM.

2102.2

2102.2
  1. [FIX, UI] Fixed a bug when transport page couldn’t be opened for transports without approval if Transport creator can approve own transports (property on Application configuration page) was disabled.

2102.1

2102.1
  1. [DevOps] Added email notifications sent to ticket reviewers when all transports from the ticket are in WAITING_FOR_APPROVAL status and email notifications sent to the ticket creator and assignee when all transports have IN_PROGRESS or DECLINED statuses.

  2. [DevOps] Added a possibility not to allow transport creator to approve created transports. The feature is configured by Transport creator can approve own transports option on Application page. If it’s enabled, then transports can be approved by all users in reviewers list. If it’s disabled, then transports can be approved by user if he is in reviewers list and he is not a transport creator.

  3. [Change Management, CPI] Added a possibility to download and compare message mappings.

  4. [Common] Added the new bootstrap parameter irt.smtp.starttls.enable (default value false), it must be set to true to get STARTTLS working.

  5. [Audit] Added audit logging of user logout (AUTHENTICATION event type).

  6. [Audit] Added audit logging of unsuccessful user login (AUTHENTICATION event type).

  7. [Audit] Added audit logging of roles update (USER_MANAGEMENT event type).

  8. [Audit] Added audit logging of user creation (USER_MANAGEMENT event type).

  9. [FIX, Testing Tool, CPI] Fixed a bug when message properties were compared incorrectly when iflow had message header and exchange property with the same lowercased name.

  10. [FIX, Testing Tool, PRO] Fixed a bug for SAP Log module and ICO Logging when polling didn’t work for sender agreements without EDI splitter which had message or recipient split at the wildcard ICO side.

  11. [FIX, Common] Fixed a bug when emails weren’t sent when SMTP username was configured as an email.

  12. [FIX, UI] Fixed a bug when Active user checkbox wasn’t shown in Edit User dialog box.

2102

2102
  1. [Testing Tool, PRO] Added an option irt.testing.pro.delay-after-updating-special-testing-scenarios to define timeout (in milliseconds) to wait after test case running if at least one special testing scenario was updated.

  2. [Testing Tool, CPI] Allowed custom Accept, Accept-language, Accept-encoding headers during CPI message sending.

  3. [Common] Fixed a minor security vulnerability.

Notes for upgrade from 2101 to 2102

Notes for upgrade from 2101 to 2102
  1. Previous configuration in Figaf Tool hasn’t been affected.

2101

2101
  1. [Common] Added optional integration with SSO provider (only Open ID Connect protocol is supported).

  2. [Change Management, PRO] Added a possibility to download and compare message mappings.

  3. [Change Management, DevOps, API Mgmt] Added support of Key Value Maps. Only KVMs with lifecycle information are synchronized. Only non encrypted KVMs are added to git repository. If KVM is encrypted, you will see only stub on UI on transport configuration page. If transport configuration for encrypted KVM has a blank value for some landscape items, then transport will have invalid status.

  4. [Change Management, API Hub] Added a possibility to compare files in OpenAPI (Swagger specification v.3) format.

  5. [DevOps, API Mgmt] Added a possibility to configure transport configuration for API proxies and Key Value Maps.

  6. [DevOps, CPI] Added a possibility to transport only iflow configuration.

  7. [Audit] Added audit logging of successful user login (AUTHENTICATION event type).

  8. [Support Tool] Improved Support Tool external integrations:

    1. added Don’t send notifications automatically flag on Rule page to define whether notifications should be sent automatically or not;

    2. set default value to 60 for Don’t send similar notifications for (min) property on Rule page.

  9. [FIX, Testing Tool, UI] Fixed a bug when Recording Configuration dialog wasn’t opened from Recording Requests tab of Integration Object page.

  10. [FIX, Testing Tool, UI] Fixed a bug when payloads with the same names couldn’t be attached to loaders after rows deletion and recreation on the manual test case creation page.

Notes for upgrade from 2.15 to 2101

Notes for upgrade from 2.15 to 2101
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process reinitialization operation on Agents page for CPI and API Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties.

2.15.8

2.15.8
  1. [Testing Tool, PRO] Added an option irt.testing.pro.disable-correlation-id-lookup (possible values: false - default, true) to skip lookup by correlation id in the message monitoring client.

2.15.7

2.15.7
  1. [FIX, DevOps] Fixed a bug when selection of transport configuration by group id and revision limit failed on MSSQL Server.

2.15.6

2.15.6
  1. [DevOps, CPI] Added a possibility to configure transport configuration for particular released version of CPI IFlow.

  2. [DevOps, CPI] Added a possibility to configure not approved/imported landscape items, transport configuration now becomes immutable only for the landscape item which has been approved.

  3. [FIX, DevOps, CPI] Fixed a bug when the latest state of CPI object was taken as a source during transport instead of specified version in transport. For example: let’s have a landscape dev → qa → prod and Iflow_x (v1) has been transported to qa. Then if user update object on qa manually, further transport to prod can use that updated version instead of the state Iflow_x (v1). Now Figaf Tool always take persisted specified version of the object. Also, we decided to block transport of the state X from system A to system B when the state X doesn’t exist anymore on system A. Use additional virtual landscape items to persist intermediate state if you want to update the state of object on system A quite often, for example A → A' → B.

  4. [FIX, CPI] Fixed a bug when object name of CPI object was shown as hash on License page and it wasn’t possible to modify (request additional license options) that object license item. It affected CPI objects which have different displayed and technical names. Process synchronization with the license server from License tab to migrate affected entries.

Notes for upgrade to 2.15.6

Notes for upgrade to 2.15.6
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process synchronization of license to migrate affected entries (see bug description in release notes).

2.15.5

2.15.5
  1. [Testing Tool] Added a possibility to configure test parameters per test case on Shared configuration page.

  2. [Testing Tool, CPI] Added two options Run steps selection strategy and Run steps filter (modelStepId or modelStepId|activity) to select steps which should be recorded/tested.

  3. [Testing Tool, CPI] Added an option Use only finishing run steps to fetch the first and last message in a test case.

  4. [Common] Added new user role IRTLicenseRequester to request new licenses for the objects.

  5. [FIX] Fixed a bug when users with roles IRTDevOpsOperator and IRTDevOpsConfigurator couldn’t update their own passwords.

Notes for upgrade to 2.15.5

Notes for upgrade to 2.15.5
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process forcible synchronization (option Synchronize objects forcibly) for CPI agents from CTT page.

2.15.4

2.15.4
  1. [FIX, DevOps, CPI, API Mgmt] Fixed a bug with landscape items validation when virtual items were defined manually.

2.15.3

2.15.3
  1. [Change Management, API Hub] Added API_HUB agent platform. This agent synchronizes and tracks changes in APIs added to the favourites list of connected account. See configuration here.

  2. [Support Tool, CPI] Added Cancelled status support to Message Monitor.

  3. [Testing Tool, CPI] Added support for all HTTP methods in HTTPS Adapter during testing.

  4. [DevOps, CPI, API Mgmt] Added a possibility to define virtual landscape items manually.

  5. [Testing Tool, CPI] Added recording of non-successful messages.

  6. [Testing Tool, CPI] Added a possibility to record MPL attachments.

  7. [FIX] Fixed a bug where Figaf Tool didn’t use proxy settings for CPI and API Mgmt.

2.15.2

2.15.2
  1. [Common] Added automatic determination of timezone for PRO agents.

  2. [CPI, Git integration] Added support of value mapping upload, download, and deploy to cpi-plugin.

  3. [CTT, CPI] Added a flag Synchronize objects forcibly to CPI synchronization request.

  4. [Testing Tool, PRO] Added a possibility to define list of channels where modules should be added.

  5. [Testing Tool] Added possibility to view polling statistics when there is polling in progress.

  6. [Change Management, Git integration, CPI, API Mgmt] Added option Update .gitignore automatically.

  7. [FIX, CTT] Fixed a bug where options Synchronize objects forcibly and Rebuild links for the latest versions forcibly didn’t delete incorrect links (only added missed ones).

  8. [FIX, DevOps, 'CPI`] Fixed a bug where transport configuration wasn’t cached after transport approval.

  9. [FIX, Change Management, Git integration, CPI, API Mgmt] Fixed a bug where build.gradle and settings.gradle were not committed with the enabled corresponding checkboxes.

Notes for upgrade to 2.15.2

Notes for upgrade to 2.15.2
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process reinitialization operation on Agents page for CPI agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually.

    Figaf Tool 2.15.2 uses cpi-plugin 2.0.RELEASE with support of value mapping upload, download, and deploy. IFlow tasks were renamed to uploadArtifact, downloadArtifact, deployArtifact. The same tasks are used for Value Mappings. Folders VM_<valueMappingName>, created by Figaf Tool previously, aren’t used anymore and should be deleted.

2.15.1

2.15.1
  1. [FIX, CPI, Git integration] Fixed a bug where dependencies from the common module were not visible from IFlow module.

  2. [Common] Increased the range of exceptions where manual license request is available.

2.15

2.15
  1. [Change Management,DevOps, Testing Tool, CPI, Api Management] Added support of Cloud Foundry environment.

  2. [Testing Tool, CPI] Added automated polling of CPI IFlow after message sending.

  3. [Testing Tool] Added support and comparison of TRADACOMS messages.

  4. [DevOps] Added new public API to fetch information about the ticket and process transport.

  5. [Change Management, UI] Added visual viewer of Iflow BPMN model differences.

Notes for upgrade from 2.14 to 2.15

Notes for upgrade from 2.14 to 2.15
  1. Previous configuration in Figaf Tool hasn’t been affected.

  2. It’s required to process reinitialization operation on Agents page for CPI and API Management agents with configured Git integration. Then, if automatic update of build.gradle, settings.gradle is not configured, copy the content of updated templates build-irt.gradle and settings-irt.gradle to these files manually. Also, copy new parameters from gradle-irt.properties to your gradle.properties.

2.14.1

2.14.1
  1. [Testing Tool, CPI] Added a possibility to keep integration flow in trace mode.

  2. [DevOps, PRO] Added support of import transports with objects which don’t exist in Figaf Tool.

  3. [Change Management] Added a possibility to view object payload without download.

  4. [Testing Tool] Added an option to avoid recalculation of order number for 1→1 relation.

  5. [Testing Tool] Added an option to configure identification of collection items for XML messages.

  6. [DevOps, PRO] Extended CTS+ transports support:

    • CTS+ transport with all its children is saved into one group.

    • CTS+ transport with all its children can be sent to approval, approved, and declined in batch mode.

  7. [Support Tool] Added skipping of alerts if it’s not possible to determine active rule.

  8. [FIX, Testing Tool] Fixed test case extraction for test runs with aggregation.

  9. [FIX, Testing Tool] Fixed a bug when rerun test cases ran test case only on one test system.

  10. [FIX, Change Management, CPI] Fixed parsing of IFlow BPMN model with the wrong position of documentation element.

2.14

2.14
  1. [DevOps,Change Management, PRO] Extended support of File and CTS+ transports in the Figaf Tool DevOps functionality:

    • Added change tracking for File and CTS+ transports.

    • Integrated usage of PRO transport objects in the ticket

  2. [Change Management, CPI] Added possibility to use iflow as a configurable template to create many iflows. See new functionality for distribution configuration to learn more.

  3. [Change Management, CPI] Added possibility to restore last iflow version of deleted iflow.

  4. [Testing Tool] Added possibility to externalize comparison configuration and share it between different scenarios using message+partner+integration object identification. See overview of comparison configuration page to learn more.

  5. [Testing Tool] Optimization of test run/test suite run report generation:

    • New optional report generation strategy replaces Excel report by bundled CSV report which contain 3 files: processed messages report, diff report and test runs metadata report. Enable an option Use bundled CSV report generation strategy on the Application config page. That option will have effect only for new test suite runs or separate test runs.

    • Test run report generation won’t be triggered if at least one of the testing result is scheduled or currently in progress with comparison.

    • Test suite run report generation won’t be triggered if at least one related test run currently is not completed in the active polling or if at least one related test run scheduled or currently in progress with the report generation.

  6. [Testing Tool] Added an option for test runs/test suite runs for re-comparison of testing results in the context of the same test run. It’s possible to skip comparison of all SUCCESS entries or all compared entries.

  7. [Testing Tool] Added a possibility to extract message groups related to chosen results/test runs as new test case(s) from the test run/test suite run pages. Optionally it’s possible to link new test case(s) with the new/existent test suite. It provides a possibility to isolate problematic messages and test them separately without processing of the whole original test case/test suite all time.

  8. [Testing Tool] Added statistics of scheduled/active messages sending/comparisons/report generations for test runs.

  9. [Testing Tool] Added CSV export of Testing tool data with the applied filter for Test Cases, Test Runs, Test Run Results, Test Suites, Test Suite runs.

  10. [Testing Tool] Added support of ignoring options for XML comparison.

  11. [Testing Tool] Added pagination for Test Cases and Test Runs on UI.

  12. [Testing Tool] Updated rerun function in the test suite run. Now it’s possible to select and rerun many test runs at once.

  13. [Testing Tool] Added possibility to resend NOT_SENT messages from test run/test suite run pages.

  14. [FIX, DevOps, Git Integration] Deleted package/object now are also deleted from settings-irt.gradle or settings.gradle.

Notes for upgrade from 2.13 to 2.14

Notes for upgrade from 2.13 to 2.14
  1. Previous configuration hasn’t been affected.

  2. To use restoring of last iflow versions already registered in CTT before upgrade, enable forcible synchronization for related CPI Agent using a function Reset synchronization query on Agent dialog and then process full synchronization (or select required packages). It will download and save iflow bundles in Figaf Tool (that data wasn’t persisted in CTT before 2.14).

  3. Build has data migrations for big Figaf Tool tables. Depending on amount of test run results and test runs in the system, the first bootstrap will take some time. For example, we had a case with 15 min bootstrap time on the instance with 1.5 million testing results.

  4. Critical changes were made in the DevOps and Testing Tool related tables in the database schema. Data migrations are configured to be automatically executed during the first bootstrap.

2.13.8

2.13.8
  1. [Change Management, Git integration, CPI] Added 2 options on Agent to update build.gradle and/or settings.gradle automatically during synchronization.

  2. [FIX, Testing Tool, PRO] Fixed cancellation of EOIO messages. Also added support for cases when sender channel has quality of service EO but outbound message is EOIO.

  3. [FIX, Testing Tool, Change Management,DevOps, Monitoring] Refactored usage of detached transactions in the whole app. They could cause a deadlock in concurrently processed operations when Figaf Tool uses SQL server database.

2.13.7

2.13.7
  1. [FIX, Testing Tool, CPI] Fixed testing (both standard and with mock data) of integration flow with the local subprocess.

2.13.6

2.13.6
  1. [Testing Tool, CPI] Added initial support of iflows with the multiple sender endpoints.

  2. [Testing Tool] Check Testing Results option on Test Run and Test Suite Run now triggers comparison of received results. That also leads to regeneration of test run/test suite run report.

  3. [Testing Tool] Added an option for calculation of alphanumeric order number (by default it extracts digits from the source string).

  4. [Testing Tool] Added an option for recalculation of the order number during manual test case upload.

  5. [DevOps] Test Cases lookup from the Ticket now also works for non-integration object entries attached to the ticket.

  6. [FIX, Monitoring] Fixed a bug when one alert could be handled multiple times due to overlapped scheduled polling.

  7. [FIX, Testing Tool, CPI] Fixed CPI test object determination in the Run On operation (affected in 2.13.5).

  8. [FIX, Testing Tool, Monitoring, CPI] Fixed a bug when it wasn’t possible to register CPI IFlow integration object with the version label greater than 10 characters (also affected alerts handling for such iflows).

2.13.5

2.13.5
  1. [Testing Tool] Consolidated report generation from selected Test Suite Runs. The function is available on the Test Suite Runs page.

  2. [Testing Tool] Test cases migration from PI scenario to CPI iflow. See more details here.

  3. [Testing Tool, UI] Separate page for Test Suite Run. Navigation is available from Test Suite Runs page, Test Suite page (Results History tab), Test Run Details page

  4. [Testing Tool, PRO] Added an option on Test Run Result item to browse related messages from PI Message Monitoring. Available on Test Run Details page.

  5. [Testing Tool, PRO] Added an internal job for checking JMS connection (if JMS integration is enabled and Agent is not virtual) and refreshing JMS context when connection is broken. That job is executed each 5 min by default.

  6. [FIX, Testing Tool, PRO] Fixed a bug when messages received through JMS due to PI redelivery were not filtered.

  7. [FIX, Testing Tool] Fixed X12 message determination for some combinations of segment and element separators.

  8. [FIX, Testing Tool] Fixed EDIFACT/X12 segment comparison for cases when one document has empty segment like PCI' and another document has segment with empty data element like PCI+'.

2.13.4

2.13.4
  1. [Common, UI] Added possibility to configure mapping between SAP username to Figaf Tool username on User Details dialog to show Figaf Tool username in the Created By, Changed By and Deployed By columns of CTT and Integration object tables.

  2. [FIX, CPI, UI] Fixed IFlow deployment status on Integration objects page.

2.13.3

2.13.3
  1. [Change Management, CPI] Added an option to synchronize only objects from selected packages.

  2. [FIX, Operations, Monitoring, CPI] Fixed the max length of condition parameter.

  3. [FIX, Operations, Monitoring] Fixed usage of emailTo parameter from application settings instead of email integration entry during alert notification.

2.13.2

2.13.2

If you have CPI landscapes created in 2.13 and older versions, since 2.13.2 it’s possible to use them again. Just open landscape and reconfigure approval and deployment settings. Notice that unfinished transports must be deleted or cancelled.

  1. [DevOps] Added possibility to update approval and deployment settings in the existent landscape.

  2. [DevOps] Added and configured new user roles for DevOps operations.

  3. [UI] Landscapes configuration is moved to Configuration section.

  4. [Change Management, Git integration, CPI] Added configuration of additional Gradle modules layer for packages. As a result, now it’s possible to perform CPI/IRT plugin tasks at the package level.

Remove the file settings-irt.gradle in the branch, configured in Figaf Tool, or remove all iflow module definitions from it. It must be done because new modules have different naming. Folder structure is not changed.

  1. [FIX,DevOps, Change Management, CPI] Fixed a bug when unprocessed tracked objects were marked as deleted unexpectedly after transport.

  2. [FIX,DevOps, CPI] Fixed deployment of value mapping after transport.

  3. [FIX,Testing Tool, PRO] Fixed recording request creation for dualstack systems (affected in 2.13.1).

2.13.1

2.13.1
  1. [DevOps, CPI] Changed the behavior of transport flow for CPI objects. Previously, during each import it always took the state of an object from the first system in the landscape. Now it takes the state of the previously transported object. So, having the landscape DEV → QA → PROD, import from QA to PROD will take an object state from QA instead of the DEV. Transport configuration will be applied as usual.

  2. [DevOps, CPI] Review is configurable now for each landscape item separately instead of the global config.

  3. [DevOps, CPI] Only transport reviewers are able to process import on the target system. It has an effect only when the review is configured.

  4. [DevOps, CPI] Added an option on landscape item to deploy artifacts after transport. By default deployment is disabled.

  5. [FIX, DevOps, CPI] Fixed a bug when it wasn’t possible to process import if transport contains object versions which already exist on target system. Now transport of these objects is skipped, after that transport items are linked with already existent versions in CTT.

2.13

2.13
  1. [Common, UI] Now it’s easier to get started with tool. Both login with the default user, guides to get started with adding license and agents. Updated tours to see the tool in action.

  2. [Testing Tool] Improved EDIFACT comparison and ignoring of specific segments/fields.

  3. [Testing Tool, PRO] Added a possibility to test aggregation scenarios. For now only integration through SAP Log Module is available. Test cases must be loaded manually.

  4. [Testing Tool] Added an option on Agent to control a max amount of test messages to be sent to Agent system per defined interval (configured as cron expression).

  5. [Testing Tool, PRO] Added an option to test on decentral adapter engine.

  6. [Testing Tool, PRO] Added a possibility to test BE scenarios with mock data on PRO systems.

  7. [Testing Tool, PRO] Support of sender agreements with EDI separator and fix of testing with sender modules in case of EDI separator flow.

  8. [Change Management, CPI] Added change tracking for packages, value mappings and documents.

  9. [DevOps, CPI] Added transport of packages and value mappings.

  10. [Monitoring, CPI] Added monitoring of persisted messages in the Message Monitor

  11. [Change Management, Git integration, CPI, API Mgmt] Added an option on Agent to prevent commits of iflow/api proxy changes during synchronization in Figaf Tool to avoid duplication of changes committed by user and Figaf Tool.

Notes for upgrade from 2.12 to 2.13

Notes for upgrade from 2.12 to 2.13
  1. Previous configuration hasn’t been affected.

  2. Critical changes were made in the CPI related tables in the database schema. Old table for integration packages are no longer used and will be deleted automatically once data migration is finished.

2.12.2

2.12.2
  1. [Testing Tool, CPI] Implemented recording and testing of integration flows on CPI system with confidential data.

  2. [Common] Default timezone is switched to GMT in the license validation.

  3. [FIX, Testing Tool, PRO] Fixed a bug with encoding of special characters in recorded payloads when SAP Log Module integration is used.

  4. [FIX, Testing Tool, PRO] Fixed a bug when it wasn’t possible to parse XI message during recording using SAP Log Module integration if that XI message didn’t have a default payload attachment name equal to MainDocument.

2.12.1

2.12.1
  1. [FIX, Testing Tool, PRO] Fixed a bug when it wasn’t possible to find messages on dualstack system for plain scenarios with only one message entry.

2.12

2.12
  1. [Testing Tool,PRO] Implemented recording of Receiver Determination objects (dualstack). See that section to learn more.

  2. [Testing Tool, PRO] Implemented recording and testing of asynchronous scenarios (plain EO/EOIO) on PRO system with confidential data. See that section to learn more.

  3. [DevOps,PRO] Implemented transport of Sender/Receiver agreement.

  4. [Change Management, Agent Synchronization, PRO] Added change tracking of receiver determination and interface determination objects (dualstack).

  5. [Change Management, Agent Synchronization, PRO] Improved synchronization algorithm to handle large data set from SimpleQuery.

  6. [Change Management, Agent Synchronization, PRO] Synchronization of external messages and operations is processed during the synchronization of external definitions and service interfaces. It speeds up the process, because external messages and operations are inner objects.

  7. [Common] Added configuration to support Java 11 runtime. See that section to learn more.

  8. [UI] UI5 libraries now are embedded within the Web application (as dependencies), now there is no requirement for having access to cloud distribution of OpenUI5.

Notes for upgrade from 2.11 to 2.12

Notes for upgrade from 2.11 to 2.12
  1. Previous configuration hasn’t been affected.

  2. No critical changes were made in the database schema.

2.11.6

2.11.6
2.11.6 has a data migration for external message/operation CTT objects, it can take some time depending on count of PRO agents and total count of external message/operation objects which were previously synchronized . [CTT, PRO] Optimization for synchronization and data storage: payloads of external messages and operation objects now are not loaded from PI system during synchronization, because they are identical to payloads of related external definition/service interface objects. . [CTT, CPI] Added runtime generation of simplified IFlow model, also added possibility to compare simplified models instead of standard BPMN models. It gives better way to see, what has been changed in the IFlow structure. . [FIX, Testing] Fixed a bug when test suites were not run by scheduler if at least one object in any test suite is not licensed for testing. . Many minor fixes and improvements

2.11.5

2.11.5
  1. [CTT] Added a new option on PRO Agent for synchronizing SAP ESR objects on demand. Use it if SimpleQuery can’t load metadata for all objects of any ESR type (in most cases Data Type) or if you don’t want to synchronize such objects at all.

  2. [DevOps] Information about last ticket run is added on the ticket page (see Last Testing Result tab)

  3. Some minor fixes and improvements

2.11.4

2.11.4
  1. [Common] Added alternative way for requesting object licenses when Java doesn’t have access to network. It’s enough to have access to https://app.figaf.com/irt-lic/#/ in the browser. You just need to copy provided request in Figaf Tool and use it on license server UI.

  2. Some minor fixes and improvements on UI.

2.11.3

2.11.3
  1. [Common] Improved UI for requesting object licenses.

  2. [FIX, DevOps] Fixed a bug when some ESR objects on target system were not linked with the ticket after transport (transport finished successfully).

  3. [FIX, Security] Email check during authorization now is case insensitive.

2.11.2

2.11.2
  1. [FIX, UI] Fixed a bug when landscapes were not loaded on the Create ticket dialog on the tickets page.

2.11.1

2.11.1
  1. [Common] Added possibility to request missing object licenses from license error dialog.

  2. [FIX, DevOps] Fixed a bug when transports created for several tickets at the same time were not linked with each other

  3. [FIX,DevOps, PRO] Fixed a bug when all business component’s channels were attached to the ticket during dependent objects attachment. As a result, ticket has too many attached channels instead of used by chosen scenario. Now it doesn’t take channels for components/systems or components/systems for parties during dependent object lookup.

  4. Some minor fixes and improvements on UI.

2.11

2.11
  1. [DevOps] New development and transport workflow. See that section to learn more.

  2. [DevOps] New migration workflow which simplifies e2e migration between 2 landscapes. Write to [email protected] to get a demo or support with configuration.

  3. [Common] Licensing model has been changed to fit requirements of the new functionality. If you already have an Figaf Tool with old license, see notes for upgrade to 2.11 below.

Notes for upgrade from 2.10 to 2.11

Notes for upgrade from 2.10 to 2.11
  1. Transport configuration has completely new model in 2.11 and it’s not possible to migrate old data, so, existing entries will be deleted.

  2. Critical changes were made in the tables related to DevOps functionality, the Testing Tool and Monitoring hasn’t been affected, small changes were made in CTT tables.

  3. Old installed license will no longer be used by the app, contact [email protected] to migrate your existent license to the new format.

2.10.6

2.10.6
  1. [Testing Tool, UI] New generic Test Suite Runs page under Testing Tool section.

  2. [FIX] Fixed alerts cleaner task.

  3. [FIX,PRO] Fixed a bug where communication channel update failed due to wrongly decoded characters.

2.10.5

2.10.5
  1. [FIX, CPI] Fixed propagation of original vendor and description during transport of integration flow.

  2. [FIX, CPI] Fixed determination of start event during test object creation. If integration flow had a local subprocess or exception subprocess, test object wasn’t not created properly. Current limitation - integration flows with several sender endpoints won’t be tested correctly, support of current case is scheduled for future releases.

  3. [FIX, CPI] Fixed a bug related to generated common testing classes for groovy scripts unit testing, where common tests failed when script doesn’t use messageLogFactory (added lenient = true to the mock).

2.10.4

2.10.4
  1. [FIX, PRO] Fixed a behavior of option Don’t send message after testing for BE scenarios. Now Agent Component throws an exception after 2nd stage (After Mapping) and Testing Result for 4th stage (After Result Mapping) is not registered in the test run at all, so, it won’t be compared.

2.10.3

2.10.3
  1. [FIX] Fixed missing default value for run_with_mock_data field for existent Test Suites (reproduced on MS SQL Server). Affected in 2.9.

2.10.2

2.10.2
  1. [DevOps, Testing Tool, CPI] Added messageLogFactory and messageLog mock objects to common module for unit testing of groovy scripts.

  2. [Testing Tool, PRO] Added support for Sender and Receiver agreements (Java stack) in the manual test case creation.

  3. [Testing Tool, UI] New generic Test Cases page under Testing Tool section.

  4. [FIX,Testing Tool, PRO] Fixed selectors for manual test case creation through archive upload. Now it’s possible to assign all needed interfaces and components.

  5. [FIX,Change Management, Agent Synchronization, PRO] Fixed wrong link to business component when channel has a * in the name.

  6. [FIX,Change Management, Agent Synchronization, PRO] Fixed missing link to business systems for communication channels.

2.10.1

2.10.1
  1. [DevOps, Testing Tool, CPI] Added a function for generating test data and unit tests for groovy scripts, defined in the integration flow. You can learn more here.

  2. [Operations, Monitoring] Added a Test function for rule external integrations (email and https).

  3. [Operations, Monitoring, UI] Improved Rules and Alerts UI.

  4. [Testing Tool, PRO] Added possibility to create test case manually using only UI form (it’s an alternative approach).

  5. [Testing Tool, CPI] Added possibility to run test cases and test suites on virtual landscape systems.

  6. [FIX] Fixed a bug when only default support rule was linked with new alerts (affected in 2.10).

  7. [FIX, Testing Tool] Fixed a bug where Test Suite excel reports were not sent to specified email correctly.

2.10

2.10
  1. [Change Management] Git integration for CPI and Api Management Agents. See that section to learn more.

  2. [Operations, Monitoring] Possibility to send alert attachments through email or webhooks integration.

  3. [Testing Tool] Possibility to mark Agent system as a Production system. It prevents testing on chosen Agent system.

Notes for upgrade from 2.9 to 2.10

Notes for upgrade from 2.9 to 2.10
  1. Previous configuration hasn’t been affected.

  2. No critical changes were made in the database schema.

2.9.1

2.9.1
  1. [FIX, Operations, Transport] Fixed a bug when post synchronization failed if only ESR objects are transported.

  2. [FIX, Testing] Fixed a bug when test suites couldn’t be run by a scheduled job.

2.9

2.9
  1. [Change Management] Added implementation of CPI shared resources (scripts, mappings, schemas, archives). There are many places where it makes sense to have scripts that are being used in multiple iflows. But if you want to make a change to the script you will end up with separate versions. It can be a pain to maintain it and also test it. We have added an option to take a script and turn it into a shared resource. You can then add this shared script to your iflows. If you make a modification to it the new version can easily be applied to all iflows where it is used. It will also allow you to test the change in all your iflows. You can learn more about new feature here.

  2. [Testing] Added possibility to test CPI iflows with mock data. Over the last year, we have improved the way we make it possible to test your CPI iflows. Now we have added a new option to test with a mock service hosted by the Figaf Tool application. Figaf Tool will then make a copy of the iflow you want to test. All Request Reply connections will be replaced with a call to the Figaf Tool mock data service that will respond with what needed changes in headers and payload. It means that it will be a lot easier to run a test for scripts or configurations that have been changed. If you own to use Figaf Tool hosted on your own environment you will need to specify cloud connector information to access Figaf Tool. Learn more here.

  3. [Operations, Transport] Added a warning if a secure resource like password or certificate is are not available on the target instance. In Figaf Tool you can configure which password/certificate properties you want across the landscape. So when you transport across the landscape you will see if the values are there.

  4. [Operations, Transport, Testing] Added improvement to the virtual SAP CPI landscape, so you can run Dev and QA on the same system. That way you can save a CPI system. Figaf now supports the Process Direct adapter in virtual environment, so you also will be able to test that functionality.

  5. [UI] Testing Templates have been renamed to Testing Suites, because it is a more standard name for grouping a set of test cases.

Notes for upgrade to 2.9

Notes for upgrade to 2.9
  1. Previous configuration hasn’t been affected.

  2. No critical changes were made in the database schema.

2.8.2

2.8.2
  1. [FIX, Testing] Fixed a bug when test case report generation was processing infinitely if any test run result doesn’t have a link to inbound message. Current state in general is unexpected.

2.8.1

2.8.1
  1. [FIX, Common] Fixed a bug when it wasn’t possible to delete CPI Agent if at least one metric has been registered by SAP System Monitoring.

  2. [FIX, Transport] Fixed a bug when it wasn’t possible to define P4 host for PRO Agent if Agent Component integration type is not used.

2.8

2.8
  1. [Operations, Transport] Added support for PRO transports (file and CTS), added possibility to configure channels during transport. You can learn more about new feature here.

  2. [Change Management] Added documentation of Figaf Tool tickets. This is an excel report which contains common ticket metadata, attached object versions, related integration objects, result of the latest ticket run and information about processed transports.

  3. [Change Management] Added documentation of CPI Integration Flows.

  4. [Operations, Monitoring] Added alerting for CPI Tenants status monitoring events.

  5. [Operations, Monitoring] Added possibility to mute identical alerts for defined period of time.

  6. [Operations, Monitoring] Added a scheduled task for alerts deletion. User can configure it on Application Configuration page. By default, alerts are stored for 90 days.

  7. [UI] Home page has been changed. Now in addition to the menu tiles it contains a list of configured landscapes with most used links per each Agent system in the landscape. You can find more information here.

Notes for upgrade from 2.7 to 2.8

Notes for upgrade from 2.7 to 2.8
  1. Timezone parameter has been added to PRO agents. New transport functionality requires this parameter for correct object version identification. SimpleQuery API doesn’t have information about timezone in the response, all dates are sent in local datetime format. It’s strongly recommended to configure that new parameter properly even if transport functionality in the Figaf Tool won’t be used for a while or when your Agent system is hosted in the same timezone as Figaf Tool. The new parameter has default settings: GMT timezone. Configuration of timezone parameter should also be done in GMT format: GMT+2, GMT-5, etc. Agent timezone can be found on NetWeaver Administrator page (/nwa).

  2. Critical changes were made in the previously released features:

    • Metrics (affected database schema and model in CPI Tenants status monitoring, irt-2.7).

    • Transport configuration (affected database schema and model in CPI IFlow transports, irt-2.6).

2.7.2

2.7.2
  1. [FIX, Testing] Fixed null pointer exception during checking of MigrationHelper scenario (PRO, affected in 2.7.1)

  2. [FIX, Change Management] Fixed missing updates during PRO synchronization due to wrong time zones used in SimpleQuery. Correct Agent system timezone must be configured manually on Agent dialog. Default value is GMT.

2.7.1

2.7.1
  1. [FIX, Testing] Link to folder now is not lost after channel update

2.7

2.7
  1. [Change Management,Operations, Transport, Monitoring] Added support of API Management agents, added change management, monitoring and transport for API Proxies with their related resources (policies, endpoints, etc.). You can learn more about API Proxy change management and transport here, about monitoring of API Proxies - here.

  2. [Operations, Monitoring] CPI Tenants status monitoring. It includes several metrics such as CPU/Memory usage, iflow latency, processed messages. You can learn more about that new feature here.

  3. [Operations, Monitoring] Runtime Message Monitor for CPI Agents, in addition to the possibility to define flexible filters, it allows you to configure role-based access to these filters and decide which Figaf Tool user can access to exact filter and what kind of access: browsing messages metadata only or with attachments as well. You can learn more about it here.

  4. [Operations, Monitoring] New alerting engine in Figaf Tool. We improved its performance and throughput, made alert metadata structured, improved determination of Tracked Objects and Integration Objects (depending on alert type and system type). Since an alert is a temporary entity and doesn’t require long storage, we decided to clear them all during automated database migration because it’s not possible to correctly migrate old alerts (and actually, it doesn’t make sense). In the future releases we are going to improve post processing actions for alerts and provide a flexible strategies for notification and reprocessing (when it’s actual).

  5. [Change Management] Test Cases coverage for PRO Agents. We improved operation mapping usage report and added additional information about actual test cases coverage and usage statistics for communication channels. You can learn more about new feature here.

  6. [Testing] Integration with new Process Integration Testing tool, provided by SAP in SP14. For now it’s possible to create PIT test case from testing template run in Figaf Tool. You can learn more about it here.

  7. [Testing] Added native support for regression testing of IFlows with Process Direct sender for CPI Agents. It uses special infrastructure IFlow with HTTPS sender and Process Direct receiver instead of copying full source IFlow and replacing its sender side by HTTPS sender (old approach). For now that infrastructure IFlow should be configured manually.

2.6.2, 2.6.3, 2.6.4

2.6.2, 2.6.3, 2.6.4
  1. [Migration from Figaf Tool 1.4.*/1.5.*] Improved migration functionality, fixed some bugs

2.6.1

2.6.1
  1. [FIX, Security] Custom roles check during authorization

2.6

2.6
  1. [Security] Custom API-key authentication approach has been replaced by OAuth 2.0.

  2. [Operations, Transport] Transport functionality for Integration Flows on CPI Agents. Possibility to define custom IFlow configuration which is applied during transport.

  3. [Operations, Monitoring] Reprocessing of CPI alerts. You need to add our script to the IFlow at the specific places, that script saves needed header properties and the payload of the message. Then it is possible to reprocess an alert and resend failed message again to the origin endpoint.

  4. [Operations, Monitoring] Improved performance of alerts handling.

  5. [Operations, Monitoring] Possibility to trigger alerts lookup for chosen consumer manually.

  6. [Change Management] Possibility to build and download documentation of Integrated Configurations (PRO systems).

  7. [FIX, Change Management] Restoring of previously deleted tracked objects. When some object is deleted on SAP system, it’s marked as deleted in Figaf Tool. Then if you create a new object with the same name again, it will be added as a new version in Figaf Tool after synchronization with a link to the previous version, so, the history of your changes won’t be lost.