Page 1 of 1

Declare documents as undeletable

PostPosted:Tue Feb 03, 2015 7:23 am
by Aku
Hello together,

is it possible to declare documents as undeletable. In german it means "revisionssicher" (revision-safe or audit-proof).

The user are not allowed to delete documents, because we shred this documents after import.


André

Re: Declare documents as undeletable

PostPosted:Wed Feb 04, 2015 7:35 pm
by jllort
Can be several ways for doing it. Removing security ( also administrator will be allowed ). I think the best option is lock the document. You can automatize lock documents based on creation destination, user who created etc... ( basically with some login as automation task http://wiki.openkm.com/index.php/Automation - document events)

Re: Declare documents as undeletable

PostPosted:Thu Feb 05, 2015 7:16 am
by Aku
Hello, thanks for your answer.

I have created a role "Revisionssicher"
fafgvscx.png
fafgvscx.png (7.72 KiB) Viewed 5156 times
Now i want add an action, which lock all uploaded documents.
dfsdvcx.png
dfsdvcx.png (13.99 KiB) Viewed 5156 times
There is no action to lock documents.

André

Re: Declare documents as undeletable

PostPosted:Fri Feb 06, 2015 6:28 am
by mohasinmujawar56
Please follow steps in http://wiki.openkm.com/index.php/Enable_automation.
You can also extend automation actions if you know some java programming by following steps in http://wiki.openkm.com/index.php/Extend_automation.

Re: Declare documents as undeletable

PostPosted:Fri Feb 06, 2015 8:37 am
by Aku
Hello, thanks for your answer.

I have now followed the steps on this site: http://wiki.openkm.com/index.php/Enable_automation

Have a look on this picture:
Bild6.png
Bild6.png (24.53 KiB) Viewed 5142 times
Now i want use the action "ExecutingScripting"
- I need a script, which will lock all uploaded documents.

Where can I find a script like that? :)

André

Re: Declare documents as undeletable

PostPosted:Fri Feb 06, 2015 9:57 am
by pavila
Make a call to com.openkm.api.OKMDocument().getInstance().lock(null, docUuid)

Re: Declare documents as undeletable

PostPosted:Fri Feb 06, 2015 10:58 am
by Aku
So it looks now:
Bild8.png
Bild8.png (6.27 KiB) Viewed 5136 times
Bild7.png
Bild7.png (24.54 KiB) Viewed 5136 times
Now i get following error:
Code: Select all
2015-02-06 11:45:28,982 [Thread-298] ERROR com.openkm.automation.action.ExecuteScripting- Sourced file: inline evaluation of: ``com.openkm.API.OKMDocument().getInstance().lock(null, docUuid);'' : Class or variable not found: com.openkm.API
Sourced file: inline evaluation of: ``com.openkm.API.OKMDocument().getInstance().lock(null, docUuid);'' : Class or variable not found: com.openkm.API : at Line: 1 : in file: inline evaluation of: ``com.openkm.API.OKMDocument().getInstance().lock(null, docUuid);'' : com .openkm .API .OKMDocument ( ) 

	at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
	at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:99)
	at bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:103)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.Interpreter.eval(Interpreter.java:645)
	at bsh.Interpreter.eval(Interpreter.java:739)
	at bsh.Interpreter.eval(Interpreter.java:728)
	at com.openkm.automation.action.ExecuteScripting.execute(ExecuteScripting.java:95)
	at com.openkm.automation.action.ExecuteScripting.executePost(ExecuteScripting.java:54)
	at sun.reflect.GeneratedMethodAccessor749.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.openkm.util.cl.ClassLoaderUtils.invokeAutomationMethod(ClassLoaderUtils.java:164)
	at com.openkm.automation.AutomationManager.executeAction(AutomationManager.java:83)
	at com.openkm.automation.AutomationManager.fireEvent(AutomationManager.java:61)
	at com.openkm.module.db.base.BaseDocumentModule.create(BaseDocumentModule.java:170)
	at com.openkm.module.db.DbDocumentModule.create(DbDocumentModule.java:228)
	at com.openkm.module.db.DbDocumentModule.create(DbDocumentModule.java:117)
	at com.openkm.module.db.DbDocumentModule.create(DbDocumentModule.java:107)
	at com.openkm.api.OKMDocument.createSimple(OKMDocument.java:86)
	at sun.reflect.GeneratedMethodAccessor501.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at bsh.Reflect.invokeMethod(Reflect.java:134)
	at bsh.Reflect.invokeObjectMethod(Reflect.java:80)
	at bsh.Name.invokeMethod(Name.java:858)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHIfStatement.eval(BSHIfStatement.java:51)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHEnhancedForStatement.eval(BSHEnhancedForStatement.java:79)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BshMethod.invokeImpl(BshMethod.java:362)
	at bsh.BshMethod.invoke(BshMethod.java:258)
	at bsh.BshMethod.invoke(BshMethod.java:186)
	at bsh.Name.invokeLocalMethod(Name.java:917)
	at bsh.Name.invokeMethod(Name.java:804)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.Interpreter.eval(Interpreter.java:645)
	at bsh.Interpreter.eval(Interpreter.java:739)
	at bsh.Interpreter.eval(Interpreter.java:728)
	at com.openkm.util.ExecutionUtils.runScript(ExecutionUtils.java:112)
	at com.openkm.core.Cron$RunnerBsh.run(Cron.java:103)
	at java.lang.Thread.run(Thread.java:745)

Re: Declare documents as undeletable

PostPosted:Sat Feb 07, 2015 11:42 am
by jllort
My colleage make a mistake writing the call should be API to lowercase api
com.openkm.api.OKMDocument().getInstance().lock(null, docUuid)

Take a look at http://doxygen.openkm.com/openkm/ for classes ( http://doxygen.openkm.com/openkm/d9/d6d ... _1api.html )

We will release 6.3 , but 6.2 is very similar 6.3

Re: Declare documents as undeletable

PostPosted:Mon Feb 09, 2015 8:36 am
by Aku
Hello jllort,

okey, thanks for your answer.
I have looked at the code.

I changed "com.openkm.API.OKMDocument().getInstance().lock(null, docUuid)" to "com.openkm.api.OKMDocument().getInstance().lock(null, docUuid)"
- (Here it is displayed incorrectly -> api in lowercase)

I get this error:
Code: Select all
2015-02-09 07:05:28,259 [Thread-25] ERROR com.openkm.automation.action.ExecuteScripting- Sourced file: inline evaluation of: ``com.openkm.api.OKMDocument().getInstance().lock(null, docUuid);'' : Class or variable not found: com.openkm.api
Sourced file: inline evaluation of: ``com.openkm.api.OKMDocument().getInstance().lock(null, docUuid);'' : Class or variable not found: com.openkm.api : at Line: 1 : in file: inline evaluation of: ``com.openkm.api.OKMDocument().getInstance().lock(null, docUuid);'' : com .openkm .api .OKMDocument ( ) 

	at bsh.UtilEvalError.toEvalError(UtilEvalError.java:85)
	at bsh.UtilEvalError.toEvalError(UtilEvalError.java:90)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:99)
	at bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:103)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.Interpreter.eval(Interpreter.java:645)
	at bsh.Interpreter.eval(Interpreter.java:739)
	at bsh.Interpreter.eval(Interpreter.java:728)
	at com.openkm.automation.action.ExecuteScripting.execute(ExecuteScripting.java:95)
	at com.openkm.automation.action.ExecuteScripting.executePost(ExecuteScripting.java:54)
	at sun.reflect.GeneratedMethodAccessor503.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.openkm.util.cl.ClassLoaderUtils.invokeAutomationMethod(ClassLoaderUtils.java:164)
	at com.openkm.automation.AutomationManager.executeAction(AutomationManager.java:83)
	at com.openkm.automation.AutomationManager.fireEvent(AutomationManager.java:61)
	at com.openkm.module.db.base.BaseDocumentModule.create(BaseDocumentModule.java:170)
	at com.openkm.module.db.DbDocumentModule.create(DbDocumentModule.java:228)
	at com.openkm.module.db.DbDocumentModule.create(DbDocumentModule.java:117)
	at com.openkm.module.db.DbDocumentModule.create(DbDocumentModule.java:107)
	at com.openkm.api.OKMDocument.createSimple(OKMDocument.java:86)
	at sun.reflect.GeneratedMethodAccessor467.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at bsh.Reflect.invokeMethod(Reflect.java:134)
	at bsh.Reflect.invokeObjectMethod(Reflect.java:80)
	at bsh.Name.invokeMethod(Name.java:858)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHIfStatement.eval(BSHIfStatement.java:51)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHEnhancedForStatement.eval(BSHEnhancedForStatement.java:79)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BSHBlock.eval(BSHBlock.java:46)
	at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BshMethod.invokeImpl(BshMethod.java:362)
	at bsh.BshMethod.invoke(BshMethod.java:258)
	at bsh.BshMethod.invoke(BshMethod.java:186)
	at bsh.Name.invokeLocalMethod(Name.java:917)
	at bsh.Name.invokeMethod(Name.java:804)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.Interpreter.eval(Interpreter.java:645)
	at bsh.Interpreter.eval(Interpreter.java:739)
	at bsh.Interpreter.eval(Interpreter.java:728)
	at com.openkm.util.ExecutionUtils.runScript(ExecutionUtils.java:112)
	at com.openkm.core.Cron$RunnerBsh.run(Cron.java:103)
	at java.lang.Thread.run(Thread.java:745)


My configuration:
Bild12.png
Bild12.png (12.67 KiB) Viewed 5126 times
Bild11.png
Bild11.png (14.13 KiB) Viewed 5126 times
Bild10.png
Bild10.png (6.04 KiB) Viewed 5126 times
After import the documents should look like this:
Bild13.png
Bild13.png (9.94 KiB) Viewed 5126 times
But in the Moment they look like this (without lock):
Bild14.png
Bild14.png (6.8 KiB) Viewed 5125 times

André

Re: Declare documents as undeletable

PostPosted:Wed Feb 11, 2015 4:47 pm
by jllort
Hi André

I think I've discovered the mistake you should use var called uuid, not docUuid;

I think forum is lying us with api lower case upper case ( seem reseved forum word and always is shown in upper case ) :
Code: Select all
import com.openkm.api.*; // althought you see API upper case must be lower ( it's forum issue )

// uuid var is injected by scripting
OKMDocument.getInstance().lock(null, uuid);

Re: Declare documents as undeletable

PostPosted:Thu Feb 12, 2015 6:09 am
by Aku
Thanks, thanks, thanks, thanks,

it worked. 8) :)


André