向锁定节点添加新的强制方面
Add new mandatory aspect to locked node
情况
- 一个节点被锁定。
- 对模型的更改引入了一个新的强制性方面 (
cm:taggable
),锁定的节点没有。
问题
无法使用 JavaScript 控制台解锁 节点。
var node = search.findNode(nodeRefString);
node.unlock();
这会引发错误:
org.alfresco.repo.node.integrity.IntegrityException: 03280783 Found 1 integrity violations:
Mandatory aspect not set:
Node: workspace://SpacesStore/84e053a2-4573-4542-ac17-0e6940b9b07c
Type: {http://acme.com/model/acme/1.0}AcmeType
Aspect: {http://www.alfresco.org/model/content/1.0}taggable
也无法添加缺少的方面。这个
node.addAspect("cm:taggable");
抛出 NodeLockedException
。删除节点
node.remove();
也不可能。
问题
如何解决第 22 条军规?
使用 fme JavaScript console,我找到了解决问题的方法。可以禁用节点上的行为,包括检查节点是否被锁定的行为。
在 JavaScript 控制台中,此代码执行我想要的操作:
var node = search.findNode(nodeRef);
var ctx = Packages.org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext();
var pbf = ctx.getBean("policyBehaviourFilter");
pbf.disableBehaviour(nodeRef);
node.addAspect("cm:taggable");
pbf.enableBehaviour(nodeRef);
现在仍然锁定的节点具有强制性方面。现在可以解锁,没有任何完整性问题。
情况
- 一个节点被锁定。
- 对模型的更改引入了一个新的强制性方面 (
cm:taggable
),锁定的节点没有。
问题
无法使用 JavaScript 控制台解锁 节点。
var node = search.findNode(nodeRefString);
node.unlock();
这会引发错误:
org.alfresco.repo.node.integrity.IntegrityException: 03280783 Found 1 integrity violations:
Mandatory aspect not set:
Node: workspace://SpacesStore/84e053a2-4573-4542-ac17-0e6940b9b07c
Type: {http://acme.com/model/acme/1.0}AcmeType
Aspect: {http://www.alfresco.org/model/content/1.0}taggable
也无法添加缺少的方面。这个
node.addAspect("cm:taggable");
抛出 NodeLockedException
。删除节点
node.remove();
也不可能。
问题
如何解决第 22 条军规?
使用 fme JavaScript console,我找到了解决问题的方法。可以禁用节点上的行为,包括检查节点是否被锁定的行为。
在 JavaScript 控制台中,此代码执行我想要的操作:
var node = search.findNode(nodeRef);
var ctx = Packages.org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext();
var pbf = ctx.getBean("policyBehaviourFilter");
pbf.disableBehaviour(nodeRef);
node.addAspect("cm:taggable");
pbf.enableBehaviour(nodeRef);
现在仍然锁定的节点具有强制性方面。现在可以解锁,没有任何完整性问题。