diff --git a/ipmi/test_ipmi_fru_device.robot b/ipmi/test_ipmi_fru_device.robot
index cb1af7e..3c7bc7e 100644
--- a/ipmi/test_ipmi_fru_device.robot
+++ b/ipmi/test_ipmi_fru_device.robot
@@ -190,10 +190,11 @@
             IF  '${ipmi_fru_board_serial_status}' == 'True'  BREAK
         END
         ${frudata}=  Get From List  ${output}  ${num}
-        ${serial_no}=  Run Keyword If  '${ipmi_fru_board_serial_status}' == 'True'
-        ...    Get Lines Containing String  ${frudata}  Board Serial
-        ...  ELSE
-        ...    Get Lines Containing String  ${frudata}  Product Serial
+
+        ${serial_str}=  Set Variable If  '${ipmi_fru_board_serial_status}' == 'True'
+        ...  Board Serial  Product Serial
+
+        ${serial_no}=  Get Lines Containing String  ${frudata}  ${serial_str}
 
         # Get each device and split field as key and value and append to a dictionary.
         ${serial_nos}=  Set Variable  ${serial_no.strip()}
@@ -232,8 +233,9 @@
         ${dbus_output}=  Execute DBUS Introspect Command  ${cmd}
         ${dbus_fru_board_serial_status}=  Run Keyword And Return Status  Should Contain  ${dbus_output}  .BOARD_SERIAL
         ${dbus_fru_product_serial_status}=  Run Keyword And Return Status  Should Contain  ${dbus_output}  .PRODUCT_SERIAL
-        Run Keyword If  '${dbus_fru_board_serial_status}' == 'True' or '${dbus_fru_product_serial_status}' == 'True'
-        ...    Create Dictionary For DBUS URI  ${dbus_output}  ${ipmi_fru}  ${dbus_fru_board_serial_status}  ${cmd}
+        IF  '${dbus_fru_board_serial_status}' == 'True' or '${dbus_fru_product_serial_status}' == 'True'
+            Create Dictionary For DBUS URI  ${dbus_output}  ${ipmi_fru}  ${dbus_fru_board_serial_status}  ${cmd}
+        END
     END
 
 
@@ -253,16 +255,20 @@
     # If matches then, sets the serial number as key and FRU uri as value.
     # ${dbus_dict} defined under variable section.
     FOR  ${ipmi_fru_serial_no}  IN  @{ipmi_fru.keys()}
-        ${serial_no}=  Run Keyword If  '${dbus_fru_board_serial_status}' == 'True'
-        ...    Get Lines Containing String  ${dbus_output}  .BOARD_SERIAL
-        ...  ELSE
-        ...    Get Lines Containing String  ${dbus_output}  .PRODUCT_SERIAL
+        ${serial_str}=  Set Variable If  '${ipmi_fru_board_serial_status}' == 'True'
+        ...  Board Serial  Product Serial
+
+        ${serial_no}=  Get Lines Containing String  ${frudata}  ${serial_str}
+
         ${serial_no}=  Split String  ${serial_no}  "
         ${dbus_serial_no}=  Set Variable  ${serial_no[1].strip()}
-        ${serial_no_status}=  Run Keyword And Return Status  Should Be Equal As Strings  ${ipmi_fru_serial_no}  ${dbus_serial_no}
-        Run Keyword If  '${serial_no_status}' == 'True'
-        ...    Run Keywords  Set To Dictionary  ${dbus_dict}  ${dbus_serial_no}  ${fru_command}  AND
-        ...    Exit For Loop
+        ${serial_no_status}=  Run Keyword And Return Status  Should Be Equal As Strings
+        ...  ${ipmi_fru_serial_no}  ${dbus_serial_no}
+
+        IF  '${serial_no_status}' == 'True'
+            Set To Dictionary  ${dbus_dict}  ${dbus_serial_no}  ${fru_command}
+            BREAK
+        END
     END
 
 
