Miscellaneous standard service tasks in Identity Manager
This article includes updates for Smart ID 23.10.2.
Description
Use this task to send a new request to SPAR server and receive information about a person.
Prerequisites
The environment variables below must be set. If some of them are missing, there will be an error logged with the names of the missing variables (comma-separated list) and also a BPMN error with the names of the variables as the message.
Setting the com.nexus.prime.spar.SparEnvironmentVariables logger in log4j to DEBUG level will log all the variables and values when loaded. The variables will be loaded only the first time.
Environment variables
smartid_spar_url
smartid_spar_certificate_location
smartid_spar_certificate_pin
smartid_spar_truststore_location
smartid_spar_truststore_password
smartid_spar_iden_KundNrLeveransMottagare
smartid_spar_iden_KundNrSlutkund
smartid_spar_iden_UppdragId
smartid_spar_iden_SlutAnvandarId
Configuration
To use this task, configure the following delegate expression in your service task:
|
The name of the task in the Identity Manager Admin is "SPAR: get Person info from SPAR".
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
ssnFieldName | - | The name of the process variable where the SSN for the searched person is stored. | |
personFoundFieldName | Default value:
| The name of the result variable where to put info if person was found or not. | |
resultsPrefix | Default value:
| The prefix for all the result variable names. | |
isVisibleNamn | Default value:
| Boolean value. If true, the info from "namn" will be returned. See Result below for more info. | |
isVisiblePersondetaljer | Default value:
| Boolean value. If true, the info from "persondetaljer" will be returned. See Result below for more info. | |
isVisibleFolkbokforing | Default value:
| Boolean value. If true, the info from "folkbokforing" will be returned. See Result below for more info. | |
isVisibleUtlandsadress | Default value:
| Boolean value. If true, the info from "utlandsadress" will be returned. See Result below for more info. |
Result
The following variables may be returned to the process data. Please note that some variables may be missing even if the condition is affirmative, if there is no result from the server for them.
For understanding what each result represents, please see the SPAR documentation here: https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/aviseringpost/
In the table below, all the variables are set with the default prefix (SPAR) and default names (SPAR_PersonFound):
Variable | Condition | Description |
---|---|---|
SPAR_PersonFound | always | If the person was found or not. Boolean value. If the SSN is invalid, instead of this result, a BMPN error will be thrown (SPAR_VALIDATION). See "BPMN errors" below. |
SPAR_Namn_Aviseringsnamn | isVisibleNamn = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/namn/ |
SPAR_Namn_Fornamn | isVisibleNamn = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/namn/ |
SPAR_Namn_Tilltalsnamn | isVisibleNamn = true | Integer value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/namn/ |
SPAR_Namn_Mellannamn | isVisibleNamn = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/namn/ |
SPAR_Namn_Efternamn | isVisibleNamn = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/namn/ |
SPAR_Persondetaljer_Sekretessmarkering | isVisiblePersondetaljer = true | Boolean value (not "JA", "NEJ" as in the SOAP response) For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_SekretessmarkeringSattAvSPAR | isVisiblePersondetaljer = true | Boolean value (not "JA", "NEJ" as in the SOAP response) For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_SkyddadFolkbokforing | isVisiblePersondetaljer = true | Boolean value (not "JA", "NEJ" as in the SOAP response) For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_AvregistreringsorsakKod | isVisiblePersondetaljer = true | String value. If the person is deceased, this variable will tell by a special code. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_Fodelsedatum | isVisiblePersondetaljer = true | XMLGregorianCalendar value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_FodelselanKod | isVisiblePersondetaljer = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_Fodelseforsamling | isVisiblePersondetaljer = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_Kon | isVisiblePersondetaljer = true | String value. see documentation at https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Persondetaljer_SvenskMedborgare | isVisiblePersondetaljer = true | Boolean value (not "JA", "NEJ" as in the SOAP response) For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/persondetaljer/ |
SPAR_Folkbokforing_DatumFrom | isVisibleFolkbokforing = true | XMLGregorianCalendar value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/folkbokfoering/ |
SPAR_Folkbokforing_FolkbokfordLanKod | isVisibleFolkbokforing = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/folkbokfoering/ |
SPAR_Folkbokforing_FolkbokfordKommunKod | isVisibleFolkbokforing = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/folkbokfoering/ |
SPAR_Folkbokforing_Hemvist | isVisibleFolkbokforing = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/folkbokfoering/ |
SPAR_Folkbokforing_Folkbokforingsdatum | isVisibleFolkbokforing = true | XMLGregorianCalendar value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/folkbokfoering/ |
SPAR_Folkbokforing_DistriktKod | isVisibleFolkbokforing = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/folkbokfoering/ |
SPAR_Utlandsadress_Utdelningsadress1 | isVisibleUtlandsadress = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/internationell-adress/ |
SPAR_Utlandsadress_Utdelningsadress2 | isVisibleUtlandsadress = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/internationell-adress/ |
SPAR_Utlandsadress_Utdelningsadress3 | isVisibleUtlandsadress = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/internationell-adress/ |
SPAR_Utlandsadress_Land | isVisibleUtlandsadress = true | String value. For more information, see https://www.statenspersonadressregister.se/master/start/teknisk-info/xml-scheman/20211/internationell-adress/ |
BPMN errors
Error name/code | Description |
---|---|
SPAR_VALIDATION | If there is a SOAP Fault with a validation error for the request sent. This means that either the SSN or some "iden" values (see the last four environment variables in "Prerequisites" above) are in the wrong format. |
SPAR_CERTIFICATE | If the connection certificate file cannot be found, opened, or is invalid. |
SPAR_TRUST_STORE | If the trust store cannot be found or opened. |
SPAR_COMMUNICATION | If there is any other communication issue while sending the request or there is any SOAP fault response other than validation. |
SPAR_MISSING_CONFIG_VARIABLES | If any of the required environment variables (see "Prerequisites" above) is missing. The message of the error has the comma-separated list of the missing variables. |
Description
Use this task to create a request for the IN Groupe connector and place it in the process map.
Configuration
To use this task, configure the following delegate expression in your service task:
${createINGroupeRequestParameterizedTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
CoreObjectListFieldName | Example value:
| Name of the variable in the process map, which contains a list of CoreObjectDescriptors, that should be used to create the request. | |
OutputFieldName | Example value:
| Name of the variable in the process map, where the request xml should be output to. | |
ConfigurationFilePath | Example value:
| Absolute file path of the configuration file, that should be used to create the request. The configuration file needs to be encoded in UTF-8, to ensure language specific characters are displayed correctly. | |
statusAfterExport | - | Example value:
| Status that a card can take when the exporting was successfully done. |
statusOnError | - | Example value:
| Status that a card can take when the exporting was not successfully done. |
SchemaVersion | Example value:
| The Schema Version the file must be created as. |
Configuration file
The configuration file is needed for Identity Manager to know which tag of the IN Groupe request schema should be mapped with the corresponding value from the core object. Format the configuration file as a .properties file.
To set the value of a tag, specify the type name of the parent tag and the tag you want to modify, for example:
Example: Set a value of a tag
BatchRequestType_globalSchema = DEMANDES_2.1.XSD
The value can also be a juel expression which is available in the process map. If the expression can not be resolved it will result in an empty string.
Expressions that are always available:
${CurrentDate} that resolves to the current date in "yyyyddMMhhmm" format, and
${NumberOfIteration} which is a number that starts at 1 and is increased each time a core object is processed.
To set the "reference" attribute that is needed for, for example, "PersoDataType", configure as follows:
Example: Set reference attribute
CardType_PersoDataType|Numero_carte = 123456789
The part after the "|" symbol represents the reference value.
Description
Use this task to read all IN Groupe report files from a folder and update any cards found inside.
Configuration
To use this task, configure the following delegate expression in your service task:
${importINGroupeReportsParameterizedTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
InputFolder | Example value:
| The folder which contains all the XML files. | |
ImportedFolder | Example value:
| The folder which stores already imported XML files. | |
ProblemFolder | Example value:
| The folder which contains XML files that could not be imported. | |
ConfigurationFilePath | Example value:
| The absolute path to the mapping file. | |
UniqueFieldName | Example value:
| The name of the field by which each card can be identified. | |
StatusMappingFieldName | Example value:
| The name of the field that references a map, containing all the available mappings between a request status and a card status. Note: The card status values must be present in the state graph, and the transitions from one state to another must be valid. | |
ImportFilesRegexPattern | - | Default value:
| The regular expression for importing files. |
DescriptorsListOfModifiedObjects | - | Default value:
| The name of the list in the process map that contains the modified objects after task execution. |
Configuration file
The configuration file is needed for Identity Manager to know, which field of the IN Groupe report schema should be mapped with the corresponding value from the core object. The configuration file has to be formatted as a .properties file.
To set the value of a tag, you specify the type name of the parent tag and the tag you want to modify (EntRecTypeReport_unRef in the example below). And, on the right side of the equals we have the datapool and the field where the value needs to be written (Card_UniqueReference in the example below).
Example: Set a value of a tag
EntRecTypeReport_unRef = Card_UniqueReference
In the import mapping you also have constructs referring to complex objects from a list. To set the "reference" attribute that is needed for, for example, "InfoType", configure as follows:
Example: Set reference attribute
InfoType|Serial_Number_CT = Card_CardNumber
The left part of the "|" symbol shows the "InfoType" tag, which is a list containing some complex objects. The right part of the "|" symbol identifies which complex objects you will take the value from, for example "Serial_Number_CT". The value will then be added to the "CardNumber" field of the Card datapool.
Description
Use this task to create an .ics file and store it in the data map.
Configuration
To use this task, configure the following delegate expression in your service task:
${createIcsFileParametrizedTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
subject | The subject of the event. | ||
location | The location of the event. | ||
startTime | The start time of the event. | ||
endTime | The end time of the event. | ||
targetField | - | Example value:
| Specified where the .ics file shall be stored in the data map. |
allDayEvent | - | Valid values:
| If set to "true" the event will be shown as an allDay event. |
content | Defines the content of the event. |
See following example as a reference:
Description
Use this task to create a pdf and store it in the datamap. The pdf will be generated from a Jasper Reports template.
Configuration
To use this task, configure the following delegate expression in your service task:
${generatePdfParametrizedTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
fieldName | The datamap field to which the pdf will be stored (as a byte[]). | ||
reportName |
| The name of the Jasper Report. Must be available in Identity Manager Admin. It can also be a JUEL Expression (for example, ${myDatapool_myReportNameField}. In this way, the template names from the process map are used dynamically. |
Description
Use this task to take a valid URL from the datamap and generate a QR code from it.
Configuration
To use this task, configure the following delegate expression in your service task:
${generateQRCodeTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
QRCodeLinkField | Example value:
| Describes the data map field in which the link is stored to create a QR code from. | |
QRCodeOutputField | Example value:
| The name of the output field to which the QR code ("jpg", byte[]) will be stored. |
Description
Use this task to export a binary file from the datamap into a file location on the hard drive (Server side).
Configuration
To use this task, configure the following delegate expression in your service task:
${exportBinaryParametrizedTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
exportFilePath | Example value:
| Defines the folder into which the binary file shall be exported. | |
exportFileName | Example value:
| Defines the name of the exported binary. | |
exportDataMapTargetField | Example value:
| Defines the datamap field from which the action should export the binary file. |
Description
Use this task to export an image from the datamap into a file location on the hard drive (Server side). The file extension will be automatically set depending on the image format.
Configuration
To use this task, configure the following delegate expression in your service task:
${exportImageJavaDelegate}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
exportFilePath | Example value:
| Defines the folder into which the image shall be exported. | |
exportFileBaseName | Example value:
| Defines the base of the exported image. The export will append a time stamp so that it will result in, for example: John_Doe_2019-11-20_10-52-19.jpg | |
exportDataMapTargetField | Example value:
| Defines the datamap field from which the action should export the image. |
Description
Use this task to define a ParametrizedAction which is capable of downsizing pictures inside of a Process.
Configuration
To use this task, configure the following delegate expression in your service task:
${resizeImageJavaDelegate}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Default value | Description |
---|---|---|---|
dataPoolSourceField | The datapool field in which the source image is stored. | ||
dataPoolTargetField | The datapool field in which the target image shall be stored. | ||
imageWidthInPx | The desired image width of the target image in px. | ||
imageHeightInPx | The desired image height of the target image in px. | ||
maxBinarySizeInKB | - | Defines the maximum size the output file shall be. When the resize doesn't lead to the desired size, the action will perform a quality shrink (defined by spring parameter "qualityStep") as long as the size matches the size given by this parameter. | |
keepRatio | Valid values:
| Boolean flag which indicates weather the aspect ratio of the image should be kept or not.
| |
qualityDescreaseStep | - | 0.05 | Indicates the quality decrease step when trying to minimize the quality to reach the desired maxBinarySizeInKB. |
This is a flowchart of the task:
Description
Use this task to import all rows from a CSV file as core objects.
The following must apply:
The file must exist in the data map as byte array.
To achieve this, upload a CSV file in a prior user task.
As form field, use either a data pool field with data type "Binary Data" or a "Variable Binary Field". The "Binary Data Definition" should be "CSV" in both cases.
Whenever there is a problem with the import, no objects will be imported at all. An exception will be thrown with a message identifying the row or even the cell that caused the problem. This message will be logged, too.
Configuration
To use this task, configure the following delegate expression in your service task:
${importIdentitiesFromCSVTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
csvField | Valid values::
| The field which contains the CSV file as byte array. You can use a Binary Field or a Variable Binary Field. | |
targetCoreTemplateName | The core template name which should be used for the new core objects. This should be based on a DAO based Datapool. | ||
commaSeparatedListOfUniqueIdentifiers | Comma separated list of the fields which identify one unique core object. | ||
maxNumberOfEntriesInCSV | This can be used to limit the number of core objects. If it's set and there are more entries in the CSV, an Exception will be thrown. | ||
createdCoreObjectDescriptorListVarName | When used, the variable with the configured name will contain a list of CoreObjectDescriptors after the execution. The list describes the core objects that had been newly created by the action. Thus it's possible to perform subsequent operations on those core objects later in the process. | ||
updatedCoreObjectDescriptorListVarName | Same as for createdCoreObjectDescriptorListVarName except that the list will contain the modified core objects. When you configure the same name as for createdCoreObjectDescriptorListVarName the resulting list will contain descriptors for both types of core objects: newly created as well as modified. | ||
mapping | Specifying a mapping provides manifold possibilities to configure the content of the CSV file. Without a mapping the following restrictions apply:
Also consider this:
| ||
errorMessageField | ErrorMessage | If this field is provided and an error occurs, a message containing the cause is not only logged but additionally put into the variable with the specified name. |
If you need to use this service task, contact Nexus.
Description
Use this task to validate the uploaded photos. This task is compatible with FaceVACS-SDK 9.4.0.
Do the following:
Install FaceVACS-SDK 9.4.0 on server.
Import the valid license to sdk, see FaceVACS documentation.
Copy the frsdkjava-9.4.0.jar in %TOMCATE_DIR%/lib. Normally the jar file is located in %FVSDK_9_4_0_DIR%/lib/x86_64/msc_14.1-sse4_crtdll/.
The native library jfrsdkjni-9.4.0.dll has to be setup in TOMCAT. For example, set the CATALINA_OPTS in catalina.bat:
SET CATALINA_OPTS=-Djava.library.path="C:\FVSDK_9_4_0\lib\x86_64\msc_14.1-sse4_crtdll;C:/FVSDK_9_4_0/lib/x86_64/share"
Configuration
To use this task, configure the following delegate expression in your service task:
${cognitecFaceVACSValidationParametrizedTask}
The FRSDK configuration file have to be configured in the faceVACSObjectsCreater bean (needed at runtime). This file can be located in "%INSTALLDIR%/etc/frsdk.cfg".
Example
<bean id="cognitecFaceVACSValidationParametrizedAction" class="de.vps.act.action.photo.validation.CognitecFaceVACSValidationParametrizedAction">
<property name="faceVACSChecker">
<bean class="de.vps.act.action.photo.validation.FaceVACSChecker">
<property name="faceVACSObjectsCreator" ref="faceVACSObjectsCreator" />
</bean>
</property>
</bean>
<bean id="faceVACSObjectsCreator" class="de.vps.act.action.photo.validation.FaceVACSObjectsCreator">
<constructor-arg value="C:/FVSDK_9_4_0/etc/frsdk.cfg" />
</bean>
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
outputFieldName | On which variable the result of checking will be available in data map. | ||
photoFieldName | Photo field name in data map. | ||
checkColor | - | Valid values:
| Returns true if the portrait characteristics are based on color and false if they are based on Gray scale (intensity) image. |
checkNaturalSkinColour | - | Valid values:
| Natural colours in face region. Returns true if the face region has natural colors, otherwise false. |
checkFrontal | - | Valid values:
| The face is considered frontal if the rotation of the head is less than +/-5 degrees from frontal for yaw and pitch and if roll angle of head is less then +/-8 degrees. |
checkEyesOpen | - | Valid values:
| Returns true if both eyes of the person are open. |
checkEyesGazeFrontal | - | Valid values:
| Returns true if the person’s eyes are looking frontal to the camera. |
checkEyesNotRed | - | Valid values:
| Returns true if both eyes pupils are not detected as red. |
checkNoTintedGlasses | - | Valid values:
| According to ISO 19794-5:2005 section 7.2.11 and best recommendations glasses should not be tinted. |
checkSharp | - | Valid values:
| Returns true if the face area (from chin to crown and from left to right ear) fits the focus and depth in field characteristics(see ISO 19794-5:2005 section 7.3.3). |
checkMouthClosed | - | Valid values:
| Returns true if mouth is closed according to ISO 19794-5:2005 section 7.2.3 and appendix A 2.2.1 |
Important!
Applicable for Smart ID 23.10.2 and higher: The HTTP Client Task replaces the Rest Call Service Task. For more information, see Set up Http Clients in Identity Manager.
Description
Use this task to call a rest endpoint from a BPMN process in Identity Manager, for example, to push certificate, card or user data to a REST end point of a third party system. This service task will always send a POST request.
The service task will compile the resolved data into an XML, similar to the format used in the REST Process API:
<data>
<field name="myField01">value01</field>
<field name="myCertificate01">Base64EncodedBinary01</field>
</data>
Only the extra parameters of the service task will be added to the request body (see the table below). You need to add the fields you want to export as parameters by clicking the + button next to the service task and adding the parameters with values.
The password field will be hidden with dots in Identity Manager Admin.
If the password is entered in plain text, then it will be encrypted when saving the service task and decrypted at runtime using the generated UUID as a reference, due to security reasons.
If the password is entered as a JUEL expression, then it will be stored as it is and resolved at runtime.
Configuration
To use this task, configure the following delegate expression in your service task:
${restCallTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
Url | Any String or JUEL expression | The URL endpoint where the data will be sent. | |
username | Any String or JUEL expression | The username for the HttpBasicAuth. | |
password | Any String or JUEL expression | This will be a secret field containing the password for the HttpBasicAuth. | |
myfield01 |
| Any String or JUEL expression | This parameter is added as shown in the example above and will be added to the request body. |
myCertificate01 |
| Any String or JUEL expression | This parameter is added as shown in the example above and will be added to the request body. |
includeHttpResponseBodyInProcessMap |
| Valid values:
| If the value is set to The parameter is only added if the HTTP status is successful (200). |
httpResponseBodyVariableName |
| Example value:
| This parameter is added if the parameter includeHttpResponseBodyInProcessMap is set to You can use the HTTP response body afterwards in a script task using the variable name that you defined. |
Task parameters with null values are not allowed.
Accepted status codes
These are the accepted status codes and reactions:
Status code | Reaction |
---|---|
200 | Success |
300 | No exception and no reaction inside code |
400 | Throws Htppclientexception |
500 | Throws BPMNError |
202 and 204 are not recognized as success and cause an exception.
Description
Use this task to generate a random GUID and store it in the data pool.
Configuration
To use this task, configure the following delegate expression in your service task:
${generateGUIDForEntityParameterizedTask}
The following parameters can be configured in Identity Manager Admin:
Parameter | Mandatory | Value | Description |
---|---|---|---|
GuidDataPoolField | Example value:
| Which data pool field to store the GUID in. |