You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

If you have already learned how to add a property or a sub-property to a resource object, you already know the basics of how these GetObject companion services work. As one might expect, there is an AddSubResource service available to add a sub-resource to a resource. In fact, there are two principle services available to the developer. The other service is named AddSubResourceObject. Both of these are explained below.

AddSubResource Service

The calling signature for the AddSubResource service is virtually identical to the AddSubProperties service (i.e., the plural version of the AddSubProperty service). The key difference is that when the AddSubProperties service is called more than once for the same parent property name and the same sub-property names, the new sub-property values replace the old ones. The AddSubResource service, on the other hand, adds (or appends) new sub-resource objects to the existing array of sub-resources associated with the parent property. Here is an example of what the code might look like:

objResource     = HTTP_Resource_Services('GetObject')
If Error_Services('NoError') then
    SubResourcePropertyNames    = 'type'     : @FM : 'address'            : @FM : 'city'        : @FM : 'county'  : @FM : 'state' : @FM : 'zip'
    SubResourcePropertyValues   = 'Mailing'  : @FM : 'PO Box 1234'        : @FM : 'New Orleans' : @FM : 'Orleans' : @FM : 'LA'    : @FM : '70116'
    HTTP_Resource_Services('AddSubResource', objResource, 'address', SubResourcePropertyNames, SubResourcePropertyValues)
    SubResourcePropertyValues   = 'Shipping' : @FM : '6649 N Blue Gum St' : @FM : 'New Orleans' : @FM : 'Orleans' : @FM : 'LA'    : @FM : '70116'
    HTTP_Resource_Services('AddSubResource', objResource, 'address', SubResourcePropertyNames, SubResourcePropertyValues)
    // Serialize the JSON object.
    jsonResource    = HTTP_Resource_Services('GetSerializedResource', objResource)
end

Because we are adding entire resources with each call to the AddSubResource service, the entire sub-resource must be passed in at once. Our resulting resource object will look like this:

{
   "address":[
      {
         "type":"Mailing",
         "address":"PO Box 1234",
         "city":"New Orleans",
         "county":"Orleans",
         "state":"LA",
         "zip":"70116"
      },
      {
         "type":"Shipping",
         "address":"6649 N Blue Gum St",
         "city":"New Orleans",
         "county":"Orleans",
         "state":"LA",
         "zip":"70116"
      }
   ]
}

Actual code will likely loop through each item of an AMV group or each row as Key IDs are retrieved from a database cursor. Each iteration would call the AddSubResource service.

AddSubResourceObject Service

  • No labels