198. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 6/22/2018 1:28:17 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

198.1 Files compared

# Location File Last Modified
1 v1603_release_60.zip\CRM_solutions\North52BPA_1_0_0_549_managed_2013_2015_2016_Dyn365.zip\WebResources north52_javascriptsdkrest4776FC85-CEA2-E111-99B0-00155DF5B00D Fri Mar 30 17:17:44 2018 UTC
2 v1603_release_60.zip\CRM_solutions\North52BPA_1_0_0_549_managed_2013_2015_2016_Dyn365.zip\WebResources north52_javascriptsdkrest4776FC85-CEA2-E111-99B0-00155DF5B00D Mon Jun 18 13:52:45 2018 UTC

198.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 976
Changed 2 4
Inserted 0 0
Removed 0 0

198.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

198.4 Active regular expressions

No regular expressions were active.

198.5 Comparison detail

  1   if (typeof  (SDK) ==  "undefined ")
  2   { SDK = {  __namespac e: true };  }
  3   SDK.REST =  {
  4    _context:  function  () {
  5     ///<summ ary>
  6     /// Priv ate functi on to the  context ob ject.
  7     ///</sum mary>
  8     ///<retu rns>Contex t</returns >
  9     if (type of GetGlob alContext  != "undefi ned")
  10     { return  GetGlobal Context();  }
  11     else {
  12      if (typ eof Xrm !=  "undefine d") {
  13       return  Xrm.Page. context;
  14      }
  15      else
  16      { throw  new Error ("Context  is not ava ilable.");  }
  17     }
  18    },
  19    _getServe rUrl: func tion () {
  20          var  crmServer Url  = "Un known";
  21  
  22          if  (typeof th is._contex t().getCli entUrl !=  "undefined ") 
  23              {
  24                crmServe rUrl = thi s._context ().getClie ntUrl();
  25              }
  26              else
  27              {
  28                 crmServ erUrl = th is._contex t().getSer verUrl();   
  29                 crmServ erUrl = cr mServerUrl .replace(/ ^(http|htt ps):\/\/([ _a-zA-Z0-9 \-\.]+)(:( [0-9]{1,5} ))?/, wind ow.locatio n.protocol  + "//" +  window.loc ation.host );  
  30                 crmServ erUrl = cr mServerUrl .replace(/ \/$/, "");  // remove  trailing  slash if a ny  
  31              }
  32  
  33     return c rmServerUr l;
  34  
  35    },
  36    _ODataPat h: functio n () {
  37     ///<summ ary>
  38     /// Priv ate functi on to retu rn the pat h to the R EST endpoi nt.
  39     ///</sum mary>
  40     ///<retu rns>String </returns>
  41     return t his._getSe rverUrl()  + "/XRMSer vices/2011 /Organizat ionData.sv c/";
  42    },
  43    _errorHan dler: func tion (req)  {
  44     ///<summ ary>
  45     /// Priv ate functi on return  an Error o bject to t he errorCa llback
  46     ///</sum mary>
  47     ///<para m name="re q" type="X MLHttpRequ est">
  48     /// The  XMLHttpReq uest respo nse that r eturned an  error.
  49     ///</par am>
  50     ///<retu rns>Error< /returns>
  51     //Error  descriptio ns come fr om http:// support.mi crosoft.co m/kb/19362 5
  52     if (req. status ==  12029)
  53     { return  new Error ("The atte mpt to con nect to th e server f ailed.");  }
  54     if (req. status ==  12007)
  55     { return  new Error ("The serv er name co uld not be  resolved. "); }
  56     var erro rText;
  57     try
  58           {  errorText  = JSON.par se(req.res ponseText) .error.mes sage.value ; }
  59     catch (e )
  60           {  errorText  = req.resp onseText }
  61  
  62     return n ew Error(" Error : "  +
  63           re q.status +  ": " +
  64           re q.statusTe xt + ": "  + errorTex t);
  65    },
  66    _dateRevi ver: funct ion (key,  value) {
  67     ///<summ ary>
  68     /// Priv ate functi on to conv ert matchi ng string  values to  Date objec ts.
  69     ///</sum mary>
  70     ///<para m name="ke y" type="S tring">
  71     /// The  key used t o identify  the objec t property
  72     ///</par am>
  73     ///<para m name="va lue" type= "String">
  74     /// The  string val ue represe nting a da te
  75     ///</par am>
  76     var a;
  77     if (type of value = == 'string ') {
  78      a = /Da te\(([-+]? \d+)\)/.ex ec(value);
  79      if (a)  {
  80       return  new Date( parseInt(v alue.repla ce("/Date( ", "").rep lace(")/",  ""), 10)) ;
  81      }
  82     }
  83     return v alue;
  84    },
  85    _paramete rCheck: fu nction (pa rameter, m essage) {
  86     ///<summ ary>
  87     /// Priv ate functi on used to  check whe ther requi red parame ters are n ull or und efined
  88     ///</sum mary>
  89     ///<para m name="pa rameter" t ype="Objec t">
  90     /// The  parameter  to check;
  91     ///</par am>
  92     ///<para m name="me ssage" typ e="String" >
  93     /// The  error mess age text t o include  when the e rror is th rown.
  94     ///</par am>
  95     if ((typ eof parame ter === "u ndefined")  || parame ter === nu ll) {
  96      throw n ew Error(m essage);
  97     }
  98    },
  99    _stringPa rameterChe ck: functi on (parame ter, messa ge) {
  100     ///<summ ary>
  101     /// Priv ate functi on used to  check whe ther requi red parame ters are n ull or und efined
  102     ///</sum mary>
  103     ///<para m name="pa rameter" t ype="Strin g">
  104     /// The  string par ameter to  check;
  105     ///</par am>
  106     ///<para m name="me ssage" typ e="String" >
  107     /// The  error mess age text t o include  when the e rror is th rown.
  108     ///</par am>
  109     if (type of paramet er != "str ing") {
  110      throw n ew Error(m essage);
  111     }
  112    },
  113    _callback ParameterC heck: func tion (call backParame ter, messa ge) {
  114     ///<summ ary>
  115     /// Priv ate functi on used to  check whe ther requi red callba ck paramet ers are fu nctions
  116     ///</sum mary>
  117     ///<para m name="ca llbackPara meter" typ e="Functio n">
  118     /// The  callback p arameter t o check;
  119     ///</par am>
  120     ///<para m name="me ssage" typ e="String" >
  121     /// The  error mess age text t o include  when the e rror is th rown.
  122     ///</par am>
  123     if (type of callbac kParameter  != "funct ion") {
  124      throw n ew Error(m essage);
  125     }
  126    },
  127    createRec ord: funct ion (objec t, type, s uccessCall back, erro rCallback)  {
  128     ///<summ ary>
  129     /// Send s an async hronous re quest to c reate a ne w record.
  130     ///</sum mary>
  131     ///<para m name="ob ject" type ="Object">
  132       /// A Java s cript obje ct with pr operties c orrespondi ng to the  Schema nam e of
  133     /// enti ty attribu tes that a re valid f or create  operations .
  134     ///</par am>
  135     ///<para m name="ty pe" type=" String">
  136     /// The  Schema Nam e of the E ntity type  record to  create.
  137     /// For  an Account  record, u se "Accoun t"
  138     ///</par am>
  139     ///<para m name="su ccessCallb ack" type= "Function" >
  140     /// The  function t hat will b e passed t hrough and  be called  by a succ essful res ponse. 
  141     /// This  function  can accept  the retur ned record  as a para meter.
  142     /// </pa ram>
  143     ///<para m name="er rorCallbac k" type="F unction">
  144     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  145     /// This  function  must accep t an Error  object as  a paramet er.
  146     /// </pa ram>
  147     this._pa rameterChe ck(object,  "SDK.REST .createRec ord requir es the obj ect parame ter.");
  148     this._st ringParame terCheck(t ype, "SDK. REST.creat eRecord re quires the  type para meter is a  string.") ;
  149     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.cr eateRecord  requires  the succes sCallback  is a funct ion.");
  150     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.crea teRecord r equires th e errorCal lback is a  function. ");
  151     var req  = new XMLH ttpRequest ();
  152     req.open ("POST", e ncodeURI(t his._OData Path() + t ype + "Set "), true);
  153     req.setR equestHead er("Accept ", "applic ation/json ");
  154     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  155     req.onre adystatech ange = fun ction () {
  156      if (thi s.readySta te == 4 /*  complete  */) {
  157       if (th is.status  == 201) {
  158        succe ssCallback (JSON.pars e(this.res ponseText,  SDK.REST. _dateReviv er).d);
  159       }
  160       else {
  161        error Callback(S DK.REST._e rrorHandle r(this));
  162       }
  163      }
  164     };
  165     req.send (JSON.stri ngify(obje ct));
  166    },
  167    retrieveR ecord: fun ction (id,  type, sel ect, expan d, success Callback,  errorCallb ack) {
  168     ///<summ ary>
  169     /// Send s an async hronous re quest to r etrieve a  record.
  170     ///</sum mary>
  171     ///<para m name="id " type="St ring">
  172     /// A St ring repre senting th e GUID val ue for the  record to  retrieve.
  173     ///</par am>
  174     ///<para m name="ty pe" type=" String">
  175     /// The  Schema Nam e of the E ntity type  record to  retrieve.
  176     /// For  an Account  record, u se "Accoun t"
  177     ///</par am>
  178     ///<para m name="se lect" type ="String">
  179     /// A St ring repre senting th e $select  OData Syst em Query O ption to c ontrol whi ch
  180     /// attr ibutes wil l be retur ned. This  is a comma  separated  list of A ttribute n ames that  are valid  for retrie ve.
  181     /// If n ull all pr operties f or the rec ord will b e returned
  182     ///</par am>
  183     ///<para m name="ex pand" type ="String">
  184     /// A St ring repre senting th e $expand  OData Syst em Query O ption valu e to contr ol which
  185     /// rela ted record s are also  returned.  This is a  comma sep arated lis t of of up  to 6 enti ty relatio nship name s
  186     /// If n ull no exp anded rela ted record s will be  returned.
  187     ///</par am>
  188     ///<para m name="su ccessCallb ack" type= "Function" >
  189     /// The  function t hat will b e passed t hrough and  be called  by a succ essful res ponse. 
  190     /// This  function  must accep t the retu rned recor d as a par ameter.
  191     /// </pa ram>
  192     ///<para m name="er rorCallbac k" type="F unction">
  193     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  194     /// This  function  must accep t an Error  object as  a paramet er.
  195     /// </pa ram>
  196     this._st ringParame terCheck(i d, "SDK.RE ST.retriev eRecord re quires the  id parame ter is a s tring.");
  197     this._st ringParame terCheck(t ype, "SDK. REST.retri eveRecord  requires t he type pa rameter is  a string. ");
  198     if (sele ct != null )
  199      this._s tringParam eterCheck( select, "S DK.REST.re trieveReco rd require s the sele ct paramet er is a st ring.");
  200     if (expa nd != null )
  201      this._s tringParam eterCheck( expand, "S DK.REST.re trieveReco rd require s the expa nd paramet er is a st ring.");
  202     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.re trieveReco rd require s the succ essCallbac k paramete r is a fun ction.");
  203     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.retr ieveRecord  requires  the errorC allback pa rameter is  a functio n.");
  204  
  205     var syst emQueryOpt ions = "";
  206  
  207     if (sele ct != null  || expand  != null)  {
  208      systemQ ueryOption s = "?";
  209      if (sel ect != nul l) {
  210       var se lectString  = "$selec t=" + sele ct;
  211       if (ex pand != nu ll) {
  212        selec tString =  selectStri ng + "," +  expand;
  213       }
  214       system QueryOptio ns = syste mQueryOpti ons + sele ctString;
  215      }
  216      if (exp and != nul l) {
  217       system QueryOptio ns = syste mQueryOpti ons + "&$e xpand=" +  expand;
  218      }
  219     }
  220  
  221  
  222     var req  = new XMLH ttpRequest ();
  223     req.open ("GET", en codeURI(th is._ODataP ath() + ty pe + "Set( guid'" + i d + "')" +  systemQue ryOptions) , true);
  224     req.setR equestHead er("Accept ", "applic ation/json ");
  225     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  226     req.onre adystatech ange = fun ction () {
  227      if (thi s.readySta te == 4 /*  complete  */) {
  228       if (th is.status  == 200) {
  229        succe ssCallback (JSON.pars e(this.res ponseText,  SDK.REST. _dateReviv er).d);
  230       }
  231       else {
  232        error Callback(S DK.REST._e rrorHandle r(this));
  233       }
  234      }
  235     };
  236     req.send ();
  237    },
  238    updateRec ord: funct ion (id, o bject, typ e, success Callback,  errorCallb ack) {
  239     ///<summ ary>
  240     /// Send s an async hronous re quest to u pdate a re cord.
  241     ///</sum mary>
  242     ///<para m name="id " type="St ring">
  243     /// A St ring repre senting th e GUID val ue for the  record to  retrieve.
  244     ///</par am>
  245     ///<para m name="ob ject" type ="Object">
  246       /// A Java s cript obje ct with pr operties c orrespondi ng to the  Schema Nam es for
  247     /// enti ty attribu tes that a re valid f or update  operations .
  248     ///</par am>
  249     ///<para m name="ty pe" type=" String">
  250     /// The  Schema Nam e of the E ntity type  record to  retrieve.
  251     /// For  an Account  record, u se "Accoun t"
  252     ///</par am>
  253     ///<para m name="su ccessCallb ack" type= "Function" >
  254     /// The  function t hat will b e passed t hrough and  be called  by a succ essful res ponse. 
  255     /// Noth ing will b e returned  to this f unction.
  256     /// </pa ram>
  257     ///<para m name="er rorCallbac k" type="F unction">
  258     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  259     /// This  function  must accep t an Error  object as  a paramet er.
  260     /// </pa ram>
  261     this._st ringParame terCheck(i d, "SDK.RE ST.updateR ecord requ ires the i d paramete r.");
  262     this._pa rameterChe ck(object,  "SDK.REST .updateRec ord requir es the obj ect parame ter.");
  263     this._st ringParame terCheck(t ype, "SDK. REST.updat eRecord re quires the  type para meter.");
  264     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.up dateRecord  requires  the succes sCallback  is a funct ion.");
  265     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.upda teRecord r equires th e errorCal lback is a  function. ");
  266     var req  = new XMLH ttpRequest ();
  267  
  268     req.open ("POST", e ncodeURI(t his._OData Path() + t ype + "Set (guid'" +  id + "')") , true);
  269     req.setR equestHead er("Accept ", "applic ation/json ");
  270     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  271     req.setR equestHead er("X-HTTP -Method",  "MERGE");
  272     req.onre adystatech ange = fun ction () {
  273      if (thi s.readySta te == 4 /*  complete  */) {
  274       if (th is.status  == 204 ||  this.statu s == 1223)  {
  275        succe ssCallback ();
  276       }
  277       else {
  278        error Callback(S DK.REST._e rrorHandle r(this));
  279       }
  280      }
  281     };
  282     req.send (JSON.stri ngify(obje ct));
  283    },
  284    deleteRec ord: funct ion (id, t ype, succe ssCallback , errorCal lback) {
  285     ///<summ ary>
  286     /// Send s an async hronous re quest to d elete a re cord.
  287     ///</sum mary>
  288     ///<para m name="id " type="St ring">
  289     /// A St ring repre senting th e GUID val ue for the  record to  delete.
  290     ///</par am>
  291     ///<para m name="ty pe" type=" String">
  292     /// The  Schema Nam e of the E ntity type  record to  delete.
  293     /// For  an Account  record, u se "Accoun t"
  294     ///</par am>
  295     ///<para m name="su ccessCallb ack" type= "Function" >
  296     /// The  function t hat will b e passed t hrough and  be called  by a succ essful res ponse. 
  297     /// Noth ing will b e returned  to this f unction.
  298     /// </pa ram>
  299     ///<para m name="er rorCallbac k" type="F unction">
  300     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  301     /// This  function  must accep t an Error  object as  a paramet er.
  302     /// </pa ram>
  303     this._st ringParame terCheck(i d, "SDK.RE ST.deleteR ecord requ ires the i d paramete r.");
  304     this._st ringParame terCheck(t ype, "SDK. REST.delet eRecord re quires the  type para meter.");
  305     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.de leteRecord  requires  the succes sCallback  is a funct ion.");
  306     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.dele teRecord r equires th e errorCal lback is a  function. ");
  307     var req  = new XMLH ttpRequest ();
  308     req.open ("POST", e ncodeURI(t his._OData Path() + t ype + "Set (guid'" +  id + "')") , true);
  309     req.setR equestHead er("Accept ", "applic ation/json ");
  310     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  311     req.setR equestHead er("X-HTTP -Method",  "DELETE");
  312     req.onre adystatech ange = fun ction () {
  313  
  314      if (thi s.readySta te == 4 /*  complete  */) {
  315       if (th is.status  == 204 ||  this.statu s == 1223)  {
  316        succe ssCallback ();
  317       }
  318       else {
  319        error Callback(S DK.REST._e rrorHandle r(this));
  320       }
  321      }
  322     };
  323     req.send ();
  324  
  325    },
  326    retrieveM ultipleRec ords: func tion (type , options,  successCa llback, er rorCallbac k, OnCompl ete) {
  327     ///<summ ary>
  328     /// Send s an async hronous re quest to r etrieve re cords.
  329     ///</sum mary>
  330     ///<para m name="ty pe" type=" String">
  331     /// The  Schema Nam e of the E ntity type  record to  retrieve.
  332     /// For  an Account  record, u se "Accoun t"
  333     ///</par am>
  334     ///<para m name="op tions" typ e="String" >
  335     /// A St ring repre senting th e OData Sy stem Query  Options t o control  the data r eturned
  336     ///</par am>
  337     ///<para m name="su ccessCallb ack" type= "Function" >
  338     /// The  function t hat will b e passed t hrough and  be called  for each  page of re cords retu rned.
  339     /// Each  page is 5 0 records.  If you ex pect that  more than  one page o f records  will be re turned,
  340     /// this  function  should loo p through  the result s and push  the recor ds into an  array out side of th e function .
  341     /// Use  the OnComp lete event  handler t o know whe n all the  records ha ve been pr ocessed.
  342     /// </pa ram>
  343     ///<para m name="er rorCallbac k" type="F unction">
  344     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  345     /// This  function  must accep t an Error  object as  a paramet er.
  346     /// </pa ram>
  347     ///<para m name="On Complete"  type="Func tion">
  348     /// The  function t hat will b e called w hen all th e requeste d records  have been  returned.
  349     /// No p arameters  are passed  to this f unction.
  350     /// </pa ram>
  351     this._st ringParame terCheck(t ype, "SDK. REST.retri eveMultipl eRecords r equires th e type par ameter is  a string." );
  352     if (opti ons != nul l)
  353      this._s tringParam eterCheck( options, " SDK.REST.r etrieveMul tipleRecor ds require s the opti ons parame ter is a s tring.");
  354     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.re trieveMult ipleRecord s requires  the succe ssCallback  parameter  is a func tion.");
  355     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.retr ieveMultip leRecords  requires t he errorCa llback par ameter is  a function .");
  356     this._ca llbackPara meterCheck (OnComplet e, "SDK.RE ST.retriev eMultipleR ecords req uires the  OnComplete  parameter  is a func tion.");
  357  
  358     var opti onsString;
  359     if (opti ons != nul l) {
  360      if (opt ions.charA t(0) != "? ") {
  361       option sString =  "?" + opti ons;
  362      }
  363      else
  364      { optio nsString =  options;  }
  365     }
  366     var req  = new XMLH ttpRequest ();
  367     req.open ("GET", th is._ODataP ath() + ty pe + "Set"  + options String, tr ue);
  368     req.setR equestHead er("Accept ", "applic ation/json ");
  369     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  370     req.onre adystatech ange = fun ction () {
  371      if (thi s.readySta te == 4 /*  complete  */) {
  372       if (th is.status  == 200) {
  373        var r eturned =  JSON.parse (this.resp onseText,  SDK.REST._ dateRevive r).d;
  374        succe ssCallback (returned. results);
  375        if (r eturned.__ next != nu ll) {
  376         var  queryOptio ns = retur ned.__next .substring ((SDK.REST ._ODataPat h() + type  + "Set"). length);
  377         SDK. REST.retri eveMultipl eRecords(t ype, query Options, s uccessCall back, erro rCallback,  OnComplet e);
  378        }
  379        else
  380        { OnC omplete();  }
  381       }
  382       else {
  383        error Callback(S DK.REST._e rrorHandle r(this));
  384       }
  385      }
  386     };
  387     req.send ();
  388    },
  389    associate Records: f unction (p arentId, p arentType,  relations hipName, c hildId, ch ildType, s uccessCall back, erro rCallback)  {
  390     this._st ringParame terCheck(p arentId, " SDK.REST.a ssociateRe cords requ ires the p arentId pa rameter is  a string. ");
  391     ///<para m name="pa rentId" ty pe="String ">
  392     /// The  Id of the  record to  be the par ent record  in the re lationship
  393     /// </pa ram>
  394     ///<para m name="pa rentType"  type="Stri ng">
  395     /// The  Schema Nam e of the E ntity type  for the p arent reco rd.
  396     /// For  an Account  record, u se "Accoun t"
  397     /// </pa ram>
  398     ///<para m name="re lationship Name" type ="String">
  399     /// The  Schema Nam e of the E ntity Rela tionship t o use to a ssociate t he records .
  400     /// To a ssociate a ccount rec ords as a  Parent acc ount, use  "Reference daccount_p arent_acco unt"
  401     /// </pa ram>
  402     ///<para m name="ch ildId" typ e="String" >
  403     /// The  Id of the  record to  be the chi ld record  in the rel ationship
  404     /// </pa ram>
  405     ///<para m name="ch ildType" t ype="Strin g">
  406     /// The  Schema Nam e of the E ntity type  for the c hild recor d.
  407     /// For  an Account  record, u se "Accoun t"
  408     /// </pa ram>
  409     ///<para m name="su ccessCallb ack" type= "Function" >
  410     /// The  function t hat will b e passed t hrough and  be called  by a succ essful res ponse. 
  411     /// Noth ing will b e returned  to this f unction.
  412     /// </pa ram>
  413     ///<para m name="er rorCallbac k" type="F unction">
  414     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  415     /// This  function  must accep t an Error  object as  a paramet er.
  416     /// </pa ram>
  417     this._st ringParame terCheck(p arentType,  "SDK.REST .associate Records re quires the  parentTyp e paramete r is a str ing.");
  418     this._st ringParame terCheck(r elationshi pName, "SD K.REST.ass ociateReco rds requir es the rel ationshipN ame parame ter is a s tring.");
  419     this._st ringParame terCheck(c hildId, "S DK.REST.as sociateRec ords requi res the ch ildId para meter is a  string.") ;
  420     this._st ringParame terCheck(c hildType,  "SDK.REST. associateR ecords req uires the  childType  parameter  is a strin g.");
  421     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.as sociateRec ords requi res the su ccessCallb ack parame ter is a f unction.") ;
  422     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.asso ciateRecor ds require s the erro rCallback  parameter  is a funct ion.");
  423  
  424     var req  = new XMLH ttpRequest ();
  425     req.open ("POST", e ncodeURI(t his._OData Path() + p arentType  + "Set(gui d'" + pare ntId + "') /$links/"  + relation shipName),  true);
  426     req.setR equestHead er("Accept ", "applic ation/json ");
  427     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  428     req.onre adystatech ange = fun ction () {
  429      if (thi s.readySta te == 4 /*  complete  */) {
  430       if (th is.status  == 204 ||  this.statu s == 1223)  {
  431        succe ssCallback ();
  432       }
  433       else {
  434        error Callback(S DK.REST._e rrorHandle r(this));
  435       }
  436      }
  437     };
  438     var chil dEntityRef erence = { }
  439     childEnt ityReferen ce.uri = t his._OData Path() + " /" + child Type + "Se t(guid'" +  childId +  "')";
  440     req.send (JSON.stri ngify(chil dEntityRef erence));
  441    },
  442    disassoci ateRecords : function  (parentId , parentTy pe, relati onshipName , childId,  successCa llback, er rorCallbac k) {
  443     this._st ringParame terCheck(p arentId, " SDK.REST.d isassociat eRecords r equires th e parentId  parameter  is a stri ng.");
  444     ///<para m name="pa rentId" ty pe="String ">
  445     /// The  Id of the  record to  be the par ent record  in the re lationship
  446     /// </pa ram>
  447     ///<para m name="pa rentType"  type="Stri ng">
  448     /// The  Schema Nam e of the E ntity type  for the p arent reco rd.
  449     /// For  an Account  record, u se "Accoun t"
  450     /// </pa ram>
  451     ///<para m name="re lationship Name" type ="String">
  452     /// The  Schema Nam e of the E ntity Rela tionship t o use to d isassociat e the reco rds.
  453     /// To d isassociat e account  records as  a Parent  account, u se "Refere ncedaccoun t_parent_a ccount"
  454     /// </pa ram>
  455     ///<para m name="ch ildId" typ e="String" >
  456     /// The  Id of the  record to  be disasso ciated as  the child  record in  the relati onship
  457     /// </pa ram>
  458     ///<para m name="su ccessCallb ack" type= "Function" >
  459     /// The  function t hat will b e passed t hrough and  be called  by a succ essful res ponse. 
  460     /// Noth ing will b e returned  to this f unction.
  461     /// </pa ram>
  462     ///<para m name="er rorCallbac k" type="F unction">
  463     /// The  function t hat will b e passed t hrough and  be called  by a fail ed respons e. 
  464     /// This  function  must accep t an Error  object as  a paramet er.
  465     /// </pa ram>
  466     this._st ringParame terCheck(p arentType,  "SDK.REST .disassoci ateRecords  requires  the parent Type param eter is a  string.");
  467     this._st ringParame terCheck(r elationshi pName, "SD K.REST.dis associateR ecords req uires the  relationsh ipName par ameter is  a string." );
  468     this._st ringParame terCheck(c hildId, "S DK.REST.di sassociate Records re quires the  childId p arameter i s a string .");
  469     this._ca llbackPara meterCheck (successCa llback, "S DK.REST.di sassociate Records re quires the  successCa llback par ameter is  a function .");
  470     this._ca llbackPara meterCheck (errorCall back, "SDK .REST.disa ssociateRe cords requ ires the e rrorCallba ck paramet er is a fu nction.");
  471  
  472     var req  = new XMLH ttpRequest ();
  473     req.open ("POST", e ncodeURI(t his._OData Path() + p arentType  + "Set(gui d'" + pare ntId + "') /$links/"  + relation shipName +  "(guid'"  + childId  + "')"), t rue);
  474     req.setR equestHead er("Accept ", "applic ation/json ");
  475     req.setR equestHead er("Conten t-Type", " applicatio n/json; ch arset=utf- 8");
  476     req.setR equestHead er("X-HTTP -Method",  "DELETE");
  477     req.onre adystatech ange = fun ction () {
  478      if (thi s.readySta te == 4 /*  complete  */) {
  479       if (th is.status  == 204 ||  this.statu s == 1223)  {
  480        succe ssCallback ();
  481       }
  482       else {
  483        error Callback(S DK.REST._e rrorHandle r(this));
  484       }
  485      }
  486     };
  487     req.send ();
  488    },
  489    __namespa ce: true
  490   };