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

Compare with Current View Page History

« Previous Version 11 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.

Developers also have access to the AddSubResources service, which is a a wrapper around the AddSubResource service. It allows values to be passed in as an @RM/@FM array so multiple sub-resource objects can be added in a single call.

AddSubResourceObject Service

The AddSubResource service works like the AddProperty and AddSubProperty service in that serialized data is expected to be passed in through the arguments. The AddSubResourceObject service allows the developer to pass in an @FM delimited list of object handles.

  • No labels