AddItem

The AddItem API inserts a record into a specified IDO collection.
POST /{responsetype}/{ido}/additem
http://localhost/IDORequestService/MGRESTService.svc/xml/UserNames/additem

Parameters

Name In Required? Description
responsetype Path Yes Response request data format

Specify any of these values:

  • xml
  • json
ido Path Yes The name of the IDO collection

Headers

Name Description
Authorization If the API is called directly, then a Mongoose security token is obtained through a call to the GetSecurityToken API.

If the API is called through ION API, then a valid OAuth2.0 bearer token is provided by ION API.

X-Infor-MongooseConfig The name of a configuration that is available on the application server

This header is required only when using the Mongoose API through the ION API.

Request data in XML format

<?xml version="1.0"?>
<IDOUpdateItem
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://www.infor.com">
  <Action>Insert</Action>
  <ItemId>PBT=[Usernames]</ItemId>
  <Properties>
    <UpdateProperty>
      <IsNull>false</IsNull>
      <Modified>true</Modified>
      <Name>Username</Name>
      <Value>jdelacruz</Value>
    </UpdateProperty>
    <UpdateProperty>
      <IsNull>false</IsNull>
      <Modified>true</Modified>
      <Name>UserDesc</Name>
      <Value>Juan Dela Cruz</Value>
    </UpdateProperty>
  </Properties>
</IDOUpdateItem>

Request data in JSON format

{
	"Action": 1,
	"ItemId": "PBT=[Usernames]",
   "Properties": [
      {
         "IsNull": false,
         "Modified": true,
         "Name": "Username",
         "Value": "jdelacruz"
      },
      {
         "IsNull": false,
         "Modified": true,
         "Name": "UserDesc",
         "Value": "Juan Dela Cruz"
      }
   ]
}

Response data in XML format

<MGRestUpdateResponse xmlns="http://schemas.datacontract.org/2004/07/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Message>Insert successful.</Message>
  <MessageCode>200</MessageCode>
</MGRestUpdateResponse>

Response data in JSON format

{
   "Message": "Insert successful.",
   "MessageCode": 200
}

Example

This example code inserts jdoe as a new user.

string xml = string.Empty;
 
using ( HttpClient client = new HttpClient() )
{
   // optionally, you can use json as the response type
   string ido = "UserNames";
   string requestUrl = $"http://server/IDORequestService/MGRESTService.svc/xml/{ido}/additems";
 
   // provide token in the Authorization header
   client.DefaultRequestHeaders.TryAddWithoutValidation(
      "Authorization",
      "b/XdI6IQzCviZOGJ0E+002DoKUFOPmVDkwpQDbQj…==" );
 
   List<IDOUpdateItem> idoItems = new List<IDOUpdateItem>();
 
   UpdateProperty username = new UpdateProperty();
   username.Name = "Username";
   username.Value = "jdoe";
   username.IsNull = false;
   username.Modified = true;
 
   UpdateProperty userDesc = new UpdateProperty();
   userDesc.Name = "UserDesc";
   userDesc.Value = "John Doe";
   userDesc.IsNull = false;
   userDesc.Modified = true;
 
   IDOUpdateItem idoItem = new IDOUpdateItem();
   idoItem.Action = UpdateAction.Insert;
   idoItem.Properties = new[] { username, userDesc };
   idoItem.ItemId = "PBT=[UserNames]";
   idoItems.Add( idoItem );
 
   username = new UpdateProperty();
   username.Name = "Username";
   username.Value = "wsmith";
   username.IsNull = false;
   username.Modified = true;
 
   userDesc = new UpdateProperty();
   userDesc.Name = "UserDesc";
   userDesc.Value = "Will Smith";
   userDesc.IsNull = false;
   userDesc.Modified = true;
 
   idoItem = new IDOUpdateItem();
   idoItem.Action = UpdateAction.Insert;
   idoItem.Properties = new[] { username, userDesc };
   idoItem.ItemId = "PBT=[UserNames]";
   idoItems.Add( idoItem );
 
   // pass the List<IDOUpdateItem> as the request data
   XDocument xdoc = new XDocument( new XDeclaration( "1.0", "utf-8", "yes" ) );
   using ( XmlWriter writer = xdoc.CreateWriter() )
   {
      DataContractSerializer serializer = new DataContractSerializer( idoItems.GetType() );
      serializer.WriteObject( writer, idoItems );
   }
 
   // send the post request
   HttpResponseMessage response = client.PostAsync( requestUrl, new StringContent( xdoc.ToString(), Encoding.UTF8, "application/xml" ) ).Result;
 
   using ( HttpContent content = response.Content )
   {
      Task<string> result = content.ReadAsStringAsync();
      xml = result.Result;
   }
}

You can use these classes to construct the Request Data as demonstrated in the previous code snippets:

public class IDOUpdateItem
{
   public UpdateAction Action { get; set; }
   public string ItemId { get; set; }
   public int ItemNo { get; set; }
   public UpdateProperty[] Properties { get; set; }
   public UpdateLocking UpdateLocking { get; set; }
}
 
public class UpdateProperty
{
   public string Name { get; set; }
   public string Value { get; set; }
   public string OriginalValue { get; set; }
   public bool Modified { get; set; }
   public bool IsNull { get; set; }
}
 
public enum UpdateAction
{
   Insert = 1,
   Update = 2,
   Delete = 4
}
 
public enum UpdateLocking
{
   Row = 0,
   Property = 1
}