Home Backend Development C++ Working with Matter Team Membership Using the IntApp Walls API

Working with Matter Team Membership Using the IntApp Walls API

Jan 05, 2025 pm 01:16 PM

The IntApp Walls API is a powerful tool for managing ethical walls and securely controlling access to sensitive data. By leveraging its operations, developers can efficiently interact with matter teams, manage memberships, and ensure compliance with confidentiality requirements.

The Intapp Walls API is a SOAP web service that provides a programmatic interface for interacting with the Intapp Walls application. It is deployed as a standard component web service.

For the sake of simplicity, the sample code in this document omits error checking, exception handling, logging, and other practices. It is intended for illustrative purposes only and does not necessarily reflect best coding practices.

Here I walk through two key scenarios:

  1. Retrieving and listing matter team membership.
  2. Adding a new member to an existing matter team.

By understanding and using IntApp Walls API operations such as "GetMatterTeamForMatter", "LoadMatterTeam", and "AddUsersToMatterTeam", you can streamline tasks related to ethical wall management. The following examples include code snippets and step-by-step guidance.

This document will not cover the specifics of configuring development access to the IntApp Walls API. However, the management solution must be installed on your local domain, and the web service is typically accessible via a file named "APIService.svc", which should be added as a service reference in Visual Studio.

Working with Matter Team Membership Using the IntApp Walls API

The sample code references the following IntApp Walls API operations:

GetMatterTeamForMatter: Gets the ID of the matter team that is associated with the specified matter.
LoadMatterTeam: Loads the properties of a matter team.
GetDMSUserID: Get the DMS user ID. Some of the API methods require the DMS user ID for a user. For example, the CreateWall() method requires the user ID to be that of the DMS, not a user's timekeeper ID or records system ID. This method can be used to get the DMS user ID given another known ID for the user.
LoadMatterTeamMembership: Loads the matter team membership.
GetWarningsIfUserIsIncluded: Gets any warnings that would be generated if the specified user was granted access (i.e., included) to a particular client or matter. This function returns any warnings that may be generated by conflicting ethical walls.
AddUsersToMatterTeam: Adds the user to an existing matter team with a specified role.

Example: Retrieving and Listing Matter Team Membership
The following code snippet uses the IntApp Walls API "GetMatterTeamForMatter" and "LoadMatterTeam" operations to retrieve a list of matter team members and then write the team membership particulars to the console.

Notes:
• Working with the IntApp API typically requires specific privileges, often granted to a service account with appropriate IntApp Walls access.
• References to "intapp_web_api" in the code snippet below, refers to the name of your IntApp API service reference as defined in Visual Studio.

Working with Matter Team Membership Using the IntApp Walls API

Step 1 Retrieve the unique IntApp Walls-managed matter team ID number.
Retrieve the ID of the matter team associated with a specified matter. This matter team ID will then be used to obtain the matter team membership details.

To achieve this, invoke the "GetMatterTeamForMatter" operation, which requires a "matterID" parameter. The "matterID" is typically an internally generated ID, sometimes referred to as a "case number." This value is supplied by the user or programmer from their own Timekeeper-type source.

string matterID = "01234"; // matterID supplied by you
string matterTeamID = String.Empty; // the return value

// get the walls matter team id
// example of matter team id "COOLE-033517"
matterTeamID = intapp_web_api.GetMatterTeamForMatter(matterID);

public static string GetMatterTeamForMatter(string matterID)
{
  intapp_web_api.Matter matter = new intapp_web_api.Matter();
  string matterTeamID = string.Empty;

  try
  {
    intapp_web_api.APIServiceClient intapp_web_api = new intapp_web_api.APIServiceClient();
    matterTeamID = intapp_web_api.GetMatterTeamForMatter(matterID);

    if ((string.IsNullOrEmpty(matterTeamID)))
    {
      matterTeamID = "blank";
    }
  }
  catch (Exception ex)
  {
    if (string.IsNullOrEmpty(matterTeamID) || ex.Message == "Error")
    {
      matterTeamID = "blank";
    }
  }
  return matterTeamID;
}
Copy after login
Copy after login

Step 2 Load the Matter Team Results
Define the "LoadMatterTeam" method and use the unique IntApp Walls-managed matter team ID number "matterTeamID" variable obtained from executing the "GetMatterTeamForMatter" method to call the "LoadMatterTeam" method to retrieve the matter team. Iterate through the "UserMemberships" collection within the matter team and output the user team ID and role to the console.

public static intapp_web_api.MatterTeam LoadMatterTeam(string matterTeamID)
{
  intapp_web_api.MatterTeam matterTeam = new intapp_web_api.MatterTeam();

  try
  {
    intapp_web_api.APIServiceClient intapp_web_api = new intapp_web_api.APIServiceClient();
    matterTeam = intapp_web_api.LoadMatterTeam(wallscaseteamid);
  }
  catch (Exception ex)
  {
    throw new Exception(ex.Message.ToString());
  }

  return matterTeam;
}

MatterTeam the_matter_team_list = LoadMatterTeam(wallscaseteamid);

using (APIServiceClient intapp_web_api = new APIServiceClient())
{
  // iterate through the usermemberships collection in the matterteam
  foreach (UserMembership user in the_matter_team_list.UserMemberships)
  {
    string _userid = user.UserId.ToString(); // get the user id
    string _therole = user.Role.ToString(); // get the user role

    // output the user team id and role to the console
    Console.WriteLine($"user team id: {_userid}");
    Console.WriteLine($"user team role: {_therole}");
  }
}
Copy after login
Copy after login

Example: Adding a New Member to an Existing Matter Team Membership
Building on the "GetMatterTeamForMatter" and "LoadMatterTeam" operations to retrieve a list of matter team members, the following code snippet demonstrates how to use the IntApp Walls API to check existing team membership and add a new member to the team if they are not already a member.

Notes:
• Manipulating IntApp Walls teams via the IntApp API requires specific privileges, which are beyond the scope of this document. The requester will also need to be in an IntApp Walls matter admin role as defined in IntApp Walls.
• Working with the IntApp API typically requires specific privileges, often granted to a service account with appropriate IntApp Walls access.
• References to "intapp_web_api" in the code snippet below, refers to the name of your IntApp API service reference as defined in Visual Studio.

Working with Matter Team Membership Using the IntApp Walls API

Step 1: Using the "GetDMSUserID" operation, Get the "sAMAccountName" of the user you want to add to the Walls team.
The "sAMAccountName" (Security Account Manager Account Name) is an attribute in Microsoft Active Directory (AD) that represents a user's logon name used to authenticate to the domain.

string theid = "jsmith"; // the sAMAccountName ad account name of user to add
string wallsuserid = string.Empty;

wallsuserid = intapp_web_api.GetDMSUserID(UserIDSource.WindowsNetworkLogon, $@"YourDomainName\{theid}") // change "YourDomainName" to your domain name

// check if wallsuserid contains a value
if (string.IsNullOrEmpty(wallsuserid))
{
  Console.WriteLine("the user you are trying to add to Walls team does not exists in Walls");
  return;
}
Copy after login
Copy after login

Step 2: Check if the Matter exists in Walls.

string matterID = "01234"; // matterID supplied by you
string matterTeamID = String.Empty; // the return value

// get the walls matter team id
// example of matter team id "COOLE-033517"
matterTeamID = intapp_web_api.GetMatterTeamForMatter(matterID);

public static string GetMatterTeamForMatter(string matterID)
{
  intapp_web_api.Matter matter = new intapp_web_api.Matter();
  string matterTeamID = string.Empty;

  try
  {
    intapp_web_api.APIServiceClient intapp_web_api = new intapp_web_api.APIServiceClient();
    matterTeamID = intapp_web_api.GetMatterTeamForMatter(matterID);

    if ((string.IsNullOrEmpty(matterTeamID)))
    {
      matterTeamID = "blank";
    }
  }
  catch (Exception ex)
  {
    if (string.IsNullOrEmpty(matterTeamID) || ex.Message == "Error")
    {
      matterTeamID = "blank";
    }
  }
  return matterTeamID;
}
Copy after login
Copy after login

Step 3: If the Matter exists, is the user already a team member?

public static intapp_web_api.MatterTeam LoadMatterTeam(string matterTeamID)
{
  intapp_web_api.MatterTeam matterTeam = new intapp_web_api.MatterTeam();

  try
  {
    intapp_web_api.APIServiceClient intapp_web_api = new intapp_web_api.APIServiceClient();
    matterTeam = intapp_web_api.LoadMatterTeam(wallscaseteamid);
  }
  catch (Exception ex)
  {
    throw new Exception(ex.Message.ToString());
  }

  return matterTeam;
}

MatterTeam the_matter_team_list = LoadMatterTeam(wallscaseteamid);

using (APIServiceClient intapp_web_api = new APIServiceClient())
{
  // iterate through the usermemberships collection in the matterteam
  foreach (UserMembership user in the_matter_team_list.UserMemberships)
  {
    string _userid = user.UserId.ToString(); // get the user id
    string _therole = user.Role.ToString(); // get the user role

    // output the user team id and role to the console
    Console.WriteLine($"user team id: {_userid}");
    Console.WriteLine($"user team role: {_therole}");
  }
}
Copy after login
Copy after login

Step 4: Will adding the user to the Matter team cause an internal conflict?

string theid = "jsmith"; // the sAMAccountName ad account name of user to add
string wallsuserid = string.Empty;

wallsuserid = intapp_web_api.GetDMSUserID(UserIDSource.WindowsNetworkLogon, $@"YourDomainName\{theid}") // change "YourDomainName" to your domain name

// check if wallsuserid contains a value
if (string.IsNullOrEmpty(wallsuserid))
{
  Console.WriteLine("the user you are trying to add to Walls team does not exists in Walls");
  return;
}
Copy after login
Copy after login

Step 5: Finally, add the user to the Matter team.

string matterID = "01234"; // matterID supplied by you

try
{
  matterTeamID = intapp_web_api.GetMatterTeamForMatter(matterID);
}
catch (Exception ex)
{
  if (ex.Message.Contains("The matter") && ex.Message.Contains("does not exist"))
  {
    Console.WriteLine("the matter does do not exist");
    return;
  }
  else
  {
    Console.WriteLine(ex.Message);
    return;
  }
}
Copy after login

Conclusion
The IntApp Walls API offers a comprehensive set of operations for managing matter team memberships and safeguarding sensitive information. From retrieving team details to adding new members while checking for conflicts, these API functions enable seamless integration with your workflows and adherence to ethical wall policies. With the right implementation, managing matter teams becomes a streamlined and efficient process that upholds data integrity.

The above is the detailed content of Working with Matter Team Membership Using the IntApp Walls API. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1246
24
C# vs. C  : History, Evolution, and Future Prospects C# vs. C : History, Evolution, and Future Prospects Apr 19, 2025 am 12:07 AM

The history and evolution of C# and C are unique, and the future prospects are also different. 1.C was invented by BjarneStroustrup in 1983 to introduce object-oriented programming into the C language. Its evolution process includes multiple standardizations, such as C 11 introducing auto keywords and lambda expressions, C 20 introducing concepts and coroutines, and will focus on performance and system-level programming in the future. 2.C# was released by Microsoft in 2000. Combining the advantages of C and Java, its evolution focuses on simplicity and productivity. For example, C#2.0 introduced generics and C#5.0 introduced asynchronous programming, which will focus on developers' productivity and cloud computing in the future.

The Future of C   and XML: Emerging Trends and Technologies The Future of C and XML: Emerging Trends and Technologies Apr 10, 2025 am 09:28 AM

The future development trends of C and XML are: 1) C will introduce new features such as modules, concepts and coroutines through the C 20 and C 23 standards to improve programming efficiency and security; 2) XML will continue to occupy an important position in data exchange and configuration files, but will face the challenges of JSON and YAML, and will develop in a more concise and easy-to-parse direction, such as the improvements of XMLSchema1.1 and XPath3.1.

The Continued Use of C  : Reasons for Its Endurance The Continued Use of C : Reasons for Its Endurance Apr 11, 2025 am 12:02 AM

C Reasons for continuous use include its high performance, wide application and evolving characteristics. 1) High-efficiency performance: C performs excellently in system programming and high-performance computing by directly manipulating memory and hardware. 2) Widely used: shine in the fields of game development, embedded systems, etc. 3) Continuous evolution: Since its release in 1983, C has continued to add new features to maintain its competitiveness.

C# vs. C  : Learning Curves and Developer Experience C# vs. C : Learning Curves and Developer Experience Apr 18, 2025 am 12:13 AM

There are significant differences in the learning curves of C# and C and developer experience. 1) The learning curve of C# is relatively flat and is suitable for rapid development and enterprise-level applications. 2) The learning curve of C is steep and is suitable for high-performance and low-level control scenarios.

C   and XML: Exploring the Relationship and Support C and XML: Exploring the Relationship and Support Apr 21, 2025 am 12:02 AM

C interacts with XML through third-party libraries (such as TinyXML, Pugixml, Xerces-C). 1) Use the library to parse XML files and convert them into C-processable data structures. 2) When generating XML, convert the C data structure to XML format. 3) In practical applications, XML is often used for configuration files and data exchange to improve development efficiency.

The C   Community: Resources, Support, and Development The C Community: Resources, Support, and Development Apr 13, 2025 am 12:01 AM

C Learners and developers can get resources and support from StackOverflow, Reddit's r/cpp community, Coursera and edX courses, open source projects on GitHub, professional consulting services, and CppCon. 1. StackOverflow provides answers to technical questions; 2. Reddit's r/cpp community shares the latest news; 3. Coursera and edX provide formal C courses; 4. Open source projects on GitHub such as LLVM and Boost improve skills; 5. Professional consulting services such as JetBrains and Perforce provide technical support; 6. CppCon and other conferences help careers

Beyond the Hype: Assessing the Relevance of C   Today Beyond the Hype: Assessing the Relevance of C Today Apr 14, 2025 am 12:01 AM

C still has important relevance in modern programming. 1) High performance and direct hardware operation capabilities make it the first choice in the fields of game development, embedded systems and high-performance computing. 2) Rich programming paradigms and modern features such as smart pointers and template programming enhance its flexibility and efficiency. Although the learning curve is steep, its powerful capabilities make it still important in today's programming ecosystem.

The Future of C  : Adaptations and Innovations The Future of C : Adaptations and Innovations Apr 27, 2025 am 12:25 AM

The future of C will focus on parallel computing, security, modularization and AI/machine learning: 1) Parallel computing will be enhanced through features such as coroutines; 2) Security will be improved through stricter type checking and memory management mechanisms; 3) Modulation will simplify code organization and compilation; 4) AI and machine learning will prompt C to adapt to new needs, such as numerical computing and GPU programming support.

See all articles