Publish to Alfresco task programmatically - alfresco

I am using Activiti 1.9.03 and Alfresco 5.2.4 enterprise versions. I have a requirement where I have to maintain the version of the generated report document and also uploaded document (if user edits it). Right now After each user tasks, I am adding two Publish to Alfresco tasks. This is making the workflow diagram unreadable.
I want to know the following things.
Is there any other way to handle versioning in Activiti instead of pushing the content to the Alfresco?
How can I upload the content programatically using JAVA or Javascript task in a listener, so that I don't have to keep the Publish to Alfresco tasks in the workflow definition. OR
Is there any way to hide the Publish to Alfresco tasks on the workflow diagram?
Any help will be appreciated...
Thank you

In APS,There are Services like AlfrescoService,AlfrescoContentService.
You can autowire those services in your Listner and you can use REST Call.

Related

How to display Alfresco Documents on Activiti form by passing the nodeRef

I have an Activiti process with a Start Event. How can I show the Alfresco Document on the Form on a the Start Event by entering the nodeRef?
In production it will not be manual entering the nodeRef though but by passing it using the Activiti REST API. I need to be able to show the Alfresco document using the 'Display value' field on a form (on the Start event or maybe on a User Task which flows from it)
In the Enterprise version, there is in fact a feature to link Documents uploaded in Activiti with Alfresco using the share connector.
In the community version, you'll have to implement your custom logic to store documents in alfresco and retrieve documents. a neat way would be to use Alfresco's Restv1 APIs.
Using these APIs you should be able to create your custom code in Activiti to interact with your repository.

how to develop a custom connector in SailPoint

I am novices to the field of Identity and Access management.
Till now I know, Sail point has provided the some direct connectors to integrate the known systems like LDAP, HR systems, OIM, Databases..
And sailpoint also provided the support for disconnected applications with the use of Custom connectors.
Here, My question is how to develop a custom connector..?
I do not have jar file provided by sailpoint which contain "AbstractConnector" class.
So that I can write my own class and develop..?
I also so not understand, what to do with that class?(if i have a jar)
How sailpoint will refer to that class..
Do we need to deploy that class to somewhere...
Here I am expecting the complete flow to develop and deploy the custom connector..
If anyone is working please help..
If you unzip your identityiq.war, you'll find a JAR file called WEB-INF/lib/connector-bundle.jar. This is the JAR where you'll find AbstractConnector. Once you've written your connector code, you will need to compile it and bundle it into a JAR file, which you will place into WEB-INF/lib.
Finally, you will need to update the ConnectorRegistry object (under Configuration on the debug screen) to reference the new class, which will make it available as an Application type. If it has custom connection parameters (as most do), you will also need an xhtml page that will be embedded into the Sailpoint UI to prompt the user configuring the Application.
If you have Compass access, they have a whitepaper called Custom Connectors that you will find helpful.
All that said, I encourage you to try to find a way to use an out-of-box connector if possible.
Most of the times it will be better if you use the DelimitedFile connector, you can import a CSV of identity data, and make it work within Sailpoint's workflow. You will be able to map fields, correlate accounts and create multi-valued group memberships rapidly. Of course, this means that Sailpoint will not be connected directly to the application, and you will have to develop a workflow to extract the identities and upload them. But at least, you can integrate without going the Custom Connector way.

Alfresco new workflow hot deploying

I developped an alfresco share module that allows user to create and save a new workflow. The new workflow files (model.xml, workflow.xml) are stored in a specific folder in alfresco repository. All works fine. Now to finalize my module, i want add a button in my share module to allows users to hot deploying the new workflow and run it on alfresco without restarting alfresco.
Is there a possibility to achieve this?
I thought to call a java webscript from my module to hot deploying the workflow. Is this possible?
If you have an example to how achieve this, it'll be very helpful for me.
I resolved my issue.
So to hot deploy workflow into Alfresco, i used Alfresco Java Api services that allowed me to hot deploy the workflow definition. There is a small code t how achieve this.
InputStream input = contentService.getReader(new NodeRef("YOUR_WORKFLOW_DEFINITION_FILE_NODEREF"),ContentModel.TYPE_CONTENT).getContentInputStream();
workflowDeployment = workflowService.deployDefinition("activiti",input,MimetypeMap.MIMETYPE_XML);

Custom Report in alfresco?

Currently i am generating a report (we are getting files are uploaded within a time stamp).
I am getting all files and folders.Iterating the result and checking created date one by one.That is taking too much time approx 8 min to revert with resuls.Can anyone tell me is there any alfresco report api that i can use? or using solr how to fetch the result?
I like to follow an approach which is maybe not really orthodox. Usually, you don't want to report on all documents, only document using a specific type or aspect. So, what I do is to create a Java behaviour on onCreate, onUpdate and onDelete that updates a custom database with only the metadata that I'm interested in. Then, I can connect any OOTB reporting tools such as Pentaho, Jasper or Tableau. You have of couse some other traditional alternatives, such as:
Using this module developed by a community member: http://fcorti.com/alfresco-audit-analysis-reporting/
Or using the module provided by Alfresco: http://docs.alfresco.com/analytics/concepts/analytics-using.html
SOLR/Lucene is not an option, querying DB directly is not an option either (performance wise).
I would suggest using one of the options available (AAAR for instance) or developing something on your own following the same principles.
I did little bit investigation on this and found below link.
http://docs.alfresco.com/4.0/tasks/audit-recording-values.html
I think you can user auditService in alfresco and get your things done.There are few alfresco webservices(related to audit) already available which will allow you to filter response.In case if you need to customize it , than you can create webscript and use auditService in it.
You can use below url for browsing all your alfresco webservice.
http://localhost:8080/alfresco/service/index

how to create a new folder using alfresco api

I have uploaded sample.zip file in this directory CompanyHome/site/testsite/documentlibrary/test.
Now I want to create new folder called childfolder under above directory [CompanyHome/site/testsite/documentlibrary/test/childfolder] and move the sample.zip under it.using Alfresco API how do i create child folder and move the file under newly created childfolder?
This really depends upon what version of Alfresco you're using and what API you want to use to do it. For example, assuming that you want to do this via a REST API then you have the option of CMIS, the recent "Public API" or the internal WebScript based API.
Alternatively, you might want to do this by using the JavaScript API and WebScript develop your own WebScripts.
There are lots of ways to achieve this - perhaps you can provide some more information on the overall picture of what you're trying to do and where you're trying to do this (e.g. as an extension of Share maybe?).
It's possible to create a folder within Share and if you do so whilst you have browser developer tools open you'll be able to see the exact REST API calls that are used.

Resources