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 );