Can anyone explain how a record can be deleted in the entries?
public class ContourDelete : WorkflowType
{
public ContourDelete()
{
this.Name = "Check spam";
this.Id = new Guid("b3c5a019-5ed4-4a38-98aa-ecf2fc191648");
//this.Id = new Guid();
this.Description = "This will save an entry to the log";
}
public override List<Exception> ValidateSettings()
{
return new List<Exception>();
}
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e)
{
RecordService rs = new RecordService(record);
rs.Delete();
rs.Dispose();
return WorkflowExecutionStatus.Completed;
}
}
1. I created a class that simply deletes a submitted record. When I created an id for the object in the constructor with
this.id = new Guid();
I will get.
The INSERT statement conflicted with the FOREIGN KEY
constraint "FK_UFRecordDataString_UFRecordFields". The conflict occurred
in database "umbraco", table "dbo.UFRecordFields", column 'Key'. The statement has been terminated.
SQL Server Exception
Doing
this.Id = new Guid("b3c5a019-5ed4-4a38-98aa-ecf2fc191648");
can stop this happening. why is that?
2. in the override method WorkflowExecutionStatus Execute
a record should have been deleted when the form is submitted, but when I looked at the backoffice and database table, the record is still added. I am using a contour installed on a local machine without lisence.
Is "rs.Delete()" a correct way to delete a record?
In answer to 1, the id for the workflow must be a STATIC Guid, i.e. you set it for the workflow once, and it doesn't ever change. If you have new Guid() then the workflow id chnages every time it loads, so it won't work properly. When I create new workflows etc I usually use one of the many online GUID generators to create a Guid for the workflow.
If you use the static Guid, does the record get deleted, or is it still there?
I seam to have to same problem. In umbraco v 4.8.0 (Assembly version: 1.0.4583.15483) whit UmbracoContour 1.1.13.2
[SqlException (0x80131904): The INSERT statement conflicted with the FOREIGN KEY constraint "FK_UFRecordDataString_UFRecordFields". The conflict occurred in database "umbraco_db", table "dbo.UFRecordFields", column 'Key'.
Any solution to this ?
public class ArrangementHandler : Umbraco.Forms.Core.WorkflowType
{
public ArrangementHandler() {
this.Name = "Arrangement workflow";
this.Id = new Guid("20584169-2351-4569-8c4c-cf76ddf97cda");
this.Description = "Arrangement workflow til events";
}
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e) {
var deleteservice = new RecordService(record);
deleteservice.Delete();
deleteservice.Dispose();
}
return WorkflowExecutionStatus.Completed;
}
public override System.Collections.Generic.ListValidateSettings()
workflow delete record not working
Can anyone explain how a record can be deleted in the entries?
public class ContourDelete : WorkflowType
{
public ContourDelete()
{
this.Name = "Check spam";
this.Id = new Guid("b3c5a019-5ed4-4a38-98aa-ecf2fc191648");
//this.Id = new Guid();
this.Description = "This will save an entry to the log";
}
public override List<Exception> ValidateSettings()
{
return new List<Exception>();
}
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e)
{
RecordService rs = new RecordService(record);
rs.Delete();
rs.Dispose();
return WorkflowExecutionStatus.Completed;
}
}
1. I created a class that simply deletes a submitted record. When I created an id for the object in the constructor with
this.id = new Guid();
I will get.
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_UFRecordDataString_UFRecordFields". The conflict occurred in database "umbraco", table "dbo.UFRecordFields", column 'Key'.
The statement has been terminated.
SQL Server Exception
Doing
this.Id = new Guid("b3c5a019-5ed4-4a38-98aa-ecf2fc191648");
can stop this happening. why is that?
2. in the override method WorkflowExecutionStatus Execute
a record should have been deleted when the form is submitted, but when I looked at the backoffice and database table, the record is still added. I am using a contour installed on a local machine without lisence.
Is "rs.Delete()" a correct way to delete a record?
Have tried
var recordStorage = new RecordStorage();
recordStorage.DeleteRecord(record);
did not work either
In answer to 1, the id for the workflow must be a STATIC Guid, i.e. you set it for the workflow once, and it doesn't ever change. If you have new Guid() then the workflow id chnages every time it loads, so it won't work properly. When I create new workflows etc I usually use one of the many online GUID generators to create a Guid for the workflow.
If you use the static Guid, does the record get deleted, or is it still there?
I seam to have to same problem. In umbraco v 4.8.0 (Assembly version: 1.0.4583.15483) whit UmbracoContour 1.1.13.2
Any solution to this ?
public class ArrangementHandler : Umbraco.Forms.Core.WorkflowType
{
public ArrangementHandler() {
this.Name = "Arrangement workflow";
this.Id = new Guid("20584169-2351-4569-8c4c-cf76ddf97cda");
this.Description = "Arrangement workflow til events";
}
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e) {
var deleteservice = new RecordService(record);
deleteservice.Delete();
deleteservice.Dispose();
}
return WorkflowExecutionStatus.Completed;
}
public override System.Collections.Generic.ListValidateSettings()
{
Listexceptions = new List();
return exceptions;
}
is working on a reply...