알아내는 데 시간이 걸렸지 만 결국 두 가지 해결책을 찾았습니다.
Root Objects 부분에 관한 공식 문서에서 첫 번째 솔루션
는 org.alfresco.repo.replication.script.ScriptReplicationService
에 매핑되는 replicationService
존재하지만 정말 많은 말을하지 않습니다.
Alfresco에 익숙하다면 Alfresco 폴더로 이동하여 WEB-INF/classes/alfresco/replication-services-context.xml
을 열어 impl 클래스를 추적 할 수 있습니다. 파일 이름을 추측했지만 replicationService를 키로 사용하여 모든 xml 파일을 검색 할 수 있습니다. 여기에 관련 일부입니다
<bean id="replicationService" class="org.alfresco.repo.replication.ReplicationServiceImpl" >
<property name="actionService" ref="ActionService"/>
<property name="scheduledPersistedActionService" ref="scheduledPersistedActionService" />
<property name="replicationDefinitionPersister" ref="replicationDefinitionPersister" />
</bean>
당신은 소스 코드 또는 관련 방법을 발견 할 수있는 API를 열 경우 대상에서 호출 할 수있는 복제 작업에 구성된 대상의 이름과 replicate(ReplicationDefinition replicationDefinition)
입니다 loadReplicationDefinitions(String target)
대본.
결국이 복제 작업을 호출하는 부분입니다.
var jobs = replicationService.loadReplicationDefinitions('MyTargetName');
var job = jobs[0]; // I only have one target with that name, it safe to get 0
replicationService.replicate(job);
이제 콘텐츠가 전송됩니다.
두 번째 솔루션
또 다른 그렇게 쉬운 일이 아닙니다 옵션은 너무 작동하지만 당신은 수동으로 ScriptNodes의 배열을 구축해야, 복제 서비스가 의존하는 객체입니다 transfer
루트 객체를 호출하는 것입니다 양도됩니다.
var nodes = // your array of ScriptNodes
transfer.transfer('MyTargetName', nodes);
추가로 이동하면 비동기 적으로 호출 할 수도 있고 콜백 할 수도 있습니다.
uhm ... 아직 소스 코드를 살펴 보지 못했지만 Javascript 콘솔에서 실행하면이 오류가 발생합니다. "ftr-action '이 정의되지 않았습니다." – Leonardo
https : //github.com/Alfresco/community-edition/blob/master/projects/file-transfer-receiver/config/alfresco/ftr-action-context.xml 및 https://github.com/Alfresco/community-edition/ blob/master/projects/file-transfer-receiver/source/java/org/alfresco/repo/transfer/fsr/FileTransferActionExecuter.java 둘 다 호출합니다. 어떤 버전의 FTR 코드를 설치 했습니까? – Gagravarr
내 Alfresco 버전은 4.2.f입니다. 그러나 소스 코드를 보면 '테스트 목적으로 만'주석이 표시됩니다. 이 클래스가 호출 될 수없는 것이 가능한가? 또한 Javascript에서는 특정 유형의 액션을 호출하는 데 몇 가지 제한 사항이 있습니까? – Leonardo