diff --git a/redfish/systems/LogServices/test_post_codes.robot b/redfish/systems/LogServices/test_post_codes.robot
index f6a859a..214dae8 100644
--- a/redfish/systems/LogServices/test_post_codes.robot
+++ b/redfish/systems/LogServices/test_post_codes.robot
@@ -28,7 +28,7 @@
     Rprint Vars  post_code_list
 
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     Log To Console  BIOS POST Codes count: ${post_codes['Members@odata.count']}
     Should Be True  ${post_codes['Members@odata.count']} >= 1  msg=No BIOS POST Codes populated.
 
@@ -46,7 +46,7 @@
     Rprint Vars  post_code_list
 
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     Log To Console  BIOS POST Codes count: ${post_codes['Members@odata.count']}
     Should Be True  ${post_codes['Members@odata.count']} >= 1  msg=No BIOS POST Codes populated.
 
@@ -64,7 +64,7 @@
     Rprint Vars  post_code_list
 
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     Log To Console  BIOS POST Codes count: ${post_codes['Members@odata.count']}
     Should Be True  ${post_codes['Members@odata.count']} == 0
     ...  msg=BIOS POST Codes populated.
@@ -96,7 +96,7 @@
 
     # Get log count before BMC reboot.
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     ${initial_log_count}=  Set Variable  ${post_codes['Members@odata.count']}
 
     # Reboot BMC.
@@ -104,7 +104,7 @@
 
     # Get log count after BMC reboot and compare with initial log count.
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     ${current_log_count}=  Set Variable  ${post_codes['Members@odata.count']}
     Should Be True  ${current_log_count} == ${initial_log_count}
 
@@ -117,7 +117,7 @@
     # Perform clear postcode log action.
     Redfish Clear PostCodes
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
 
     # Verify if log count becomes zero.
     Should Be True  ${post_codes['Members@odata.count']} == 0
@@ -189,13 +189,13 @@
     #     "Name": "BIOS POST Code Log Entries"
     # }
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     ${total_log_count}=  Set Variable  ${post_codes['Members@odata.count']}
 
     IF  ${total_log_count} > ${max_view_count}
         ${skip_count}=  Evaluate  (${total_log_count}//${max_view_count})*${max_view_count}
         ${uri}=  Set Variable
-        ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries?$skip=${skip_count}
+        ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries?$skip=${skip_count}
         ${post_codes}=  Redfish.Get Properties  ${uri}
     END
 
@@ -211,7 +211,7 @@
     ...  to populate postcode logs if there are no prior log entries.
 
     ${post_codes}=  Redfish.Get Properties
-    ...  /redfish/v1/Systems/system/LogServices/PostCodes/Entries
+    ...  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/PostCodes/Entries
     Run Keyword If  ${post_codes['Members@odata.count']} == 0
     ...  RF SYS GracefulRestart
 
diff --git a/redfish/systems/eventlog/test_event_logging.robot b/redfish/systems/eventlog/test_event_logging.robot
index 6c4e22a..42136d3 100644
--- a/redfish/systems/eventlog/test_event_logging.robot
+++ b/redfish/systems/eventlog/test_event_logging.robot
@@ -66,7 +66,7 @@
     Create Test PEL Log
     ${elog_entry}=  Get Event Logs
 
-    Redfish.Delete  /redfish/v1/Systems/system/LogServices/EventLog/Entries/${elog_entry[0]["Id"]}
+    Redfish.Delete  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/EventLog/Entries/${elog_entry[0]["Id"]}
 
     ${error_entries}=  Get Redfish Error Entries
     Should Be Empty  ${error_entries}
@@ -338,7 +338,7 @@
     Create Test PEL Log
     Create Test PEL Log
     ${error_entries_before}=  Get Redfish Error Entries
-    Redfish.Delete  /redfish/v1/Systems/system/LogServices/EventLog/Entries/${error_entries_before[0]}
+    Redfish.Delete  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/EventLog/Entries/${error_entries_before[0]}
 
     ${error_entries_after}=  Get Redfish Error Entries
     Should Not Contain  ${error_entries_after}  ${error_entries_before[0]}
@@ -477,7 +477,7 @@
 
 Get Redfish Error Entries
     [Documentation]  Return Redfish error ids list.
-    ${error_uris}=  redfish_utils.get_member_list  /redfish/v1/Systems/system/LogServices/EventLog/Entries
+    ${error_uris}=  redfish_utils.get_member_list  /redfish/v1/Systems/${SYSTEM_ID}/LogServices/EventLog/Entries
     ${error_ids}=  Create List
 
     FOR  ${error_uri}  IN  @{error_uris}
diff --git a/redfish/systems/test_led_indicator_asserted.robot b/redfish/systems/test_led_indicator_asserted.robot
index 535ae47..df1f4da 100755
--- a/redfish/systems/test_led_indicator_asserted.robot
+++ b/redfish/systems/test_led_indicator_asserted.robot
@@ -231,7 +231,7 @@
 Set Suite LED Indicator Initial Value
     [Documentation]  set suite For LED Initial value.
 
-    ${value}=  Redfish.Get Attribute      /redfish/v1/Systems/system  LocationIndicatorActive
+    ${value}=  Redfish.Get Attribute      /redfish/v1/Systems/${SYSTEM_ID}  LocationIndicatorActive
     Set Suite Variable  ${value}
 
     IF  ${value} == False
@@ -246,10 +246,10 @@
     [Arguments]  ${set_value}
 
     ${payload}=  Create Dictionary    LocationIndicatorActive=${set_value}
-    Redfish.Patch      /redfish/v1/Systems/system    body=&{payload}
+    Redfish.Patch      /redfish/v1/Systems/${SYSTEM_ID}    body=&{payload}
     ...  valid_status_codes=[${HTTP_NO_CONTENT}]
 
-    ${value}=  Redfish.Get Attribute      /redfish/v1/Systems/system  LocationIndicatorActive
+    ${value}=  Redfish.Get Attribute      /redfish/v1/Systems/${SYSTEM_ID}  LocationIndicatorActive
 
     Should Be Equal As Strings  ${value}    ${set_value}
 
@@ -259,8 +259,8 @@
     [Arguments]  ${value}
 
     ${payload}=  Create Dictionary    LocationIndicatorActive=${value}
-    Redfish.Patch      /redfish/v1/Systems/system    body=&{payload}
+    Redfish.Patch      /redfish/v1/Systems/${SYSTEM_ID}    body=&{payload}
     ...  valid_status_codes=[${HTTP_NO_CONTENT}]
 
-    ${intial_value}=  Redfish.Get Attribute      /redfish/v1/Systems/system  LocationIndicatorActive
+    ${intial_value}=  Redfish.Get Attribute      /redfish/v1/Systems/${SYSTEM_ID}  LocationIndicatorActive
     Should Be Equal As Strings  ${intial_value}  ${value}
