0
votes

I have two questions about two Custom Content Types I created called my:whitepaper and my:bc:

When I try to Change Type on a document and I select my:whitepaper custom type it works but not with my:bc.

  • When I select my:bc It gives me an error message saying: Unable to change type of document 'test.pdf'.

enter image description here

  • In "Manage Rules" -> "Specialse Type" , I can't see my bc type: enter image description here

The type of 'test.pdf' document is cm:content: enter image description here

Here's my :

custom-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/customModel.xml</value>
            </list>
        </property>
        <property name="labels">
            <list>
                <value>alfresco/extension/custom-model-messages</value>
            </list>
        </property>
    </bean>

</beans>

custom-model-messages.properties:

type.my_whitepaper= piece Comptable
type.my_whitepaper.title= piece Comptable
type.my_whitepaper.property.my_product= Ecriture Comptable

type.my_bc=bc
type.my_bc.title=bc

customModel.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="my:contentModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

    <!-- Optional meta-data about the model -->
    <description>Example Custom Model</description>
    <author>Alfresco Documentation Team</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.mycompany.com/model/content/1.0" prefix="my" />
    </namespaces>



    <types>
        <!-- Enterprise-wide generic document type -->
        <type name="my:doc">
            <title>MyCompany Generic Document</title>
            <parent>cm:content</parent>

        </type>


        <type name="my:marketingDoc">
            <title>MyCompany Marketing Document</title>
            <parent>my:doc</parent>
            <properties>
                <property name="my:product">
                    <title>écriture comptable</title>
                    <type>d:text</type>
                </property>
                <property name="cm:author">
                    <title>auteur</title>
                    <type>d:text</type>
                </property>
            </properties>
        </type>
        <type name="my:bc">
            <title>Bon de commande</title>
            <parent>my:marketingDoc</parent>

        </type>
        <type name="my:whitepaper">
            <title>une piece Comptable</title>
            <parent>my:marketingDoc</parent>
        </type>


    </types>
</model> 

share-config-custom.xml:

     <types>
         <type name="cm:content">
            <subtype name="smf:smartFolderTemplate" />
            <subtype name="my:whitepaper" />
            <subtype name="my:bc" />
         </type>

         <type name="cm:folder">
         </type>

         <type name="trx:transferTarget">
            <subtype name="trx:fileTransferTarget" />
         </type>

      </types>

   <!-- custom content comptable -->
   <config evaluator="model-type" condition="my:whitepaper">
        <forms>
            <form>
                <field-visibility>
                    <show id="cm:name" />
                    <show id="my:product" />
               <show id="cm:author" />
                    <show id="cm:title" force="true" />
                    <show id="cm:description" force="true" />
             <!--   <show id="my:relatedDocuments" />-->
                </field-visibility>
            </form>
        </forms>
    </config>


    <config evaluator="node-type" condition="my:whitepaper">
        <forms>
            <form>
                <field-visibility>
                    <show id="cm:name" />
                    <show id="my:product" />
               <show id="cm:author" />
                    <show id="cm:title" force="true" />
                    <show id="cm:description" force="true" />
          <!--     <show id="my:relatedDocuments" /> -->
                </field-visibility>
            </form>
        </forms>
    </config>

<!-- custom Bon commande -->

   <config evaluator="model-type" condition="my:bc">
      <forms>
         <form>
            <field-visibility>
               <show id="cm:name" />
               <show id="my:product" />
               <show id="cm:author" />
               <show id="cm:title" force="true" />
               <show id="cm:description" force="true" />
             <!--   <show id="my:relatedDocuments" />-->
            </field-visibility>
         </form>
      </forms>
   </config>


   <config evaluator="node-type" condition="my:bc">
      <forms>
         <form>
            <field-visibility>
               <show id="cm:name" />
               <show id="my:product" />
               <show id="cm:author" />
               <show id="cm:title" force="true" />
               <show id="cm:description" force="true" />
          <!--     <show id="my:relatedDocuments" /> -->
            </field-visibility>
         </form>
      </forms>
   </config>

Logs:

  • The logs : alfresco.log and catalina.out don't show anything.

  • Browser's Developer tools show this:

enter image description here

1
The document you specialize is of which type? - Lista
@Lista The type of 'test.pdf' document is cm:content - zenami
If you are seeing an error 500 the logs should show something. Do you have the JavaScript Console installed? Maybe you could try changing the type using server-side JavaScript, just to see if you get a more descriptive error. Alternatively, you could use the Apache Chemistry OpenCMIS Workbench to change the type, again, just to see if you get a different result. - Jeff Potts
If you are using Mac OS/x then please add the following property in alfresco-global.properties file. policy.content.update.ignoreEmpty=false - Kintu Barot

1 Answers

2
votes

I am unable to reproduce this problem in a project generated with SDK 3.0.1, taking all defaults (Repo 5.2.f/Share 5.2.e) with your content model and Share config. I can change cm:content objects to my:bc objects. When configuring rules I can select your custom types in the Specialize Type action, see screenshot, below:Specialize Type action allows your custom types.

So, either you have some other stuff added to your config that hasn't been included in the above snippets or you haven't deployed your customizations correctly.

You might want to bootstrap a new project and drop your files in as I have, then run it with the embedded Tomcat to make sure you can change types and configure rules successfully. Then you can compare what is in that project to what you have in your original project to see where you went wrong.