Skip to main content

We have a custom form on our service request events, with custom fields and values. These are returned by GET /assystREST/v2/events/123 in the response node <webCustomPropertiesDescription><==# ADDITIONAL INFORMATION (DO NOT EDIT) #=  #==></webCustomPropertiesDescription> encoded as a series of double asterisk delimited name/value pairs in the ADDITIONAL INFORMATION element.

We are integrating with another system that needs to process these custom fields and values.

Does Assyst REST API provide a means to extract these name/value pairs in a structured way? Or do we have to writing a custom parser that is tied to the internal custom encoding?

We have Assyst v11.4.

To get the Custom Fields and Values is done with the use of field expansion.

https://wiki.axiossystems.com/assyst11-4Wiki/index.php/Integrations:assystREST#Field_Expansion_and_Filtering

Examples:

  • Retrieve the details of a specific event with fully populated custom fields.

GET http://<server>:<port>/assystREST/v2/events/10012278?fields=customFields,customFields.singleSelectValue,customFields.systemLookupValue,customFields.multiSelectValues

  • In addition if you need to retrieve the definition of the multi-select values, possibly to display their names as well as their shortcodes:

GET http://<server>:<port>/assystREST/v2/events/10012278?fields=customFields,customFields.singleSelectValue,customFields.systemLookupValue,customFields.multiSelectValues.value


Thanks for asking Software Craft and thanks for answering Kevin.

I was just racking my brains over this one


These pull back the field short codes and the fields entered/selected value, however has anyone found a way to get the actual field name?


To get the names, you can get the whole Form-Description an grab it from there:

[yourServer]/assystREST/v2/events/definition?customDefinition=[ShortCodeFromYourCustomForm]

 

Then you should have a part like that:

<webCustomProperties>

    <description>

        <attribute>

            <cacheable>false</cacheable>

            <dataLocale>default</dataLocale>

            <id>-1</id>

            <objectAvailable>true</objectAvailable>

            <systemRecordFlag>false</systemRecordFlag>

            <version>1</version>

            <stringValue>Bitte geben Sie die Mail Adresse ein.</stringValue>

            <stringValueType>1</stringValueType>

            <type>14</type>

        </attribute>

        <value>Bitte geben Sie die Mail Adresse ein.</value>

    </description>

    <hasFilter>false</hasFilter>

    <id>2027</id>

    <immutable>false</immutable>

    <logicalSize>1</logicalSize>

    <mandatory>true</mandatory>

    <name>

        <attribute>

            <cacheable>false</cacheable>

            <dataLocale>default</dataLocale>

            <id>-1</id>

            <objectAvailable>true</objectAvailable>

            <systemRecordFlag>false</systemRecordFlag>

            <version>1</version>

            <stringValue>Mailadresse</stringValue>

            <stringValueType>1</stringValueType>

            <type>1</type>

        </attribute>

        <value>Mailadresse</value>

    </name>

    <propertyDefinitionGroupId>201</propertyDefinitionGroupId>

    <propertyDefinitionGroupType>1</propertyDefinitionGroupType>

    <shortCode>EXCH-GRUPPENMAILPOSTFACH-MAILADRESSE</shortCode>

    <type>1</type>

    <typeDescription>SINGLE_LINE_STRING</typeDescription>

    <unavailable>false</unavailable>

    <group>false</group>

    <sticky>false</sticky>

    <webSharedCustomColumnId>0</webSharedCustomColumnId>

</webCustomProperties>


The URL does not look correct, at least it does not work for me.


[yourServer] is your assyst-Server for Example http://myhostname:8080
[ShortCodeFromYourCustomForm] is the ShortCode from your Form which is defined in the LayoutDesigner in Uppercase

 

 


I did get it to work, thanks.

However, the challenges are:

  1. It returns all fields on the form
  2. Navigating through Web Groups
  3. Getting the fields name from this REST call and matching it to the value in the field on a specific event

 


Reply