Alfresco Form-Model Management

13 Likes

About this add-on

The Form Management Module allows you to design and manage forms that in turn deploy content models within Alfresco. Giving us the complete control over Usability, Design and Validation used in today's user focused forms. This is accomplished via the "hot deploy" method in the Data Dictio…

Visit code.google.com

Development Status:

Beta

Description

The Form Management Module allows you to design and manage forms that in turn deploy content models within Alfresco. Giving us the complete control over Usability, Design and Validation used in today's user focused forms.

This is accomplished via the "hot deploy" method in the Data Dictionary/Models space. Therefore changes to the model are made available immediately.

NEW: REPLACE ALFRESCO'S ADVANCED SEARCH WITH FM - See project home

Presentation Layer and Content Models.

Introducing a new presentation layer between the content model and the end user allows us to take control of the Usability, Design, Validation and verification used in today's modern forms. By splitting these layers up we can now take advantage of the following:

  • UI representation of form data can be completely custom (e.g. Using a slider, calendar, etc...)
  • Save time and effort creating forms and models (manage it in one place, manage the form = managing the model)
  • Move work over to the business area. Administrative staff can easily manage the forms themselves
  • Usability is in your complete control (Drag and drop order of fields, add help tips, create input masks so that data entry requires minimal skill and human error is minimized)
  • Use the same form on a different domain, outside Alfresco and manage it all in one place

NEW (2012-06-12): Want to get FM on the SHARE edit metadata screen. See the project home page to get code and information about this I know this was a common issue!
NEW (2012-05-09): Added "Dummy Fields". A dummy field allows us to add fields to our form that we DO NOT want to put into the model. E.g. I may want cm:name in my form however, I cannot create cm:name again as its already in the Alfresco Model. If this is a "Dummy Field" it will be added to the JSON model and not the XML model BONUS! Dummy fields are colored yellow in the form builder.

--------------------------------------------------------------------------------

WEBINAR VIDEO TECH TALK LIVE: http://blogs.alfresco.com/wp/webcasts/2012/04/tech-talk-live-content-typ...

Comment: There are some interesting new features in this release check out the release notes for details
Release Notes

--------------------------------------------------------------------------------

So far what have we accomplished?

  • Moved Constraints out of the model into a manageable service (Allows more than one aspect to use the same list, allows external lists to be used from other applications AND allows edit and removal of current constraints as this is no longer stored in the content model)
  • JSON Representation of a content model allows us to query it and grab information via webscripts without dealing with XML parsing
  • Allows for dependent information such as document type -> aspect collection (profiles)
  • Allows for much better usability and validation
  • Allows for completely new development on data respresentation e.g. (A slider can be used for integer or list values; check out the slider example in the form builder)
  • UI for managing forms and form validation
  • Both front end and back end node validation based upon given aspects or collections i.e. We can easily check if a node validates against a particular profile or aspect(s) even if it does not have it.
  • Allows for quick aspect management i.e. A node can have many aspects or profiles but in your application you may only want to deal with certain aspects at certain points. Using the FM Module you can show one, two or as many aspects are you like and deal with those aspects in an orderly fashion if you want! (Complete freedom over metadata and collections of data
  • Share site silos. The dropdown by share site feature allows you to show lists based upon share site. This allows each share site to have its own document types and profiles.

Documentation and Downloads.

Everything is available on google code via the download section or through the Wiki pages.

Development Requirements

  • jQuery
  • Alfresco REST services
  • Freemarker

To get your form up and running on existing applications you only need as little as 3 lines of init code:


$('.some-div-container').form({
'aspects': aspectObject
});

Please NOTE: This module is new, and will be ironing out bugs that pop up (Not a lot of testing as I have no user groups to test with :P )


Technical Details


Comments

  • Can you explain installation process in more detail?
    Thanks...

    dabada83 Fri, 02/10/2012 - 21:07
  • The installation only requires you to apply the AMP and manually create two spaces under company home > data dictionary; These are called "Constraints" and "JsonModels" respectively.

    Once those folders are made available, you can access the model manager here: http://localhost:8080/alfresco/wcs/form-builder/model-manager (replace localhost:8080 with your instance)

    Have you installed the AMP? Are you getting and error? Please explain what you have done so far so I can understand the issue.

    Cheers,
    Mike

    mike.priest Mon, 02/13/2012 - 06:29
  • Good morning, I followed the instructions but when I restart alfresco page http://localhost:8080/alfresco/wcs/form-builder/model-manager responds with the following error:

    Web Script Status 500 - Internal Error

    The Web Script /alfresco/wcs/form-builder/model-manager has responded with a status of 500 - Internal Error.

    500 Description: An error inside the HTTP server which prevented it from fulfilling the request.

    Message: 01140002 Wrapped Exception (with status template): 01140008 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/model-manager.get.js': 01140007 TypeError: Cannot read property "children" from null (file:/opt/alfresco-4.0.c/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/model-manager.get.js#1)

    Exception: org.mozilla.javascript.EcmaError - TypeError: Cannot read property "children" from null (file:/opt/alfresco-4.0.c/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/model-manager.get.js#1)

    ....

    .....

    thanks for the help

    fmarigo Tue, 02/14/2012 - 10:03
  • Hello,

    Please download the latest AMP (I have updated google downloads to 1.1.9).

    http://alfresco-form-model-management.googlecode.com/files/alf_forms_man...

    The error you are receiving is because it cannot find Data Dictionary>Models. If you are using an Alfresco language pack and these folders are named differently in your alfresco instance please follow the following steps to get things up and running.

    Locate:
    \webapps\alfresco\WEB-INF\classes\alfresco\templates\webscripts\ca\ab\fm\formsmanagement\utils\locale\alfresco-locale.js

    The file will look something like this:
    var fmPath = {}
    fmPath.models = "Data Dictionary/Models/";
    fmPath.constraints = "Data Dictionary/Models/Constraints/";
    fmPath.jsonModels = "Data Dictionary/Models/JsonModels/";

    Change the paths to match your local space names. Refresh webscripts and you should be good to go.
    The error is coming from this line:
    var modelArr = companyhome.childByNamePath(fmPath.models).children;

    Hope that helps, Mike

    mike.priest Wed, 02/15/2012 - 08:46
  • Hi Mike, here I am confused, I am using default alfresco installtion (english), I have installed alfreso in /opt and installation folder is "/opt/alfresco-4.0.1/ , in this case, what parameter should I give in "alfresco-locale.js"
    Thanks
    Joseph John

    jjk_saji Wed, 05/16/2012 - 09:39
  • I tried the latest AMP and got the following error ( I am using Alfresco 3.4e)
    Alfresco Web Script Status 500 - Internal Error

    The Web Script /alfresco/wcs/form-builder/model-manager has responded with a status of 500 - Internal Error.

    500 Description: An error inside the HTTP server which prevented it from fulfilling the request.

    Message: 04310004 Wrapped Exception (with status template): 04310015 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/model-manager.get.js': 04310014 Access Denied. You do not have the appropriate permissions to perform this operation.

    Exception: net.sf.acegisecurity.AccessDeniedException - Access is denied.

    net.sf.acegisecurity.vote.AffirmativeBased.decide(AffirmativeBased.java:86)
    net.sf.acegisecurity.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:394)
    net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:77)
    rotocol.java:588)
    .
    .
    .
    .
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:662)

    Exception: org.alfresco.repo.security.permissions.AccessDeniedException - 04310014 Access Denied. You do not have the appropriate permissions to perform this operation.

    org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:48)

    Exception: org.alfresco.scripts.ScriptException - 04310015 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/model-manager.get.js': 04310014 Access Denied. You do not have the appropriate permissions to perform this operation.

    org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:194)

    Exception: org.springframework.extensions.webscripts.WebScriptException - 04310004 Wrapped Exception (with status template): 04310015 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/model-manager.get.js': 04310014 Access Denied. You do not have the appropriate permissions to perform this operation.

    org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:758)

    Server: Community v3.4.0 (e 3419) schema 4,113
    Time: May 31, 2012 9:56:57 AM

    Diagnostics: Inspect Web Script (ca/ab/fm/formsmanagement/model-manager/model-manager.get)

    mviswam Tue, 06/05/2012 - 14:20
  • I followed the post ans issue is resolved.

    I created the spaces in the Model folder and edited the folder maping in the alfresco-locale.js

    mviswam Tue, 06/05/2012 - 14:23
  • Ok, i composed model with aspect with fields. How to assign this model to particular file in share? How pop up this elegance form outside of FM?

    Vladimir Belov Mon, 02/13/2012 - 14:07
  • Hi Vladimir,

    In order to use the form outside of the FM manager you must use the jQuery plugin. There is documentation on google code on how to get this running. I will add a few example documents to the google Wiki today however the idea is to use the FM API to create and manage your own forms in Alfresco or Share. If you want to replace the Alfresco share forms you will have to do a bit of customization on the Alfresco side (Drop the plugin into Share and initiate the plugin on Alfresco's form div wrapper, but remember you will have to change this code when you update share).

    The forms you are creating can only be used via the FM plugin as Alfresco doesn't know what to do with it. I will create a couple of Share dashlets to show both aspect and metadata profile examples. I will update google and post the link on here soon.

    Mike

    mike.priest Wed, 02/15/2012 - 03:43
  • Hello Everyone, as per this post i have added a Share Demo Amp to google code. Here is a link to the AMP
    http://alfresco-form-model-management.googlecode.com/files/fmdemo-share.amp

    Please see the Wiki for details under the ShareDemonstration page:
    http://code.google.com/p/alfresco-form-model-management/w/list

    This will show you how to show the form, load node properties to it and save data back to the node.

    mike.priest Wed, 02/15/2012 - 08:44
  • I created a form in FM manager... ( http://localhost:8080/alfresco/wcs/form-builder/builder )
    I saved the form...
    When I add the dashlet to => http://localhost:8080/share/page/user/admin/dashboard => it carries the two fields "Aspects" and "Document UUID" ( the second one is marked as optional )
    >>>>> it really doesn't matter what I actually put in that field, behavior is always the same <<<<<

    when I enter the aspect name, which is "resumeaspect" and hit submit.... nothing shows up... I mean, I can see the "Save Metadata" button... but the tag where the form is supposed to be, is empty.

    url: http://localhost:8080/share/page/user/admin/dashboard?aspect=resumeaspec...

    I would really appreciate an explanation in detail, as I am not that familiar with Alfresco.

    Thanks...best wishes

    P.s.:
    I am using v4.0.d
    I read all that (http://code.google.com/p/alfresco-form-model-management/)
    I just don't get it, how to integrate that on a site.
    ================
    To get your form up and running on existing applications you only need as little as 3 lines of init code:

    $('').form({
    'aspects': aspectObject
    });

    mabs Fri, 03/23/2012 - 22:31
  • Hi there, from looking at your URL you are not giving the full aspect name. You need to include your namespace prefix, for example in the demos the prefix used was "dmo" therefore in the dashlet I would pass in something like dmo_aspectname
    (Use the underscore instead of colon); There is a doc that shows you how to use the API, three lines of front end code is all you need. You would have a get.js script or some other script hitting the API to collect the JSON object for that aspect or profile. Then all you need to do is put that object in the plugin on init. There is a webinar coming up next week, if you have any specific questions it would be a good place to ask (link is at the top of the page)

    $('.class-name-of-your-div').form({
    'aspects': ASPECT OBJECT HERE
    });

    mike.priest Wed, 03/28/2012 - 15:59
  • I actually debugged the server-side script and found out myself. "_" --> so in my case it is "mymodel_resumeaspect"

    ...

    mabs Thu, 03/29/2012 - 20:42
  • If you find this research/ development interesting and/or find these responses helpful please like this plugin via the like link next to the plugin title. I feel this is a really helpful plugin both from a business and development standpoint and would like everyone to understand where im going with it. NOTE: There is a nice new feature for building profiles and/or dropdown lists based upon Share site. This means each share site can have its own list of document types and in turn there own metadata profiles - see the wiki for details

    mike.priest Wed, 02/15/2012 - 08:41
  • I like this project but I have some problems implementing this functionality. First there is an error when I create a new form: DictionaryException: "Model '{x.model}y does not exist". see issuelist. What is the cause of this problem?

    a.vd.wiel Sun, 02/26/2012 - 03:28
  • Hello. I'll gladly look into this, though im having trouble trying to re-produce this bug. Could you please send me the following:

    • the error stack trace
    • Screenshot of your model properties from the model manager

    I think it may have something to do with the namespace prefixes but until I see whats going on exactly i wont know for sure.
    Cheers,
    Mike

    mike.priest Mon, 02/27/2012 - 15:55
  • Hi, I realized that the form-model-mgmt model-builder only picks up dynamic models, what about prefined models that we have already done within shared/classes/alfresco/extension? Do we need to add those as well as dynamic models?

    peterzmlim Thu, 03/29/2012 - 03:16
  • You have to add the models into the repo in Data Dictionary/Models. The FM Module will not pickup models deployed in the extension folder.

    mike.priest Sat, 04/07/2012 - 21:31
  • Nice add-on. Works great.

    mike oshields Wed, 05/16/2012 - 12:16
  • I have done a blunder during installation and it took almost 1 full day to find out
    Instead of creating the space "Constraints" and "JsonModels" in Company Home/Data Dictionary/Models
    I had created in "Company Home/Data Dictionary", it did not work

    So friends please make sure you create the space in "Company Home/Data Dictionary/Models"

    jjk_saji Thu, 05/17/2012 - 07:29
  • Is it possible for me to create Document Types using this addons

    jjk_saji Thu, 05/17/2012 - 07:30
  • This requires a long explanation.

    Here goes. I have not added traditional content types in the form management module; Instead i have tried a more flexible approach. Metadata Profiles. Profiles allow you to display groups of aspects (from any model) dependent on the users choice of say...Document Type. By using this method there are a few built in functions on the form builder that allow you to produce a list dependent on Share site ("/dropdown/byShareSite") or direct reference to a dropdown list link. Each share site can have a paired down list or an entirely different list of document types. When the user selects a document type the FM form uses AJAX to auto-magically show the groups of aspects you assigned to that profile because you are using the same field dmo:documentType your search and development code will always use that same field, however, you now have the flexibility to show users different lists dependent on your own criteria.

    To create a profile first you create a list of document types in the Dropdown Manager section. Create an aspect called "dmo:documentTypeAspect" and one field in that form called "documentType". Make sure your field is a dropdown or use the arrow next to delete to SWITCH the UI field type if you didn't. So now we have a dropdown menu that we will use as a document type selection. How do we populate our dropdown?

    You need to figure out how you want your list. Is it dynamic? does it have a dependancy? Is it just a direct link to a list you created (static)?

    If you want a dynamic list that is populated by share site you need to do two things:

    • Step 1. under the form bulder tools for dropdown there is a "options" section. Open that section up and you will see "or Populate from a script". Simply paste this line in: /dropdown/byShareSite.
      What this will do is when the FM load your form, it will now look for a list in the dropdown manager called siteid-site.
    • Step 2. create a list called "SITEID-site" replacing siteid with your siteid of course. That list is then enabled for the FM manager to search for and all you need to do is under the dropdown options

    If you want to use a static list. I recommend you paste in the link from th edropdown manager and do not use the form bulder inline option as that is relative to the form and you cannot share that same list else where. There should be two options in the dropdown manager for the file. Alfresco file URL and Share file URL. Simply right click and copy URL then paste that value into "or Populate from a script".

    To create your profiles simply go to the metadata profile in the main menu. Your dropdown lists are available there. Select your list, select your value and drag and drop your aspects to that profile and you are done!

    Now because we are not using constraints anymore your one field lets say dmo:documentType does NOT die when you remove a document type; a use case would be, if a business has a document type list and one SHOULD NOT be entered anymore you remove it from the list. Historical data can still live in the repository as it should and the indexes do not explode because the constraint is no longer there.

    I hope this explains what i was going for. The main focus is to give the user better feedback (AJAX switching of profiles), flexibility (one big list can sub sectioned by share site) and being FREE from constraints.

    mike.priest Tue, 05/22/2012 - 17:18
  • thanks

    jjk_saji Thu, 05/24/2012 - 16:11
  • In field adding are, there is no option to add Date fields
    Is it not there by default

    jjk_saji Thu, 05/17/2012 - 09:24
  • Hi
    I applied Date mask using validation

    jjk_saji Thu, 05/17/2012 - 10:03
  • I started out thinking about having "date" fields and a number of others. However, there is so much we can do with UI tricks (masks, date pickers etc.) that I see this more as an attribute of a field (validation) rather than a field type; such as dropdown vs text field. I can see many people using different UI controls as a "container" for data therefore I am separating out the functions into things you can bolt onto a field. This way we can start playing with UI controls that enable user input whilst being able to tack those validation pieces on e.g. You may not want a field at all. Maybe you just want the user to see a calendar icon forcing them to use the date picker and removing erroneous "typo" input.

    mike.priest Tue, 05/22/2012 - 17:27
  • Hi, I have tried a couple of time for the last few days to see the video presentation. The audio is there initially, but later on the voice is not hearing. It will be great if, we can get the presentation with the audio
    Thanks
    Joseph John

    jjk_saji Wed, 05/23/2012 - 13:41
  • Since my OS is LINUX .This may be because of Weebex issue with Linux OS

    jjk_saji Thu, 05/24/2012 - 09:21
  • Hi
    I am trying to user Form Manager, and I have some doubts, where could I ask it. Should I ask in Alfresco forum or here
    or should I use "http://code.google.com/p/alfresco-form-model-management/issues/list" , I am sure that only any issues should be posted over "http://code.google.com/p/alfresco-form-model-management/issues/list"
    Guidance requested
    Thanks
    Joseph John

    jjk_saji Thu, 05/24/2012 - 09:44
  • I have followed the demo and have created created name as "sitename-site". I have a site defined in share as "sitename",
    When I checked the preview of profile "sitename-site" it is working fine, But I do not know how to apply this profile to the created site "sitename"
    Guidance and advice requested
    Thanks
    Joseph John

    jjk_saji Thu, 05/24/2012 - 16:31
  • Please see the code project home page. This has some custom code for extending the Share edit metadata screen. It is using the traditional method of taking a node and building a form based upon what aspects are applied to it.

    This is what you are missing

    mike.priest Tue, 06/12/2012 - 21:51
  • I have installed the amp on 4.0d. when i browse to the page and try to creat a model i get error. I get 2 dialogue boxes where I have to press OK. Then it just says "please wait", so I have to referesh the page and when I click on a model i just made i get following

    2012-10-15 13:18:31,928 ERROR [extensions.webscripts.AbstractRuntime] [http-8080-1] Exception from executeScript - redirecting to status template error: 09150004 Wrapped Exception (with status template): 09150134 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js': 09150133 TypeError: Cannot call method "createFile" of null (file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js#134)
    org.springframework.extensions.webscripts.WebScriptException: 09150004 Wrapped Exception (with status template): 09150134 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js': 09150133 TypeError: Cannot call method "createFile" of null (file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js#134)
    at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:970)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
    at org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:400)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:462)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:500)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:316)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:372)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
    at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.alfresco.repo.webdav.auth.BaseSSOAuthenticationFilter.doFilter(BaseSSOAuthenticationFilter.java:136)
    at sun.reflect.GeneratedMethodAccessor1187.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy451.doFilter(Unknown Source)
    at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.alfresco.web.app.servlet.WebScriptSSOAuthenticationFilter.doFilter(WebScriptSSOAuthenticationFilter.java:140)
    at sun.reflect.GeneratedMethodAccessor1187.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy451.doFilter(Unknown Source)
    at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: org.alfresco.scripts.ScriptException: 09150134 Failed to execute script 'classpath*:alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js': 09150133 TypeError: Cannot call method "createFile" of null (file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js#134)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:195)
    at org.alfresco.repo.processor.ScriptServiceImpl.execute(ScriptServiceImpl.java:212)
    at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:174)
    at org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:102)
    at org.springframework.extensions.webscripts.AbstractWebScript.executeScript(AbstractWebScript.java:1193)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:86)
    ... 47 more
    Caused by: org.alfresco.error.AlfrescoRuntimeException: 09150133 TypeError: Cannot call method "createFile" of null (file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js#134)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:499)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:191)
    ... 52 more
    Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method "createFile" of null (file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js#134)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
    at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3356)
    at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3375)
    at org.mozilla.javascript.ScriptRuntime.undefCallError(ScriptRuntime.java:3394)
    at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2026)
    at org.mozilla.javascript.gen.c3._c0(file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js:134)
    at org.mozilla.javascript.gen.c3.call(file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
    at org.mozilla.javascript.gen.c3.call(file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js)
    at org.mozilla.javascript.gen.c3.exec(file:/opt/alfresco-4.0.d/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/ca/ab/fm/formsmanagement/model-manager/ajax/ajax-get-model.get.js)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:483)
    ... 53 more

    shorif2000 Mon, 10/15/2012 - 13:38
  • im getting a 500 Error while loading.

    Message: 10020027 Read-Write transaction started within read-only transaction

    Exception: org.alfresco.error.AlfrescoRuntimeException - 10020027 Read-Write transaction started within read-only transaction

    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:360)
    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:304)
    org.alfresco.web.bean.repository.User.getUserPreferencesRef(User.java:220)
    org.alfresco.web.bean.repository.User.getPreferences(User.java:188)
    org.alfresco.web.bean.repository.PreferencesService.getPreferences(PreferencesService.java:55)
    org.alfresco.web.bean.repository.PreferencesService.getPreferences(PreferencesService.java:45)
    org.alfresco.web.bean.users.UserPreferencesBean.getContentFilterLanguage(UserPreferencesBean.java:116)
    org.alfresco.web.app.servlet.AuthenticationHelper.setupThread(AuthenticationHelper.java:125)
    org.alfresco.web.app.servlet.AuthenticationHelper.authenticate(AuthenticationHelper.java:271)
    org.alfresco.repo.web.scripts.servlet.WebClientAuthenticatorFactory$WebClientAuthenticator.authenticate(WebClientAuthenticatorFactory.java:142)
    org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:304)
    org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:301)
    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:323)
    org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:341)
    org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:377)
    org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
    org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    ragz Fri, 11/02/2012 - 08:38
  • im getting a 500 Error while loading.

    Message: 10020027 Read-Write transaction started within read-only transaction

    Exception: org.alfresco.error.AlfrescoRuntimeException - 10020027 Read-Write transaction started within read-only transaction

    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:360)
    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:304)
    org.alfresco.web.bean.repository.User.getUserPreferencesRef(User.java:220)
    org.alfresco.web.bean.repository.User.getPreferences(User.java:188)
    org.alfresco.web.bean.repository.PreferencesService.getPreferences(PreferencesService.java:55)
    org.alfresco.web.bean.repository.PreferencesService.getPreferences(PreferencesService.java:45)
    org.alfresco.web.bean.users.UserPreferencesBean.getContentFilterLanguage(UserPreferencesBean.java:116)
    org.alfresco.web.app.servlet.AuthenticationHelper.setupThread(AuthenticationHelper.java:125)
    org.alfresco.web.app.servlet.AuthenticationHelper.authenticate(AuthenticationHelper.java:271)
    org.alfresco.repo.web.scripts.servlet.WebClientAuthenticatorFactory$WebClientAuthenticator.authenticate(WebClientAuthenticatorFactory.java:142)
    org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:304)
    org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:301)
    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:323)
    org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:341)
    org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:377)
    org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
    org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:601)
    org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    ragz Fri, 11/02/2012 - 08:43
  • Is this addon compatible with the Community 4.2 series? In particular, the new 4.2d release?

    iplor Fri, 09/13/2013 - 03:32