Retrieve the record Id of the new record after calling Entity.Save()

Hi Community,

 

I have a Configuration service which saves new record on Account. I am saving new record using Entity.Save(). How can retrieve the record Id of the new record after calling Entity.Save()?

 

Thanks

Like 0

Like

1 comments

Hi Fulgen,

 

Here is the example of my process that I called using the /0/ServiceModel/ProcessEngineService.svc/UsrAddNewExternalContact/Execute endpoint and that returned an Id of the created contact in the auto-generated page that was launched in the background:

The code of the script task is:

var schema = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
var entity = schema.CreateEntity(UserConnection);
var ContactName="This is contact created via a process";
var ContactPhone="13222123";
entity.SetDefColumnValues();
entity.SetColumnValue("Name", ContactName);
entity.SetColumnValue("Phone", ContactPhone);
entity.Save();
EntitySchemaQuery query = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Contact");
query.PrimaryQueryColumn.IsAlwaysSelect = true;
var entities = query.GetEntityCollection(UserConnection);
List<object> contacts = new List<object>();
foreach (var item in entities){
if (item.GetTypedColumnValue<Guid>("Id") == entity.GetTypedColumnValue<Guid>("Id"))
{
	var contact = new
    {
        Id = entity.GetTypedColumnValue<Guid>("Id"),
    };
    contacts.Add(contact);
}
}
Set("ContactList", JsonConvert.SerializeObject(contacts));
return true;

So the idea here is to create a contact calling a process from outside (you can modify the code and pass ContactName and ContactPhone as actual parameters when calling /0/ServiceModel/ProcessEngineService.svc/UsrAddNewExternalContact/Execute), execute the entity.Save(); and then find the created contact and return its Id on the autogenerated page. As a result I've received this Id:

and the contact was created in the system:

So you need to use something similar in your webservice.

 

Best regards,

Oscar

Show all comments