This file should be available from the relative path "WEB-INF\storage<custom><connectors>\education-sample.xml" within the final connectors package.
<connectors> <connector name="navigation" label="navigation-connector.label" description="navigation-connector.description" version="1.0" company="Visiativ Software"> <services> <service> </service> </services> </connector> </connectors>
<?xml version="1.0" encoding="UTF-8"?> <connectors> <connector name="navigation" label="navigation-connector.label" description="navigation-connector.description" version="1.0" company="Visiativ Software"> <services> <services> <service name="fooService" label="sample.service.foo.label"> <class qualifiedName="com.axemble.education.connectors.sample.DummyServiceConnector" /> </service> </services> </connector> </connectors>
package com.axemble.education.connectors.sample; import java.util.Map; import org.w3c.dom.Element; import com.axemble.vdoc.sdk.connectors.BaseServiceConnector; import com.axemble.vdoc.sdk.interfaces.IConnectorExecutionStatus; import com.axemble.vdoc.sdk.interfaces.IContext; public class DummyServiceConnector extends BaseServiceConnector { private static final long serialVersionUID = 1L; @Override public int execute( IContext context, int eventType, String eventName, Element customElement ) { // retrieve the parameters Map<String, Object> inputs = getServiceDefinition().getValues(); // add parameters to the local thread to make them available for the next services addParameter( "onAbort", "parameterValue" ); // set the output values getServiceOutputs().addOutput( "errorMessage", "labelerrorMessage" ); return IConnectorExecutionStatus.CONTINUE; } @Override public void beforeCompletion( IContext context, int eventType, String eventName, Element customElement ) { super.beforeCompletion( context, eventType, eventName, customElement ); LOGGER.error( "[INFO] call beforeCompletion method " ); } @Override public void afterCompletion( IContext context, int eventType, String eventName, Element customElement, boolean committed ) { super.afterCompletion( context, eventType, eventName, customElement, committed ); LOGGER.error( "[INFO] call afterCompletion method with committed value = " + committed ); } @Override public void asyncExecute( int eventType, String eventName, Element customElement ) { super.asyncExecute( eventType, eventName, customElement ); LOGGER.error( "[INFO] call asyncExecute method with committed value = " ); } }
<?xml version="1.0" encoding="UTF-8"?> <connectors> <connector name="navigation" label="navigation-connector.label" description="navigation-connector.description" version="1.0" company="Visiativ Software"> <services> <service name="fooService" label="sample.service.foo.label"> <class qualifiedName="com.axemble.education.connectors.sample.DummyServiceConnector" /> <icons> <icon name="small" path="mail/mail.png" /> <icon name="medium" path="" /> <icon name="large" path="" /> </icons> <configuration> <class qualifiedName="com.axemble.education.connectors.sample.DummyServiceConnectorEditor" /> <section name="cmis"> <fields> <field name="folderName" label="Nom du dossier" ctrl="text" mandatory="true" maxlength="64" defaultValue="" /> <field name="parentFolder" label="Dossier parent" ctrl="com.axemble.vdoc.sdk.document.fields.SelectorField" mandatory="false" /> <field name="fldMailingList" label="treatment.mail.sendMail.mailingList.label" description="treatment.mail.sendMail.mailingList.description" ctrl="selector" mandatory="true" screen="mailingList" method="select" type="all" /> </fields> </section> </configuration> <inputs> <input name="folderName" type="java.lang.String" /> <input name="parentFolder" type="com.axemble.vdoc.sdk.interfaces.IFolder" /> <input name="fldMailingList" type="com.axemble.vdoc.sdk.interfaces.IMailingList" /> </inputs> <outputs> <output name="result" type="java.lang.Boolean" /> <output name="error" type="java.lang.String" /> <output name="errorMessage" type="java.lang.String" /> <output name="folder" type="com.axemble.vdoc.sdk.interfaces.IFolder" /> <output name="folders" type="java.util.Collection" collectionType="com.axemble.vdoc.sdk.interfaces.IFolder" /> </outputs> <entry-points> <connectors-library familyName="education" /> </entry-points> <supported-events> <front-end-events> <resource-definition> <form> <events> <event name="onAfterLoad" default="true" /> </events> </form> </resource-definition> </front-end-events> </supported-events> </service> </services> </connector> </connectors>
package com.axemble.education.connectors.sample; import com.axemble.vdoc.sdk.connectors.BaseServiceConnectorEditor; public class DummyServiceEditor extends BaseServiceConnectorEditor { private static final long serialVersionUID = 1L; }
By using the getServiceDefinition method you can retrieve the various values from the configuration.
// retrieve all the values from the configuration Map<String, Object> inputObjects = getServiceDefinition().getValues(); // retrieve a specific value from the configuration by its name Object inputObject = getServiceDefinition().getValue( "fldDescription" );
By using the addOutput method you can make available some values from the service execution to the Studio.
getServiceOutputs().addOutput( "errorMessage", "labelErrorMessage" ); getServiceOutputs().addOutput( "anyObjectValue", anyObjectValue );