SaveJson

The SaveJson method modifies a collection (inserting, updating, or deleting records) using the UpdateCollection method of an IDO, using JSON.

Syntax

public string SaveJson( string strSessionToken,
                        string updateJsonObject,
                        string strCustomInsert,
                        string strCustomUpdate,
                        string strCustomDelete )

Parameters

Name Description
strSessionToken This is the session token obtained through a call to the CreateSessionToken API.
updateJsonObject This parameter specifies a JSON object that contains records to be updated.
refreshAfterSave When set to TRUE, this parameter specifies that the records to be updated are to be refreshed and returned to the caller.
strCustomInsert This parameter is a comma-delimited list of methods and/or instructions which override the default save behavior.
strCustomUpdate This parameter is a comma-delimited list of methods and/or instructions which override the default save behavior.
strCustomDelete This parameter is a comma-delimited list of methods and/or instructions which override the default save behavior.

Output

None

Example 1 – Insert action using SaveJson

string sessionToken = "b/XdI6IQzCviZOGJ0E+002…5vl903teP0jSDwkFs";

// property values to insert
PropertyStatusPair username = new PropertyStatusPair() { Property = "jdoe1", 
Updated = true };
PropertyStatusPair userDesc = new PropertyStatusPair() { Property = "John Doe", Updated = true };
 
// row to insert
SimpleIDOItem idoItem = new SimpleIDOItem
{
   EditStatus = SimpleIDOItem.Modified.Inserted,
   Properties = new List<PropertyStatusPair>() { username, userDesc }
};
 
SimpleIDOItemList insertRequest = new SimpleIDOItemList
{
   IDOName = "UserNames",
   PropertyList = new[] { "Username", "UserDesc" },
   Items = new List<SimpleIDOItem>()
};
insertRequest.Items.Add( idoItem );

IDOWebService.DOWebServiceSoapClient soapClient = new 
IDOWebService.DOWebServiceSoapClient(); 

// provide the insertRequest as the payload
string payload = JsonConvert.SerializeObject( insertRequest );
string result = soapClient.SaveJson( sessionToken, payload, string.Empty, 
string.Empty, string.Empty );

Example 2 – Update action using SaveJson

string sessionToken = "b/XdI6IQzCviZOGJ0E+002…5vl903teP0jSDwkFs";

// property values to update
PropertyStatusPair userDesc = new PropertyStatusPair() { Property = "John Doe Sr.", Updated = true };
 
// row to update
SimpleIDOItem idoItem = new SimpleIDOItem
{
   EditStatus = SimpleIDOItem.Modified.Modified,
   ID = "PBT=[UserNames] UserNames.DT=[2019-07-29 12:54:00.937] UserNames.ID=[6565e11a-80d8-43de-b91e-951df7867816]",
   Properties = new List<PropertyStatusPair>() { userDesc }
};
 
SimpleIDOItemList updateRequest = new SimpleIDOItemList
{
   IDOName = "UserNames",
   PropertyList = new[] { "UserDesc" },
   Items = new List<SimpleIDOItem> { idoItem }
};
 
IDOWebService.DOWebServiceSoapClient soapClient = new 
IDOWebService.DOWebServiceSoapClient();

// provide the updateRequest as the payload
string payload = JsonConvert.SerializeObject( updateRequest );
string result = soapClient.SaveJson( sessionToken, payload, string.Empty, 
string.Empty, string.Empty );

Example 3 – Delete action using SaveJson

string sessionToken = "b/XdI6IQzCviZOGJ0E+002…5vl903teP0jSDwkFs";
 
PropertyStatusPair userDesc = new PropertyStatusPair() { Property = "John Doe Sr.", Updated = true };
 
// row to delete
SimpleIDOItem idoItem = new SimpleIDOItem
{
   EditStatus = SimpleIDOItem.Modified.Deleted,
   ID = "PBT=[UserNames] UserNames.DT=[2019-07-29 12:55:22.173] UserNames.ID=[41ef60ef-1ec8-4740-9a52-ea361fbe83de]",
   Properties = new List<PropertyStatusPair>()
};
 
SimpleIDOItemList deleteRequest = new SimpleIDOItemList
{
   IDOName = "UserNames",
   PropertyList = new[] { "UserDesc" },
   Items = new List<SimpleIDOItem>()
};
deleteRequest.Items.Add( idoItem );
 
IDOWebService.DOWebServiceSoapClient soapClient = new 
IDOWebService.DOWebServiceSoapClient();

// provide the deleteRequest as the payload
string json = JsonConvert.SerializeObject( deleteRequest );
string result = soapClient.SaveJson( sessionToken, json, string.Empty, 
string.Empty, string.Empty );

Helper classes for the examples

You can use these classes to help construct the request as demonstrated in the code snippets above:

public class SimpleIDOItemList
{
   public string IDOName { get; set; }
   public string[] PropertyList { get; set; }
   public List<SimpleIDOItem> Items;
}
 
public class SimpleIDOItem
{
   public enum Modified
   {
      Unmodified,
      Modified,
      Deleted,
      Inserted
   }
 
   public string ID { get; set; }
   public List<PropertyStatusPair>  Properties;
   public Modified EditStatus { get; set; }
}
 
public struct PropertyStatusPair
{
   public string Property { get; set; }
   public bool Updated { get; set; }
}