Question

"Smart Object Unknown could not be found" after editing Smart Object

  • 26 February 2015
  • 6 replies
  • 2 views

Hello!

 

I had some fields in a SO that I was no longer using so I deleted them. Now, every time I try to run a form that uses this SO, I get the error "Smart Object Unknown could not be found." I can't edit any views or anything either, I check out and then double click to edit and just get a blank area of the screen where the design canvas of the view should be. I get "Object reference not set to an instance of an object" when trying to edit any of the forms. Therefore, I can't even recreate the SO. 

 


6 replies

Hi, 

 

When you delete a SmartObject field, any forms using that SmartObject will break due to the fact that the schema no longer exists. If you delete the Smart Object and recreate it with the same name the new object will not function because SmartObjects are referenced by GUIDs and not the SmartObject’s name. What you can try is to revert the SmartObject to a point before you made the changes to it and remove the references to the SmartObject within the form. Once you do this, you can make the changes to the SmartObject and then rebind it to the form or view.

I went into the DB tbl Smartbox.SmartboxObject and deleted all the rows for that SO that were modified today, then set the LatestVersion to 'Y" for the most recent version of the SO whose modified date was back a few days. Now I get the "Object reference..." error every time I try to edit a Form or View. I also get the "Smart Object Unknown could not be found" error when I run a form but the form does still load. When I open the SO, it has not reverted back to it's previous version. The fields I deleted are still missing.

 

This doesn't make sense because:

1. I have deleted a SO field before and not had this problem and

2. How can you have a system where you can't make ANY changes whatsoever to data structure without everything breaking? I also can't even add a field in a SQL table without having to delete SO binding from view, refresh ServiceInstance, recreate SO, bind new SO to view again. Its absolutely ridiculous. I'm not sold on this "fast development time, no code" when I could code a more reliable solution in half the time in takes me to create something in Designer because I have to create each thing like 5 times PLUS troubleshooting time.

 

How is the schema now missing? I don't think I understand because it's definitely been here in the DB the whole time.

 

Lastly, how can I remove the references to the SO within the form (it would be the views) when I can't even edit the form or views?

 

I appreciate your help, sorry for ranting a bit. 

This is actually quite easy to resolve

 

I have accidently deleted the SMO many times or simply re-published it accidently  with a new GUID and get the infamous rotating Java Circle..

 

When you get the message Smart Object [xxxxxxxxxguidxxxxxxxxxxxxxx] could not be found, copy the GUID from the error message and republish the SMO with the GUID from the Error Message, at least the form will open albeit it may have a couple of errors  

Can you tell me exactly how you are republishing the SMO with the GUID in the error message?  I have the same problem but am unsure how to re publish the SMO like you are describing.

Thanks,

Christa

Perhaps the Smartobject Service Tester tool can be used.


 


1.  Assuming you can recreate the smartobject, such that its method/property is the same as the previous one; but the guid is the only thing that is different


2.  Take note of this new Smartobject's guid {newSMOGUID}, can be done so via SmartObject Service Tester Tool > Right click on Smartobject > View XML > GUID


3.  You can use the Export Smartobjects function of the Smartobject Service Tester tool to export this Smartobject, it will be in a .publish format (essentially XML file)


4.  Search and replace any reference to the {newSMOGUID} in this .publish file; with the {GUIDthatTheViewisErring/Lookingfor}


5.  Delete this new Smartobject


6.  Use the Import Smartbject option and select the .publish file that was modified


7.  The SmartObject will be imported with the  {GUIDthatTheViewisErring/Lookingfor}


8.  See if the View is editable afterwards

I got the following message when I tried to deploy a Workflow from Visual Studio 2015:

 

"The SmartObject 'EngineeringChangeOrder' used in 'ToManagerWrite' could not be found."

 

I needed to change a few properties anyways (change the URL properties for SharePoint as we upgraded from 2010 to 2016).  I opened the Workflow in the SmartObject Server Tester and it looked fine.  After making the I need to change and saving them, the problem went away.  I am now able to successfully deploy my Workflow.

 

 

Reply