AddPropertySetRow API¶
Adds a new property set row to a document or folder. The target object is resolved by path -" the system first checks if the path refers to a document, then a folder. Multiple property sets and multiple rows per property set can be submitted in a single call.
Endpoint¶
Methods¶
- GET
/srv.asmx/AddPropertySetRow?authenticationTicket=...&Path=...&xmlpset=... - POST
/srv.asmx/AddPropertySetRow(form data) - SOAP Action:
http://tempuri.org/AddPropertySetRow
Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
authenticationTicket |
string | Yes | Authentication ticket obtained from AuthenticateUser. |
Path |
string | Yes | Full infoRouter path to the target document or folder (e.g., /MyLibrary/Projects/spec.pdf or /MyLibrary/Projects). |
xmlpset |
string | Yes | XML document describing the property set rows to add. See xmlpset Format below. |
xmlpset Format¶
<psets>
<pset name="PropertySetName">
<row FIELDNAME1="value1" FIELDNAME2="value2" />
</pset>
</psets>
XML Structure Rules¶
- The root element must be
<psets>. - Each
<pset>child element represents one property set. Thenameattribute specifies the property set name. - Each
<row>child element inside a<pset>represents one row to add. Field names are specified as XML attributes of the<row>element. - Field names are case-insensitive during lookup but are stored in uppercase.
- An optional
rownbrattribute on<row>specifies the row number to assign. If omitted or0, the system assigns the next available row number automatically. - Multiple
<pset>elements may be included in a single call. - Multiple
<row>elements may be included in a single<pset>for multi-row property sets.
Example¶
<psets>
<pset name="ProjectMetadata">
<row PROJECT_CODE="PRJ-2024-001" STATUS="Active" NOTES="Initial entry" />
</pset>
</psets>
Example with explicit row number¶
<psets>
<pset name="ProjectMetadata">
<row rownbr="3" PROJECT_CODE="PRJ-2024-003" STATUS="Draft" />
</pset>
</psets>
Response¶
Success Response¶
Error Response (single error)¶
Error Response (multiple errors)¶
<response success="false" error="[log]">
<item name="document.pdf (D123)" error="Access denied." />
<item name="ProjectMetadata" error="Property set not found." />
</response>
Note: This API uses
<response>as the root element, not<root>.
Required Permissions¶
For documents¶
The calling user must have the Change Metadata access right on the target document (infoRouter action: MetaDataAddChange).
For folders¶
The calling user must have the Change Metadata access right on the target folder.
Anonymous access is not permitted.
Constraints¶
- System property sets (managed internally by infoRouter) cannot be applied or removed manually. Attempting to do so returns an error.
- The property set must be defined in the same infoRouter library as the target document or folder.
- Only fields defined in the property set definition are accepted. Unrecognized field names are ignored.
- After successfully adding a row to a document, infoRouter sends an
ON_UPDATEnotification to all document subscribers.
Example¶
GET Request¶
GET /srv.asmx/AddPropertySetRow
?authenticationTicket=3f7a1b2c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
&Path=/MyLibrary/Projects/Proposal.pdf
&xmlpset=%3Cpsets%3E%3Cpset+name%3D%22ProjectMetadata%22%3E%3Crow+PROJECT_CODE%3D%22PRJ-001%22+STATUS%3D%22Draft%22%2F%3E%3C%2Fpset%3E%3C%2Fpsets%3E
HTTP/1.1
Host: yourserver
POST Request¶
POST /srv.asmx/AddPropertySetRow HTTP/1.1
Host: yourserver
Content-Type: application/x-www-form-urlencoded
authenticationTicket=3f7a1b2c-4d5e-6f7a-8b9c-0d1e2f3a4b5c&Path=/MyLibrary/Projects/Proposal.pdf&xmlpset=<psets><pset name="ProjectMetadata"><row PROJECT_CODE="PRJ-001" STATUS="Draft"/></pset></psets>
Notes¶
- The
Pathparameter resolves to a document first; if no document is found at that path, it is resolved as a folder. - Field names inside
<row>attributes are not case-sensitive but are matched against the uppercase field names stored in the property set definition. - Pipe characters (
|) in field values are automatically escaped internally and do not need special handling in the XML. - For property sets that allow multiple rows, include multiple
<row>elements within the same<pset>, or make multiple API calls. - To update an existing row, use UpdatePropertySetRow.
- To delete a row, use DeletePropertySetRow.
- To add property set rows to a user account, use AddPropertySetRowForUser.
Related APIs¶
- UpdatePropertySetRow -" Update an existing property set row on a document or folder.
- DeletePropertySetRow -" Remove a property set row from a document or folder.
- AddPropertySetRowForUser -" Add a property set row to a user account.
- GetPropertySetDefinition -" Get the full definition of a property set including its fields.
- GetPropertySets -" Get the property sets applied to a document or folder.
Error Codes¶
| Error | Description |
|---|---|
[900] |
Authentication failed -" invalid credentials. |
[901] |
Session expired or invalid authentication ticket. |
| Access Denied | The calling user does not have Change Metadata access on the target. |
| Path not found | No document or folder was found at the specified Path. |
| Property set not found | No property set with the specified name exists. |
| System property set | Cannot manually apply a system-managed property set. |