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. For CPI IFlow objects Initialize inbound order number from SAP_ApplicationID configures order numbers initialization for inbound messages using SAP_ApplicationID (see e2e flow description here).

      2. For CPI IFlow objects Ignore messages from not standard sender adapters enables ignoring of processes related to sender adapters not supported natively during recording and test case running.

        Figaf Tool supports testing of several adapters natively (i.e. messages are sent directly to the sender endpoint):

        • HTTPS - except certificate authentication case

        • SOAP

        • IDOC

        • XI

        • Process Direct - through Figaf HTTP to ProcessDirect IFlow from the package Connector for Figaf DevOps Tool

        • JMS - through Figaf HTTP to JMS IFlow from the package Connector for Figaf DevOps Tool

        To test IFlows with other sender adapter types Figaf Tool makes their copy and replaces sender side by HTTPS. You can prevent it by enabling that option. Then messages related to adapters that are not in the list above will be ignored during the polling. As a result, it will be possible to test only parts of IFlow that can be triggered by standard adapter.

        To use that feature efficiently, split sender side of your IFlow into 2 parts if it’s not done yet:

        1. Original not standard sender adapter → Process Direct receiver

        2. Process Direct sender → remaining part of IFlow

        Side effect of that approach - exchange properties that are set by original adapter will not be propagated further because their scope of visibility is only one integration process. Validate that you don’t have dependency on them in remaining part of IFlow. Some adapters add both headers and exchange properties together with same values, so, it’s possible to rely on headers only.

        With that design Figaf Tool will record and test only the second part that starts from Process Direct sender, leaving the original sender side. Inbound message would be the first traced message in the second integration process.

        Although a validation of the case when there are no chances to record anything was added (for example if IFlow doesn’t have any standard sender endpoints), it’s not possible to validate fully when IFlow has several integration processes and mix of standard and not standard sender adapters. Actual message processing path may depend on conditions and finally don’t trigger any of standard sender adapter parts inside the IFlow. You will see in polling traces that all messages are skipped in that case.

        That option has no effect in case of testing with mock data - copied mock IFlow will be created either way.

      3. For IFlow Chain objects Sender IFlow configures sender IFlow in the chain, Chained IFlows configures IFlows following Sender IFlow in the chain.

  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 in hours to define an expected period of recording.

        The setting per unique message/partner combination doesn’t influence on recording results directly it takes effect during test case creation. Test cases will be created for each unique message/partner combination.

        For example, if 10 message groups are recorded, 2 of them for one message/partner combination, 3 - for another one message/partner combination, 5 - for one more message/partner combination. If per unique message/partner combination is enabled, then 3 tests cases will be created with 2, 3 and 5 message groups, but if per unique message/partner combination is disabled, then 1 test case will be created with 10 message groups.

      • 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.

        Message Expression and Partner Expression configuration

        The values configured in Message Expression and Partner Expression vary depending on the use case. For example, here is the payload:

        <?xml version="1.0" encoding="UTF-8"?>
        <ORDERS05>
        	<IDOC BEGIN="1">
        		<EDI_DC40 SEGMENT="1">
        			<TABNAM>EDI_DC40</TABNAM><MANDT>100</MANDT><DOCNUM>8079676856371000</DOCNUM><DOCREL>1809_FPS02</DOCREL>
        			<STATUS>30</STATUS><DIRECT>2</DIRECT><IDOCTYP>ORDERS05</IDOCTYP><MESTYP>ORDERS</MESTYP>
        			<SNDPOR>SAPAEP</SNDPOR><SNDPRT>US</SNDPRT><SNDPRN>COLGATENL</SNDPRN><RCVPOR>POIDOC_B2B</RCVPOR><RCVPRT>KU</RCVPRT><RCVPRN>ALR_GLOBAL</RCVPRN>
        			<CREDAT>20251203</CREDAT><CRETIM>080408</CRETIM><SERIAL>20251203080408</SERIAL>
        		</EDI_DC40>
        		<E1EDK01 SEGMENT="1"><ACTION>004</ACTION><CURCY>EUR</CURCY><ZTERM>1450</ZTERM><BSART>DFUE</BSART><BELNR>0022455580</BELNR><RECIPNT_NO>0003011523</RECIPNT_NO><KZAZU>X</KZAZU></E1EDK01>
        		<E1EDK03 SEGMENT="1"><IDDAT>002</IDDAT><DATUM>20251203</DATUM></E1EDK03>
        		<E1EDK03 SEGMENT="1"><IDDAT>012</IDDAT><DATUM>20251203</DATUM></E1EDK03>
        		<E1EDK02 SEGMENT="1"><QUALF>001</QUALF><BELNR>4504690253</BELNR><DATUM>20251203</DATUM></E1EDK02>
        		<E1EDK02 SEGMENT="1"><QUALF>002</QUALF><BELNR>0022455580</BELNR><DATUM>20251203</DATUM></E1EDK02>
        		<E1EDKA1 SEGMENT="1"><PARVW>AG</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDKA1 SEGMENT="1"><PARVW>RE</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDKA1 SEGMENT="1"><PARVW>LF</PARVW><PARTN>AT01</PARTN><NAME1>Alora Österreich GmbH</NAME1><ORT01>Bludenz</ORT01><PSTLZ>6700</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDKA1 SEGMENT="1"><PARVW>WE</PARVW><PARTN>0002064128</PARTN><NAME1>Wolf Systembau GesmbH</NAME1><ORT01>Scharnstein</ORT01><PSTLZ>4644</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDP01 SEGMENT="1">
        			<POSEX>000010</POSEX><MENGE></MENGE><MENEE></MENEE><VPREI></VPREI><NETWR>0</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
        		</E1EDP01>
        		<E1EDP01 SEGMENT="1">
        			<POSEX>000020</POSEX><MENGE>1</MENGE><MENEE>PCE</MENEE><VPREI>417486306</VPREI><NETWR>417486306</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
        			<E1EDP02 SEGMENT="1"><QUALF>001</QUALF><BELNR>0099218813-0033789454-000010</BELNR><DATUM>20251203</DATUM></E1EDP02>
        			<E1EDP19 SEGMENT="1"><QUALF>001</QUALF><IDTNR>11060123</IDTNR></E1EDP19>
        			<E1EDP19 SEGMENT="1"><QUALF>002</QUALF><IDTNR>421456</IDTNR></E1EDP19>
        			<E1EDPT1 SEGMENT="1"><TDID>0001</TDID><TSSPRAS>D</TSSPRAS><TSSPRAS_ISO>DE</TSSPRAS_ISO>
        				<E1EDPT2 SEGMENT="1"><TDLINE>Test Product 1 line 1:Test Product 1 line 2</TDLINE><TDFORMAT>*</TDFORMAT></E1EDPT2></E1EDPT1>
        		</E1EDP01>
        	</IDOC>
        </ORDERS05>

        Then Message Expression can be set to //IDOCTYP (xpath expression) or ORDERS05 (text) and Partner Expression - //RCVPOR. If //RCVPOR varies for different receiver interfaces, then it will work per message/partner identification.

        If xpath expression should be used for inbound message, then just configure the expression. If xpath expression should be used for outbound message, then add {{OUT}} to the end of expression (e.g. //RCVPOR{{OUT}}). The expression will be used for the first outbound message if there are several outbound messages.

      • 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.

        Order expressions configuration

        The value configured in Order expressions vary depending on the use case. For example, here is the payload:

        <ns1:MT_StoreOpeningHoursDb xmlns:ns1="http://magno.ch/web">
            <StatementName>
                <STN_OPENTIME action="UPDATE_INSERT">
                    <table>STN_OPENTIME</table>
                    <access>
                        <STN_ID>6505</STN_ID>
                        <BUS_TYPE>CARWASH</BUS_TYPE>
                        ...
                    </access>
                    <key>
                        <STN_ID>6505</STN_ID>
                        <BUS_TYPE>CARWASH</BUS_TYPE>
                    </key>
                </STN_OPENTIME>
            </StatementName>
        </ns1:MT_StoreOpeningHoursDb>

        Then Order expressions can be set to //STN_ID. If //STN_ID has the same value for several messages and combination of //STN_ID and //BUS_TYPE varies, then expression could be concat(//access/STN_ID, //access/BUS_TYPE).

      • 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.

      • Record BI caption for inbound messages forcibly is used to record BI message instead of irtLogStage1. Supported only for SAP Log Module message retrieving way.

    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.

        Message Expression and Partner Expression configuration

        The values configured in Message Expression and Partner Expression vary depending on the use case. For example, here is the payload:

        <?xml version="1.0" encoding="UTF-8"?>
        <ORDERS05>
        	<IDOC BEGIN="1">
        		<EDI_DC40 SEGMENT="1">
        			<TABNAM>EDI_DC40</TABNAM><MANDT>100</MANDT><DOCNUM>8079676856371000</DOCNUM><DOCREL>1809_FPS02</DOCREL>
        			<STATUS>30</STATUS><DIRECT>2</DIRECT><IDOCTYP>ORDERS05</IDOCTYP><MESTYP>ORDERS</MESTYP>
        			<SNDPOR>SAPAEP</SNDPOR><SNDPRT>US</SNDPRT><SNDPRN>COLGATENL</SNDPRN><RCVPOR>POIDOC_B2B</RCVPOR><RCVPRT>KU</RCVPRT><RCVPRN>ALR_GLOBAL</RCVPRN>
        			<CREDAT>20251203</CREDAT><CRETIM>080408</CRETIM><SERIAL>20251203080408</SERIAL>
        		</EDI_DC40>
        		<E1EDK01 SEGMENT="1"><ACTION>004</ACTION><CURCY>EUR</CURCY><ZTERM>1450</ZTERM><BSART>DFUE</BSART><BELNR>0022455580</BELNR><RECIPNT_NO>0003011523</RECIPNT_NO><KZAZU>X</KZAZU></E1EDK01>
        		<E1EDK03 SEGMENT="1"><IDDAT>002</IDDAT><DATUM>20251203</DATUM></E1EDK03>
        		<E1EDK03 SEGMENT="1"><IDDAT>012</IDDAT><DATUM>20251203</DATUM></E1EDK03>
        		<E1EDK02 SEGMENT="1"><QUALF>001</QUALF><BELNR>4504690253</BELNR><DATUM>20251203</DATUM></E1EDK02>
        		<E1EDK02 SEGMENT="1"><QUALF>002</QUALF><BELNR>0022455580</BELNR><DATUM>20251203</DATUM></E1EDK02>
        		<E1EDKA1 SEGMENT="1"><PARVW>AG</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDKA1 SEGMENT="1"><PARVW>RE</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDKA1 SEGMENT="1"><PARVW>LF</PARVW><PARTN>AT01</PARTN><NAME1>Alora Österreich GmbH</NAME1><ORT01>Bludenz</ORT01><PSTLZ>6700</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDKA1 SEGMENT="1"><PARVW>WE</PARVW><PARTN>0002064128</PARTN><NAME1>Wolf Systembau GesmbH</NAME1><ORT01>Scharnstein</ORT01><PSTLZ>4644</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
        		<E1EDP01 SEGMENT="1">
        			<POSEX>000010</POSEX><MENGE></MENGE><MENEE></MENEE><VPREI></VPREI><NETWR>0</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
        		</E1EDP01>
        		<E1EDP01 SEGMENT="1">
        			<POSEX>000020</POSEX><MENGE>1</MENGE><MENEE>PCE</MENEE><VPREI>417486306</VPREI><NETWR>417486306</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
        			<E1EDP02 SEGMENT="1"><QUALF>001</QUALF><BELNR>0099218813-0033789454-000010</BELNR><DATUM>20251203</DATUM></E1EDP02>
        			<E1EDP19 SEGMENT="1"><QUALF>001</QUALF><IDTNR>11060123</IDTNR></E1EDP19>
        			<E1EDP19 SEGMENT="1"><QUALF>002</QUALF><IDTNR>421456</IDTNR></E1EDP19>
        			<E1EDPT1 SEGMENT="1"><TDID>0001</TDID><TSSPRAS>D</TSSPRAS><TSSPRAS_ISO>DE</TSSPRAS_ISO>
        				<E1EDPT2 SEGMENT="1"><TDLINE>Test Product 1 line 1:Test Product 1 line 2</TDLINE><TDFORMAT>*</TDFORMAT></E1EDPT2></E1EDPT1>
        		</E1EDP01>
        	</IDOC>
        </ORDERS05>

        Then Message Expression can be set to //IDOCTYP (xpath expression) or ORDERS05 (text) and Partner Expression - //RCVPOR. If //RCVPOR varies for different receiver interfaces, then it will work per message/partner identification.

        If xpath expression should be used for inbound message, then just configure the expression. If xpath expression should be used for outbound message, then add {{OUT}} to the end of expression (e.g. //RCVPOR{{OUT}}). The expression will be used for the first outbound message if there are several outbound messages.

      • 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.

        Order expressions configuration

        The value configured in Order expressions vary depending on the use case. For example, here is the payload:

        <ns1:MT_StoreOpeningHoursDb xmlns:ns1="http://magno.ch/web">
            <StatementName>
                <STN_OPENTIME action="UPDATE_INSERT">
                    <table>STN_OPENTIME</table>
                    <access>
                        <STN_ID>6505</STN_ID>
                        <BUS_TYPE>CARWASH</BUS_TYPE>
                        ...
                    </access>
                    <key>
                        <STN_ID>6505</STN_ID>
                        <BUS_TYPE>CARWASH</BUS_TYPE>
                    </key>
                </STN_OPENTIME>
            </StatementName>
        </ns1:MT_StoreOpeningHoursDb>

        Then Order expressions can be set to //STN_ID. If //STN_ID has the same value for several messages and combination of //STN_ID and //BUS_TYPE varies, then expression could be concat(//access/STN_ID, //access/BUS_TYPE).

      • 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 can’t be set.

      • Run steps selection strategy and Run steps filter configure steps which should be recorded. Since 2209 it’s possible to configure run steps filter in BPMN Model with viewer dialog clicking on configuration button.

        If it’s IFlow Chain object, it’s possible to configure Run steps filter for each IFlow used in IFlow Chain separately.
  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.

          • @<xml_attribute> which configures ignoring of some particular xml attribute differences.

      Examples:

      • Only XPath expression: //targetElem.

      • XPath expression with additional ignoring options: /targetElem{empty-missing,%.3f}.

      • XML attribute ignoring: /targetElem/@id.

    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. Define headers from inbound message to send forcibly enables forcible sending of headers configured in Headers to send forcibly field.

      The feature works only for IFlows having not standard sender channel. Then a copy IFlow (with replaced sender) will be created and have ProcessDirect sender if the headers are defined. Otherwise copy IFlow will be not created (when standard sender channel) or created with HTTP sender, that doesn’t support a possibility to send some specific headers (e.g. Camel headers), will be created.
    10. Use alphanumeric order number enables calculation of order number as a string instead of a number.

    11. 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).

    12. 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.

    13. Ignore XML attributes configures XML attributes ignoring during comparison.

    14. XML attributes comparison configures separate XML attributes comparison.

    15. Trim whitespaces before XML comparison enables ignoring whitespaces during comparison of XML payloads. By default, option is enabled.

    16. 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 Agent 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.

    17. 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. 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 can’t be set.

      4. Run steps selection strategy and Run steps filter configure steps which should be tested. Since 2209 it’s possible to configure run steps filter in BPMN Model with viewer dialog clicking on configuration button.

        If it’s IFlow Chain object, it’s possible to configure Run steps filter for each IFlow used in IFlow Chain separately.
  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 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 Agent 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 Agent 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 Agent 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 in hours to define an expected period of recording.

            The setting per unique message/partner combination doesn’t influence on recording results directly it takes effect during test case creation. Test cases will be created for each unique message/partner combination.

            For example, if 10 message groups are recorded, 2 of them for one message/partner combination, 3 - for another one message/partner combination, 5 - for one more message/partner combination. If per unique message/partner combination is enabled, then 3 tests cases will be created with 2, 3 and 5 message groups, but if per unique message/partner combination is disabled, then 1 test case will be created with 10 message groups.

          • 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.

            Message Expression and Partner Expression configuration

            The values configured in Message Expression and Partner Expression vary depending on the use case. For example, here is the payload:

            <?xml version="1.0" encoding="UTF-8"?>
            <ORDERS05>
            	<IDOC BEGIN="1">
            		<EDI_DC40 SEGMENT="1">
            			<TABNAM>EDI_DC40</TABNAM><MANDT>100</MANDT><DOCNUM>8079676856371000</DOCNUM><DOCREL>1809_FPS02</DOCREL>
            			<STATUS>30</STATUS><DIRECT>2</DIRECT><IDOCTYP>ORDERS05</IDOCTYP><MESTYP>ORDERS</MESTYP>
            			<SNDPOR>SAPAEP</SNDPOR><SNDPRT>US</SNDPRT><SNDPRN>COLGATENL</SNDPRN><RCVPOR>POIDOC_B2B</RCVPOR><RCVPRT>KU</RCVPRT><RCVPRN>ALR_GLOBAL</RCVPRN>
            			<CREDAT>20251203</CREDAT><CRETIM>080408</CRETIM><SERIAL>20251203080408</SERIAL>
            		</EDI_DC40>
            		<E1EDK01 SEGMENT="1"><ACTION>004</ACTION><CURCY>EUR</CURCY><ZTERM>1450</ZTERM><BSART>DFUE</BSART><BELNR>0022455580</BELNR><RECIPNT_NO>0003011523</RECIPNT_NO><KZAZU>X</KZAZU></E1EDK01>
            		<E1EDK03 SEGMENT="1"><IDDAT>002</IDDAT><DATUM>20251203</DATUM></E1EDK03>
            		<E1EDK03 SEGMENT="1"><IDDAT>012</IDDAT><DATUM>20251203</DATUM></E1EDK03>
            		<E1EDK02 SEGMENT="1"><QUALF>001</QUALF><BELNR>4504690253</BELNR><DATUM>20251203</DATUM></E1EDK02>
            		<E1EDK02 SEGMENT="1"><QUALF>002</QUALF><BELNR>0022455580</BELNR><DATUM>20251203</DATUM></E1EDK02>
            		<E1EDKA1 SEGMENT="1"><PARVW>AG</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDKA1 SEGMENT="1"><PARVW>RE</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDKA1 SEGMENT="1"><PARVW>LF</PARVW><PARTN>AT01</PARTN><NAME1>Alora Österreich GmbH</NAME1><ORT01>Bludenz</ORT01><PSTLZ>6700</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDKA1 SEGMENT="1"><PARVW>WE</PARVW><PARTN>0002064128</PARTN><NAME1>Wolf Systembau GesmbH</NAME1><ORT01>Scharnstein</ORT01><PSTLZ>4644</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDP01 SEGMENT="1">
            			<POSEX>000010</POSEX><MENGE></MENGE><MENEE></MENEE><VPREI></VPREI><NETWR>0</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
            		</E1EDP01>
            		<E1EDP01 SEGMENT="1">
            			<POSEX>000020</POSEX><MENGE>1</MENGE><MENEE>PCE</MENEE><VPREI>417486306</VPREI><NETWR>417486306</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
            			<E1EDP02 SEGMENT="1"><QUALF>001</QUALF><BELNR>0099218813-0033789454-000010</BELNR><DATUM>20251203</DATUM></E1EDP02>
            			<E1EDP19 SEGMENT="1"><QUALF>001</QUALF><IDTNR>11060123</IDTNR></E1EDP19>
            			<E1EDP19 SEGMENT="1"><QUALF>002</QUALF><IDTNR>421456</IDTNR></E1EDP19>
            			<E1EDPT1 SEGMENT="1"><TDID>0001</TDID><TSSPRAS>D</TSSPRAS><TSSPRAS_ISO>DE</TSSPRAS_ISO>
            				<E1EDPT2 SEGMENT="1"><TDLINE>Test Product 1 line 1:Test Product 1 line 2</TDLINE><TDFORMAT>*</TDFORMAT></E1EDPT2></E1EDPT1>
            		</E1EDP01>
            	</IDOC>
            </ORDERS05>

            Then Message Expression can be set to //IDOCTYP (xpath expression) or ORDERS05 (text) and Partner Expression - //RCVPOR. If //RCVPOR varies for different receiver interfaces, then it will work per message/partner identification.

            If xpath expression should be used for inbound message, then just configure the expression. If xpath expression should be used for outbound message, then add {{OUT}} to the end of expression (e.g. //RCVPOR{{OUT}}). The expression will be used for the first outbound message if there are several outbound messages.

          • 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.

            Order expressions configuration

            The value configured in Order expressions vary depending on the use case. For example, here is the payload:

            <ns1:MT_StoreOpeningHoursDb xmlns:ns1="http://magno.ch/web">
                <StatementName>
                    <STN_OPENTIME action="UPDATE_INSERT">
                        <table>STN_OPENTIME</table>
                        <access>
                            <STN_ID>6505</STN_ID>
                            <BUS_TYPE>CARWASH</BUS_TYPE>
                            ...
                        </access>
                        <key>
                            <STN_ID>6505</STN_ID>
                            <BUS_TYPE>CARWASH</BUS_TYPE>
                        </key>
                    </STN_OPENTIME>
                </StatementName>
            </ns1:MT_StoreOpeningHoursDb>

            Then Order expressions can be set to //STN_ID. If //STN_ID has the same value for several messages and combination of //STN_ID and //BUS_TYPE varies, then expression could be concat(//access/STN_ID, //access/BUS_TYPE).

          • 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.

        • 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.

            Message Expression and Partner Expression configuration

            The values configured in Message Expression and Partner Expression vary depending on the use case. For example, here is the payload:

            <?xml version="1.0" encoding="UTF-8"?>
            <ORDERS05>
            	<IDOC BEGIN="1">
            		<EDI_DC40 SEGMENT="1">
            			<TABNAM>EDI_DC40</TABNAM><MANDT>100</MANDT><DOCNUM>8079676856371000</DOCNUM><DOCREL>1809_FPS02</DOCREL>
            			<STATUS>30</STATUS><DIRECT>2</DIRECT><IDOCTYP>ORDERS05</IDOCTYP><MESTYP>ORDERS</MESTYP>
            			<SNDPOR>SAPAEP</SNDPOR><SNDPRT>US</SNDPRT><SNDPRN>COLGATENL</SNDPRN><RCVPOR>POIDOC_B2B</RCVPOR><RCVPRT>KU</RCVPRT><RCVPRN>ALR_GLOBAL</RCVPRN>
            			<CREDAT>20251203</CREDAT><CRETIM>080408</CRETIM><SERIAL>20251203080408</SERIAL>
            		</EDI_DC40>
            		<E1EDK01 SEGMENT="1"><ACTION>004</ACTION><CURCY>EUR</CURCY><ZTERM>1450</ZTERM><BSART>DFUE</BSART><BELNR>0022455580</BELNR><RECIPNT_NO>0003011523</RECIPNT_NO><KZAZU>X</KZAZU></E1EDK01>
            		<E1EDK03 SEGMENT="1"><IDDAT>002</IDDAT><DATUM>20251203</DATUM></E1EDK03>
            		<E1EDK03 SEGMENT="1"><IDDAT>012</IDDAT><DATUM>20251203</DATUM></E1EDK03>
            		<E1EDK02 SEGMENT="1"><QUALF>001</QUALF><BELNR>4504690253</BELNR><DATUM>20251203</DATUM></E1EDK02>
            		<E1EDK02 SEGMENT="1"><QUALF>002</QUALF><BELNR>0022455580</BELNR><DATUM>20251203</DATUM></E1EDK02>
            		<E1EDKA1 SEGMENT="1"><PARVW>AG</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDKA1 SEGMENT="1"><PARVW>RE</PARVW><PARTN>0003011523</PARTN><NAME1>Bestseller GmbH</NAME1><ORT01>Linz</ORT01><PSTLZ>4020</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDKA1 SEGMENT="1"><PARVW>LF</PARVW><PARTN>AT01</PARTN><NAME1>Alora Österreich GmbH</NAME1><ORT01>Bludenz</ORT01><PSTLZ>6700</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDKA1 SEGMENT="1"><PARVW>WE</PARVW><PARTN>0002064128</PARTN><NAME1>Wolf Systembau GesmbH</NAME1><ORT01>Scharnstein</ORT01><PSTLZ>4644</PSTLZ><LAND1>AT</LAND1><SPRAS_ISO>DE</SPRAS_ISO></E1EDKA1>
            		<E1EDP01 SEGMENT="1">
            			<POSEX>000010</POSEX><MENGE></MENGE><MENEE></MENEE><VPREI></VPREI><NETWR>0</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
            		</E1EDP01>
            		<E1EDP01 SEGMENT="1">
            			<POSEX>000020</POSEX><MENGE>1</MENGE><MENEE>PCE</MENEE><VPREI>417486306</VPREI><NETWR>417486306</NETWR><CURCY>EUR</CURCY><PSTYV>TAN</PSTYV>
            			<E1EDP02 SEGMENT="1"><QUALF>001</QUALF><BELNR>0099218813-0033789454-000010</BELNR><DATUM>20251203</DATUM></E1EDP02>
            			<E1EDP19 SEGMENT="1"><QUALF>001</QUALF><IDTNR>11060123</IDTNR></E1EDP19>
            			<E1EDP19 SEGMENT="1"><QUALF>002</QUALF><IDTNR>421456</IDTNR></E1EDP19>
            			<E1EDPT1 SEGMENT="1"><TDID>0001</TDID><TSSPRAS>D</TSSPRAS><TSSPRAS_ISO>DE</TSSPRAS_ISO>
            				<E1EDPT2 SEGMENT="1"><TDLINE>Test Product 1 line 1:Test Product 1 line 2</TDLINE><TDFORMAT>*</TDFORMAT></E1EDPT2></E1EDPT1>
            		</E1EDP01>
            	</IDOC>
            </ORDERS05>

            Then Message Expression can be set to //IDOCTYP (xpath expression) or ORDERS05 (text) and Partner Expression - //RCVPOR. If //RCVPOR varies for different receiver interfaces, then it will work per message/partner identification.

            If xpath expression should be used for inbound message, then just configure the expression. If xpath expression should be used for outbound message, then add {{OUT}} to the end of expression (e.g. //RCVPOR{{OUT}}). The expression will be used for the first outbound message if there are several outbound messages.

          • 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.

            Order expressions configuration

            The value configured in Order expressions vary depending on the use case. For example, here is the payload:

            <ns1:MT_StoreOpeningHoursDb xmlns:ns1="http://magno.ch/web">
                <StatementName>
                    <STN_OPENTIME action="UPDATE_INSERT">
                        <table>STN_OPENTIME</table>
                        <access>
                            <STN_ID>6505</STN_ID>
                            <BUS_TYPE>CARWASH</BUS_TYPE>
                            ...
                        </access>
                        <key>
                            <STN_ID>6505</STN_ID>
                            <BUS_TYPE>CARWASH</BUS_TYPE>
                        </key>
                    </STN_OPENTIME>
                </StatementName>
            </ns1:MT_StoreOpeningHoursDb>

            Then Order expressions can be set to //STN_ID. If //STN_ID has the same value for several messages and combination of //STN_ID and //BUS_TYPE varies, then expression could be concat(//access/STN_ID, //access/BUS_TYPE).

          • 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 can’t be set.

          • Run steps selection strategy and Run steps filter configure steps which should be recorded. Since 2209 it’s possible to configure run steps filter in BPMN Model with viewer dialog clicking on configuration button.

            If it’s IFlow Chain object, it’s possible to configure Run steps filter for each IFlow used in IFlow Chain separately.

          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.

      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 Application configuration 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.

Test cases aren’t run on deleted test objects. Such objects are skipped and listed in a warning message box (Test cases will not be run on the following test objects because these objects are deleted: …​), while the other test objects and test cases of the run are processed. A test suite in which no test case has a runnable test object isn’t run at all, and no test suite run is created.

  1. 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 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 (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 or IFlow Chain created manually or created during PI to CPI migration with Pipeline All profile. If you want to open Test Suite 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 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. …​ Delete removes selected test case(s). …​ Clean removes all test run results and reports of selected test case(s).

  1. 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.

Test cases aren’t run on deleted test objects. Such objects are skipped and listed in a warning message box (Test cases will not be run on the following test objects because these objects are deleted: …​), while the other test objects and test cases of the run are processed. A test suite in which no test case has a runnable test object isn’t run at all, and no test suite run is created.

  1. Detach link between current Integration Object and selected test case clicking on Detach button.