cancel
Showing results for 
Search instead for 
Did you mean: 

Problems with custom aspects after upgrade

eagledelta1
Champ in-the-making
Champ in-the-making
I keep getting the following error when I open a document on our Test Alfresco Server:

15:56:45,821 http-8080-22 ERROR [scripts.forms.FormUIGet] org.alfresco.service.cmr.dictionary.DictionaryException: 11190058 Failed to create anonymous type as specified aspect {http://www.alfresco.org/model/knowledgebase/1.0}ordNum not found

In addition, the metadata is not displaying at all and I cannot edit the metadata for any documents either.

kb-model.xml
<?xml version="1.0" encoding="UTF-8"?>

<!– Definition of new Model –>

<!– The important part here is the name - Note: the use of the my: namespace
     which is defined further on in the document –>
<model name="kb:knowledgebase" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!– Optional meta-data about the model –>
   <description>Knowledge Base Model</description>
   <author>Will Abson</author>
   <version>1.0</version>

   <!– Imports are required to allow references to definitions in other models –>
   <imports>
        <!– Import Alfresco Dictionary Definitions –>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <!– Import Alfresco Content Domain Model Definitions –>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <!– Introduction of new namespaces defined by this model –>
   <!– NOTE: The following namespace my.new.model should be changed to reflect your own namespace –>
   <namespaces>
      <namespace uri="http://www.alfresco.org/model/knowledgebase/1.0" prefix="kb"/>
   </namespaces>





    <aspects>

      <!– Definition of new Content Aspect: Knowledge Base Document –>
      <aspect name="kb:referencable">
         <title>Order Processing</title>
         <properties>
            <property name="kb:Company">
               <type>d:text</type>
            </property>
       <property name="kb:Customer">
      <type>d:text</type>
       </property>
       <property name="kb:Order">
      <type>d:text</type>
       </property>
       <property name="kb:PO">
      <type>d:text</type>
       </property>
       <property name="kb:Zip">
      <type>d:text</type>
       </property>
       <property name="kb:Zcode">
      <type>d:text</type>
       </property>
       <property name="kb:Otype">
      <type>d:text</type>
       </property>
       <property name="kb:CheqNo">
      <type>d:text</type>
       </property>
    </properties>
      </aspect>

      <aspect name="kb:ordnum">
     <title>Order Number</title>
     <properties>
       <property name="kb:Onum">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:workf">
     <title>Workflow Info</title>
     <properties>
       <property name="kb:WorkFlow">
      <type>d:text</type>
       </property>
       <property name="kb:WorkFrom">
      <type>d:text</type>
       </property>
       <property name="kb:WorkTo">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>


      <aspect name="kb:completed">
     <title>Completed</title>
     <properties>
       <property name="kb:CompleteDate">
      <type>d:datetime</type>
       </property>
     </properties>
      </aspect>


      <aspect name="kb:futureship">
     <title>Ship Date</title>
     <properties>
       <property name="kb:shipdate">
      <type>d:datetime</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:callme">
     <title>Call Me</title>
     <properties>
       <property name="kb:CallMeDate">
      <type>d:datetime</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:dupli">
     <title>Duplicate Check</title>
     <properties>
       <property name="kb:DupRecord">
      <type>d:text</type>
       </property>
       <property name="kb:DupIgnore">
      <type>d:text</type>
       </property>
       <property name="kb:DupIgn">
      <type>d:boolean</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:err">
     <title>Order Errors</title>
     <properties>
       <property name="kb:WarnMes">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:prof">
     <title>Proforma</title>
     <properties>
       <property name="kb:ProFor">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:log">
     <title>Logging</title>
     <properties>
       <property name="kb:WhereLog">
      <type>d:text</type>
       </property>
       <property name="kb:WhoLog">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>

      <aspect name="kb:fax">
     <title>Fax Info</title>
     <properties>
       <property name="kb:FaxNo">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>


   </aspects>

</model>

kb-model-context.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <!– Registration of new models –>
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>alfresco/extension/kb-model.xml</value>
            </list>
        </property>
    </bean>

</beans>

custom-slingshot-application-context.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

   <!– Override WebScript Messages - add slingshot application messages –>
   <bean id="webscripts.resources" class="org.springframework.extensions.surf.util.ResourceBundleBootstrapComponent">
      <property name="resourceBundles">
         <list>
            <value>webscripts.messages.webscripts</value>
            <value>alfresco.messages.common</value>
            <value>alfresco.messages.slingshot</value>
            <value>alfresco.web-extension.messages.knowledgebase</value>
         </list>
      </property>
   </bean>

</beans>

share-config-custom.xml
<alfresco-config>

   <!– Document Library config section –>
   <config evaluator="string-compare" condition="DocumentLibrary">

      <!–
         Used by the "Manage Aspects" action

         For custom aspects, remember to also add the relevant i18n string(s)
            cm_myaspect=My Aspect
      –>
      <aspects>
         <!– Aspects that a user can see –>
         <visible>
<!–            <aspect name="cm:generalclassifiable" />
            <aspect name="cm:complianceable" />
            <aspect name="cm:dublincore" />
            <aspect name="cm:effectivity" />
            <aspect name="cm:summarizable" />
            <aspect name="cm:versionable" />
            <aspect name="cm:templatable" />
            <aspect name="cm:emailed" />
            <aspect name="emailserver:aliasable" />
            <aspect name="cm:taggable" />
            <aspect name="app:inlineeditable" /> –>
            <aspect name="kb:referencable" />
        <aspect name="kb:completed" />
        <aspect name="kb:futureship" />
        <aspect name="kb:callme" />
        <aspect name="kb:dupli" />
        <aspect name="kb:err" />
        <aspect name="kb:prof" />
        <aspect name="kb:ordnum" />
        <aspect name="kb:workf" />
        <aspect name="kb:log" />
        <aspect name="kb:fax" />
         </visible>

         <!– Aspects that a user can add. Same as "visible" if left empty –>
         <addable>
         </addable>

         <!– Aspects that a user can remove. Same as "visible" if left empty –>
         <removeable>
         </removeable>
      </aspects>

   </config>

   <!– cm:content type (existing nodes) –>
   <config  evaluator="node-type" condition="cm:content">
   <forms>
         <!– Default form configuration used on the document details and edit metadata pages –>
         <form>
            <field-visibility>
      <show id="kb:WarnMes" />
      <hide id="cm:name" />
      <hide id="cm:description" />
      <hide id="cm:title" />
      <hide id="mimetype" />
      <hide id="cm:author" />
      <hide id="cm:creator" />
      <hide id="cm:taggable" />
      <show id="kb:DupRecord" />
      <show id="kb:DupIgn" />
      <show id="kb:Otype" />
              <show id="kb:Company" />
      <show id="kb:PO" />
      <show id="kb:Zcode" />
      <show id="kb:Onum" />
      <show id="kb:CompleteDate" />
      <show id="kb:shipdate" />
      <show id="kb:CallMeDate" />
      <show id="kb:ProFor" />
      <show id="kb:WorkFlow" />
      <show id="kb:WorkFrom" />
      <show id="kb:WorkTo" />
      <show id="kb:FaxNo" />
      <show id="kb:CheqNo" />
   <!–   <show id="kb:WhereLog" />
      <show id="kb:WhoLog" /> –>

            </field-visibility>
            <appearance>
      <field id="kb:WarnMes"  label-id="wMes.kb_err" read-only="true"/>
      <set id="WorkF" appearance="whitespace" label="" />
      <set id="OrderEntry" appearance="fieldset" label="Order Details" />
      <set id="ProForma" appearance="whitespace" label="" />
      <field id="kb:DupRecord"  label-id="dupName.kb_dupli" read-only="true"/>   
      <field id="kb:DupIgn" label-id="dupIgnore.kb_dupli"/>
              <field id="kb:Onum" label-id="oNum.kb_documentRef" set="OrderEntry"/>
      <field id="kb:Otype" label-id="oType.kb_documentRef" set="OrderEntry" >
                <control template="controls/selectone.ftl">
          <control-param name="options">N/A,PO,Easy Order,Tradeshow,Workshop,Tax Exempt Cert</control-param>
                </control>
               </field>
               <field id="kb:Company" label-id="coName.kb_documentRef" description-id="coName-desc.kb_documentRef" set="OrderEntry"/>
      
      <field id="kb:PO" label-id="poNum.kb_documentRef" set="OrderEntry"/>
      
      
      <field id="kb:Zcode" label-id="zCode.kb_documentRef" set="OrderEntry"/>
      <field id="kb:ProFor" label-id="pFor.kb_prof" set="ProForma" />
      <field id="kb:CheqNo" label-id="cheqNo.kb_cheq" set="ProForma" />
      <field id="kb:CompleteDate" label-id="Completed Date"  read-only="true" />
      <field id="kb:shipdate" label-id="Ship Date"  />
      <field id="kb:CallMeDate" label-id="Entered Call Me Folder" read-only="true"/>

      <field id="kb:WorkFrom"  label-id="workFlow.kb_workFrom" read-only="true" set="WorkF"/>
      <field id="kb:WorkTo"  label-id="workFlow.kb_workTo" read-only="true" set="WorkF"/>
      <field id="kb:WorkFlow"  label-id="workFlow.kb_workf" read-only="true" set="WorkF"/>


      <field id="kb:FaxNo"  label-id="faxNo.kb_fax" read-only="true"/>
      <field id="kb:WhereLog" label-id="whereLog.kb_log" >
                <control template="controls/textarea.ftl" />
               </field>
      <field id="kb:WhoLog" label-id="whoLog.kb_log" >
                <control template="controls/textarea.ftl" />
               </field>

            </appearance>
         </form>

         <!– Document Library pop-up Edit Metadata form –>
         <form id="doclib-simple-metadata">
            <field-visibility>
      <show id="kb:WarnMes" />
      <hide id="cm:name" />
      <hide id="cm:description" />
      <hide id="cm:title" />
      <hide id="mimetype" />
      <hide id="cm:author" />
      <hide id="cm:creator" />
      <hide id="cm:taggable" />
      <show id="kb:DupRecord" />
      <show id="kb:DupIgn" />
      <show id="kb:Otype" />
              <show id="kb:Company" />
      <show id="kb:PO" />
      <show id="kb:Zcode" />
      <show id="kb:Onum" />
      <show id="kb:CompleteDate" />
      <show id="kb:shipdate" />
      <show id="kb:CallMeDate" />
      <show id="kb:ProFor" />
      <show id="kb:WorkFlow" />
      <show id="kb:WorkFrom" />
      <show id="kb:WorkTo" />
      <show id="kb:FaxNo" />
      <show id="kb:CheqNo" />
   <!–   <show id="kb:WhereLog" />
      <show id="kb:WhoLog" /> –>

            </field-visibility>
            <edit-form template="../documentlibrary/forms/doclib-simple-metadata.ftl" />
            <appearance>
      <field id="kb:WarnMes"  label-id="wMes.kb_err" read-only="true"/>
      <set id="WorkF" appearance="whitespace" label="" />
      <set id="OrderEntry" appearance="fieldset" label="Order Details" />
      <set id="ProForma" appearance="whitespace" label="" />
      <field id="kb:DupRecord"  label-id="dupName.kb_dupli" read-only="true"/>   
      <field id="kb:DupIgn" label-id="dupIgnore.kb_dupli"/>
              <field id="kb:Onum" label-id="oNum.kb_documentRef" set="OrderEntry"/>
      <field id="kb:Otype" label-id="oType.kb_documentRef" set="OrderEntry" >
                <control template="controls/selectone.ftl">
          <control-param name="options">N/A,PO,Easy Order,Tradeshow,Workshop,Tax Exempt Cert</control-param>
                </control>
               </field>
               <field id="kb:Company" label-id="coName.kb_documentRef" description-id="coName-desc.kb_documentRef" set="OrderEntry"/>
      
      <field id="kb:PO" label-id="poNum.kb_documentRef" set="OrderEntry"/>
      
      
      <field id="kb:Zcode" label-id="zCode.kb_documentRef" set="OrderEntry"/>
      <field id="kb:ProFor" label-id="pFor.kb_prof" set="ProForma" />
      <field id="kb:CheqNo" label-id="cheqNo.kb_cheq" set="ProForma" />
      <field id="kb:CompleteDate" label-id="Completed Date"  read-only="true" />

      <field id="kb:shipdate" label-id="Ship Date"  set="ProForma" />
      <field id="kb:WorkFrom"  label-id="workFlow.kb_workFrom" read-only="true" set="WorkF"/>
      <field id="kb:WorkTo"  label-id="workFlow.kb_workTo" read-only="true" set="WorkF"/>
      <field id="kb:WorkFlow"  label-id="workFlow.kb_workf" read-only="true" set="WorkF"/>


      <field id="kb:FaxNo"  label-id="faxNo.kb_fax" read-only="true"/>
      <field id="kb:WhereLog" label-id="whereLog.kb_log" >
                <control template="controls/textarea.ftl" />
               </field>
      <field id="kb:WhoLog" label-id="whoLog.kb_log" >
                <control template="controls/textarea.ftl" />
               </field>

            </appearance>
         </form>

         <!– Document Library Inline Edit form –>
         <form id="doclib-inline-edit">
            <field-visibility>
      <show id="kb:Otype" />
               <show id="kb:Company" />

      <show id="kb:PO" />
      
      <show id="kb:Onum" />
      <show id="kb:Zcode" />

            </field-visibility>
            <appearance>
      <field id="kb:Otype" label-id="oType.kb_documentRef" >
                <control template="controls/selectone.ftl">
          <control-param name="options">PO,Easy Order,Tradeshow,Workshop</control-param>
                </control>
               </field>
               <field id="kb:Company" label-id="coName.kb_documentRef" />
      
      <field id="kb:PO" label-id="poNum.kb_documentRef" />
      
      <field id="kb:Onum" label-id="oNum.kb_documentRef" />
      <field id="kb:Zcode" label-id="zCode.kb_documentRef" />

            </appearance>
         </form>
      </forms>
   </config>
  
   <!– Repository Library config section –>
   <config evaluator="string-compare" condition="RepositoryLibrary" replace="true">
      <!–
         Whether the link to the Repository Library appears in the header component or not.
      –>
      <visible>true</visible>
   </config>

   <config evaluator="string-compare" condition="Remote">
      <remote>
         <endpoint>
            <id>alfresco-noauth</id>
            <name>Alfresco - unauthenticated access</name>
            <description>Access to Alfresco Repository WebScripts that do not require authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
            <identity>none</identity>
         </endpoint>

         <endpoint>
            <id>alfresco</id>
            <name>Alfresco - user access</name>
            <description>Access to Alfresco Repository WebScripts that require user authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
            <identity>user</identity>
         </endpoint>

         <endpoint>
            <id>alfresco-feed</id>
            <name>Alfresco Feed</name>
            <description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
            <connector-id>http</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
            <basic-auth>true</basic-auth>
            <identity>user</identity>
         </endpoint>
      </remote>
   </config>

</alfresco-config>

webscript-framework-config-custom.xml
<alfresco-config>
  
   <!– Overriding endpoints to reference a remote Alfresco server –>
  
   <config evaluator="string-compare" condition="Remote">
      <remote>

         <endpoint>
            <id>alfresco-noauth</id>
            <name>Alfresco - unauthenticated access</name>
            <description>Access to Alfresco Repository WebScripts that do not require authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>http://yourserver:8080/alfresco/s</endpoint-url>
            <identity>none</identity>
         </endpoint>

         <endpoint>
            <id>alfresco</id>
            <name>Alfresco - user access</name>
            <description>Access to Alfresco Repository WebScripts that require user authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>http://yourserver:8080/alfresco/s</endpoint-url>
            <identity>user</identity>
         </endpoint>

         <endpoint>
            <id>alfresco-feed</id>
            <name>Alfresco Feed</name>
            <description>Alfresco Feed - supports basic HTTP authentication</description>
            <connector-id>http</connector-id>
            <endpoint-url>http://yourserver:8080/alfresco/s</endpoint-url>
            <basic-auth>true</basic-auth>
            <identity>user</identity>
         </endpoint>
         
      </remote>
   </config> <!–
   –>
   
   <!– Overriding endpoints to reference an Alfresco server with external SSO or NTLM enabled –>
   <!– NOTE: For NTLM, the NTLM Authentication Filter must also be enabled in share web.xml –>
   <!– NOTE: if utilising a load balancer between web-tier and repository cluster, the "sticky –>
   <!–       sessions" feature of your load balancer must be used –>
   <!– Optional keystore contains SSL client certificate + trusted CAs. Used to authenticate share to an external SSO system such as CAS –>
  
   <config evaluator="string-compare" condition="Remote">
        <remote>
            <keystore>
                <path>alfresco/web-extension/alfresco-system.p12</path>
                <type>pkcs12</type>
                <password>alfresco-system</password>
            </keystore>
        
            <endpoint>
                <id>alfresco</id>
                <name>Alfresco - user access</name>
                <description>Access to Alfresco Repository WebScripts that require user authentication</description>
                <connector-id>alfresco</connector-id>
                <endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>
                <identity>user</identity>
                <external-auth>true</external-auth>
                <authenticator-id>alfresco-ticket</authenticator-id>
            </endpoint>
           
        </remote>
    </config> <!–
   –>

</alfresco-config>

knowledgebase.properties
# Custom knowledge base messages
coName.kb_documentRef=Name
coName-desc.kb_documentRef = Can be Company, School or Individual Name
custNum.kb_documentRef=Customer Number
ordNum.kb_documentRef=Order Number
poNum.kb_documentRef=PO No. (if applicable)
zip.kb_documentRef=Zip Code
kb_referencable=Order Processing
aspect.kb_referencable=Order Processing
aspect.kb_completed=Completed
aspect.kb_futureship=Future Ship Date
aspect.kb_callme=Call Me Date
dupName.kb_dupli=Duplicate Found
dupIgnore.kb_dupli=Ignore duplicate warning?
aspect.kb_dupli=Duplicate Check
oNum.kb_documentRef=Order Number
zCode.kb_documentRef=Zip Code
oType.kb_documentRef=Document Type
wMes.kb_err=Error Detected
aspect.kb_err=Order Errors
pFor.kb_prof=Proforma No. (if applicable)
aspect.kb_prof=Proforma
aspect.kb_ordnum=Order Number
aspect.kb_workf=Workflow Info
workFlow.kb_workf =Workflow in progress
workFlow.kb_workFrom =From
workFlow.kb_workTo =To
aspect.kb_log = Logging
whereLog.kb_log = Which folders
whoLog.kb_log = Which users
faxNo.kb_fax=Fax No.
aspect.kb_fax=Fax Info
cheqNo.kb_cheq=Cheque No. (if applicable)


Help would be greatly appreciated.
3 REPLIES 3

zladuric
Champ on-the-rise
Champ on-the-rise
You did not define any types in your kb-model.xml, specifically kbSmiley SurprisedrdNum. You only have aspects.

Maybe you can turn
<aspect name="kb:ordnum">
into
<type name="kb:ordnum">
? And move it in front of the <aspects> section into <types> section?

I think that's your problem, hope it helps.

eagledelta1
Champ in-the-making
Champ in-the-making
You did not define any types in your kb-model.xml, specifically kbSmiley SurprisedrdNum. You only have aspects.

Maybe you can turn
<aspect name="kb:ordnum">
into
<type name="kb:ordnum">
? And move it in front of the <aspects> section into <types> section?

I think that's your problem, hope it helps.

Shouldn't need to define any types as the aspects defined inherit types from the default content models

i.e.
 <aspect name="kb:ordnum">
     <title>Order Number</title>
     <properties>
       <property name="kb:Onum">
      <type>d:text</type>
       </property>
     </properties>
      </aspect>

Note
<type>d:text</type>

If I needed to define new types for every new aspect, then importing the Alfresco dictionary would be useless.

zladuric
Champ on-the-rise
Champ on-the-rise
No, I have misread your error code, I thought alfresco was complaining about a missing type - only now I saw that you're in fact using the aspect already.