UpdateRetentionSourceAuthority API
Updates (renames) a retention source authority in the system. The new authority name must be unique and not already exist.
Endpoint
/srv.asmx/UpdateRetentionSourceAuthority
Methods
- GET
/srv.asmx/UpdateRetentionSourceAuthority?authenticationTicket=...¤tAuthorityName=...&newAuthorityName=... - POST
/srv.asmx/UpdateRetentionSourceAuthority(form data) - SOAP Action:
http://tempuri.org/UpdateRetentionSourceAuthority
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
authenticationTicket |
string | Yes | Authentication ticket obtained from AuthenticateUser |
currentAuthorityName |
string | Yes | Current name of the retention source authority to update |
newAuthorityName |
string | Yes | New name for the retention source authority |
Response
Success Response
<root success="true" />
Error Response
<root success="false" error="[ErrorCode] Error message" />
Required Permissions
- User must be authenticated (anonymous users cannot perform this action)
- User must have administrative rights to manage retention settings
- Typically requires Records Management or System Administrator role
Update Rules
The API enforces the following rules:
- Current Authority Must Exist: The current authority name must exist in the system
- Unique New Name: The new authority name must not already exist
- Non-Empty Names: Both current and new names cannot be empty or whitespace-only
- Length Limit: New authority name must not exceed 64 characters
- No Case Change Only: Changing only the case is not allowed if it results in a duplicate
Example
Request (GET)
GET /srv.asmx/UpdateRetentionSourceAuthority?authenticationTicket=abc123-def456¤tAuthorityName=SEC&newAuthorityName=SEC%20-%20Securities%20and%20Exchange%20Commission HTTP/1.1
Host: server.example.com
Request (POST)
POST /srv.asmx/UpdateRetentionSourceAuthority HTTP/1.1
Content-Type: application/x-www-form-urlencoded
authenticationTicket=abc123-def456¤tAuthorityName=SEC&newAuthorityName=SEC - Securities and Exchange Commission
Request (SOAP 1.1)
POST /srv.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/UpdateRetentionSourceAuthority"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<UpdateRetentionSourceAuthority xmlns="http://tempuri.org/">
<authenticationTicket>abc123-def456</authenticationTicket>
<currentAuthorityName>SEC</currentAuthorityName>
<newAuthorityName>SEC - Securities and Exchange Commission</newAuthorityName>
</UpdateRetentionSourceAuthority>
</soap:Body>
</soap:Envelope>
Success Response
<?xml version="1.0" encoding="utf-8"?>
<root success="true" />
Error Response Examples
Current Authority Not Found:
<root success="false" error="Current authority not found." />
New Name Already Exists:
<root success="false" error="There is already a Retention Source Authority with same name." />
Empty Current Name:
<root success="false" error="Current authority name cannot be empty" />
Empty New Name:
<root success="false" error="New authority name cannot be empty" />
Name Too Long:
<root success="false" error="Character length of the Authority Source Name cannot be greater than 64 character. Please enter shorter name." />
Related APIs
Retention Source Authority Management
GetRetentionSourceAuthorities- List all retention source authoritiesCreateRetentionSourceAuthority- Create a new retention source authorityDeleteRetentionSourceAuthority- Delete a retention source authority
Retention & Disposition Schedule Management
GetRandDSchedules- Get all R&D schedules that may reference the authorityGetRandDScheduleInfo- Get detailed schedule informationUpdateRandDSchedule- Update R&D schedule (note: authority references are stored)
Use Cases
Standardize Naming
- Update authorities to follow consistent naming conventions
- Add missing full names or acronyms to authority names
Correct Typos
- Fix spelling errors in authority names
- Correct formatting issues
Expand Abbreviations
- Change "SEC" to "SEC - Securities and Exchange Commission"
- Make authority names more descriptive
Consolidate Authorities
- Rename an authority before migrating R&D schedules
- Update to match organizational naming standards
Update Workflow
Recommended workflow for updating a retention source authority:
Verify Current Authority
Call GetRetentionSourceAuthorities to confirm current nameCheck New Name Availability
Call GetRetentionSourceAuthorities to ensure new name doesn't existCheck R&D Schedule Impact
Call GetRandDSchedules to review which schedules reference this authority Note: R&D schedules store authority name as text, not as a referencePerform Update
Call UpdateRetentionSourceAuthority with current and new namesVerify Update
Call GetRetentionSourceAuthorities to confirm the changeUpdate R&D Schedules (if necessary)
If R&D schedules store authority name (not ID), they may need updating Call UpdateRandDSchedule for each affected schedule
Error Codes
Common error responses:
| Error | Description |
|---|---|
[901]Session expired or Invalid ticket |
Invalid authentication ticket |
[2730]Insufficient rights. Anonymous users cannot perform this action |
User is not authenticated |
Current authority name cannot be empty |
No current authority name provided |
New authority name cannot be empty |
No new authority name provided |
Current authority not found. |
The specified current authority does not exist |
There is already a Retention Source Authority with same name. |
The new name duplicates an existing authority |
Character length of the Authority Source Name cannot be greater than 64 character. |
New name exceeds maximum length |
Access denied |
User does not have permission to update authorities |
Notes
- Authority names are case-sensitive during matching
- Whitespace is trimmed from both current and new authority names
- The update is atomic - either succeeds completely or fails with no changes
- Update is logged in the system audit trail
- Authority update does not automatically update R&D schedules that reference the old name
- Consider the impact on R&D schedules before renaming widely-used authorities
Impact on R&D Schedules
Important considerations:
- Check Storage Method: Determine if R&D schedules store authority by name or by reference
- Update Schedules: If stored by name, all schedules using the old name need updating
- Historical Records: Historical compliance records may still reference the old name
- Reports: Existing reports may need to be updated to use the new authority name
Best Practices
- Verify Before Update: Always check that current authority exists
- Check Uniqueness: Ensure new name doesn't already exist
- Document Changes: Maintain audit trail of authority name changes
- Communicate: Notify stakeholders before renaming widely-used authorities
- Update Schedules: If necessary, update R&D schedules that reference the old name
- Test First: Test rename in staging environment before production
- Backup: Export authority list before making changes
- Consistent Format: Follow organizational naming conventions
Security Considerations
- Authority updates require administrative privileges
- All update attempts are logged in the audit trail
- Authority names are sanitized to prevent injection attacks
- Consider implementing approval workflows for sensitive changes
- Maintain backup of authority list before updates
Validation Rules
The API performs the following validations:
- Non-Empty Current: Current authority name must not be empty or whitespace-only
- Non-Empty New: New authority name must not be empty or whitespace-only
- Existence Check: Current authority must exist in the system
- Uniqueness: New authority name must not duplicate an existing authority
- Length: New authority name must not exceed 64 characters
- Authentication: User must have valid authentication ticket
- Authorization: User must have administrative permissions
Integration Example
JavaScript/Client-Side
async function updateAuthority(currentName, newName) {
// Validate new name
if (!newName || newName.trim().length === 0) {
alert('New authority name cannot be empty');
return false;
}
if (newName.length > 64) {
alert('Authority name cannot exceed 64 characters');
return false;
}
// Check if new name already exists
const authorities = await getRetentionSourceAuthorities();
if (authorities.includes(newName)) {
alert('An authority with the new name already exists');
return false;
}
// Confirm update
if (!confirm(`Rename "${currentName}" to "${newName}"?`)) {
return false;
}
const ticket = getUserAuthTicket();
const formData = new FormData();
formData.append('authenticationTicket', ticket);
formData.append('currentAuthorityName', currentName);
formData.append('newAuthorityName', newName);
const response = await fetch('/srv.asmx/UpdateRetentionSourceAuthority', {
method: 'POST',
body: formData
});
const xmlText = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlText, "text/xml");
const success = xmlDoc.querySelector("root").getAttribute("success");
if (success === "true") {
console.log("Authority updated successfully");
return true;
} else {
const error = xmlDoc.querySelector("root").getAttribute("error");
console.error("Failed to update authority:", error);
alert(error);
return false;
}
}
async function getRetentionSourceAuthorities() {
const ticket = getUserAuthTicket();
const response = await fetch(
`/srv.asmx/GetRetentionSourceAuthorities?authenticationTicket=${ticket}`
);
const xmlText = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlText, "text/xml");
const authorities = [];
xmlDoc.querySelectorAll("Authority").forEach(auth => {
authorities.push(auth.getAttribute("Name"));
});
return authorities;
}
C# Client Usage
using (var client = new SrvSoapClient())
{
try
{
string currentName = "SEC";
string newName = "SEC - Securities and Exchange Commission";
// Validate inputs
if (string.IsNullOrWhiteSpace(newName))
{
Console.WriteLine("New authority name cannot be empty");
return;
}
if (newName.Length > 64)
{
Console.WriteLine("Authority name cannot exceed 64 characters");
return;
}
// Check if new name already exists
var authoritiesResponse = await client.GetRetentionSourceAuthoritiesAsync(authTicket);
var authorities = authoritiesResponse.Descendants("Authority")
.Select(a => a.Attribute("Name")?.Value)
.ToList();
if (authorities.Contains(newName))
{
Console.WriteLine("An authority with the new name already exists");
return;
}
// Confirm update
Console.WriteLine($"Rename '{currentName}' to '{newName}'? (y/n)");
var confirm = Console.ReadLine();
if (confirm?.ToLower() != "y")
{
Console.WriteLine("Update cancelled");
return;
}
// Perform update
var response = await client.UpdateRetentionSourceAuthorityAsync(
authTicket,
currentName,
newName
);
var root = response.Root;
if (root.Attribute("success")?.Value == "true")
{
Console.WriteLine("Authority updated successfully");
}
else
{
var error = root.Attribute("error")?.Value;
Console.WriteLine($"Error: {error}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Exception: {ex.Message}");
}
}
Common Scenarios
Scenario 1: Expand Abbreviation
Current: "HIPAA"
New: "HIPAA - Health Insurance Portability and Accountability Act"
1. Call UpdateRetentionSourceAuthority("HIPAA", "HIPAA - Health Insurance...")
2. Verify update with GetRetentionSourceAuthorities
3. Update any R&D schedules that store the authority name
Scenario 2: Fix Typo
Current: "GDPR - General Data Protction Regulation" (typo: "Protction")
New: "GDPR - General Data Protection Regulation"
1. Call UpdateRetentionSourceAuthority with corrected spelling
2. Verify correction
Scenario 3: Standardize Format
Multiple authorities with inconsistent formats:
- "SEC"
- "FINRA - Financial Industry Regulatory Authority"
- "Sarbanes-Oxley Act"
Standardize to "CODE - Full Name" format:
1. Update "SEC" → "SEC - Securities and Exchange Commission"
2. Keep "FINRA - Financial Industry Regulatory Authority" (already correct)
3. Update "Sarbanes-Oxley Act" → "SOX - Sarbanes-Oxley Act"
Version History
- Compatible with infoRouter 8.7 and later
- Supports both synchronous SOAP and REST access patterns
- Authority management features may require Records Management license
- Update validation enhanced in latest version
See Also
- GetRetentionSourceAuthorities - List all authorities
- CreateRetentionSourceAuthority - Create new authority
- DeleteRetentionSourceAuthority - Delete authority
- GetRandDSchedules - Get R&D schedules