Stardust provides Web Services with the same functionality as the appropriate services described in the chapter Stardust Services, adjusted to be able to use the Web Services technology.
Stardust provides the following Web Services:
| AdministrationService | Web Service Operation | Comments |
|---|---|---|
| DeploymentInfo deployModel(String model, int
predecessorOID)
@Deprecated |
see comments | use deployModel(...) |
| DeploymentInfo overwriteModel(String model, int modelOID) | see comments | use overwriteModel(...) |
| DeploymentInfo deployModel(String model,
String configuration, int predecessorOID, Date validFrom, Date validTo,
String comment, boolean disabled, boolean ignoreWarnings)
@Deprecated |
DeploymentInfoXto deployModel( Integer predecessorOid, Date validFrom, Date validTo, String comment, Boolean disabled, Boolean ignoreWarnings, String configuration, XmlValueXto model |
required parameters:
|
| DeploymentInfo overwriteModel(String model,
String configuration, int modelOID, Date validFrom, Date validTo, String
comment, boolean disabled, boolean ignoreWarnings) @Deprecated |
DeploymentInfoXto overwriteModel( int modelOid, Date validFrom, Date validTo, String comment, Boolean disabled, Boolean ignoreWarnings, String configuration, XmlValueXto model) |
required parameters:
|
| DeploymentInfo deleteModel(long modelOID) | DeploymentInfoXto deleteModel(int modelOid) | - |
| DeploymentInfo modifyModel(int modelOID, int predecessorOID, Date, Date, String, boolean) | DeploymentInfoXto modifyModel(int modelOid,
Integer predecessorOid, Date validFrom, Date validTo, String comment, boolean disabled) |
required parameters:
|
| void deleteProcesses(List<Long> piOids) | void deleteProcesses(OidsXto oids) | - |
| void cleanupRuntime(boolean keepUsers) | void cleanupRuntime(boolean keepUsers) | - |
| void cleanupRuntimeAndModels() | void cleanupRuntimeAndModels() | - |
| ProcessInstance setProcessInstancePriority(long, int) | see comment | use setProcessInstancePriority(long, int, null) |
| ProcessInstance setProcessInstancePriority(long, int, boolean) | ProcessInstanceXto setProcessInstancePriority(long oid, int priority, Boolean propagateToSubProcesses) | - |
| ProcessInstance abortProcessInstance(long) | ProcessInstanceXto abortProcessInstance(long oid) | - |
| ProcessInstance recoverProcessInstance(long) | - | - |
| void recoverProcessInstances(List<Long>) | void recoverProcessInstances(OidsXto oids) | - |
| Daemon getDaemon(String, boolean) | DaemonsXto getDaemonStatus(DaemonParametersXto daemonParameters) | if DaemonParameters element is empty or not existing: All Daemons are returned |
| Daemon stopDaemon(String, boolean) | DaemonsXto stopDaemon(DaemonParametersXto daemonParameters) | - |
| Daemon startDaemon(String, boolean) | DaemonsXto startDaemon(DaemonParametersXto daemonParameters) | - |
| List<Deamon> getAllDaemons(boolean) | - | Use getDaemonStatus |
| AuditTrailHealthReport getAuditTrailHealthReport() | AuditTrailHealthReportXto getAuditTrailHealthReport() | - |
| void recoverRuntimeEnvironment() | void recoverRuntimeEnvironment() | - |
| ProcessInstance startProcess(long, String, Map<String, Object>, boolean) | ProcessInstanceXto startProcessForModel(long
modelOid, String processId, ParametersXto parameters, Boolean startSynchronously, InputDocumentsXto attachments) |
if InputDocumentsXto is used, the Documents are added as
ProcessAttachments or Specific Documents. If the passed document is assigned to a document data,
in the JCR folder the document is persisted in by convention:
/ipp-respository/partitions/<partionId>/process-instances/<yyyy>/<MM>/<dd>/<HH>/pi-<OID>/specific-documents
If the passed document is put into the process attachments, in the JCR folder the document is persisted in by convention: /ipp-respository/partitions/<partionId>/process-instances/<yyyy>/<MM>/<dd>/<HH>/pi-<OID>/process-attachments |
| ActivityInstance forceCompletion(long, Map<String, Object>) | ActivityInstanceXto forceCompletion(long
activityOid, ParametersXto outDataValues) |
- |
| ActivityInstance forceSuspendToDefaultPerformer(long) | ActivityInstanceXto forceSuspend(long activityOid) | - |
| User getUser() | UserXto getSessionUser() | - |
| void flushCaches() | void flushCaches() | - |
| List<Permission> getPermissions() | PermissionsXto getPermissions() | - |
| Map<String,Object> getProfile(ProfileScope) | - | - |
| void setProfile(ProfileScope, Map<String, Object>) | - | - |
| void writeLogEntry(LogType, ContextKind, long, String, Throwable) | void writeLogEntry(LogTypeXto logType, Long
activityOid, Long processOid, String message) |
Setting processOid or activityOid defines ContextKind. Throwable not supported. |
| PasswordRules getPasswordRules() | PasswordRulesXto getPasswordRules() | - |
| void setPasswordRules(PasswordRules rules) | void setPasswordRules(PasswordRulesXto passwordRules) | - |
| Department createDepartment(String id, String name, String description, DepartmentInfo parent, OrganizationInfo organization) | DepartmentXto createDepartment(String id, String name, String description, DepartmentInfoXto parent, OrganizationInfoXto organization) | - |
| Department getDepartment(long oid) | DepartmentXto getDepartment(long oid) | - |
| Department modifyDepartment(long oid, String name, String description) | DepartmentXto modifyDepartment(long oid, String name, String description) | - |
| void removeDepartment(long oid) | void removeDepartment(long oid) | - |
| Preferences getPreferences(PreferenceScope scope, String moduleId, String preferencesId) | PreferencesXto getPreferences(PreferencesScopeXto scope, String moduleId, String preferencesId) | - |
| void savePreferences(Preferences preferences) | use savePreferences(PreferencesListXto preferences) | |
| void savePreferences(List<Preferences> preferences) | void savePreferences(PreferencesListXto preferences) | |
| ConfigurationVariables getConfigurationVariables(String modelId) | List<ConfigurationVariables> getConfigurationVariables(List<String> modelIds) | |
| ConfigurationVariables getConfigurationVariables(byte[] model) | List<ModelReconfigurationInfo> saveConfigurationVariables(ConfigurationVariables configurationVariables, boolean force) | |
| RuntimePermissions getGlobalPermissions() | void setGlobalPermissions(RuntimePermissions permissions) |
| DocumentManagementService | Web Service Operation | Comments |
|---|---|---|
| Document getDocument(String documentId) | DocumentXto getDocument(String documentId, QName metaDataType) | - |
| List getDocumentVersions(String folderId) | DocumentsXto getDocumentVersions(String documentId, QName metaDataType) | - |
| List getDocuments(List documentIds) | DocumentsXto getDocuments(DocumentIdsXto documentIds, QName metaDataType) | - |
| List findDocumentsByName(String namePattern) | DocumentsXto findDocuments(DocumentQuery documentQuery) | use namePattern element |
| List findDocuments(String expression) | DocumentsXto findDocuments(DocumentQuery documentQuery) | use xPathQuery element |
| byte[] retrieveDocumentContent(String docId) | base64Binary getDocumentContent(String documentId) | - |
| String requestDocumentContentDownload(String documentId) | String requestDocumentContentDownload(String documentId) | - |
| Folder getFolder(String folderId) | FolderXto getFolder(String folderId, FolderLevelOfDetailXto , QName documentMetaDataType, QName folderMetaDataType) | if 2ndParameter is null |
| Folder getFolder(String folderId, int levelOfDetail) | FolderXto getFolder(String folderId, FolderLevelOfDetailXto folderLevelOfDetail, QName documentMetaDataType, QName folderMetaDataType) | - |
| List getFolders(List folderIds, int levelOfDetail) | FoldersXto getFolders(FolderIdsXto folderIds,
FolderLevelOfDetailXto folderLevelOfDetail, QName documentMetaDataType, QName folderMetaDataType) |
- |
| List findFoldersByName(String namePattern, int levelOfDetail) | FoldersXto findFolders(FolderQueryXto folderQuery) | use namePattern element |
| List findFolders(String expression, int levelOfDetail) | FoldersXto findFolders(FolderQueryXto folderQuery) | use xPathQuery element |
| Document createDocument(String folderId, DocumentInfo document) | DocumentXto createDocument(String folderId, boolean createMissingFolders, DocumentInfoXto documentInfo, DataHandler content, DocumentVersionInfoXto versionInfo) | if the DataHandler value is null |
| Document createDocument(String folderId, DocumentInfo document, byte[] content, String encoding) | DocumentXto createDocument(String folderId, boolean createMissingFolders, DocumentInfoXto documentInfo, DataHandler content, DocumentVersionInfoXto versionInfo) | - |
| Document versionDocument(String documentId, String versionLabel) | DocumentXto versionDocument(String documentId, String versionLabel) | - |
| Document updateDocument(Document document, boolean createNewRevision, String versionLabel, boolean keepLocked) | see comment | use updateDocument with parameter: DataHandler = null |
| Document updateDocument(Document document, byte[] content, String encoding, boolean createNewRevision, String versionLabel, boolean keepLocked) | DocumentXto updateDocument(String documentId, DocumentInfoXto documentInfo, DataHandler content, DocumentVersionInfoXto versionInfo) | - |
| String requestDocumentContentUpload(String documentId) | String requestDocumentContentUpload(String documentId) | - |
| void removeDocument(String documentId) | void removeDocument(String documentId) | - |
| Folder createFolder(String parentFolderId, FolderInfo folder) | FolderXto createFolder(String parentFolderId, FolderInfoXto folderInfo) | - |
| Folder updateFolder(Folder folder) | FolderXto updateFolder(FolderXto updateFolder) | - |
| void removeFolder(String folderId, boolean recursive) | void removeFolder(String folderId, Boolean recursive) | default value for parameter: recursive = false |
| Set<AccessControlPolicy> getApplicablePolicies(String resourceId) | see comment | use getPolicies with: policyScope = APPLICABLE |
| Set<AccessControlPolicy> getEffectivePolicies(String resourceId) | see comment | use getPolicies with: policyScope = EFFECTIVE |
| Set<AccessControlPolicy> getPolicies(String resourceId) | AccessControlPoliciesXto getPolicies(String resourceId, PolicyScopeXto policyScope) | policyScope = ALL |
| Set<Privilege> getPrivileges(String resourceId) | PrivilegesXto getPrivileges(String resourceId) | - |
| void setPolicy(String resourceId, AccessControlPolicy policy) | void setPolicy(String resourceId, AccessControlPolicy policy) | - |
| RepositoryMigrationReport migrateRepository(int
batchSize, boolean evaluateTotalCount) |
RepositoryMigrationReportXto migrateRepository(int batchSize, boolean evaluateTotalCount) | - |
| - | DocumentTypeResultsXto getDocumentTypes(String modelId) | modelId = null. Maps to all valid models. |
| byte[] getSchemaDefinition(String schemaLocation) | XmlValueXto getDocumentTypeSchema(String schemaLocation) |
| QueryService | Web Service Operation | Comments |
|---|---|---|
| long getUsersCount(UserQuery) | - | use findUsers with SubsetPolicy |
| long getUserGroupsCount(UserGroupQuery) | - | use findUserGroups with SubsetPolicy |
| long getProcessInstancesCount(ProcessInstanceQuery) | - | use findProcesses with SubsetPolicy |
| long getActivityInstancesCount(ActivityInstanceQuery) | - | use findActivities with SubsetPolicy |
| long getLogEntriesCount(LogEntryQuery) | - | use findLogEntries with SubsetPolicy |
| Users getAllUsers(UserQuery) | UserQueryResultXto findUsers(UserQueryXto userQuery) | see UserQuery |
| UserGroups getAllUserGroups(UserGroupQuery) | UserGroupQueryResultXto findUserGroups(UserGroupQueryXto userGroupQuery) | see UserGroupQuery |
| ProcessInstances getAllProcessInstances(ProcessInstanceQuery) | ProcessInstanceQueryResultXto findProcesses(ProcessInstanceQueryXto query) |
see ProcessInstanceQuery |
| ActivityInstances getAllActivityInstances(ActivityInstanceQuery) | ActivityQueryResultXto findActivities(ActivityQueryXto query) |
see ActivityQuery |
| LogEntries getAllLogEntries(LogEntryQuery) | LogEntryQueryResult findLogEntries(LogEntryQueryXto logEntryQuery) | see LogEntryQuery |
| User findFirstUser(UserQuery) | - | use findUsers with SubsetPolicy |
| UserGroup findFirstUserGroup(UserGroupQuery) | - | use findUserGroups with SubsetPolicy |
| ProcessInstance findFirstProcessInstance(ProcessInstanceQuery) | - | use findProcesses with SubsetPolicy |
| ActivityInstance findFirstActivityInstance(ActivityInstanceQuery) | - | use findActivities with SubsetPolicy |
| LogEntry findFirstLogEntry(LogEntryQuery) | - | use findLogEntries with SubsetPolicy |
| List<ActivityInstance> getAuditTrail(long) | - | - |
| List<DeployedModelDescription> getAllModelDescriptions()
@deprecated |
ModelDescriptionsXto getAllModelDescriptions() | - |
| List<DeployedModelDescription> getAllAliveModelDescriptions()
@deprecated |
ModelDescriptionsXto getAllAliveModelDescriptions() | - |
| DeployedModelDescription getActiveModelDescription()
@deprecated |
see comment | use getModelDescription(Long modelOid) with
parameter: Long modelOid = null (the active model's description is returned) |
| DeployedModelDescription getModelDescription(long) | ModelDescriptionXto getModelDescription(Long modelOid) | - |
| boolean wasRedeployed(long modelOid, int revision) | boolean wasRedeployed(long modelOid, int revision) | - |
| DeployedModel getModel(long modelOid) | see comment | use getModel() with parameter: Boolean computeAliveness = null |
| DeployedModel getModel(long modelOid, boolean computeAliveness) | ModelXto getModel(Long modelOid, Boolean computeAliveness |
|
| DeployedModel getActiveModel() | see comment | use getModel() with parameter: Long modelOid = null Boolean computeAliveness = null |
| String getModelAsXML(long modelOid) | XmlValueXto getModelAsXml(Long modelOid) | if Long modelOid = null, the active model is used |
| List<ProcessDefinition> getAllProcessDefinitions(long modelOid) | ProcessDefinitionsXto getAllProcessDefinitions(Long modelOid) | - |
| ProcessDefinition getProcessDefinition(long processId, String modelOid) | ProcessDefinitionXto getProcessDefinition(String processId, Long modelOid) | - |
| List<ProcessDefinition> getAllProcessDefinitions() | see comment | use getAllProcessDefinitions(Long modelOid)
with parameter: Long modelOid = null |
| ProcessDefinition getProcessDefinition(String id) | see comment | use getProcessDefinition(String processId,
Long modelOid) with parameter: modelOid = null |
| DataQueryResult getAllData(DataQuery query) | VariableDefinitionQueryResultXto findVariableDefinitions(VariableDefinitionQueryXto) | - |
| List<Participant> getAllParticipants(long modelOid) | ParticipantsXto getAllParticipants(Long modelOid) | - |
| Participant getParticipant(long modelOid, String id) | ParticipantXto getParticipant(String participantId, Long modelOid) | - |
| List<Participant> getAllParticipants() | see comment | use getAllParticipants(Long modelOid) with
parameter: modelOid = null |
| Participant getParticipant(String id) | see comment | use getParticipant(String participantId, Long
modelOid) with parameter: modelOid = null |
| List<Permission> getPermissions() | PermissionsXto getPermissions() | - |
| byte[] getSchemaDefinition(long modelOid, String typeDeclarationId) | XmlValueXto getSchemaDefinition(QName type, Long modelOid) | if modelOid = null, the active model is used |
| Document findFirstDocument(DocumentQuery query) - deprecated | - | use findDocuments with SubsetPolicy |
| Documents getAllDocuments(DocumentQuery query) | DocumentQueryResultXto getAllDocuments(DocumentQueryXto) | see DocumentQuery |
| ProcessDefinitions getProcessDefinitions(ProcessDefinitionQuery query) | ProcessDefinitionQueryResultXto findProcessDefinitions(ProcessDefinitionQueryXto query) | see ProcessDefinitionQuery |
| Preferences getPreferences(PreferenceScope scope, String moduleId, String preferencesId) | PreferencesXto getPreferences (PreferencesScopeXto scope, String moduleId, String preferencesId) | |
| List <Preferences> getAllPreferences(PreferenceQuery preferenceQuery) | PreferencesListXto findPreferences(PreferencesQueryXto query) | |
| Models getModels(DeployedModelQuery) | ModelsQueryResultXto findModels (DeployedModelsQueryXto query) |
| UserService | Web Service Operation | Comments |
|---|---|---|
| String startSession(String) | - | - |
| String closeSession(String) | - | - |
| boolean isInternalAuthentified() (@deprecated) | - | - |
| boolean isInternalAuthentication() | boolean isInternalAuthentication() | - |
| boolean isInternalAuthorization() | boolean isInternalAuthorization() | - |
| User getUser() | UserXto getSessionUser() | - |
| User modifyLoginUser(String oldPassword,
String firstName, String lastName, String newPassword, String eMail) |
- | - |
| User modifyUser(User user) | see comment | use UserXto modifyUser(UserXto, false) |
| User modifyUser(User user, boolean generatePassword) | UserXto modifyUser(UserXto user, Boolean generatePassword) | - |
| User createUser(String account, String
firstName, String lastName, String description, String password, String eMail, Date validFrom, Date validTo) |
see comment | use createUser(UserXto) |
| User createUser(String realm, String account, String firstName, String lastName, String description, String password, String eMail, Date validFrom, Date validTo) | UserXto createUser(UserXto user) | - |
| User getUser(String account) | - | use QueryService UserQuery |
| User getUser(String realm, String account) | - | use QueryService UserQuery |
| User getUser(long oid) | UserXto getUser(long oid) | - |
| User invalidateUser(String account) | see comment | use invalidateUser(String,null) |
| User invalidateUser(String realm, String account) | UserXto invalidateUser(String accountId,String realmId) | - |
| UserGroup createUserGroup(String id, String name, String description, Date validFrom, Date validTo) | UserGroupXto createUserGroup(UserGroupXto userGroup) | - |
| UserGroup getUserGroup(String id) | - | use QueryService UserGroupQuery |
| UserGroup getUserGroup(long oid) | UserGroupXto getUserGroup(long oid) | - |
| UserGroup modifyUserGroup(UserGroup userGroup) | UserGroupXto modifyUserGroup(UserGroupXto userGroup) | - |
| UserGroup invalidateUserGroup(String id) | see comment | use invalidateUserGroup(null,String) |
| UserGroup invalidateUserGroup(long oid) | UserGroupXto invalidateUserGroup(Long userGroupOid, String userGroupId) | use invalidateUserGroup(long,null) |
| UserRealm createUserRealm(String id, String name, String description) | UserRealmXto createUserRealm(String id, String name, String description) | - |
| void dropUserRealm(String id) | void dropUserRealm(String id) | - |
| List getUserRealms() | List<UserRealmXto> getUserRealms() | - |
| void resetPassword(String account, Map properties) | void resetPassword(String account, MapXto properties) | - |
| List getDeputies(UserInfo user) | DeputiesXto addDeputy(UserInfoXto userXto) | |
| Deputy modifyDeputy(UserInfo user, UserInfo deputyUser, DeputyOptions options) | see comment | use DeputyXto modifyDeputy(UserInfoXto userXto, UserInfoXto deputyUserXto, DeputyOptionsXto optionsXto) |
| Deputy addDeputy(UserInfo user, UserInfo deputyUser, DeputyOptions options) | see comment | use DeputyXto addDeputy(UserInfoXto userXto, UserInfoXto deputyUserXto, DeputyOptionsXto optionsXto) |
| void removeDeputy(UserInfo user, UserInfo deputyUser) | see comment | use removeDeputy(UserInfoXto userXto, UserInfoXto deputyUserXto) |
| List getUsersBeingDeputyFor(UserInfo deputyUser) | DeputiesXto getUsersBeingDeputyFor(UserInfoXto deputyUserXto) |
For UserService the complex type called User is used differently for:
For the create user operation the following User type elements can be used. All other elements are ignored.
| Element Name | Type | minOccurs |
|---|---|---|
| accountId | string | |
| firstName | string | 0 |
| lastName | string | 0 |
| password | string | 0 |
| string | 0 | |
| validFrom | dateTime | 0 |
| validTo | dateTime | 0 |
| description | string | 0 |
| userRealm | tns:UserRealm | 0 |
<api:createUser>
<api:user>
<api:accountId>lcarnot</api:accountId>
<api:firstName>Leonard</api:firstName>
<api:lastName>Carnot</api:lastName>
<api:password>pwd</api:password>
<api:eMail>a.b@c.de</api:eMail>
<api:description>This is a description.</api:description>
</api:user>
</api:createUser>
Modifying a user is best accomplished by modifying a User formerly retrieved via an API operation. For example, getUser. The elements userGroups or grants are used to add or remove user groups and grants to or from a user. If the userGroups or the grants element do not exist at all, the user groups or grants are not modified. If an empty element of userGroup or grants is used, all user groups or grants are removed from the user.
For the modifyUser operation following elements can be used to modify a user. All other elements are ignored so a User element formerly retrieved from the API can just be modified and used as input for a modifyUser operation. The oid element is mandatory.
| Element Name | Type | minOccurs |
|---|---|---|
| oid | long | 0 |
| accountId | string | |
| passwordExpired | boolean | |
| firstName | string | 0 |
| lastName | string | 0 |
| string | 0 | |
| validFrom | dateTime | 0 |
| validTo | dateTime | 0 |
| description | string | 0 |
| userGroups | tns:UserGroups | 0 |
| grants | tns:Grants | 0 |
| attributes | tns:Attributes | 0 |
<api:modifyUser>
<api:user>
<api:oid>3</api:oid>
<api:accountId>lcarnot</api:accountId>
<api:firstName>Leonard</api:firstName>
<api:lastName>Carnot</api:lastName>
<api:eMail>f.g@h.ij</api:eMail>
<api:description>This is a changed description.</api:description>
<api:grants>
<api:grant> <api:id>Administrator</api:id>
</api:grant>
</api:grants>
</api:user>
</api:modifyUser>
The following elements are used for returned User types resulting from Web service operations.
| Element Name | Type | minOccurs |
|---|---|---|
| oid | long | 0 |
| accountId | string | |
| firstName | string | 0 |
| lastName | string | 0 |
| previousLoginTime | dateTime | 0 |
| string | 0 | |
| validFrom | dateTime | 0 |
| validTo | dateTime | 0 |
| description | string | 0 |
| detailsLevel | int | 0 |
| userRealm | tns:UserRealm | 0 |
| userGroups | tns:UserGroups | 0 |
| grants | tns:Grants | 0 |
| attributes | tns:Attributes | 0 |
| passwordExpired | boolean |
<modifiedUser>
<oid>3</oid>
<accountId>lcarnot</accountId>
<firstName>Leonard</firstName>
<lastName>Carnot</lastName>
<eMail>f.g@h.ij</eMail>
<description>This is a changed description.</description>
<detailsLevel>3</detailsLevel>
<userRealm>
<oid>1</oid>
<id>carnot</id>
<name>CARNOT</name>
<partitionOid>1</partitionOid>
<partitionId>default</partitionId>
</userRealm>
<grants>
<grant>
<id>Administrator</id>
<name>Administrator</name>
<modelOid>1</modelOid>
<elementOid>10044</elementOid>
<organization>false</organization>
</grant>
</grants>
<passwordExpired>false</passwordExpired>
</modifiedUser>
| WorkflowService | Web Service Operation | Comments |
|---|---|---|
| ActivityInstance activate(long activityInstanceOID) | ActivityInstanceXto activateActivity(long activityOid) | - |
| ActivityInstance activateNextActivityInstance(long activityInstanceOID) | ActivityInstanceXto activateNextActivity(Long activityOid, WorklistQueryXto worklistQuery) | |
| ActivityInstance activateNextActivityInstance(WorklistQuery query) | ActivityInstanceXto activateNextActivity(Long activityOid, WorklistQueryXto worklistQuery) | |
| - | ParametersXto activateActivityAndGetInData(long activityOid, String context) | - |
| ActivityInstance complete(long activityInstanceOID, String context, Map<String, Object> outData) | ActivityInstanceXto completeActivity(long activityOid, String context, ParametersXto outData, Boolean activate) | if parameter Boolean activate is false or null |
| ActivityCompletionLog complete(long activityInstanceOID, String context, Map<String, Object> outData, int flags) | ActivityInstancesXto completeActivityAndActivateNext(long activityOid, String context, ParametersXto outData, Boolean activate) | if parameter Boolean activate is false or null |
| ActivityInstance activateAndComplete(long activityInstanceOID, String context, Map<String, Object> outData) | ActivityInstanceXto completeActivity(long activityOid, String context, ParametersXto outData, Boolean activate) | if parameter Boolean activate is true |
| ActivityCompletionLog activateAndComplete(long activityInstanceOID, String context, Map<String, Object> outData, int flags) | ActivityInstancesXto completeActivityAndActivateNext(long activityOid, String context, ParametersXto outData, Boolean activate) | if parameter Boolean activate is true |
| Serializable getInDataValue(long activityInstanceOID, String, String) | - | - |
| Map getInDataValues(long activityInstanceOID, String context, Set<String> ids) | ParametersXto getActivityInData(long activityOid, String context, DataIdsXto dataIds) | dataIds is optional for limiting results |
| Map getInDataValues(long, String) (@deprecated) | - | - |
| ActivityInstance suspend(long activityInstanceOID, ContextData outData) | see comment | use suspendActivity with parameter: participant = null |
| ActivityInstance suspendToDefaultPerformer(long activityInstanceOID) | see comment | use suspendActivity with parameter: context = null participant = DefaultParticipant |
| ActivityInstance suspendToDefaultPerformer(long activityInstanceOID, String context, Map<String, Object> outData) | ActivityInstanceXto suspendActivity(long activityOid, ParticipantInfoBaseXto participant, String context, ParametersXto outDataValues) | use suspendActivity with parameter: participant = DefaultParticipant |
| ActivityInstance suspendToUser(long activityInstanceOID) | see comment | use suspendActivity with parameter: context = null participant = UserInfo with oid -10 |
| ActivityInstance suspendToUser(long activityInstanceOID, String context, Map<String, Object> outDataValues) | see comment | use suspendActivity with parameter: participant = UserInfo with oid -10 |
| ActivityInstance suspendToUser(long activityInstanceOID, long userOID) | see comment | use suspendActivity with parameter: context = null participant = UserInfo |
| ActivityInstance suspendToUser(long activityInstanceOID, long userOID String context, Map<String, Object> outData) | see comment | use suspendActivity with parameter: participant = UserInfo |
| ActivityInstance suspendToParticipant(long activityInstanceOID, String participant) | see comment | use suspendActivity with parameter: context = null participant = RoleInfo |
| ActivityInstance suspendToParticipant(long, String participant, String context, Map<String, Object> outData) | see comment | use suspendActivity with parameter: participant = RoleInfo |
| ActivityInstance hibernate(long activityInstanceOID) | ActivityInstanceXto hibernateActivity(long activityOid) | - |
| ProcessInstance startProcess(String id, Map<String, Object> data, boolean synchronously) | ProcessInstanceXto startProcess(String
processId, ParametersXto parameters, Boolean startSynchronously, InputDocumentsXto attachments) |
if InputDocumentsXto is used, the Documents are added as
ProcessAttachments or Specific Documents. If the passed document is assigned to a document data,
in the JCR folder the document is persisted in by convention:
/ipp-repository/partitions/<partionId>/process-instances/<yyyy>/<MM>/<dd>/<HH>/pi-<OID>/specific-documents
If the passed document is put into the process attachments, in the JCR folder the document is persisted in by convention: /ipp-repository/partitions/<partionId>/process-instances/<yyyy>/<MM>/<dd>/<HH>/pi-<OID>/process-attachments |
| ProcessInstance abortProcessInstance(long) (@deprecated) | - | - |
| ProcessInstance spawnSubprocessInstance(long parentProcessInstanceOid, String spawnProcessID, boolean copyData, Map<String, ?> data); | see comment | use spawnSubprocessInstances |
| List<ProcessInstance> spawnSubprocessInstances (long parentProcessInstanceOid, List<SubprocessSpawnInfo> subprocessSpawnInfo); | ProcessInstancesXto spawnSubprocessInstances(long processInstanceOid, ProcessSpawnInfosXto processSpawnInfos) | - |
| ProcessInstance spawnPeerProcessInstance( long processInstanceOid, String spawnProcessID, boolean copyData, Map<String, ?> data, boolean abortProcessInstance, String comment); | ProcessInstancesXtospawnPeerProcessInstance(long processInstanceOid, String spawnProcessId, boolean copyData, ParametersXto parameters, boolean abortProcessInstance, String comment) | - |
| ProcessInstance createCase(String name, String description, long[] memberOids) | ProcessInstanceXto createCase(String name, String description, OidListXto memberOids) | - |
| ProcessInstance joinCase(long caseOid, long[] memberOids) | ProcessInstanceXto joinCase(long caseOid, OidListXto memberOids) | - |
| ProcessInstance leaveCase(long caseOid, long[] memberOids | ProcessInstanceXto leaveCase(long caseOid, OidListXto memberOids) | - |
| ProcessInstance mergeCases(long targetCaseOid, long[] sourceCaseOids, String comment) | ProcessInstance mergeCases(long targetCaseOid, long[] sourceCaseOids, String comment) | - |
| ProcessInstance delegateCase(long caseOid, ParticipantInfo participant) | ProcessInstanceXto delegateCase(long caseOid, ParticipantInfoXto participantInfo) | - |
| ProcessInstance joinProcessInstance(long processInstanceOid, long targetProcessInstanceOid, String comment) | joinProcessInstance(long processInstanceOid, long targetProcessInstanceOid, String comment) | - |
| ActivityInstance abortActivityInstance(long activityInstanceOID) | see comment | use abortActivity with parameter: abortScope = null |
| ActivityInstance abortActivityInstance(long activityInstanceOID, AbortScope abortScope) | ActivityInstanceXto abortActivity(long activityOid, AbortScopeXto abortScope) | - |
| ProcessInstance abortProcessInstance(long processInstanceOid, AbortScope abortScope) | ProcessInstanceXto abortProcessInstance(long oid, AbortScopeXto abortScope) | - |
| DeployedModel getModel() | - | use QueryService |
| Worklist getWorklist(WorklistQuery) | WorklistXto findWorklist(WorklistQueryXto worklistQuery) | - |
| ActivityInstance activateNextActivityInstance(long activityInstanceOID) | ActivityInstanceXto activateNextActivity(long activityOid) | - |
| ActivityInstance activateNextActivityInstanceForProcessInstance(long processInstanceOID) | ActivityInstanceXto activateNextActivityForProcess(long processOid) | - |
| void setOutDataPath(long, String, Object) | - | use setProcessProperties() |
| void setOutDataPaths(long, Map<String, Object>) | void setProcessProperties(long processInstanceOid, InstancePropertiesXto propertyIds) | - |
| Object getInDataPath(long, String) | - | - |
| Map getInDataPaths(long, Set<String>) | InstancePropertiesXto getProcessProperties(long processInstanceOid, PropertyIdsXto propertyIds) | - |
| ActivityInstance delegateToDefaultPerformer(long activityInstanceOID) | ActivityInstanceXto delegateActivity(long activityOid, ParticipantInfoBaseXto participant) | use delegateActivity with parameter: participant = DefaultParticipant |
| ActivityInstance delegateToUser(long activityInstanceOID, long userOID) | see comment | use delegateActivity with parameter: participant = UserInfo |
| ActivityInstance delegateToParticipant(long activityInstanceOID, String performer) | see comment | use delegateActivity with parameter: participant = RoleInfo |
| ActivityInstance getActivityInstance(long activityInstanceOID) | ActivityInstanceXto getActivity(long activityOid) | - |
| ProcessInstance getProcessInstance(long processInstanceOID) | ProcessInstanceXto getProcess(long processOid) | - |
| ActivityInstance bindActivityEventHandler(long activityInstanceOID, EventHandlerBinding) | ActivityEventBindingXto createActivityEventBinding(long
processOid, ProcessEventBindingXto bindingInfo) |
- |
| ProcessInstance bindProcessEventHandler(long processInstanceOID, EventHandlerBinding) | ProcessEventBindingXto createProcessEventBinding(long
processOid, ProcessEventBindingXto bindingInfo) |
- |
| ActivityInstance bindActivityEventHandler(long processInstanceOID, activityInstanceOID, String handler) | - | - |
| ProcessInstance bindProcessEventHandler(long processInstanceOID, String handler) | - | - |
| ActivityInstance unbindActivityEventHandler(long activityInstanceOID, String) | ActivityEventBindingXto removeActivityEventBinding(long
processOid, String eventHandlerId) |
- |
| ProcessInstance unbindProcessEventHandler(long processInstanceOID, String) | ProcessEventBindingXto removeProcessEventBinding(long
processOid, String eventHandlerId) |
- |
| EventHandlerBinding getActivityInstanceEventHandler(long activityInstanceOID, String) | ActivityEventBindingXto getActivityEventBinding(long
processOid, String eventHandlerId) |
- |
| EventHandlerBinding getProcessInstanceEventHandler(long processInstanceOID, String) | ProcessEventBindingXto getProcessEventBinding(long
processOid, String eventHandlerId) |
- |
| List getStartableProcessDefinitions() | ProcessDefinitionsXto getStartableProcessDefinitions() | - |
| User getUser() | UserXto getSessionUser() | - |
| List getPermissions() | PermissionsXto getPermissions() | - |
| void setProcessInstanceAttributes(ProcessInstanceAttributes attributes) | - | handled in get/setProcessProperties |
| void writeLogEntry(LogType, ContextKind contextType, long contextOid, String message, Throwable throwable) | void writeLogEntry(LogTypeXto logType, Long
activityOid, Long processOid, String message) |
Setting processOid or activityOid defines ContextKind. Throwable not supported. |
| List<Department> findAllDepartments(DepartmentInfo
parent, OrganizationInfo organization) |
DepartmentsXto findAllDepartments(DepartmentInfoXto parent, OrganizationInfoXto organization) | - |
| Department findDepartment(DepartmentInfo
parent, String id, OrganizationInfo organization) |
DepartmentXto findDepartment(DepartmentInfoXto parent, OrganizationInfoXto organization, String id) | - |
The following Java style data types are supported for the Web services:
| Primitive DataType | Mapped Type |
|---|---|
| String | string |
| Integer | int |
| Long | long |
| Boolean | boolean |
| Float | float |
| Double | double |
| Byte | byte |
| Short | short |
| Timestamp | dateTime |
| Character | *api:Char (Base64 encoded string) |
| Calendar | Base64Binary |
| Enumeration | string |
| Structured DataType | Cardinality | Mapped Type |
|---|---|---|
| SimpleType | Exactly one | Primitive |
| SimpleType | Zero or more | XML with list of Primitives |
| ComplexType | Exactly one | XML (using xsd from model) |
| ComplexType | Zero or more | XML (using xsd from model) |
| DMS DataType | Mapped Type |
|---|---|
| Document | api:Document |
| Documents | api:Documents |
| Folder | api:Folder |
| Folders | api:Folders |
| Serializable DataType | Mapped Type |
|---|---|
| Primitive | Primitive |
| Non Primitive | Base64Binary |
| Entity DataType | Mapped Type |
|---|---|
| Primitive | Primitive |
| Non-Primitive | Not Supported |
To control the service factory cache timeout, set Carnot.WebService.SessionCache.Timeout
property in carnot.properties file.
For as long as the user is using it, the session is extended.
So with the Timeout property you can specify explicitly how long a service factory
is maintained in the cache. If this property is not specified,
it defaults to 300 seconds. You can specify any integer value in seconds, from 1 second upwards.
To renew the entry timestamp, set Carnot.WebService.SessionCache.RenewOnAccess property
in your carnot.properties file.
By default, this property is true.
Each time the user is using a ServiceFactory from the cache,
the expiration time is reset to the last access time + timeout value.
The validity of the ServiceFactory is extended with every access.
If this property is explicitly set to false, the validity period of the ServiceFactory
is no longer extended. After the Timeout period, it is automatically removed from the cache,
regardless it is accessed or not.
For information about these properties residing in the carnot.properties
file, please refer to the Service
section of the Server
Side Properties chapter.
Re-authentication is performed in case re-authentication properties
exist. These re-authentication properties are only transferred in case the following property is set in
your server-side carnot.properties file:
Carnot.WebService.SessionCache.ReAuthenticationInterval = 0
The default value of this property is -1, which does not add any re-authentication properties.
Note
This property only works with tunneling EJB mode and Spring!
Stardust provides both, a Java and a C# client example that illustrate how to communicate with Stardust Web Services:
You can download the examples as zip files from the locations mentioned in the above links.