SmartObjects: Persistable object is marked as a non public object

  • 21 August 2013
  • 6 replies
  • 0 views

Badge +1

So, after upgrading to K2 Blackpearl 4.6.6, I open one of my SmartObject's "Read" methods. It's a simple read method which utilizes the Service Object's SQL provider.


As I attempt to move off the "Method Details" Wizard Page (Read type method), I receive an exception "Persistable object is marked as a non public object".


Details:


SourceCode.Workflow.Design


   at SourceCode.Workflow.Design.ServiceMethodFieldPart.GetServiceInstance()


   at SourceCode.Workflow.Design.ServiceMethodFieldPart.get_Text()


   at SourceCode.Workflow.WizardFramework.Controls.K2TextBoxBase.RenderViewFromK2Field()


   at SourceCode.Workflow.WizardFramework.Controls.K2TextBoxBase.set_K2Field(K2Field value)


   at SourceCode.Workflow.WizardFramework.Controls.K2TextBox.set_K2Field(K2Field value)


   at SourceCode.SmartObjects.Wizards.Methods.Pages.ServiceMethodMapping.OnActivate()


   at SourceCode.Workflow.WizardFramework.WizardPage.SourceCode.Framework.IWizardPage.Activate()


   at SourceCode.Workflow.WizardFramework.PropertyWizard.ActivateCurrentPage()


   at SourceCode.Workflow.WizardFramework.PropertyWizard.OnNavigateToPage(WizardPage destinationPage, Direction direction)


   at SourceCode.Workflow.WizardFramework.PropertyWizard.set_CurrentPage(WizardPage value)


   at SourceCode.Workflow.WizardFramework.PropertyWizard.OnNext(IWizardHostService host)


   at SourceCode.Workflow.WizardFramework.PropertyWizard.SourceCode.Framework.IPropertyWizard.Next(IWizardHostService host)


   at SourceCode.Workflow.DesignerFramework.WizardHost.ShowNextPage()


SourceCode.Workflow.Design


 


   at SourceCode.Workflow.Design.ServiceMethodFieldPart.GetServiceInstance()


   at SourceCode.Workflow.Design.ServiceMethodFieldPart.get_Text()


   at SourceCode.Workflow.WizardFramework.Controls.K2TextBoxBase.RenderViewFromK2Field()


   at SourceCode.Workflow.WizardFramework.Controls.K2TextBoxBase.set_K2Field(K2Field value)


   at SourceCode.Workflow.WizardFramework.Controls.K2TextBox.set_K2Field(K2Field value)


   at SourceCode.SmartObjects.Wizards.Methods.Pages.ServiceMethodMapping.OnActivate()


   at SourceCode.Workflow.WizardFramework.WizardPage.SourceCode.Framework.IWizardPage.Activate()


   at SourceCode.Workflow.WizardFramework.PropertyWizard.ActivateCurrentPage()


   at SourceCode.Workflow.WizardFramework.PropertyWizard.OnNavigateToPage(WizardPage destinationPage, Direction direction)


   at SourceCode.Workflow.WizardFramework.PropertyWizard.set_CurrentPage(WizardPage value)


   at SourceCode.Workflow.WizardFramework.PropertyWizard.OnNext(IWizardHostService host)


   at SourceCode.Workflow.WizardFramework.PropertyWizard.SourceCode.Framework.IPropertyWizard.Next(IWizardHostService host)


   at SourceCode.Workflow.DesignerFramework.WizardHost.ShowNextPage()


 


So I attempt to add an additional method instead:


Call it "ReadNew", and select the "Read" type, I am able to move to the next wizard page, but whatever I do, I cannot drop the "Read" service method. No exception, just does not add it from the ServiceObject server


Nevermind, I'll test the currently deployed SmartObject and if it works, download the SODX:


Well, the object's methods work fine, but the refresh from the server doesn't work either. Same problem as before.


I guess I'm going to have to recreate this Smart Object from scratch and waste more time..


Oh, and it seems that the other SmartObjects in my solution work fine though.


6 replies

Badge +6

It looks like something has gone wrong. You will not be able to drop the service method if the smartobject tester tool throws the same error. The only option is to recreate the smartobject.

Badge +1

I have a brand new installation of 4.6.6.


I cannot create SQL Server SmartObjects (direct table) using the Smart Objet Tester at all.


I get the same error "Persistable object is marked as a non public object. Object should be create by it's parent." multiple times (once for each foreign ke on the table maybe??) on attempting to "Create Smart Object".


Any help would be appreciated.

Badge +6

matt, This looks like a known issue. Do you have any Foreign Keys between the tables? If so, please log a support ticket to get a fix or wait for the next version 4.6.7 which has the fix.

Badge +1

Sujeeth,


  Indeed the number of errors definately corresponds to the number of Foreign Keys on the table.


  I will rais a support ticket, thanks.

Badge +1

It seems the temporary solution is to remove the foreign key relationships between the tables in the database, then update the SQL server service (in order to pick up the DB changes)

Badge +1

Thanks jkretzmann, unfortunately I am not in a position to be able to remove and re-add the foreign keys on the particular database I am interested in.


Have raised a support ticket and am waiting for a response.

Reply