code: function pongFormSetData( divId, data ) {
    log( "Pong-Form",  'set data hook: '+divId );
    var def = moduleConfig[ divId ];
    if ( def.dataDocSubPath == null ) {
      // table is the root of the doc
      log( "Pong-Form",  'no tbl.dataDocSubPath' );
      // TODO add update code
      //alert( "Update form with dataDocSubPath..." );
      pongFormUpdateFieldsData( divId, moduleConfig[ divId ], data ); 
    } else {
      log( "Pong-Form",  'tbl.dataDocSubPath='+def.dataDocSubPath );
      // table is somewhere in the DOM tree
      var pathToken = def.dataDocSubPath.split('.');
      log( "Pong-Form",  'pathToken[0] ' + pathToken[0] );
      var subdata = data[ pathToken[0] ];
      for ( var i = 1; i < pathToken.length; i++ ) {
        log( "Pong-Form", 'pathToken['+i+'] ' + pathToken[i] );  
        subdata = subdata[ pathToken[i] ];
      }
      log( "Pong-Form", ' subdata = ' + JSON.stringify( subdata ) );
      //poList[ divId ].pongListData = subdata;
      // TODO add update code
      //alert( "Update form w/o dataDocSubPath..." );
      pongFormUpdateFieldsData( divId, moduleConfig[ divId ], subdata ); 
    }
  }
docs: hook and used by update hook